Non affectés - ${partition.partition_name}
`;
// Groupes
@@ -96,9 +105,13 @@
let output = "";
arrayGroups.forEach((groupe) => {
/***************/
- outputMasques += `
||${groupe.group_name}✏️❌
`; // patch JMP (renommage du champ name dans l API)
+ if (partition.groups_editable) {
+ outputMasques += `
||${groupe.group_name}✏️❌
`;
+ } else {
+ outputMasques += `
${groupe.group_name}
`;
+ }
/***************/
- output += templateGroupe_zoneGroupes(groupe.id, groupe.group_name); // patch JMP (renommage du champ name dans l API)
+ output += templateGroupe_zoneGroupes(groupe.id, groupe.group_name);
})
return output;
})()}
@@ -144,7 +157,7 @@
if (!affected) {
document.querySelector(`#zoneGroupes [data-idpartition="${partition.id}"]>[data-idgroupe="aucun"]>.etudiants`).innerHTML += templateEtudiant_zoneGroupes(etudiant);
}
- return `
` + output;
+ return `
` + output;
})()}
`;
})
@@ -171,9 +184,6 @@
/******************************/
function input() {
document.querySelector("body").classList.toggle("editionActivated");
- /*if (event.currentTarget.checked == false) {
- go();
- }*/
}
function processEvents() {
/*--------------------*/
@@ -193,7 +203,7 @@
/*--------------------*/
/* Changement groupe */
/*--------------------*/
- document.querySelectorAll("#zoneChoix label").forEach(btn => { btn.addEventListener("mousedown", (event) => { event.preventDefault() }) });
+ document.querySelectorAll("label").forEach(btn => { btn.addEventListener("mousedown", (event) => { event.preventDefault() }) });
document.querySelectorAll(".etudiants input").forEach(input => { input.addEventListener("input", assignment) })
}
@@ -223,6 +233,7 @@
}
if (!this.dataset.idgroupe) {
+ // Partitions
let groupesSelected = [];
this.parentElement.querySelectorAll(":not(.unselect)").forEach(e => {
groupesSelected.push(e.dataset.idpartition);
@@ -238,6 +249,7 @@
}
})
} else {
+ // Groupes
let groupesSelected = {};
this.parentElement.parentElement.querySelectorAll("[data-idgroupe]:not(.unselect)").forEach(e => {
@@ -350,6 +362,8 @@
div.querySelector(".move").addEventListener("mousedown", moveStart);
this.parentElement.insertBefore(div, this);
+ div.querySelector(".modif").click();
+
// Save
fetch(url,
{
@@ -380,12 +394,12 @@
div.querySelector("div").addEventListener("click", filtre);
div.querySelector(".ajoutGroupe").addEventListener("click", addPartition);
- document.querySelector("#zoneChoix .masques>div").appendChild(div);
+ document.querySelector("#zonePartitions .masques>div").appendChild(div);
// Ajout de la zone pour chaque étudiant
let outputGroupes = "";
- document.querySelectorAll(`#zoneChoix .grpPartitions`).forEach(e => {
+ document.querySelectorAll(`#zonePartitions .grpPartitions`).forEach(e => {
let etudid = e.previousElementSibling.dataset.etudid;
// Préparation pour la section suivante
@@ -447,10 +461,17 @@
/* Edition du texte */
/********************/
function editText() {
- this.previousElementSibling.classList.add("editingText");
- this.previousElementSibling.setAttribute("contenteditable", "true");
- this.previousElementSibling.focus();
- this.previousElementSibling.addEventListener("keydown", writing);
+ let e = this.previousElementSibling;
+ e.classList.add("editingText");
+ e.setAttribute("contenteditable", "true");
+ e.addEventListener("keydown", writing);
+
+ // On sélectionne la zone
+ const range = document.createRange();
+ const selection = window.getSelection();
+ selection.removeAllRanges();
+ range.selectNodeContents(e);
+ selection.addRange(range);
}
function writing(event) {
@@ -613,12 +634,12 @@
let formsemestre_id = params.get('formsemestre_id');
var url = `/ScoDoc/{{formsemestre.departement.acronym}}/api/formsemestre/${formsemestre_id}/partitions/order`;
- document.querySelectorAll(`#zoneChoix .masques>div`).forEach(parent => {
+ document.querySelectorAll(`#zonePartitions .masques>div`).forEach(parent => {
positions.forEach(position => {
parent.append(parent.querySelector(`[data-idpartition="${position}"]`))
})
})
- document.querySelectorAll(`#zoneChoix .grpPartitions`).forEach(parent => {
+ document.querySelectorAll(`#zonePartitions .grpPartitions`).forEach(parent => {
positions.forEach(position => {
parent.append(parent.querySelector(`[data-idpartition="${position}"]`))
})