Adaptation du rang par défaut d'un élément de groupe lorsque l'on sélectionne un nouveau groupe pour prendre la valeur supérieure un rang le plus élevé déjà enregistré.

This commit is contained in:
Fabrice PENHOËT 2020-10-27 11:30:33 +01:00
parent cd7fd312b4
commit c7f3c51308
2 changed files with 9 additions and 4 deletions

View File

@ -119,6 +119,7 @@ exports.delete = async (req, res, next) =>
} }
// Recherche par mots-clés parmis tous les groupes (y compris ceux non publiés). // Recherche par mots-clés parmis tous les groupes (y compris ceux non publiés).
// Le rank le + élevé des éléments déjà enregistrés dans le groupe permet de placer le nouveau.
exports.searchGroups = async (req, res, next) => exports.searchGroups = async (req, res, next) =>
{ {
try try
@ -129,7 +130,7 @@ exports.searchGroups = async (req, res, next) =>
else else
{ {
const db = require("../models/index"); const db = require("../models/index");
const getGroups=await db.sequelize.query("SELECT `id`,`title` FROM `Groups` WHERE (`title` LIKE :search OR `introduction` LIKE :search) ORDER BY `title` ASC", { replacements: { search: "%"+search+"%" }, type: QueryTypes.SELECT }); const getGroups=await db.sequelize.query("SELECT `Groups`.`id`,`Groups`.`title`, MAX(`Questionnaires`.`rankInGroup`) as maxRank FROM `Groups` LEFT JOIN `Questionnaires` ON `Questionnaires`.`GroupId` = `Groups`.`id` WHERE `Groups`.`title` LIKE :search OR `Groups`.`introduction` LIKE :search GROUP BY `Groups`.`id` ORDER BY `Groups`.`title` ASC", { replacements: { search: "%"+search+"%" }, type: QueryTypes.SELECT });
res.status(200).json(getGroups); res.status(200).json(getGroups);
} }
next(); next();

View File

@ -55,6 +55,7 @@ const helpGroup = document.getElementById("helpGroup");
const helpPublishingAt = document.getElementById("helpPublishingAt"); const helpPublishingAt = document.getElementById("helpPublishingAt");
const inputClassification = document.getElementById("classification"); const inputClassification = document.getElementById("classification");
const inputGroup = document.getElementById("group"); const inputGroup = document.getElementById("group");
const inputRankInGroup = document.getElementById("rankInGroup");
// Vide et cache tous les formulaires annexes au questionnaire : // Vide et cache tous les formulaires annexes au questionnaire :
const hideAllForms = () => const hideAllForms = () =>
@ -632,9 +633,12 @@ const initialise = async () =>
document.getElementById("#group"+response[i].id).addEventListener("click", function(e) document.getElementById("#group"+response[i].id).addEventListener("click", function(e)
{ {
e.preventDefault(); e.preventDefault();
let groupId=e.target.id.replace("#group", ""); inputGroup.value=response[i].title+" ("+response[i].id+")";
inputGroup.value=e.target.innerHTML+" ("+groupId+")"; formQuestionnaire["GroupId"].value=response[i].id;
formQuestionnaire["GroupId"].value=groupId; if(!isEmpty(response[i].maxRank))
inputRankInGroup.value=response[i].maxRank+1;
else
inputRankInGroup.value=1;
helpGroup.innerHTML=""; helpGroup.innerHTML="";
}); });
} }