Files
P42_UI/app/controllers/applicants/ApplicantController.js
T
2025-08-27 07:03:09 +00:00

79 lines
2.8 KiB
JavaScript

/**
* Applicant management
*
* @version 1.0
* @author Michael Fallise
*/
class ApplicantController extends EICController {
constructor() {
super();
}
dispatch() {
app.User.getBusinessPermissions([ '/organisations' ], 'Org_Member')
.then(async payload => {
if(payload['/organisations'].permissions.includes("list")) {
let model = new ApplicantOrganisationsModel(payload['/organisations'].permissions)
model.list()
.then( async payload => {
if(payload.length > 0) {
let first = payload[0];
app.Router.route('/applicant/' + first.pic);
} else {
ui.growl.append("You don't belong to any organisation", 'danger')
}
})
}
})
}
dashboard(options) {
ui.lock();
let pic = options.params.pic;
app.User.getBusinessPermissions([
'/organisations',
'/organisations/' + pic,
'/organisations/' + pic + '/members',
'/organisations/' + pic + '/proposals'
], 'Org_Member')
.then(async payload => {
if(payload['/organisations/' + pic].permissions.includes('read')) {
// MFA: Coachings currently using proposals permissions as they are linked and BE not having coaching info locally on their side
let models = {
myOrganisations: new ApplicantOrganisationsModel(payload['/organisations'].permissions),
applicant: new ApplicantOrganisationModel(payload['/organisations/' + pic].permissions),
members: new ApplicantMembersModel(payload['/organisations/' + pic + '/members'].permissions),
proposals: new ApplicantOrganisationProposalsModel(payload['/organisations/' + pic + '/proposals'].permissions),
coachings: new ApplicantOrganisationCoachingsModel(payload['/organisations/' + pic + '/proposals'].permissions),
}
ui.unlock();
this.loadWindow(
'applicants/ApplicantDashboardView',
{
title: 'My EIC',
static: true,
expanded: true
},
{
models: models,
pic: pic,
url: options.currentRoute.url
}
)
} else {
ui.unlock();
ui.growl.append('You don\'t have access to this organisation', 'danger' );
}
})
}
}
app.registerClass('ApplicantController', ApplicantController);