From 0bf8d3c83c851495a126699f70e9572521182c63 Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Wed, 14 May 2025 17:04:24 +0200 Subject: [PATCH] - Assegnazione di linkIdTemplate anche per la "Pagina di Default", in modo che posso da "Templates" cambiare le impostazioni. --- src/server/models/myelem.js | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/server/models/myelem.js b/src/server/models/myelem.js index ea2a610..c8b7b5a 100755 --- a/src/server/models/myelem.js +++ b/src/server/models/myelem.js @@ -17,6 +17,9 @@ mongoose.plugin(schema => { }); const IElementiPagina = new Schema({ + isTemplate: Boolean, + linkIdTemplate: String, + name: String, pagina: IDimensioni, }); @@ -422,6 +425,18 @@ async function deleteOldMyElems(idapp) { } } +/** + * Trova tutte le schede template associate a pagine di idapp. + * Restituisce un array di oggetti con le seguenti proprietà: + * - scheda: l'oggetto scheda, con proprietà come _id, name, isTemplate + * - idPageOrig: l'idPage originale associata alla scheda + * + * Se idapp === '18', stampa i duplicati e i titoli delle pagine + * e cancella i documenti di MyElem con idPage non esistenti in MyPage + * + * @param {string} idapp ID dell'applicazione + * @returns {Promise} Array di oggetti scheda con idPageOrig + */ MyElemSchema.statics.findallSchedeTemplate = async function (idapp) { const MyElem = this; @@ -490,12 +505,21 @@ MyElemSchema.statics.findallSchedeTemplate = async function (idapp) { } }; -// Ricerca tra tutte le schede, contenute in catalogo, se esiste un nome di template uguale, -// se non lo trova allora è quello giusto per crearne uno nuovo +/** + * Ricerca tra tutte le schede, contenute in catalogo, se esiste un nome di template uguale, + * se non lo trova allora è quello giusto per crearne uno nuovo + * + * @param {string} idapp - ID dell'app + * @param {string} idPageOrig - ID della pagina originale + * @param {string} nomeTemplate - Nome del template + * + * @returns {string} Il nome del template libero + */ MyElemSchema.statics.getNewFreeNameTemplate = async function (idapp, idPageOrig, nomeTemplate) { const MyElem = this; try { + // Trova tutti gli elementi che hanno un template con lo stesso nome const ris = await MyElem.find( { idapp, @@ -509,6 +533,7 @@ MyElemSchema.statics.getNewFreeNameTemplate = async function (idapp, idPageOrig, 'catalogo.arrSchede.scheda.idPage': 1 }); + // Recupera i nomi dei template già esistenti const existingNames = new Set( ris.flatMap(elem => elem.catalogo?.arrSchede?.filter(scheda => @@ -519,6 +544,7 @@ MyElemSchema.statics.getNewFreeNameTemplate = async function (idapp, idPageOrig, ) ); + // Crea un nuovo nome di template univoco let ind = 2; let newNameTemplate;