/**
|
* TurboFurnviewController.js
|
*
|
* This controller handles the mode for a live session with furnplan
|
*/
|
const FurnplanInstanceHistoryService = require("../services/FurnplanInstaceHistoryService.js");
|
|
const { addStorePermission } = require("../services/UseCaseConfigurationStorePermissionService");
|
|
module.exports = {
|
|
/**
|
* Index page
|
*/
|
index: async function (req, res) {
|
|
const configuration = await ConfigurationManager.newConfiguration();
|
let configID = "";
|
|
let query = {
|
customerNo: req.user.customerNo,
|
externalConf: true
|
};
|
|
query = await addStorePermission(query, req.user.customerNo);
|
|
const externalConfiguration = await UseCaseConfiguration.findOne(query);
|
|
if (externalConfiguration && externalConfiguration.configuration) {
|
ConfigurationManager.merge(configuration, externalConfiguration);
|
configID = externalConfiguration._id;
|
}
|
|
configuration.enable_app_connection_data = true;
|
configuration.show_price = true;
|
configuration.furnplan_price_list = true;
|
|
await FurnplanInstanceHistoryService.writeDocument(req.query.session, req.user.customerNo, req.url, configID, "Regular", req.headers["user-agent"] || req.headers["User-Agent"] || "");
|
|
AdminSession
|
.findOne({ user: req.user.username ? req.user.username.toLowerCase() : "" })
|
.then(function (adminSession) {
|
if (adminSession) {
|
configuration.panel_left_show = true;
|
}
|
|
if (req.query["furnview-app"]) {
|
configuration.toolbar_button_furnview_app = true;
|
}
|
configuration.camera_vector_special = false;
|
configuration.disable_move_x_object = false;
|
configuration.furnplan_price_list = true;
|
if (req.query.kiosk) {
|
ConfigurationManager.setKioskMode(configuration);
|
}
|
})
|
.catch(function (error) {
|
console.log("Unable to retrieve admin sessions: " + error);
|
})
|
.finally(function () {
|
StartupManager.setStartup(req, res, configuration);
|
|
let path = "turbofurnview/index";
|
if (configuration.enable_wizard) path = "wizard/view";
|
return res.view(path, {
|
g_configuration: configuration,
|
g_manufacturer: "",
|
g_article: "",
|
g_sessionId: req.query.session,
|
g_language: req.query.lang || req.getLocale(),
|
g_reCaptcha: Config.furnview.reCaptchaSiteKey || "",
|
production_mode: sails.config.environment === "production"
|
});
|
});
|
}
|
};
|