92a439555d410f110414ec6e9132c0736949b991
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
= ['Assign a role', 'super_admin'];
20 this.activeIndex
= null;
21 this.isReadOnly
= true;
22 this.projectOpen
= false;
23 this.hideColumns
= false;
25 // this.exportPublicMethods({})
28 * [handleFieldUpdate description]
29 * @param {Object} data {
30 * [store_property] : [value]
32 * @return {[type]} [description]
34 handleUpdateInput(data
) {
37 handleAddProjectItem(item
) {
38 let projectRoles
= this.projectRoles
;
39 projectRoles
.push('');
40 this.setState({projectRoles
});
42 handleRemoveProjectItem(i
) {
43 let projectRoles
= this.projectRoles
;
44 projectRoles
.splice(i
, 1);
45 console
.log('Removing', projectRoles
)
46 this.setState({projectRoles
});
48 handleUpdateProjectRole(data
) {
51 let projectRoles
= this.projectRoles
52 projectRoles
[i
] = JSON
.parse(e
.currentTarget
.value
);
58 let project
= data
[0];
59 let projectIndex
= data
[1];
62 'name': project
['name'],
63 'description': project
['description'],
64 'projectUsers': project
['project-config'] && project
['project-config']['user'] || []
67 activeIndex
: projectIndex
,
79 handleCloseProjectPanel() {
86 handleHideColumns(e
) {
87 if(this.projectOpen
&& e
.currentTarget
.classList
.contains('hideColumns')) {
97 handleDisabledChange(isDisabled
){
102 handlePlatformRoleUpdate(data
){
103 let platform_role
= data
[0];
104 let checked
= data
[1];
105 let platformRoles
= this.platformRoles
;
106 platformRoles
[platform_role
] = checked
;
111 handleSelectedUser(event
) {
113 selectedUser
: JSON
.parse(event
.currentTarget
.value
)
117 handleSelectedRole(event
) {
119 selectedRole
: JSON
.parse(event
.currentTarget
.value
)
124 let description
= '';
127 'description' : description
131 this.setState(_
.merge( this.resetProject() ,
142 handleUpdateSelectedUser(user
) {
144 selectedUser
: JSON
.parse(user
)
148 let u
= JSON
.parse(this.selectedUser
);
149 let r
= this.selectedRole
;
150 let projectUsers
= this.projectUsers
;
151 console
.log('adding user')
153 'user-name': u
['user-name'],
154 'user-domain': u
['user-domain'],
161 this.setState({projectUsers
})
163 handleUpdateUserRoleInProject(data
) {
164 let {userIndex
, roleIndex
, value
} = data
;
165 let projectUsers
= this.projectUsers
;
166 projectUsers
[userIndex
].role
[roleIndex
].role
= value
;
167 projectUsers
[userIndex
].role
[roleIndex
]['keys'] = value
;
170 addRoleToUserInProject(userIndex
) {
171 let projectUsers
= this.projectUsers
;
172 if(!projectUsers
[userIndex
].role
) {
173 projectUsers
[userIndex
].role
= [];
175 projectUsers
[userIndex
].role
.push({
177 //temp until we get actual keys
184 handleRemoveRoleFromUserInProject (data
) {
185 let {userIndex
, roleIndex
} = data
;
186 let projectUsers
= this.projectUsers
;
187 projectUsers
[userIndex
].role
.splice(roleIndex
, 1);
192 handleRemoveUserFromProject (userIndex
) {
193 let projectUsers
= this.projectUsers
;
194 projectUsers
.splice(userIndex
, 1);
199 getProjectsSuccess(projects
) {
200 this.alt
.actions
.global
.hideScreenLoader
.defer();
201 this.setState({projects
: projects
});
203 getUsersSuccess(users
) {
205 this.alt
.actions
.global
.hideScreenLoader
.defer();
206 this.setState({users
});
208 updateProjectSuccess() {
209 this.alt
.actions
.global
.hideScreenLoader
.defer();
210 let projects
= this.projects
|| [];
211 projects
[this.activeIndex
] = {
212 'name': this['name'],
213 'description': this['description']
221 deleteProjectSuccess() {
222 this.alt
.actions
.global
.hideScreenLoader
.defer();
223 let projects
= this.projects
;
224 projects
.splice(this.activeIndex
, 1);
225 this.setState({projects
, projectOpen
: false})
227 createProjectSuccess() {
228 this.alt
.actions
.global
.hideScreenLoader
.defer();
229 let projects
= this.projects
|| [];
231 'name': this['name'],
232 'description': this['description']
238 activeIndex
: projects
.length
- 1
241 this.setState(newState
);