Files
radixOS/src/services/renderWindow.js
manuel.sowada 63931bc4d5 style fixes
2026-05-12 15:58:46 +02:00

86 lines
3.4 KiB
JavaScript

const { service } = require('@root/server.js');
const { localPath, cache, runtimeFile } = require('@root/globalize.js');
module.exports = {
renderWindow: async function(app, view, data = {}, extraData = {}, res) {
const name = res.req.body.name;
const label = res.req.body.viewLabel;
try {
const plugin = cache.startMenuItems.find(plugin => plugin.name == name);
const windowData = plugin.menu.items.find(item => item.label == label);
// Alle Daten zusammenführen
const templateData = {
...{ appname: plugin.menu.label, label: label, section: plugin.section },
...windowData,
// ...data,
...extraData
};
// console.log(templateData)
// Zuerst Plugin-View rendern
app.render(view, templateData, (err, contentHtml) => {
if (err) {
service.get('eventManager').write(res.req.cookies.ObjectGUID, 4, name, err);
return res.status(500).send(err.message);
}
// Dann Window-Partial rendern
app.render('partials/window', {
layout: false,
contentHtml,
...templateData
}, (err, html) => {
if (err) {
service.get('eventManager').write(res.req.cookies.ObjectGUID, 4, name, err);
return res.status(500).send(err.message);
}
res.status(200).send(html);
});
});
} catch (err) {
service.get('eventManager').write(res.req.cookies.ObjectGUID, 4, name, err);
res.status(500).send(err.message);
}
},
renderView: async function(app, view, data = {}, res) {
const payload = res.req.body;
try {
// console.log(app.locals.startMenuItems.find(name == ).menu.items.find(item => ))
// Alle Daten zusammenführen
const templateData = {
...payload,
...{ appname: payload.name, section: 'view' },
...{ name: payload.name, view: payload.view, viewLabel: payload.viewLabel},
...data,
};
// console.log(templateData)
// Zuerst Plugin-View rendern
app.render(view, templateData, (err, contentHtml) => {
if (err) {
service.get('eventManager').write(res.req.cookies.ObjectGUID, 4, payload.name, err);
return res.status(500).send(err.message);
}
// Dann Window-Partial rendern
app.render('partials/child', {
layout: false,
contentHtml,
...templateData
}, (err, html) => {
if (err) {
service.get('eventManager').write(res.req.cookies.ObjectGUID, 4, payload.name, err);
return res.status(500).send(err.message);
}
res.status(200).send(html);
});
});
} catch (err) {
service.get('eventManager').write(res.req.cookies.ObjectGUID, 4, payload.name, err);
res.status(500).send(err.message);
}
}
};