857e9a748f6f87b96cf18a39acfa9411874358fc
2 * STANDARD_RIFT_IO_COPYRIGHT
4 import ProjectManagementActions
from './projectMgmtActions.js';
5 import ProjectManagementSource
from './projectMgmtSource.js';
6 import _
from 'lodash';
7 export default class ProjectManagementStore
{
9 this.actions
= ProjectManagementActions(this.alt
);
10 this.bindActions(this.actions
);
11 this.registerAsync(ProjectManagementSource
);
14 this['description'] = 'Some Description';
15 this.projectUsers
= [];
16 this.selectedUser
= null;
17 this.selectedRole
= null;
18 this.roles
= ['rw-rbac-platform:super-admin', 'operator_role'
19 // 'some_other_role', 'yet_another_role', 'operator_role', 'some_other_role', 'yet_another_role'
22 this.activeIndex
= null;
23 this.isReadOnly
= true;
24 this.projectOpen
= false;
25 this.hideColumns
= false;
27 // this.exportPublicMethods({})
30 * [handleFieldUpdate description]
31 * @param {Object} data {
32 * [store_property] : [value]
34 * @return {[type]} [description]
36 handleUpdateInput(data
) {
39 handleAddProjectItem(item
) {
40 let projectRoles
= this.projectRoles
;
41 projectRoles
.push('');
42 this.setState({projectRoles
});
44 handleRemoveProjectItem(i
) {
45 let projectRoles
= this.projectRoles
;
46 projectRoles
.splice(i
, 1);
47 console
.log('Removing', projectRoles
)
48 this.setState({projectRoles
});
50 handleUpdateProjectRole(data
) {
53 let projectRoles
= this.projectRoles
54 projectRoles
[i
] = JSON
.parse(e
.currentTarget
.value
);
60 let project
= data
[0];
61 let projectIndex
= data
[1];
64 'name': project
['name'],
65 'description': project
['description'],
66 'projectUsers': project
['project-config'] && project
['project-config']['user'] || []
69 activeIndex
: projectIndex
,
81 handleCloseProjectPanel() {
88 handleHideColumns(e
) {
89 if(this.projectOpen
&& e
.currentTarget
.classList
.contains('hideColumns')) {
99 handleDisabledChange(isDisabled
){
104 handlePlatformRoleUpdate(data
){
105 let platform_role
= data
[0];
106 let checked
= data
[1];
107 let platformRoles
= this.platformRoles
;
108 platformRoles
[platform_role
] = checked
;
113 handleSelectedUser(event
) {
115 selectedUser
: JSON
.parse(event
.currentTarget
.value
)
119 handleSelectedRole(event
) {
121 selectedRole
: JSON
.parse(event
.currentTarget
.value
)
126 let description
= '';
129 'description' : description
133 this.setState(_
.merge( this.resetProject() ,
144 handleUpdateSelectedUser(user
) {
146 selectedUser
: JSON
.parse(user
)
150 let u
= JSON
.parse(this.selectedUser
);
151 let r
= this.selectedRole
;
152 let projectUsers
= this.projectUsers
;
154 console
.log('adding user')
156 'user-name': u
['user-name'],
157 'user-domain': u
['user-domain'],
164 this.setState({projectUsers
, selectedUser
: JSON
.stringify(null)})
166 handleToggleUserRoleInProject(data
) {
168 let {userIndex
, roleIndex
, checked
} = data
;
169 let projectUsers
= this.projectUsers
;
170 let selectedRole
= self
.roles
[roleIndex
];
173 projectUsers
[userIndex
].role
.push({
174 role
: self
.roles
[roleIndex
],
178 let role
= projectUsers
[userIndex
].role
;
179 let roleIndex
= _
.findIndex(role
, {role
:selectedRole
, keys
: keys
})
180 projectUsers
[userIndex
].role
.splice(roleIndex
, 1)
182 self
.setState({projectUsers
});
185 handleUpdateUserRoleInProject(data
) {
186 let {userIndex
, roleIndex
, value
} = data
;
187 let projectUsers
= this.projectUsers
;
189 projectUsers
[userIndex
].role
[roleIndex
].role
= value
;
190 projectUsers
[userIndex
].role
[roleIndex
]['keys'] = keys
;
193 addRoleToUserInProject(userIndex
) {
194 let projectUsers
= this.projectUsers
;
195 if(!projectUsers
[userIndex
].role
) {
196 projectUsers
[userIndex
].role
= [];
199 projectUsers
[userIndex
].role
.push({
201 //temp until we get actual keys
208 handleRemoveRoleFromUserInProject (data
) {
209 let {userIndex
, roleIndex
} = data
;
210 let projectUsers
= this.projectUsers
;
211 projectUsers
[userIndex
].role
.splice(roleIndex
, 1);
216 handleRemoveUserFromProject (userIndex
) {
217 let projectUsers
= this.projectUsers
;
218 projectUsers
.splice(userIndex
, 1);
223 getProjectsSuccess(projects
) {
224 this.alt
.actions
.global
.hideScreenLoader
.defer();
225 this.setState({projects
: projects
});
227 getUsersSuccess(users
) {
229 this.alt
.actions
.global
.hideScreenLoader
.defer();
230 this.setState({users
});
232 updateProjectSuccess() {
233 this.alt
.actions
.global
.hideScreenLoader
.defer();
235 let projects
= this.projects
|| [];
236 projects
[this.activeIndex
] = {
237 'name': this['name'],
238 'description': this['description'],
240 'user': self
.projectUsers
249 deleteProjectSuccess() {
250 this.alt
.actions
.global
.hideScreenLoader
.defer();
251 let projects
= this.projects
;
252 projects
.splice(this.activeIndex
, 1);
253 this.setState({projects
, projectOpen
: false})
255 createProjectSuccess() {
256 this.alt
.actions
.global
.hideScreenLoader
.defer();
257 let projects
= this.projects
|| [];
259 'name': this['name'],
260 'description': this['description']
266 activeIndex
: projects
.length
- 1
269 this.setState(newState
);