- Assegnazione di linkIdTemplate anche per la "Pagina di Default", in modo che posso da "Templates" cambiare le impostazioni.

This commit is contained in:
Surya Paolo
2025-05-14 17:04:24 +02:00
parent b2c19801e6
commit 0bf8d3c83c

View File

@@ -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<IMyElemTemplate[]>} 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;