suppression fichiers inutiles
This commit is contained in:
parent
fcaff4435d
commit
1853382054
503
code.js
503
code.js
@ -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();
|
|
||||||
}
|
|
597
tri.js
597
tri.js
@ -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);
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user