*/
import ProjectManagementActions from './projectMgmtActions.js';
import ProjectManagementSource from './projectMgmtSource.js';
+import ROLES from 'utils/roleConstants.js';
import _ from 'lodash';
export default class ProjectManagementStore {
constructor() {
this.projectUsers = [];
this.selectedUser = null;
this.selectedRole = null;
- this.roles = ['Assign a role', 'super_admin'];
+ this.roles = Object.keys(ROLES.PROJECT).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;
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'] || []
projectOpen: true,
isEdit: true,
isReadOnly: true
- }, ProjectUser);
+ }, ProjectData);
this.setState(state)
}
editProject(isEdit) {
selectedUser: JSON.parse(user)
});
}
- handleAddUser() {
+ handleAddUser(e) {
+ let self = this;
let u = JSON.parse(this.selectedUser);
let r = this.selectedRole;
let projectUsers = this.projectUsers;
'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) {
projectUsers[userIndex].role = [];
}
projectUsers[userIndex].role.push({
- 'role': null,
- //temp until we get actual keys
- 'keys' : 'some key'
+ 'role': null
});
this.setState({
projectUsers
}
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,