X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fproject_management%2Fsrc%2Fdashboard%2FprojectMgmtStore.js;h=ec3a099ba3556f50a317c8acd432678aaaf0d0fe;hb=2ff1ddba3d20163b110f27abfe7875d6edf2255c;hp=92a439555d410f110414ec6e9132c0736949b991;hpb=41f386a117ec725ad1eb49a9c571107a0c7d1c11;p=osm%2FUI.git diff --git a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js index 92a439555..ec3a099ba 100644 --- a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js +++ b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js @@ -15,7 +15,8 @@ export default class ProjectManagementStore { this.projectUsers = []; this.selectedUser = null; this.selectedRole = null; - this.roles = ['Assign a role', 'super_admin']; + this.roles = ['rw-project:project-admin', 'rw-project:project-oper', 'rw-project:project-create' + ]; this.users = []; this.activeIndex = null; this.isReadOnly = true; @@ -58,7 +59,7 @@ export default class ProjectManagementStore { let project = data[0]; let projectIndex = data[1]; - let ProjectUser = { + let ProjectData = { 'name': project['name'], 'description': project['description'], 'projectUsers': project['project-config'] && project['project-config']['user'] || [] @@ -68,7 +69,7 @@ export default class ProjectManagementStore { projectOpen: true, isEdit: true, isReadOnly: true - }, ProjectUser); + }, ProjectData); this.setState(state) } editProject(isEdit) { @@ -144,7 +145,8 @@ export default class ProjectManagementStore { selectedUser: JSON.parse(user) }); } - handleAddUser() { + handleAddUser(e) { + let self = this; let u = JSON.parse(this.selectedUser); let r = this.selectedRole; let projectUsers = this.projectUsers; @@ -154,17 +156,34 @@ export default class ProjectManagementStore { 'user-domain': u['user-domain'], "role":[{ "role": r, - "keys": r + "keys": self.name } ] }) - this.setState({projectUsers}) + this.setState({projectUsers, selectedUser: JSON.stringify(null)}) + } + handleToggleUserRoleInProject(data) { + let self = this; + let {userIndex, roleIndex, checked} = data; + let projectUsers = this.projectUsers; + let selectedRole = self.roles[roleIndex]; + if(checked) { + if(!projectUsers[userIndex].role) projectUsers[userIndex].role = []; + projectUsers[userIndex].role.push({ + role: self.roles[roleIndex] + }) + } else { + let role = projectUsers[userIndex].role; + let roleIndex = _.findIndex(role, {role:selectedRole}) + projectUsers[userIndex].role.splice(roleIndex, 1) + } + self.setState({projectUsers}); + } handleUpdateUserRoleInProject(data) { let {userIndex, roleIndex, value} = data; let projectUsers = this.projectUsers; projectUsers[userIndex].role[roleIndex].role = value; - projectUsers[userIndex].role[roleIndex]['keys'] = value; } addRoleToUserInProject(userIndex) { @@ -173,9 +192,7 @@ export default class ProjectManagementStore { projectUsers[userIndex].role = []; } projectUsers[userIndex].role.push({ - 'role': null, - //temp until we get actual keys - 'keys' : 'some key' + 'role': null }); this.setState({ projectUsers @@ -207,10 +224,14 @@ export default class ProjectManagementStore { } updateProjectSuccess() { this.alt.actions.global.hideScreenLoader.defer(); + let self = this; let projects = this.projects || []; projects[this.activeIndex] = { 'name': this['name'], - 'description': this['description'] + 'description': this['description'], + 'project-config': { + 'user': self.projectUsers + } } this.setState({ projects,