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.");
            }
        });
    });

});