Skip to content
Snippets Groups Projects
Select Git revision
  • 43a9dae83ee34a293668958a1c57624eee663569
  • master default protected
2 results

table_recap.js

Blame
  • table_recap.js 12.25 KiB
    // Tableau recap notes
    $(function () {
      $(function () {
        if ($("table.table_recap").length == 0) {
          return;
        }
    
        let hidden_colums = [
          "etud_codes",
          "identite_detail",
          "partition_aux",
          "partition_rangs",
          "admission",
          "col_empty",
        ];
        // Etat (tri des colonnes) de la table:
    
        const url = new URL(document.URL);
        const formsemestre_id = url.searchParams.get("formsemestre_id");
        const order_info_key = JSON.stringify([url.pathname, formsemestre_id]);
        const etudids_key = JSON.stringify([
          "etudids",
          url.origin,
          formsemestre_id,
        ]);
        const noms_key = JSON.stringify(["noms", url.origin, formsemestre_id]);
        let order_info;
        if (formsemestre_id) {
          const x = localStorage.getItem(order_info_key);
          if (x) {
            try {
              order_info = JSON.parse(x);
            } catch (error) {
              console.error(error);
            }
          }
        }
    
        // Les colonnes visibles sont mémorisées, il faut initialiser l'état des boutons
        function update_buttons_labels(dt) {
          // chaque bouton controle une classe stockée dans le data-group du span
          document.querySelectorAll("button.dt-button").forEach((but) => {
            let g_span = but.querySelector("span > span");
            if (g_span) {
              let group = g_span.dataset["group"];
              if (group) {
                // si le group (= la 1ere col.) est visible, but_on
                if (dt.columns("." + group).visible()[0]) {
                  but.classList.add("but_on");
                  but.classList.remove("but_off");
                } else {
                  but.classList.add("but_off");
                  but.classList.remove("but_on");
                }
              }
            }
          });
        }
    
        // Changement visibilité groupes colonnes (boutons)
        function toggle_col_but_visibility(e, dt, node, config) {
          let group = node.children()[0].firstChild.dataset.group;
          toggle_col_group_visibility(dt, group, node.hasClass("but_on"));
        }
        function toggle_col_ident_visibility(e, dt, node, config) {
          let onoff = node.hasClass("but_on");
          toggle_col_group_visibility(dt, "identite_detail", onoff);
          toggle_col_group_visibility(dt, "identite_court", !onoff);
        }
        function toggle_col_ressources_visibility(e, dt, node, config) {