-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
76 lines (64 loc) · 3.08 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Déclaration des variables pour stocker les éléments DOM nécessaires
let todoItem;
const formEditItem = document.getElementById("edit-item");
const formNewItem = document.getElementById("new-item");
const editTodoField = document.getElementById("edit-todo-item-title");
// Fonction principale pour gérer l'édition d'un todo existant
// Affiche le formulaire d'édition et remplit le champ avec les informations actuelles enlever le newItem et afficher le EditItem
function modifierTodo(n) {
editTodoField.value = n.innerText;
formEditItem.hidden = false;
formNewItem.hidden = true;
editTodoField.focus();
todoItem = n; // Sauvegarde l'élément todo à éditer
}
// Fonction pour annuler l'édition ou l'ajout d'un todo
// Réinitialise le formulaire d'édition et réaffiche celui d'ajout
function annulerModification() {
editTodoField.value = "";
todoItem = undefined;
formEditItem.hidden = true;
formNewItem.hidden = false;
}
// Fonction pour confirmer la modification d'un todo
// Met à jour le contenu du todo et réinitialise les formulaires
function confirmerModification() {
todoItem.innerText = editTodoField.value;
annulerModification();
}
// Fonction pour ajouter un nouveau todo à la liste
// Crée un nouvel élément de todo avec des boutons pour l'éditer et le supprimer
function ajouterTodo() {
const nouveauTitre = document.getElementById("new-todo-item-title");
const titreText = nouveauTitre.value;
const listeTodos = document.getElementById("todo-list");
const li = document.createElement("li");
const span = document.createElement("span");
const boutonSupprimer = document.createElement("button");
const boutonEditer = document.createElement("button");
span.innerText = titreText;
boutonSupprimer.innerText = "Delete";
boutonEditer.innerText = "Edit";
// Écouteurs d'événements pour les boutons de suppression et d'édition
boutonSupprimer.addEventListener("click", () => li.remove());
boutonEditer.addEventListener("click", () => modifierTodo(span));
li.append(span);
li.append(boutonSupprimer);
li.append(boutonEditer);
listeTodos.append(li);
// Réinitialisation du champ d'ajout
nouveauTitre.value = "";
}
// Écouteurs d'événements pour les actions sur les todos (ajout et modification)
function gererAjoutTodo(n) {
if (n.which === 13) ajouterTodo();
}
function gererModificationTodo(n) {
if (n.which === 13) confirmerModification();
}
// Ajout des écouteurs d'événements sur les champs de saisie et les boutons
document.getElementById("new-todo-item-title").addEventListener("keypress", gererAjoutTodo);
document.getElementById("new-todo-item-add").addEventListener("click", ajouterTodo);
document.getElementById("edit-todo-item-title").addEventListener("keypress", gererModificationTodo);
document.getElementById("edit-todo-item-confirm").addEventListener("click", confirmerModification);
document.getElementById("edit-todo-item-cancel").addEventListener("click", annulerModification);