X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Fproject_management%2Fsrc%2Fdashboard%2FprojectMgmtStore.js;h=70f5f2f614dc76c05f9158affeccecab0859e9d5;hp=64761dceb1e1a7d8667b89c4defc04eedb159ac6;hb=0d4ddf409b399a2caa75726be8d04ce6fe89b2c8;hpb=b5f45345dc77c112f4970d010febb7bb5a4335bd diff --git a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js index 64761dceb..70f5f2f61 100644 --- a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js +++ b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js @@ -3,6 +3,7 @@ */ import ProjectManagementActions from './projectMgmtActions.js'; import ProjectManagementSource from './projectMgmtSource.js'; +import ROLES from 'utils/roleConstants.js'; import _ from 'lodash'; export default class ProjectManagementStore { constructor() { @@ -15,8 +16,12 @@ export default class ProjectManagementStore { this.projectUsers = []; this.selectedUser = null; this.selectedRole = null; - this.roles = ['rw-project:project-admin', 'rw-project:project-oper', 'rw-project:project-create' - ]; + this.roles = Object.keys(ROLES.PROJECT).filter((p) => { + return p != "TYPE"; + }).map((p) => { + return ROLES.PROJECT[p]; + }) + // this.roles = ['rw-project:project-admin', 'rw-project:project-oper', 'rw-project:project-create']; this.users = []; this.activeIndex = null; this.isReadOnly = true; @@ -55,11 +60,13 @@ export default class ProjectManagementStore { projectRoles }); } - viewProject(data) { + viewProject() { + let data = arguments[0]; let project = data[0]; let projectIndex = data[1]; + let isReadOnly = data[2]; - let ProjectUser = { + let ProjectData = { 'name': project['name'], 'description': project['description'], 'projectUsers': project['project-config'] && project['project-config']['user'] || [] @@ -68,14 +75,13 @@ export default class ProjectManagementStore { activeIndex: projectIndex, projectOpen: true, isEdit: true, - isReadOnly: true - }, ProjectUser); + isReadOnly: isReadOnly + }, ProjectData); this.setState(state) } - editProject(isEdit) { - this.setState({ - isReadOnly: isEdit - }) + editProject(isReadOnly) { + this.viewProject([this.projects[this.activeIndex], this.activeIndex, isReadOnly]); + } handleCloseProjectPanel() { this.setState({ @@ -168,9 +174,26 @@ export default class ProjectManagementStore { let projectUsers = this.projectUsers; let selectedRole = self.roles[roleIndex]; if(checked) { - if(!projectUsers[userIndex].role) projectUsers[userIndex].role = []; + if (!projectUsers[userIndex].role) { + projectUsers[userIndex].role = []; + } + if (!projectUsers[userIndex]['rw-project-mano:mano-role']) { + projectUsers[userIndex]['rw-project-mano:mano-role'] = []; + } + switch (ROLES.PROJECT.TYPE[self.roles[roleIndex]]) { + case 'rw-project' : + projectUsers[userIndex].role.push({ + role: selectedRole + }); + break; + case 'rw-project-mano' : + projectUsers[userIndex]["rw-project-mano:mano-role"].push({ + role: selectedRole + }); + break; + } projectUsers[userIndex].role.push({ - role: self.roles[roleIndex] + role: selectedRole }) } else { let role = projectUsers[userIndex].role;