File "script.js"
Full Path: /home/analogde/www/CURL/Dev tableau/burndown/script.js
File size: 6.41 KB
MIME-type: text/plain
Charset: utf-8
$(document).ready(function() {
let taskIndexToEdit = null;
let isEditing = false;
// Fonction pour ajouter ou éditer une tâche
$('#addTaskForm').submit(function(event) {
event.preventDefault();
const taskName = $('#taskName').val();
const estimatedTime = $('#estimatedTime').val();
if (taskName && estimatedTime && estimatedTime > 0) {
if (isEditing) {
$.post('functions.php', {
action: 'edit',
index: taskIndexToEdit,
taskName: taskName,
estimatedTime: estimatedTime
}, function() {
$('#taskTableBody tr[data-index="' + taskIndexToEdit + '"]')
.find("td:first").text(taskName)
.end().find("td:nth-child(2)").text(estimatedTime);
resetForm();
$('#addTaskModal').modal('hide');
});
} else {
$.post('functions.php', {
action: 'add',
taskName: taskName,
estimatedTime: estimatedTime
}, function(response) {
const newTask = `
<tr data-index="${response.index}">
<td>${taskName}</td>
<td>${estimatedTime}</td>
<td>
<button class="btn btn-warning editBtn">Éditer</button>
<button class="btn btn-danger deleteBtn">Supprimer</button>
</td>
</tr>
`;
$('#taskTableBody').append(newTask);
resetForm();
$('#addTaskModal').modal('hide');
});
}
} else {
$('#estimatedTime').addClass('is-invalid');
$('#estimatedTimeError').show();
}
});
// Réinitialiser le formulaire après l'ajout ou l'édition
function resetForm() {
$('#taskName').val('');
$('#estimatedTime').val('');
$('#estimatedTime').removeClass('is-invalid');
$('#estimatedTimeError').hide();
isEditing = false;
taskIndexToEdit = null;
$('#addTaskModalLabel').text('Ajouter une nouvelle tâche');
$('button[type="submit"]').text('Ajouter la tâche');
}
// Événements pour les boutons "Supprimer"
$(document).on("click", ".deleteBtn", function() {
const row = $(this).closest("tr");
const index = row.data("index");
taskIndexToDelete = index;
$('#deleteModal').modal('show');
});
$("#confirmDeleteBtn").click(function() {
$.post("functions.php", { action: "delete", index: taskIndexToDelete }, function() {
$('#taskTableBody tr[data-index="' + taskIndexToDelete + '"]').remove();
$('#deleteModal').modal('hide');
});
});
$(document).on("click", ".editBtn", function() {
const row = $(this).closest("tr");
const taskName = row.find("td:first").text();
const estimatedTime = row.find("td:nth-child(2)").text();
const index = row.data("index");
$('#taskName').val(taskName);
$('#estimatedTime').val(estimatedTime);
taskIndexToEdit = index;
isEditing = true;
$('#addTaskModalLabel').text('Modifier la tâche');
$('button[type="submit"]').text('Modifier la tâche');
$('#addTaskModal').modal('show');
});
// Sauvegarder les tâches au format 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 });
});
// Affiche le contenu du tableau dans la console avant de sauvegarder
console.log("Contenu des tâches à sauvegarder :", tasks);
// Vérification si le tableau peut être converti en JSON
try {
const jsonData = JSON.stringify(tasks); // Conversion en JSON
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; // Stoppe l'exécution si la conversion échoue
}
// Envoyer les données via AJAX
$.ajax({
url: 'functions.php',
type: 'POST',
data: {
action: 'save',
tasks: JSON.stringify(tasks)
},
success: function(response) {
alert('Les données ont été sauvegardées avec succès!');
},
error: function() {
alert('Une erreur est survenue lors de la sauvegarde.');
}
});
});
// Charger les tâches depuis le fichier JSON
$('#loadButton').click(function() {
// Affiche un message "bonjour" lors du clic sur le bouton "Charger"
alert("bonjour");
$.ajax({
url: 'functions.php',
type: 'POST',
data: { action: 'load' },
success: function(response) {
const tasks = JSON.parse(response);
// Effacer le contenu actuel du tableau
$('#taskTableBody').empty();
// Ajouter les tâches du fichier JSON
tasks.forEach(function(task, index) {
const newTask = `
<tr data-index="${index}">
<td>${task.taskName}</td>
<td>${task.estimatedTime}</td>
<td>
<button class="btn btn-warning editBtn">Éditer</button>
<button class="btn btn-danger deleteBtn">Supprimer</button>
</td>
</tr>
`;
$('#taskTableBody').append(newTask);
});
alert('Les données ont été chargées avec succès!');
},
error: function() {
alert('Une erreur est survenue lors du chargement des données.');
}
});
});
});