galleria prodotto
This commit is contained in:
@@ -6,6 +6,7 @@ const tools = require('../tools/general');
|
|||||||
mongoose.Promise = global.Promise;
|
mongoose.Promise = global.Promise;
|
||||||
mongoose.level = "F";
|
mongoose.level = "F";
|
||||||
|
|
||||||
|
const { IImg } = require('../models/myscheda');
|
||||||
|
|
||||||
// Resolving error Unknown modifier: $pushAll
|
// Resolving error Unknown modifier: $pushAll
|
||||||
mongoose.plugin(schema => {
|
mongoose.plugin(schema => {
|
||||||
|
|||||||
@@ -464,7 +464,7 @@ router.post('/chatbot', authenticate, async (req, res) => {
|
|||||||
|
|
||||||
res.json(response.data);
|
res.json(response.data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error?.message);
|
||||||
res.status(500).send('Errore nella comunicazione con Rasa');
|
res.status(500).send('Errore nella comunicazione con Rasa');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1016,7 +1016,12 @@ async function importPage(req, idapp, jsonString) {
|
|||||||
const table = globalTables.getTableByTableName(tableName);
|
const table = globalTables.getTableByTableName(tableName);
|
||||||
|
|
||||||
if (tableName === 'mypages') {
|
if (tableName === 'mypages') {
|
||||||
if (User.isAdmin(req.user.perm) || User.isEditor(req.user.perm) || User.isCommerciale(req.user.perm) || User.isCollaboratore(req.user.perm)) {
|
if (
|
||||||
|
User.isAdmin(req.user.perm) ||
|
||||||
|
User.isEditor(req.user.perm) ||
|
||||||
|
User.isCommerciale(req.user.perm) ||
|
||||||
|
User.isCollaboratore(req.user.perm)
|
||||||
|
) {
|
||||||
for (const page of myexp.mypages) {
|
for (const page of myexp.mypages) {
|
||||||
const { ImportedRecords, newId } = await upsertRecord(table, page, idapp);
|
const { ImportedRecords, newId } = await upsertRecord(table, page, idapp);
|
||||||
if (!newIdPage && newId) {
|
if (!newIdPage && newId) {
|
||||||
@@ -2237,10 +2242,15 @@ router.post('/upload_from_other_server/:dir', authenticate, (req, res) => {
|
|||||||
|
|
||||||
// Funzione principale che gestisce l'upload
|
// Funzione principale che gestisce l'upload
|
||||||
async function uploadFile(req, res, version, options = {}) {
|
async function uploadFile(req, res, version, options = {}) {
|
||||||
|
try {
|
||||||
const quality = options.quality || 'original';
|
const quality = options.quality || 'original';
|
||||||
const dirParam = req.params.dir || '';
|
const dirParam = req.params.dir || '';
|
||||||
const dir = tools.invertescapeslash(dirParam);
|
const dir = tools.invertescapeslash(dirParam);
|
||||||
const idapp = req.user.idapp;
|
const idapp = req.user?.idapp;
|
||||||
|
|
||||||
|
if (!idapp) {
|
||||||
|
return res.status(400).send('ID applicazione mancante');
|
||||||
|
}
|
||||||
|
|
||||||
// Determina la cartella base
|
// Determina la cartella base
|
||||||
const dirmain = version > 0 && tools.sulServer() ? '' : server_constants.DIR_PUBLIC_LOCALE;
|
const dirmain = version > 0 && tools.sulServer() ? '' : server_constants.DIR_PUBLIC_LOCALE;
|
||||||
@@ -2249,49 +2259,44 @@ async function uploadFile(req, res, version, options = {}) {
|
|||||||
// Directory di upload specifica
|
// Directory di upload specifica
|
||||||
const uploadDir = path.join(baseUploadFolder, dir);
|
const uploadDir = path.join(baseUploadFolder, dir);
|
||||||
|
|
||||||
try {
|
|
||||||
// Crea la cartella se non esiste
|
// Crea la cartella se non esiste
|
||||||
await tools.mkdirpath(uploadDir);
|
await tools.mkdirpath(uploadDir);
|
||||||
|
|
||||||
// Configura formidable
|
// Configura formidable
|
||||||
const form = new formidable.IncomingForm({ uploadDir });
|
const form = new formidable.IncomingForm({ uploadDir });
|
||||||
|
|
||||||
// Promisifica il parsing per usare await
|
// Parsing in modalità Promise
|
||||||
const files = await new Promise((resolve, reject) => {
|
const files = await new Promise((resolve, reject) => {
|
||||||
form.parse(req, (err, fields, files) => {
|
form.parse(req, (err, fields, files) => {
|
||||||
if (err) reject(err);
|
if (err) return reject(err);
|
||||||
else resolve(files);
|
resolve(files);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// files può contenere uno o più file: gestiamo uno per semplicità
|
// Gestione file
|
||||||
for (const key in files) {
|
for (const key in files) {
|
||||||
if (Object.prototype.hasOwnProperty.call(files, key)) {
|
if (!Object.prototype.hasOwnProperty.call(files, key)) continue;
|
||||||
const file = files[key];
|
|
||||||
|
|
||||||
console.log('File ricevuto:', file[0].originalFilename);
|
const file = files[key][0];
|
||||||
|
console.log('File ricevuto:', file.originalFilename);
|
||||||
|
|
||||||
const oldFIle = file[0].filepath || file[0].path;
|
const oldFile = file.filepath || file.path;
|
||||||
|
const newFilePath = path.join(uploadDir, `${file.newFilename}_${file.originalFilename}`);
|
||||||
|
|
||||||
// Nuovo percorso per il file rinominato
|
// Sposta e rinomina
|
||||||
const newFilePath = path.join(uploadDir, file[0].originalFilename);
|
await tools.move(oldFile, newFilePath);
|
||||||
|
|
||||||
// Sposta e rinomina il file (move è la funzione ottimizzata)
|
// Ridimensionamento opzionale
|
||||||
// await move(file[0].filepath || file[0].path, newFilePath);
|
|
||||||
await tools.move(oldFIle, newFilePath);
|
|
||||||
|
|
||||||
// Eventuale ridimensionamento immagine
|
|
||||||
await handleImageResizing(newFilePath, quality);
|
await handleImageResizing(newFilePath, quality);
|
||||||
|
|
||||||
console.log(`File processato e salvato in: ${newFilePath}`);
|
console.log(`File processato e salvato in: ${newFilePath}`);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
res.status(200).send('Upload completato con successo');
|
return res.status(200).send('Upload completato con successo');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('Errore durante uploadFile:', err);
|
console.error('Errore durante uploadFile:', err);
|
||||||
if (!res.headersSent) {
|
if (!res.headersSent) {
|
||||||
res.status(500).send("Errore durante l'upload");
|
return res.status(500).send("Errore durante l'upload");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2355,7 +2360,7 @@ router.post('/upload/:dir', authenticate, (req, res) => {
|
|||||||
return uploadFile(req, res, 0, req.body.options);
|
return uploadFile(req, res, 0, req.body.options);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/uploadnew/:vers/:dir/', authenticate, (req, res) => {
|
router.post('/uploadnew/:vers/:dir/', authenticate_noerror_WithUser, (req, res) => {
|
||||||
let versionstr = req.params.vers;
|
let versionstr = req.params.vers;
|
||||||
let version = tools.getVersionint(versionstr);
|
let version = tools.getVersionint(versionstr);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user