/** * Submission management * * @version 1.0 */ class SubmissionsController extends EICController { /** * * @param {*} options * */ proposal(options) { let pic = options.params.pic; let number = options.params.pid; let mode = options.params.mode || 'read'; app.User.getBusinessPermissions([ `/organisations/${pic}/proposals/${number}`, `/organisations/${pic}/proposals/${number}/members` ], 'Org_Member') .then( async payload => { if(mode == 'edit') { if(!payload[`/organisations/${pic}/proposals/${number}`].permissions.includes('update')) { mode = 'read'; } } if(payload[`/organisations/${pic}/proposals/${number}`].permissions.includes('read')) { let models = { 'submission' : new SubmissionModel( payload[`/organisations/${pic}/proposals/${number}`].permissions ), 'team' : new SubmissionTeamModel( [ 'create', 'update', 'delete' ] ), 'members' : new SubmissionMembersModel( payload[`/organisations/${pic}/proposals/${number}/members`].permissions ) }; app.meta.add('organisation-functions', app.Assets.Store.json['organisation-functions']); app.meta.add('organisation-genders', app.Assets.Store.json['organisation-genders']); app.meta.add('eic-keywords', app.Assets.Store.json['eic-keywords']); models.submission.getProposal(pic,number).then( async () => { let formVersions = { 'legacy' : '2022', '1.0' : '2023', '1.1' : '2023' }; let formVersion = formVersions[models.submission.data.version || 'legacy']; await Loader.loadViews(app.Router.ControllerConfigs.SubmissionsController.lazyViews[formVersion]); this.loadWindow( `projects/submissions/${formVersion}/SubmissionShortForm${formVersion}View`, { title: 'Proposal ' + number, static: true, expanded: true }, { profile: { mode: mode, pic: pic, number: number }, models: models } ); }) } else { ui.growl.append('You are not allowed to access this proposal', 'danger'); } }) } } app.registerClass('SubmissionsController', SubmissionsController);