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