File "burndown_001.php"
Full Path: /home/analogde/www/Chart burndown/burndown_001.php
File size: 10.58 KB
MIME-type: text/html
Charset: utf-8
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gestion des Tâches</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<h1>Gestion des Tâches</h1>
<table id="dataTable" class="table">
<thead>
<tr>
<th scope="col">Nom de la tâche</th>
<th scope="col">Temps estimé</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody id="taskTableBody">
<!-- Les tâches seront ajoutées ici -->
</tbody>
</table>
<!-- Boutons pour ajouter, sauvegarder et charger -->
<button type="button" class="btn btn-success" data-toggle="modal" data-target="#addTaskModal" id="addButton">Ajouter une tâche</button>
<button id="saveButton" class="btn btn-success">Sauver</button>
<button id="loadButton" class="btn btn-info">Charger</button>
<!-- Modale d'ajout de tâche -->
<div class="modal fade" id="addTaskModal" tabindex="-1" role="dialog" aria-labelledby="addTaskModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addTaskModalLabel">Ajouter une tâche</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="taskName">Nom de la tâche :</label>
<input type="text" class="form-control" id="taskName" required>
</div>
<div class="form-group">
<label for="estimatedTime">Temps estimé (en heures) :</label>
<input type="number" class="form-control" id="estimatedTime" required>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary" id="addTaskButton">Ajouter</button>
</div>
</div>
</div>
</div>
<!-- Modale d'édition de tâche -->
<div class="modal fade" id="editTaskModal" tabindex="-1" role="dialog" aria-labelledby="editTaskModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="editTaskModalLabel">Modifier la tâche</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="editTaskName">Nom de la tâche :</label>
<input type="text" class="form-control" id="editTaskName" required>
</div>
<div class="form-group">
<label for="editEstimatedTime">Temps estimé (en heures) :</label>
<input type="number" class="form-control" id="editEstimatedTime" required>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary" id="editTaskButton">Modifier</button>
</div>
</div>
</div>
</div>
<!-- Modale de confirmation de suppression -->
<div class="modal fade" id="confirmDeleteModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Confirmer la suppression</h5>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer cette tâche ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-danger" id="confirmDeleteButton">Supprimer</button>
</div>
</div>
</div>
</div>
</div>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js"></script>
<script>
$(document).ready(function () {
/*function getTasks() {
let tasks = [];
$("#taskTableBody tr").each(function () {
let taskName = $(this).find("td:eq(0)").text();
let estimatedTime = $(this).find("td:eq(1)").text().replace(" h", "");
tasks.push({ name: taskName, time: estimatedTime });
});
return tasks;
}*/
$("#saveButton").click(function () {
/*let tasks = getTasks();
$.post("save.php", { tasks: JSON.stringify(tasks) }, function (response) {
alert(response);
});*/
let table = document.getElementById("dataTable");
let data = [];
for (let i = 0; i < table.rows.length; i++) {
let row = [];
for (let j = 0; j < table.rows[i].cells.length; j++) {
row.push(table.rows[i].cells[j].innerText);
}
data.push(row);
}
fetch('save.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
}).then(response => response.text()).then(data => {
alert("Données sauvegardées !");
});
});
$("#addTaskButton").click(function () {
// Récupérer les valeurs des champs du formulaire
var taskName = $("#taskName").val().trim();
var estimatedTime = $("#estimatedTime").val().trim();
// Vérifier que les champs ne sont pas vides
if (taskName === "" || estimatedTime === "") {
alert("Veuillez remplir tous les champs.");
return;
}
// Ajouter une nouvelle ligne dans le tableau
var newRow = `<tr>
<td>${taskName}</td>
<td>${estimatedTime} h</td>
<td>
<button class="btn btn-warning btn-sm edit-btn">Modifier</button>
<button class="btn btn-danger btn-sm delete-btn">Supprimer</button>
</td>
</tr>`;
$("#taskTableBody").append(newRow);
// Réinitialiser les champs du formulaire
$("#taskName").val("");
$("#estimatedTime").val("");
// Fermer la modale
$("#addTaskModal").modal('hide');
});
// Suppression d'une tâche
/*
$(document).on("click", ".delete-btn", function () {
$(this).closest("tr").remove();
});
*/
// Modification d'une tâche (remplissage du formulaire de modification)
$(document).on("click", ".edit-btn", function () {
var row = $(this).closest("tr");
var taskName = row.find("td:eq(0)").text();
var estimatedTime = row.find("td:eq(1)").text().replace(" h", "");
$("#editTaskName").val(taskName);
$("#editEstimatedTime").val(estimatedTime);
// Stocker la ligne en cours d'édition
$("#editTaskModal").data("editingRow", row);
// Afficher la modale d'édition
$("#editTaskModal").modal("show");
});
// Validation de la modification
$("#editTaskButton").click(function () {
var editedTaskName = $("#editTaskName").val().trim();
var editedEstimatedTime = $("#editEstimatedTime").val().trim();
if (editedTaskName === "" || editedEstimatedTime === "") {
alert("Veuillez remplir tous les champs.");
return;
}
// Récupérer la ligne en cours d'édition
var editingRow = $("#editTaskModal").data("editingRow");
// Mettre à jour les valeurs
editingRow.find("td:eq(0)").text(editedTaskName);
editingRow.find("td:eq(1)").text(editedEstimatedTime + " h");
// Fermer la modale
$("#editTaskModal").modal("hide");
});
// Clic sur "Supprimer" => ouvrir la boîte de confirmation
$(document).on("click", ".delete-btn", function () {
rowToDelete = $(this).closest("tr"); // Stocke la ligne
$("#confirmDeleteModal").modal("show");
});
// Confirmation de suppression
$("#confirmDeleteButton").click(function () {
if (rowToDelete) {
rowToDelete.remove();
rowToDelete = null;
}
$("#confirmDeleteModal").modal("hide");
});
});
</script>
</body>
</html>