ScoDoc/app/static/js/edit_ue.js

74 lines
2.4 KiB
JavaScript

// 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();
}
});
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_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) {
// alert("niveau de compétence enregistré"); // XXX #frontend à améliorer
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 != "");
}
}
);
}