/** * Created by chen on 2017/7/17. */ const BaseController = require("../../common/base/base_controller"); const projectModel = require("../../pm/models/project_model"); const pmFacade = require('../../pm/facade/pm_facade'); const systemSettingModel = require('../../system_setting/model/index'); const OptionsDao = require('../../options/models/optionsModel'); const optionSetting = require('../../options/models/optionTypes'); const billsUnitPriceFeatureFacade = require("../../std_bills_unitprice_feature_lib/facade/bills_unitprice_feature_facade"); let config = require("../../../config/config.js"); const { getTitle } = require("../../../public/titleUtil"); module.exports =function (app) { const baseController = new BaseController(); app.get('/main', baseController.init, function(req, res) { let pm = require('../../pm/controllers/pm_controller'); const projectID = +req.query.project; pm.checkProjectRight(req.session.sessionUser.id, projectID, async function (hasRight, projectData, isOpenShareProject, allowCooperate) { if (hasRight) { //分享的项目,只读、协作(允许编辑) let projectReadOnly = false, projectCooperate = false; if(req.session.sessionUser.id !== projectData.userID){ projectData._doc.readOnly = true; projectCooperate = allowCooperate; //允许协作的项目允许编辑,非只读 projectReadOnly = !projectCooperate; } let optionsDao = new OptionsDao(); let options = await optionsDao.getOptions(req.session.sessionUser.id, req.session.sessionCompilation._id); if(options){ options = await optionsDao.saveOptions(req.session.sessionUser.id, req.session.sessionCompilation._id, optionSetting); } const markReadProjectIDs = isOpenShareProject ? await pmFacade.markShareItemsRead(projectID, req.session.sessionUser.id) : []; const version = await systemSettingModel.getVersion(); let boqType = null; const constructProject = await pmFacade.getConstructionProject(projectID); if (constructProject && constructProject.property && constructProject.property.boqType) { boqType = constructProject.property.boqType; } let filter = {compilationId: req.session.sessionCompilation._id}; let featureLibs = await billsUnitPriceFeatureFacade.findByCondition(filter,{_id:0},false); // console.log(featureLibs); let billsUnitPriceFeature = (featureLibs && featureLibs.length > 0)?featureLibs[featureLibs.length - 1]:null; // console.log(req.session.sessionUser); res.render('building_saas/main/html/main.html', { userAccount: req.session.userAccount, userID: req.session.sessionUser.id, userName: req.session.sessionUser.username, userCompany: req.session.sessionUser.company, projectData: projectData, compilationName: req.session.sessionCompilation.name, defaultLocation:req.session.sessionCompilation.defaultLocation, versionName: req.session.compilationVersion, projectReadOnly: projectReadOnly, projectCooperate: projectCooperate, LicenseKey:config.getLicenseKey(process.env.NODE_ENV), socketPort:config[process.env.NODE_ENV].socketPort?config[process.env.NODE_ENV].socketPort:5500, options:JSON.stringify(options), overWriteUrl:req.session.sessionCompilation.overWriteUrl, markReadProjectIDs: JSON.stringify(markReadProjectIDs), boqType, title:getTitle(req.headers.host), billsUnitPriceFeature : JSON.stringify(billsUnitPriceFeature), version }); } else { res.redirect('/pm'); } }); }); }