//-----BACKEND----- //création du tableau qui contiendra toutes les tâches var tableau_taches = []; function tri_duree_descend(table) { //De base, la fonction sort() transforme les éléments en chaîne //de caractère pour les comparer //On force la comparaison sur des chiffres avec la syntaxe //"function comparaison" table.sort((b,a) => { return a.duree - b.duree }); return table; } //définition de l'objet tâche class Tache { //Nom de la tâche - chaîne de caractères nom = "default"; //Durée en heures - float duree = 0.0; //Date de début - date //par défaut, c'est la date du jour datedebut; //Date de fin - date datefin; //Tache à faire avant la tâche courante - instance de classe //TODO implémenter cette fonctionnalité est_bloque_par; //Priorité - integer priorite = 0; //l'utilisateur définit le nom de la tâche et sa durée constructor(nom, duree, datedebut, datefin) { this.nom = nom; this.duree = duree; this.datedebut = datedebut; this.duree = datefin; } //fonction qui ajoute une date de début ou de fin en fonction des inputs disponibles ajoute_date(){ } } //-----FRONTEND----- //ajoute le contenu du tableau dans des div correspondant chacune //à un postit function update_postit(table) { //identifie la div qui contient les tâches var element = document.getElementById("conteneur"); //supprime les post-it existants de la balise div id "conteneur" while (element.firstChild){ element.removeChild(element.firstChild); } //parcours le tableau de tâches et récupère les variables var longueur = table.length; for (let i = 0; i < longueur; i++ ) { let displayname = table[i].nom; let displayduration = table[i].duree; //crée une div qui contient les éléments de la tâche let balise = document.createElement("div"); balise.classList.add("tache"); //titre de la tâche (son nom) let titre = document.createElement("h3"); let textetitre = document.createTextNode(displayname); titre.appendChild(textetitre); titre.classList.add("titre_tache"); //corps de la tâche let corps = document.createElement("p"); let textecorps = document.createTextNode("durée " + displayduration + "h"); corps.appendChild(textecorps); corps.classList.add("corps_tache") //on ajoute le contenu au div de la tâche balise.appendChild(titre); balise.appendChild(corps); //ajoute la div de la tâche au conteneur element.appendChild(balise); } } //-----INTERACTIVITÉ------ function createtask(){ //on récupère l'input de l'utilisateur.ice let taskname = document.getElementById("nom").value; let taskduration = document.getElementById("duree").value; let tasdatedebut = document.getElementById("datedebut").value; let taskdatefin = document.getElementById("datefin").value; //on instancie une tâche avec les valeurs de l'utilisateur.ice let tache = new Tache(taskname, taskduration); //on ajoute la nouvelle tâche à la fin au tableau de tâches tableau_taches.push(tache); //-----TRI PAR DÉFAUT //appel de la fonction qui trie les tâches dans le tableau // de la plus longue à la plus courte tri_duree_descend(tableau_taches); //update de l'affichage de la liste des tâches en HTML update_postit(tableau_taches); }