Guest User

Untitled

a guest
Jun 30th, 2021
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. createNav(langue = null) {
  2.       //affichage du menu en fonction de la langue
  3.       console.log(menu);
  4.       let i = 0;
  5.       let j = 1;
  6.       let menuHTMl = "";
  7.       if (typeof langue != "string") {
  8.         langue = langue.target.selectedOptions[0].value; //récupère la langue du select si on ne lui en donne pas en paramètre
  9.       }
  10.       let nav_translate = "";
  11.  
  12.       while (i < menu.length) {
  13.         //cherche la langue dans le tableau
  14.         nav_translate += `<option value="${menu[i][0]}" >${menu[i][0]} </option> `; //toutes les langues du menu
  15.         if (menu[i][0] == langue) {
  16.           while (j < menu[i].length) {
  17.             //parcours tout les lien de ce menu
  18.             let tempo = `<a class="link_nav" v-on:click="${menu[i][j][3]}">`;
  19.             if (menu[i][j][1] != "") {
  20.               //si l'icon n'est pas vide
  21.               tempo += `<i class="${menu[i][j][1]} icon_nav_left"></i>`;
  22.             }
  23.             tempo += `<span class="menulibell">${menu[i][j][0]}</span></a>`;
  24.  
  25.             if (menu[i][j][2] == 0) {
  26.               //niveau 0
  27.               if (j != 1) {
  28.                 menuHTMl += `</li><hr class=separator_nav>`;
  29.               }
  30.               menuHTMl += `<li class=elem_left_nav id="${menu[i][j][0]}">`;
  31.             }
  32.             if (j + 1 < menu[i].length) {
  33.               //si taille ok
  34.               if (menu[i][j + 1][2] > menu[i][j][2]) {
  35.                 //taille suivant plus grand
  36.                 menuHTMl += tempo;
  37.                 menuHTMl += `<a class="accordion" ><i class="fas fa-caret-down"></i></a>`;
  38.                 menuHTMl += `<span class="panel nav_left_lsi">`;
  39.               } else if (menu[i][j + 1][2] == menu[i][j][2]) {
  40.                 //taille suivant égale
  41.                 menuHTMl += tempo + "<br>";
  42.               } else {
  43.                 //taille suivant plus petite
  44.                 let newlvl = menu[i][j][2];
  45.                 while (menu[i][j - 1][2] > newlvl) {
  46.                   //on boucle pour trouver le nombre de span a fermer
  47.                   menuHTMl += "</span>";
  48.                   newlvl++;
  49.                 }
  50.                 menuHTMl += "<br>" + tempo;
  51.               }
  52.             } else {
  53.               menuHTMl += `<a class="link_nav" v-on:click="${menu[i][j][3]}" id=btn-test>`;
  54.  
  55.               if (menu[i][j][1] != "") {
  56.                 //si l'icon n'est pas vide
  57.                 menuHTMl += `<i class="${menu[i][j][1]} icon_nav_left"></i>`;
  58.               }
  59.               menuHTMl += `<span class="menulibell">${menu[i][j][0]}</span></a>`;
  60.             }
  61.             j++;
  62.           }
  63.         }
  64.         i++;
  65.       }
  66.       console.log(menuHTMl);
  67.       this.nav_lsi = menuHTMl; //affichage menu
  68.       this.nav_langue = nav_translate; //affichage langue
  69.       //document.body.innerHTML +="<div></div>";
  70.       this.$nextTick(function() {
  71.         let ThisTempo = this;
  72.         document.getElementById("btn-test").onclick = function() {
  73.           ThisTempo.appelAPI(
  74.             baseUrl + "xwiki/spaces",
  75.             ThisTempo.loadMenu,
  76.             ThisTempo
  77.           );
  78.         };
  79.         var accordion = document.getElementsByClassName("accordion");
  80.         for (var i = 0; i < accordion.length; i++) {
  81.           accordion[i].onclick = function() {
  82.             ThisTempo.affiche_accordion(this);
  83.           };
  84.         }
  85.       });
  86.     }
Add Comment
Please, Sign In to add comment