Files
P42_UI/app/controllers/projects/submissions/SubmissionsController.js
T
2025-08-27 07:03:09 +00:00

77 lines
2.9 KiB
JavaScript

/**
* 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);