From 185338205429bda500ba9559104c10de36ec70f5 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Thu, 14 Nov 2024 14:32:02 +0100 Subject: [PATCH] suppression fichiers inutiles --- code.js | 503 ----------------------------------------------- tri.js | 597 -------------------------------------------------------- 2 files changed, 1100 deletions(-) delete mode 100644 code.js delete mode 100644 tri.js diff --git a/code.js b/code.js deleted file mode 100644 index 5c42084..0000000 --- a/code.js +++ /dev/null @@ -1,503 +0,0 @@ -// ------------------------------------------------------------------------ -// fabriquer une chaine aléatoire -const mdp = (length) => { - let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzàâäéèêëîïôöûüùÀÂÄÉÈÊËÎÏÔÖÛÜÙ&~"#\'{([-|`_@)]=°+}€<>,?;.:/!§«»¿×÷¡'; - let str = ''; - for (let i = 0; i < length; i++) { - str += chars.charAt(Math.floor(Math.random() * chars.length)); - } - return str; -} -// renvoyer une chaine -return mdp(10) - -// renvoyer un tableau de chaines -for (let i = 0; i < 3 + Math.floor(Math.random() * 5); ++i) { - ${lesnoms} = ${lesnoms}.concat(chaine(10)); -} -return ${lesnoms}; // => lesnoms - -// ------------------------------------------------------------------------ -// fabriquer chaîne avec nom prénom -const upper = (str) => { - return str.charAt(0).toUpperCase() + str.slice(1); -}; -const chaine = (length) => { - let chars = 'aàbcdeéèfghijklmnoôpqrstuùvwxyz'; - let str = ''; - for (let i = 0; i < length; i++) { - str += chars.charAt(Math.floor(Math.random() * chars.length)); - } - let debut = upper(str.slice(0, length/2)); - let fin = upper(str.slice(length/2)); - return debut + ' ' + fin; -}; -for (let i = 0; i < 7 + Math.floor(Math.random() * 15); ++i) { - ${lesnoms} = ${lesnoms}.concat(chaine(11 + Math.floor(Math.random() * 5))); -} -return ${lesnoms}; - -// fabriquer adresse courriel -const chaine = (length) => { - let chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; - let str = ''; - for (let i = 0; i < length; i++) { - str += chars.charAt(Math.floor(Math.random() * chars.length)); - } - return str; -}; -return chaine(8) + "@" + chaine(5) + ".fr"; - -// code postal -return Math.random().toString(10).substring(2, 7); - -// numéro téléphone -return '0' + Math.random().toString(10).substring(2, 11); - -// supprimer espace dans numéro téléphone -return ${telephone}.replace(/\\s/g, "") - - -// ------------------------------------------------------------------------ -// Calculer date réelle à partir d'une date saisie même bizarre -// ex: 95/31/2020 => 03/10/2022 -function joursMois (annee, mois) { - return new Date(annee, mois, 0).getDate(); -} -function getDate(chaine) { - var ds = chaine.split('/'); - var jour=ds[0]; - var an = Math.floor(ds[1]/12); - var annee = Number(ds[2]) + an; - var mois = ds[1] - 12 * an; - var dm = joursMois(annee, mois); - while (jour > dm) { - jour -= dm; - ++mois; - if (mois > 12) { mois = 1; ++annee; } - dm = joursMois(annee, mois); - } - if (jour < 10) { jour = '0' + jour; } - if (mois < 10) { mois = '0' + mois; } - return(jour + '/' + mois + '/' + annee); -} -return getDate(${date}); - - -// ------------------------------------------------------------------------ -// rendre visibles les options de filtres de membre -const nav = document.querySelector(".dropdown"); -const li = nav.querySelectorAll("li"); -for (const l of li) { l.style.display="block"; } -return; - -// rendre visibles les options d'export -const nav = document.querySelector(".tabs"); -let span = nav.querySelector("aside > span > span"); -span.style.display = "block"; -return; - - -// ------------------------------------------------------------------------ -// vérifier la validité d'une date au format JJ/MM/AAAA - -// 1. séparer une date JJ/MM/AAAA selon les / -return ${ds}.split('/') // => ts - -// 2. faire une date au format MM-DD-YYYY -return ${ts}[1] + '-' + ${ts}[0] +'-' + ${ts}[2] // => dd - -// 3. vérifier si on peut créer une date valide -return ! isNaN(Date.parse(${dd})) // => ok - - -// ------------------------------------------------------------------------ -// créer un tableau d'objets {numéro, catégorie} -// le trier par numéro -// renvoyer le tableau des catégories -let tab = []; -for (let i = 0; i < ${lesnumeros}.length; ++i) -{ - let o = Object(); - o.num=${lesnumeros}[i]; - o.cat=${lescategories}[i]; - tab.push(o); -} - -// trier -tab.sort((a, b) => { - return a.num - b.num; -}); - -// catégories -let categs = []; -tab.forEach((e) => { - categs.push(e.cat); -}); -return categs; - -// ------------------------------------------------------------------------ -// renvoyer le numéro d'une catégorie donnée -// params : -// - nom d'une catégorie -// - tableau des catégories classé par numéro croissant -function getNumero(cat_name, categories) { - let i = 0; - while (i < categories.length) { - if (categories[i] == cat_name) { return i + 1; } - i += 1; - } -} - -return getNumero(${categorie}, ${categories_num}); - -// ------------------------------------------------------------------------ -// trier les membres : voir tri.js -// ------------------------------------------------------------------------ - -// sélectionner un parent parmi les nb premiers éléments du tableau -// lesnoms ; le choix se fait uniquement sur des personnes qui ne sont -// pas rattachées, donc qui n'ont pas de parent -function selParent(lesnoms, lesparents, nb) -{ - while(true) { - let num = Math.floor(Math.random() * nb); - if (lesparents[num].length == 0) { return lesnoms[num]; } - } -} -return selParent(${lesnoms}, ${lesparents}, ${nb_total_membres}) - -// ------------------------------------------------------------------------ -// normaliser une chaîne : -// - mettre en minuscules -// - remplacer les caractères avec accent par leur équivalent sans accent -// ------------------------------------------------------------------------ -const accent = "àâäéèêëîïôöùûü"; -const normal = "aaaeeeeiioouuu"; - -function normaliser (chaine) { - let resu = ""; - chaine = chaine.toLocaleLowerCase(); - for (let i = 0; i < chaine.length; ++i) { - let ind = accent.indexOf(chaine[i]); - if (ind == -1) { - resu += chaine[i]; - } else { - resu += normal[ind]; - } - } - return resu; -} - -// const donnee = "Aèzfoj Rdùxiè"; -// let resu = normaliser(donnee.toLocaleLowerCase()); -// console.log("donnée = " + donnee + "\nresu = " + resu); - -// ------------------------------------------------------------------------ -// compter le nb d'occurences d'un élément dans un tableau de chaines -// ------------------------------------------------------------------------ -function nbocc(elem, tab) { - let nb = 0; - for (const e of tab) { - if (normaliser(e).localeCompare(elem) == 0) { nb += 1; } - } - return nb; -} -//return nbocc(${nom}.toLocaleLowerCase(), ${lesnoms}) - -// ------------------------------------------------------------------------ -// renvoyer un nom au hasard d'un tableau en s'assurant qu'il n'a pas -// d'homonyme après normalisation -// ------------------------------------------------------------------------ -function getNom(tab) -{ - while (true) { - let nom = tab.at(Math.floor(Math.random() * tab.length)); - let nb = nbocc(normaliser(nom), tab); - if (nb == 1) { return nom; } - } -} -return getNom(${lesnoms}) - -// ------------------------------------------------------------------------ -// vérifier qu'une chaine est présente dans un nom normalisé -// ------------------------------------------------------------------------ -function verif(chaine, nom) { - return normaliser(nom).includes(chaine); -} - -// ------------------------------------------------------------------------ -// faire un tableau d'indice des « homonymes » de chaine -// tab est un tableau d'objets (nom, numero) -// ------------------------------------------------------------------------ -function indonymes(chaine, tab) { - let homos = []; - for (let i = 0 ; i < tab.length; ++i) { - if (normaliser(tab[i].nom).includes(chaine)) { - homos.push(i); - } - } - return homos; -} - -// fabriquer un nom qui contient une chaîne donnée -const upper = (str) => { - return str.charAt(0).toUpperCase() + str.slice(1); -}; -function homonyme(chaine, lg) { - let chars = 'aàbcdeéèfghijklmnoôpqrstuùvwxyz'; - let str = ''; - for (let i = 0; i < lg; i++) { - str += chars.charAt(Math.floor(Math.random() * chars.length)); - } - let debut = upper(str.slice(0, lg/2)); - let fin = upper(str.slice(lg/2)); - return debut + chaine + fin; -} -return homonyme(${nom_cherche}, 10); - -// ------------------------------------------------------------------------ -// générer un nouveau nom en s'assurant qu'il n'a pas -// d'homonyme après normalisation -// ------------------------------------------------------------------------ -function genererNom(tab) -{ - while (true) { - let nom = chaine(12); - let nb = nbocc(normaliser(nom), tab); - if (nb == 0) { return nom; } - } -} -return genererNom(${lesnoms}) - -// ------------------------------------------------------------------------ -// générer une nouvelle adresse de courriel en s'assurant qu'elle est unique -// ------------------------------------------------------------------------ -function genererCourriel(tab) -{ - while (true) { - let courriel = chaine(8) + "@" + chaine(5) + ".fr"; - let nb = nbocc(courriel, tab); - if (nb == 0) { return courriel; } - } -}; -return genererCourriel(${lescourriels}) - -// ------------------------------------------------------------------------ -// sélectionner un courriel au hasard dans un tableau en s'assurant -// qu'il est unique et renvoyer son indice -// ------------------------------------------------------------------------ -function getCourriel(tab) -{ - while (true) { - let ind = Math.floor(Math.random() * tab.length); - let nom = tab.at(ind); - if (nom.length > 0) { - let nb = nbocc(nom, tab); - if (nb == 1) { return ind; } - } - } -} -return getCourriel(${lescourriels}) - -// fabriquer un courriel qui contient une chaîne (@xxx) donnée -function homonyme(chaine, lg) { - let chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; - let str = ''; - for (let i = 0; i < lg; i++) { - str += chars.charAt(Math.floor(Math.random() * chars.length)); - } - return str + chaine + ".fr"; -} -return homonyme(${courriel_cherche}, 9); - -// fabriquer une date (pseudo-)aléatoire -function getDate() -{ - let date = new Date(); - let ms = date.getTime(); - ms += 3 + Math.floor(Math.random() * 5 * 24 * 60 * 60 * 1000); - date.setTime(ms); - return date.toLocaleDateString(); -} - -// ------------------------------------------------------------------------ -// cocher toutes les cases du corps de la table quand celle de -// la ligne de titre est cochée -// param idCase : case de la ligne de titre -// ------------------------------------------------------------------------ -function cocher(idCase) -{ - const table = idCase.closest("table"); - const body = table.querySelector("tbody"); - const cases = body.querySelectorAll('td[class="check"] > input[type="checkbox"]'); - for (let i = 0; i < cases.length; ++i) { - cases[i].checked = true; - } -} - -// ------------------------------------------------------------------------ -// ajouter tous les membres d'une page au tableau paramètre -// ------------------------------------------------------------------------ -function ajouterMembresPage(tmembres) -{ - for (const elem of document.querySelectorAll('table[class="list"] > tbody > tr')) - { - let o = Object(); - o.numero = elem.querySelector('td[class="num"]').textContent.trim(); - o.nom = elem.querySelector('th').textContent.trim(); - tmembres.push(o); - } - return tmembres; -} - -// ------------------------------------------------------------------------ -// ajouter des membres au tableau paramètre -// ------------------------------------------------------------------------ -const upper = (str) => { return str.charAt(0).toUpperCase() + str.slice(1);} ; const chaine = (length) => { let chars = 'aàbcdeéèfghijklmnoôpqrstuùvwxyz'; let str = ''; for (let i = 0; i < length; i++) { str += chars.charAt(Math.floor(Math.random() * chars.length));} let debut = upper(str.slice(0, length/2)); let fin = upper(str.slice(length/2)); return debut + ' ' + fin; } -function ajouterMembres(tmembres, num) -{ - for (let i = 0; i < 7 + Math.floor(Math.random() * 15); ++i) { - let o = Object(); - o.nom = chaine(11 + Math.floor(Math.random() * 5)); - o.numero = num; - tmembres.push(o); - ++num; - } - return tmembres; -} - -// Compter le nombre de membres créés et modifiés -function compter() -{ - let o = { cree: 0, modif: 0 }; - for (const msg of document.querySelectorAll('summary > h2')) - { - if (msg.textContent.includes('créé')) { - o.cree = Number(msg.textContent.split(' ')[0]); - } - if (msg.textContent.includes('modifié')) { - o.modif = Number(msg.textContent.split(' ')[0]); - } - } - return o; -} - -// additionner les codes des nb premiers caractères d'une chaîne -// @pre nb <= chaine.length -function calculer(nb, chaine) -{ - let somme = 0; - for (let i = 0; i < nb; ++i) { - somme += chaine.charCodeAt(i); - } - return somme; -} - -function mod(courriel) -{ - return courriel.substr(0, courriel.indexOf('@')) + "@ici.bzh"; -} - -// fabriquer chaîne date + heure -return ${valeur_champ_date} + " à " + ${valeur_champ_time}.replace(/:/, "h") - -// calculer le nombre d'années entières entre deux dates -// d1 : sous la forme jj/mm/aaaa -// d2 : Date avec d1 <= d2 -function diff(d1, d2) -{ - let [j1, m1, a1] = d1.split('/').map((x) => Number(x)); - let a2 = d2.getFullYear(); - let m2 = d2.getMonth() + 1; - let j2 = d2.getDate(); - let diffAnnee = a2 - a1; - if ((m2 < m1) || (m2 == m1 && j2 < j1)) { --diffAnnee; } - return diffAnnee; -} - -return diff("30/10/2015", new Date()); - -// cas où la deuxième date est celle du jour -function diff(d1) -{ - let [j1, m1, a1] = d1.split('/').map((x) => Number(x)); - const d2 = new Date(); - let a2 = d2.getFullYear(); - let m2 = d2.getMonth() + 1; - let j2 = d2.getDate(); - let diffAnnee = a2 - a1; - if ((m2 < m1) || (m2 == m1 && j2 < j1)) { --diffAnnee; } - return diffAnnee; -} - -// transformer année mois numérique en texte -// 1977-03 => juillet 1977 -// 1977-15 => mars 1978 -function toText(chaine) -{ - let lesMois = ["janvier", "février", "mars", "avril", "mai", "juin", - "juillet", "août", "septembre", "octobre", "novembre", "décembre"]; - let ma = chaine.split('-'); - var annee = Number(ma[0]); - var mois = Number(ma[1]); - if (mois > 12) { - annee += Math.floor(mois / 12); - mois = mois % 12; - } - if (mois == 0) { - annee -= 1; - mois = 12; - } - return lesMois[mois - 1] + " " + annee; -} - -// variante -function toText(mois, annee) -{ - let lesMois = ["janvier", "février", "mars", "avril", "mai", "juin", - "juillet", "août", "septembre", "octobre", "novembre", "décembre"]; - var mois = Number(mois); - var annee = Number(annee); - if (mois > 12) { - annee += Math.floor(mois / 12); - mois = mois % 12; - } - if (mois == 0) { - annee -= 1; - mois = 12; - } - return lesMois[mois - 1] + " " + annee; -} - -// ------------------------------------------------------------------------ -// mettre la liste des libellés des champs de la fiche membre dans le tableau paramètre -// ------------------------------------------------------------------------ -function listerLibelles(t) -{ - for (const elem of document.querySelectorAll('table.list.drag > tbody > tr')) - { - let o = Object(); - o.libelle = elem.querySelector('th').textContent.trim(); - o.visible = (elem.querySelector('td > span[title="Visible"]') != null); - t.push(o); - } - return t; -} - -// ouvrir la boîte de dialogue de suppression d'un élément dans un onglet -// @param : libellé de l'élément à supprimer -function open(libelle) -{ - // lister les champs qui peuvent être supprimés - const elements = document.querySelectorAll('a[href ^= "delete.php"]'); - for (var i = 0; i < elements.length; ++i) - { - // trouver la ligne (tr) qui contient l'élément courant - let ligne = elements[i].closest('tr'); - if (ligne.querySelector('th').innerText == libelle) { break; } - } - // ouvrir l'url dans une autre fenêtre - const url = elements[i].href; - window.open(url, '_blank').focus(); -} diff --git a/tri.js b/tri.js deleted file mode 100644 index 7c4a4a0..0000000 --- a/tri.js +++ /dev/null @@ -1,597 +0,0 @@ -// trier par numéro -function trierNumeros(tnumeros, tnoms, croissant = true) -{ - let tab = []; - for (let i = 0; i < tnumeros.length; ++i) - { - let o = Object(); - o.numero = tnumeros[i]; - o.nom = tnoms[i]; - tab.push(o); - } - ordre = croissant ? 1 : -1; - tab.sort((a, b) => { return ordre * (a.numero - b.numero); }); - return tab; -} - -// trier par nom puis par numéro -function trierNoms(tnoms, tnumeros, croissant = true) -{ - let tab = []; - for (let i = 0; i < tnoms.length; ++i) - { - let o = Object(); - o.nom = tnoms[i]; - o.numero = tnumeros[i]; - tab.push(o); - } - - tab.sort((a, b) => { - if (! croissant) { [a, b] = [b, a]; } - let comp = a.nom.localeCompare(b.nom); - if (comp == 0) { comp = a.numero - b.numero; } - return comp; - }); - return tab; -} - -// afficher un tableau -function afficher(msg, tab) -{ - console.log("\n" + msg); - for (let i = 0; i < tab.length; ++i) - { - console.log(tab[i]); - } -} - -// trier par ville puis par numéro -// ville (dé)croissant, numéro (dé)croissant -// ville vide en fin(début), numéro (dé)croissant -function trierVilles(tvilles, tnumeros, croissant = true) -{ - let tab = []; - for (let i = 0; i < tvilles.length; ++i) { - let o = Object(); - o.ville = tvilles[i]; - o.numero = tnumeros[i]; - tab.push(o); - } - - tab.sort((a, b) => { - if (! croissant) { [a, b] = [b, a]; } - - // une ville au moins vide ? - if (a.ville == '' && b.ville == '') { return a.numero - b.numero; } - if (a.ville == '') { return 1; } - if (b.ville == '') { return -1; } - - // deux villes non vides - let comp = a.ville.localeCompare(b.ville); - if (comp == 0) { comp = a.numero - b.numero; } - return comp; - }); - return tab; -} - -// trier les membres selon le parent -// - parent (dé)croissant, nom membre (dé)croissant, numéro (dé)croissant -// - parent vide à la fin, nom membre (dé)croissant, numéro (dé)croissant -function trierParents(tparents, tnoms, tnumeros, croissant = true) -{ - let tab = []; - for (let i = 0; i < tnumeros.length; ++i) { - let o = Object(); - o.numero = tnumeros[i]; - o.nom = tnoms[i]; - o.parent = tparents[i]; - tab.push(o); - } - tab.sort((a, b) => { - ordre = croissant ? 1 : -1; - - // un parent au moins est vide ? - if (a.parent == '' && b.parent == '') { - let comp = a.nom.localeCompare(b.nom); - if (comp == 0) { comp = a.numero - b.numero; } - return comp * ordre; - } - if (a.parent == '') { return 1; } - if (b.parent == '') { return -1; } - - // deux parents non vides - let comp = a.parent.localeCompare(b.parent); - if (comp == 0) { comp = a.nom.localeCompare(b.nom); } - if (comp == 0) { comp = a.numero - b.numero; } - return comp * ordre; - }); - - return tab; -} - -// trier les membres selon la colonne responsable -// - non vide au début, nom membre (dé)croissant, numéro (dé)croissant -// - vide à la fin, nom membre (dé)croissant, numéro (dé)croissant -function trierResp(tresp, tnoms, tnumeros, croissant = true) -{ - let tab = []; - for (let i = 0; i < tnumeros.length; ++i) { - let o = Object(); - o.numero = tnumeros[i]; - o.nom = tnoms[i]; - o.resp = tresp[i]; - tab.push(o); - } - tab.sort((a, b) => { - ordre = croissant ? 1 : -1; - - // un resp au moins est vide ? - if (a.resp == '' && b.resp == '') { - let comp = a.nom.localeCompare(b.nom); - if (comp == 0) { comp = a.numero - b.numero; } - return comp * ordre; - } - if (a.resp == '') { return 1; } - if (b.resp == '') { return -1; } - - // deux resp non vides (forcément = "Oui") - let comp = a.nom.localeCompare(b.nom); - if (comp == 0) { comp = a.numero - b.numero; } - return comp * ordre; - }); - - return tab; -} - -// ------------------------------------------------------------------------ -// les données et les tests -// ------------------------------------------------------------------------ - -const tnumeros = [ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123 -]; - -const tnoms = [ - "Lambert Paul", "Sjqeaz Njguqô", "Gfjkms Ôfyike", "Xnunèp Tmhàxz", "Xhràèk Ùmunyv", - "Jgévxù Wohyrv", "Mèkixt Ùyimtd", "Zhamberlain Luuc", "Ézhaée Ùùpwab", "Éàkhhô Psyauà", - "Lambert Paul", "Zphjéà Irôezqé", "Mpùuky Blégmmz", "Htôtkl Sxgtrô", "Kcfyè Nsvmvq", - "Hdzcpèn Rddpdafx", "Èàrgkx Idèpoù", "Rhocry Dlùvwpq", "Ziùcwe Hpqltrs", "Brkcàg Nigcyi", - "Jtinjôù Wmwiônj", "Cylsx Nzoèwl", "Éxiqnh Fcbwizà" -]; - -const tvilles = [ - "", "Erawvcyfézgrfoi", "Jbqmqeyemdbstcf", "Ùhkfwuvgpcuèùqa", "Yécewxefmepôàeé", - "La Havane", "Fyàwxsbedwanxqt", "", "Sipkàoféuslgiiu", "Psôhègébulaùdzm", - "Pioùôutôeyytùlà", "", "", "", "", - "", "", "", "La Havane", "", "", "La Havane", "" -]; - -const parents = [ - "", "", "", "", "", - "", "Jgévxù Wohyrv", "", "Zhamberlain Luuc", "", - "", "", "", "Xhràèk Ùmunyv", "Xnunèp Tmhàxz", - "", "Jgévxù Wohyrv", "", "Zhamberlain Luuc", "Gfjkms Ôfyike", - "Sjqeaz Njguqô", "Jgévxù Wohyrv", "Sjqeaz Njguqô" -]; - -const tresp = [ - "", "Oui", "Oui", "Oui", "Oui", - "Oui", "", "Oui", "", "", - "", "", "", "", "", - "", "", "", "", "", - "", "", "" -]; - -// console.log("p.l = " + parents.length + ", nom.l = " + tnoms.length + ", num.l = " + tnumeros.length + ", r.l = " + resp.length); - -// trier par nom croissant puis décroissant -let tab_noms = trierNoms(tnoms, tnumeros); -afficher("Tri par nom croissant :", tab_noms); - -tab_noms = trierNoms(tnoms, tnumeros, false); -afficher("Tri par nom décroissant :", tab_noms); - -// trier par ville croissante puis décroissante -let tab_villes = trierVilles(tvilles, tnumeros); -afficher("Tri par ville croissant :", tab_villes); - -tab_villes = trierVilles(tvilles, tnumeros, false); -afficher("Tri par ville décroissant :", tab_villes); - -// trier par parent croissant -let tab_parents = trierParents(parents, tnoms, tnumeros); -afficher("Tri par parent croissant :", tab_parents); - -tab_parents = trierParents(parents, tnoms, tnumeros, false); -afficher("Tri par parent décroissant :", tab_parents); - -// trier par resp croissant -let tab_resp = trierResp(tresp, tnoms, tnumeros); -afficher("Tri par resp croissant :", tab_resp); - -tab_resp = trierResp(tresp, tnoms, tnumeros, false); -afficher("Tri par resp décroissant :", tab_resp); - - -// ------------------------------------------------------------------------ -// 1. première ville vide et dernière ville vide -// ==> comparer numéro premier et numéro dernier, inverser si besoin -// 2. première ville vide et dernière ville non vide -// décroissant : inverser si besoin -// 3. première ville non vide et dernière ville vide -// croissant : inverser si besoin -// 4. première ville non vide et dernière ville non vide -// 4.1 première ville < dernière ville : croissant, inverser si besoin -// 4.2 première ville > dernière ville : décroissant, inverser si besoin -// 4.3 première ville = dernière ville -// ==> comparer numéro premier et numéro dernier, inverser si besoin -// ------------------------------------------------------------------------ - -if (${premiere_ville} == "" && ${derniere_ville} == "") -{ - if (${numero_premier} > ${numero_dernier}) - { - // décroissant : inverser si besoin - } else { - // croissant : inverser si besoin - } -} -else if (${premiere_ville} == "" && ${derniere_ville} != "") -{ - // décroissant : inverser si besoin -} -else if (${premiere_ville} != "" && ${derniere_ville} == "") -{ - // croissant : inverser si besoin -} -else if (${premiere_ville} != "" && && ${derniere_ville} != "") -{ - if (${premiere_ville}.localeCompare(${derniere_ville}) < 0) - { - // croissant : inverser si besoin - } else if (${premiere_ville}.localeCompare(${derniere_ville}) > 0) - { - // décroissant : inverser si besoin - } else { - if (${numero_premier} > ${numero_dernier}) - { - // décroissant : inverser si besoin - } else { - // croissant : inverser si besoin - } - } -} - -// simplification ordre croissant -if (${premiere_ville} == "" && ${derniere_ville} == "" - && - ${numero_premier} > ${numero_dernier}) -{ - // décroissant : inverser -} -else if (${premiere_ville} == "" && ${derniere_ville} != "") -{ - // décroissant : inverser -} -else if (${premiere_ville} != "" && && ${derniere_ville} != "") -{ - if (${premiere_ville}.localeCompare(${derniere_ville}) > 0 - || - (${premiere_ville}.localeCompare(${derniere_ville}) == 0 - && - ${numero_premier} > ${numero_dernier})) - { - // décroissant : inverser - } -} - - -// simplification ordre décroissant -if (${premiere_ville} == "" && ${derniere_ville} == "" - && - ${numero_premier} < ${numero_dernier}) -{ - // croissant : inverser -} -else if (${premiere_ville} != "" && ${derniere_ville} == "") -{ - // croissant : inverser -} -else if (${premiere_ville} != "" && && ${derniere_ville} != "") -{ - if (${premiere_ville}.localeCompare(${derniere_ville}) < 0 - || - (${premiere_ville}.localeCompare(${derniere_ville}) == 0 - && - ${numero_premier} < ${numero_dernier})) - { - // croissant : inverser - } -} - - -// ------------------------------------------------------------------------ -// contrôler si les membres sont triés par ordre (dé)croissant du nom du parent -// -// 1) au moins 2 parents non vides (donc forcément les deux premiers) -// - parent1 < parent2 => croissant -// - parent1 > parent2 => décroissant -// - parent1 = parent2 -// - membre1 < membre2 => croissant -// - membre1 > membre2 => décroissant -// - membre1 = membre2 -// - numéro1 < numéro 2 => croissant -// - numéro1 > numéro 2 => décroissant -// 2) un seul parent non vide (donc le premier) -// - membre2 < membre3 => croissant -// - membre2 > membre3 => décroissant -// - membre2 = membre3 -// - numéro2 < numéro 3 => croissant -// - numéro2 > numéro 3 => décroissant - -if (${nb_parents} >= 2) -{ - if (${parent1}.localeCompare(${parent2}) < 0) - { - // croissant - } - else if (${parent1}.localeCompare(${parent2}) > 0) - { - // décroissant - } - else if (${membre1}.localeCompare(${membre2}) < 0) - { - // croissant - } - else if (${membre1}.localeCompare(${membre2}) > 0) - { - // décroissant - } - else if (${numero1} < ${numero2}) - { - // croissant - } - else //if (${numero1} > ${numero2}) - { - // décroissant - } -} -// un seul parent -else if (${nb_total_membres} > 2) -{ - if (${membre2}.localeCompare(${membre3}) < 0) - { - // croissant - } - else if (${membre2}.localeCompare(${membre3}) > 0) - { - // décroissant - } - else if (${numero2} < ${numero3}) - { - // croissant - } - else //if (${numero2} > ${numero3}) - { - // décroissant - } -} - -// simplification ordre croissant -if (${nb_parents}) >= 2) -{ - if ((${parent1}.localeCompare(${parent2}) > 0) - || - (${parent1}.localeCompare(${parent2}) == 0 - && ${membre1}.localeCompare(${membre2}) > 0) - || - (${parent1}.localeCompare(${parent2}) == 0 - && ${membre1}.localeCompare(${membre2}) == 0 - && ${numero1} > ${numero2})) - { - // décroissant => inverser - } -} -// un seul parent -else if (${nb_total_membres} > 2) -{ - if ((${membre2}.localeCompare(${membre3}) > 0) - || - (${membre2}.localeCompare(${membre3}) == 0 - && ${numero2} > ${numero3})) - { - // décroissant => inverser - } -} - -// simplification ordre décroissant -if (${nb_parents}) >= 2) -{ - if ((${parent1}.localeCompare(${parent2}) < 0) - || - (${parent1}.localeCompare(${parent2}) == 0 - && ${membre1}.localeCompare(${membre2}) < 0) - || - (${parent1}.localeCompare(${parent2}) == 0 - && ${membre1}.localeCompare(${membre2}) == 0 - && ${numero1} < ${numero2})) - { - // croissant => inverser - } -} -// un seul parent -else if (${nb_total_membres} > 2) -{ - if ((${membre2}.localeCompare(${membre3}) < 0) - || - (${membre2}.localeCompare(${membre3}) == 0 - && ${numero2} < ${numero3})) - { - // croissant => inverser - } -} - -// ------------------------------------------------------------------------ -// contrôler si les membres sont triés par ordre (dé)croissant de la colonne responsable -// colonne responsable non vide en tête -// -// 1) au moins 2 oui dans la colonne responsable (donc forcément les deux premiers) -// - membre1 < membre2 => croissant -// - membre1 > membre2 => décroissant -// - membre1 = membre2 -// - numéro1 < numéro 2 => croissant -// - numéro1 > numéro 2 => décroissant -// 2) un seul oui dans la colonne responsable (donc le premier) -// - numéro2 < numéro 3 => croissant -// - numéro2 > numéro 3 => décroissant - -if (${nb_resp} >= 2) -{ - if (${membre1}.localeCompare(${membre2}) < 0) - { - // croissant - } - else if (${membre1}.localeCompare(${membre2}) > 0) - { - // décroissant - } - else if (${numero1} < ${numero2}) - { - // croissant - } - else //if (${numero1} > ${numero2}) - { - // décroissant - } -} -// un seul responsable -else if (${nb_total_membres} > 2) -{ - if (${membre2}.localeCompare(${membre3}) < 0) - { - // croissant - } - else if (${membre2}.localeCompare(${membre3}) > 0) - { - // décroissant - } - else if (${numero2} < ${numero3}) - { - // croissant - } - else //if (${numero2} > ${numero3}) - { - // décroissant - } -} - -// simplification ordre croissant -if (${nb_resp}) >= 2) -{ - if (${membre1}.localeCompare(${membre2}) > 0 - || - (${membre1}.localeCompare(${membre2}) == 0 - && ${numero1} > ${numero2})) - { - // décroissant => inverser - } -} -// un seul responsable -else if (${nb_total_membres} > 2) -{ - if (${membre2}.localeCompare(${membre3}) > 0 - || - (${membre2}.localeCompare(${membre3}) == 0 - && ${numero2} > ${numero3})) - { - // décroissant => inverser - } -} - -// simplification ordre décroissant -if (${nb_resp}) >= 2) -{ - if (${membre1}.localeCompare(${membre2}) < 0 - || - (${membre1}.localeCompare(${membre2}) == 0 - && ${numero1} < ${numero2})) - { - // croissant => inverser - } -} -// un seul responsable -else if (${nb_total_membres} > 2) -{ - if (${membre2}.localeCompare(${membre3}) < 0 - || - (${membre2}.localeCompare(${membre3}) == 0 - && ${numero2} < ${numero3})) - { - // croissant => inverser - } -} - -let numeros = [ 8, 5, 9, 2, 3, 6, 7, 4, 1 ]; - -let noms = [ "Yopduu Cxùbvnn", "Xeosnm Rixwxé", "Vonôdjz Jcpùuèf", "Tnczgèb Ùttypmt", - "Sdcrdi Vzùmbim", "Kgazmà Éurbdv", "Izgzwùz Evjsqjeù","Hmupazn Chrédki", - "Lambert Paul" ]; - -let parents = [ "Lambert Paul", "Lambert Paul", "Lambert Paul", "Lambert Paul", - "Lambert Paul", "Lambert Paul", "Lambert Paul", "Lambert Paul", "" ]; - -function inverser(numeros, noms, parents) -{ - for (let i = 0; i < numeros.length; ++i) { - if (parents[i] != "") { - premier = i; - break; - } - } - for (let i = numeros.length - 1; i >= 0; --i) { - if (parents[i] != "") { - dernier = i; - break; - } - } - console.log("premier : ", numeros[premier], noms[premier], parents[premier]); - console.log("dernier : ", numeros[dernier], noms[dernier], parents[dernier]); - - if (parents[premier].localeCompare(parents[dernier]) < 0) - { - console.log(parents[premier], "<", parents[dernier]); - } - if (parents[premier].localeCompare(parents[dernier]) == 0 && - noms[premier].localeCompare(noms[dernier]) < 0) - { - console.log(parents[premier], "=", parents[dernier]); - console.log(noms[premier], "<", noms[dernier]); - } - if (parents[premier].localeCompare(parents[dernier]) == 0 && - noms[premier].localeCompare(noms[dernier]) == 0 && - numeros[premier] < numeros[dernier]) - { - console.log(parents[premier], "=", parents[dernier]); - console.log(noms[premier], "=", noms[dernier]); - console.log(numeros[premier], "<", numeros[dernier]); - } - - if (parents[premier].localeCompare(parents[dernier]) < 0 - || - (parents[premier].localeCompare(parents[dernier]) == 0 && - noms[premier].localeCompare(noms[dernier]) < 0) - || - (parents[premier].localeCompare(parents[dernier]) == 0 && - noms[premier].localeCompare(noms[dernier]) == 0 && - numeros[premier] < numeros[dernier])) - { - console.log("Inverser le tri"); - } - else { - console.log("Tri ok"); - } -} -inverser(numeros, noms, parents); -