File "script02.js"
Full Path: /home/analogde/www/TP02/burndown/script02.js
File size: 4.94 KB
MIME-type: text/plain
Charset: utf-8
$(document).ready(function() {
// Fonction pour ajouter une nouvelle tâche
$('#addTaskButton').click(function() {
const taskName = $('#taskName').val();
const estimatedTime = $('#estimatedTime').val();
if (taskName === "" || estimatedTime === "") {
alert("Veuillez remplir tous les champs.");
return;
}
const newRow = `<tr>
<td>${taskName}</td>
<td>${estimatedTime}</td>
<td><button class="btn btn-warning editBtn">Éditer</button></td>
<td><button class="btn btn-danger deleteBtn">Supprimer</button></td>
</tr>`;
$('#taskTableBody').append(newRow);
// Réinitialiser les champs de saisie
$('#taskName').val('');
$('#estimatedTime').val('');
// Fermer la modale après l'ajout
$('#addTaskModal').modal('hide');
});
// Délégation d'événements pour les boutons "Éditer" et "Supprimer"
$('#taskTableBody').on('click', '.editBtn', function() {
const row = $(this).closest('tr'); // Trouver la ligne correspondante
const taskName = row.find('td:first').text(); // Récupérer le nom de la tâche
const estimatedTime = row.find('td:nth-child(2)').text(); // Récupérer le temps estimé
// Remplir la modale d'édition avec les valeurs actuelles
$('#editTaskName').val(taskName);
$('#editEstimatedTime').val(estimatedTime);
// Ouvrir la modale d'édition
$('#editTaskModal').modal('show');
// Sauvegarder les modifications
$('#saveEditButton').off('click').on('click', function() {
// Mettre à jour la ligne du tableau avec les nouvelles valeurs
row.find('td:first').text($('#editTaskName').val());
row.find('td:nth-child(2)').text($('#editEstimatedTime').val());
// Fermer la modale
$('#editTaskModal').modal('hide');
});
});
// Fonction pour supprimer une tâche
$('#taskTableBody').on('click', '.deleteBtn', function() {
const row = $(this).closest('tr');
$('#deleteTaskModal').modal('show');
$('#confirmDeleteButton').click(function() {
row.remove();
$('#deleteTaskModal').modal('hide');
});
$('#cancelDeleteButton').click(function() {
$('#deleteTaskModal').modal('hide');
});
});
// Sauvegarde des tâches dans un fichier JSON
$('#saveButton').click(function() {
let tasks = [];
$('#taskTableBody tr').each(function() {
const taskName = $(this).find("td:first").text();
const estimatedTime = $(this).find("td:nth-child(2)").text();
tasks.push({ taskName: taskName, estimatedTime: estimatedTime });
});
console.log("Contenu des tâches à sauvegarder :", tasks);
try {
const jsonData = JSON.stringify(tasks);
console.log("Le tableau est valide pour être converti en JSON.");
} catch (error) {
console.log("Erreur lors de la conversion du tableau en JSON :", error);
alert("Erreur lors de la conversion des tâches en format JSON.");
return;
}
const envoi_tasks = [
{ "taskName": "Tâche 1", "estimatedTime": 5 },
{ "taskName": "Tâche 2", "estimatedTime": 3 }
];
$.ajax({
url: 'functions.php',
type: 'POST',
data: {
action: 'save',
tasks: JSON.stringify(envoi_tasks)
},
success: function(response) {
$('#successModal').modal('show');
},
error: function() {
$('#errorModal').modal('show');
}
});
});
// Fonction pour charger les données depuis le fichier JSON
$('#loadButton').click(function() {
$.ajax({
url: 'functions.php',
type: 'POST',
data: { action: 'load' },
success: function(response) {
const tasks = JSON.parse(response);
$('#taskTableBody').empty();
tasks.forEach(function(task) {
const newRow = `<tr>
<td>${task.taskName}</td>
<td>${task.estimatedTime}</td>
<td><button class="btn btn-warning editBtn">Éditer</button></td>
<td><button class="btn btn-danger deleteBtn">Supprimer</button></td>
</tr>`;
$('#taskTableBody').append(newRow);
});
alert("Les données ont été chargées avec succès !");
},
error: function() {
alert("Une erreur est survenue lors du chargement des données.");
}
});
});
});