Skip to content
Snippets Groups Projects
Select Git revision
  • 724d01c36a37e99ac934c0db6d949daddb5464f1
  • master default protected
2 results

table_recap.js

Blame
  • Forked from Jean-Marie Place / SCODOC_R6A06
    Source project has a limited visibility.
    table_recap.js 13.14 KiB
    // Tableau recap notes
    $(function () {
        $(function () {
            let hidden_colums = [
                "etud_codes", "identite_detail",
                "partition_aux", "partition_rangs", "admission",
                "col_empty"
            ];
            let mode_jury_but_bilan = $('table.table_recap').hasClass("table_jury_but_bilan");
            if (mode_jury_but_bilan) {
                // table bilan décisions: cache les notes
                hidden_colums = hidden_colums.concat(["col_ue", "col_rcue", "col_lien_saisie_but"]);
            }
            // 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 étant mémorisé, il faut initialiser les titres des boutons
            function update_buttons_labels(dt) {
                console.log("update_buttons_labels");
                dt.buttons('toggle_ident:name').text(dt.columns(".identite_detail").visible()[0] ? "Nom seul" : "Civ/Nom/Prénom");
                dt.buttons('toggle_partitions:name').text(dt.columns(".partition_aux").visible()[0] ? "Cacher les groupes" : "Montrer groupes");
                if (!$('table.table_recap').hasClass("table_jury_but")) {
                    // Bouton "rangs groupes", sauf pour table jury BUT
                    dt.buttons('toggle_partitions_rangs:name').text(dt.columns(".partition_rangs").visible()[0] ? "Cacher rangs groupes" : "Rangs groupes");
                    dt.buttons('toggle_admission:name').text(dt.columns(".admission").visible()[0] ? "Cacher infos admission" : "Montrer infos admission");
                } else {
                    // table jury BUT: avec ou sans codes enregistrés
                    dt.buttons('toggle_recorded_code:name').text(dt.columns(".recorded_code").visible()[0] ? "Cacher codes jury" : "Code jury enregistrés");
                }
    
                // Boutons non visibles en mode jury:
                if (!$('table.table_recap').hasClass("jury")) {
                    // Ces boutons dépendent du mode BUT ou classique:
                    if ($('table.table_recap').hasClass("apc")) {
                        dt.buttons('toggle_res:name').text(dt.columns(".col_res").visible()[0] ? "Cacher les ressources" : "Montrer les ressources");
                        dt.buttons('toggle_sae:name').text(dt.columns(".col_sae").visible()[0] ? "Cacher les SAÉs" : "Montrer les SAÉs");
                    } else {
                        dt.buttons('toggle_mod:name').text(dt.columns(".col_mod:not(.col_empty)").visible()[0] ? "Cacher les modules" : "Montrer les modules");
                    }
                    dt.buttons('toggle_col_empty:name').text(dt.columns(".col_empty").visible()[0] ? "Cacher mod. vides" : "Montrer mod. vides");
                }
            }
    
            let buttons = [
                {
                    name: "toggle_ident",
                    text: "Civ/Nom/Prénom",
                    action: function (e, dt, node, config) {
                        let visible = dt.columns(".identite_detail").visible()[0];
                        dt.columns(".identite_detail").visible(!visible);
                        dt.columns(".identite_court").visible(visible);
                        update_buttons_labels(dt);
                    }
                },