// Affiche et met a jour la liste des UE partageant le meme code

$().ready(function () {
    if (document.querySelector("#tf_ue_id")) {
        /* fonctions spécifiques pour edition UE */
        update_ue_list();
        $("#tf_ue_code").bind("keyup", update_ue_list);

        $("select#tf_type").change(function () {
            update_bonus_description();
        });
        update_bonus_description();
    }
    update_menus_niveau_competence();
});

function update_bonus_description() {
    var ue_type = $("#tf_type")[0].value;
    if (ue_type == "1") { /* UE SPORT */
        $("#bonus_description").show();
        var query = "/ScoDoc/get_bonus_description/default";
        $.get(query, '', function (data) {
            $("#bonus_description").html(data);
        });
    } else {
        $("#bonus_description").html("");
        $("#bonus_description").hide();
    }
}

function update_ue_list() {
    let ue_id = $("#tf_ue_id")[0].value;
    let ue_code = $("#tf_ue_code")[0].value;
    let query = SCO_URL + "/Notes/ue_sharing_code?ue_code=" + ue_code + "&hide_ue_id=" + ue_id + "&ue_id=" + ue_id;
    $.get(query, '', function (data) {
        $("#ue_list_code").html(data);
    });
}

function set_ue_parcour(elem) {
    let ue_id = elem.dataset.ue_id;
    let parcour_id = elem.value;
    let set_ue_parcour_url = elem.dataset.setter;
    $.post(set_ue_parcour_url,
        {
            ue_id: ue_id,
            parcour_id: parcour_id,
        },
        function (result) {
            sco_message("UE associée au parcours");
            update_menus_niveau_competence();
        }
    );
}

function set_ue_niveau_competence(elem) {
    let ue_id = elem.dataset.ue_id;
    let niveau_id = elem.value;
    let set_ue_niveau_competence_url = elem.dataset.setter;
    $.post(set_ue_niveau_competence_url,
        {
            ue_id: ue_id,
            niveau_id: niveau_id,
        },
        function (result) {
            sco_message("niveau de compétence enregistré");

            update_menus_niveau_competence();
        }
    );
}

// Met à jour les niveaux utilisés (disabled) ou non affectés
// dans les menus d'association UE <-> niveau
function update_menus_niveau_competence() {
    // let selected_niveaux = [];
    // document.querySelectorAll("form.form_ue_choix_niveau select").forEach(
    //     elem => { selected_niveaux.push(elem.value); }
    // );

    // document.querySelectorAll("form.form_ue_choix_niveau select").forEach(
    //     elem => {
    //         for (let i = 0; i < elem.options.length; i++) {
    //             elem.options[i].disabled = (i != elem.options.selectedIndex)
    //                 && (selected_niveaux.indexOf(elem.options[i].value) != -1)
    //                 && (elem.options[i].value != "");
    //         }
    //     }
    // );

    // nouveau:
    document.querySelectorAll("select.select_niveau_ue").forEach(
        elem => {
            let ue_id = elem.dataset.ue_id;
            $.get("get_ue_niveaux_options_html",
                {
                    ue_id: ue_id,
                },
                function (result) {
                    elem.innerHTML = result;
                }
            );
        }
    );
}