forked from ScoDoc/ScoDoc
168 lines
5.6 KiB
JavaScript
168 lines
5.6 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();
|
|
}
|
|
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.niveau_select").forEach(
|
|
elem => {
|
|
let ue_id = elem.dataset.ue_id;
|
|
$.get("get_ue_niveaux_options_html",
|
|
{
|
|
ue_id: ue_id,
|
|
},
|
|
function (result) {
|
|
elem.innerHTML = result;
|
|
}
|
|
);
|
|
}
|
|
);
|
|
}
|
|
|
|
// ---- Nouveau formulaire choix parcours et niveau -----
|
|
//document.querySelectorAll("select.select_ue_parcours").forEach(
|
|
// elem => { elem.addEventListener('change', change_ue_parcours); }
|
|
//);
|
|
$().ready(function () {
|
|
$('select.select_ue_parcours').multiselect(
|
|
{
|
|
includeSelectAllOption: false,
|
|
nonSelectedText: 'choisir...',
|
|
// buttonContainer: '<div id="group_ids_sel_container"/>',
|
|
onChange: function (element, checked) {
|
|
var parent = element.parent();
|
|
var selectedOptions = parent.getValue().split(",");
|
|
let set_ue_parcours = element.context.dataset.set_ue_parcours;
|
|
|
|
fetch(set_ue_parcours, {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify(selectedOptions)
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
if (!data.status) {
|
|
sco_message(data.message);
|
|
// get the option element corresponding to the selected value
|
|
var option = parent.find('option[value="' + element.val() + '"]');
|
|
// uncheck the option
|
|
option.prop('selected', false);
|
|
// refresh the multiselect to reflect the change
|
|
parent.multiselect('refresh');
|
|
}
|
|
})
|
|
.catch(error => console.error('Error: ' + error));
|
|
|
|
// // referme le menu apres chaque choix:
|
|
// $("#group_selector .btn-group").removeClass('open');
|
|
|
|
// if ($("#group_ids_sel").hasClass("submit_on_change")) {
|
|
// submit_group_selector();
|
|
// }
|
|
}
|
|
}
|
|
);
|
|
});
|
|
|
|
function change_ue_parcours(event) {
|
|
const multiselect = event.target;
|
|
const selectedOptions = Array.from(this.selectedOptions).map(option => option.value);
|
|
fetch('/set_option/', { // XXX TODO
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify(selectedOptions)
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => console.log('Success!'))
|
|
.catch(error => console.error('Error: ' + error));
|
|
};
|