b3e55ad6ce395d96efa5dac756af7036d5d505f6
2 * STANDARD_RIFT_IO_COPYRIGHT
4 import ProjectManagementActions
from './projectMgmtActions.js';
5 import ProjectManagementSource
from './projectMgmtSource.js';
6 import ROLES
from 'utils/roleConstants.js';
7 import _
from 'lodash';
8 export default class ProjectManagementStore
{
10 this.actions
= ProjectManagementActions(this.alt
);
11 this.bindActions(this.actions
);
12 this.registerAsync(ProjectManagementSource
);
15 this['description'] = 'Some Description';
16 this.projectUsers
= [];
17 this.selectedUser
= null;
18 this.selectedRole
= null;
19 this.roles
= Object
.keys(ROLES
.PROJECT
).map((p
) => {
20 return ROLES
.PROJECT
[p
];
22 // this.roles = ['rw-project:project-admin', 'rw-project:project-oper', 'rw-project:project-create'];
24 this.activeIndex
= null;
25 this.isReadOnly
= true;
26 this.projectOpen
= false;
27 this.hideColumns
= false;
29 // this.exportPublicMethods({})
32 * [handleFieldUpdate description]
33 * @param {Object} data {
34 * [store_property] : [value]
36 * @return {[type]} [description]
38 handleUpdateInput(data
) {
41 handleAddProjectItem(item
) {
42 let projectRoles
= this.projectRoles
;
43 projectRoles
.push('');
44 this.setState({projectRoles
});
46 handleRemoveProjectItem(i
) {
47 let projectRoles
= this.projectRoles
;
48 projectRoles
.splice(i
, 1);
49 console
.log('Removing', projectRoles
)
50 this.setState({projectRoles
});
52 handleUpdateProjectRole(data
) {
55 let projectRoles
= this.projectRoles
56 projectRoles
[i
] = JSON
.parse(e
.currentTarget
.value
);
62 let data
= arguments
[0];
63 let project
= data
[0];
64 let projectIndex
= data
[1];
65 let isReadOnly
= data
[2];
68 'name': project
['name'],
69 'description': project
['description'],
70 'projectUsers': project
['project-config'] && project
['project-config']['user'] || []
73 activeIndex
: projectIndex
,
76 isReadOnly
: isReadOnly
80 editProject(isReadOnly
) {
81 this.viewProject([this.projects
[this.activeIndex
], this.activeIndex
, isReadOnly
]);
84 handleCloseProjectPanel() {
91 handleHideColumns(e
) {
92 if(this.projectOpen
&& e
.currentTarget
.classList
.contains('hideColumns')) {
102 handleDisabledChange(isDisabled
){
107 handlePlatformRoleUpdate(data
){
108 let platform_role
= data
[0];
109 let checked
= data
[1];
110 let platformRoles
= this.platformRoles
;
111 platformRoles
[platform_role
] = checked
;
116 handleSelectedUser(event
) {
118 selectedUser
: JSON
.parse(event
.currentTarget
.value
)
122 handleSelectedRole(event
) {
124 selectedRole
: JSON
.parse(event
.currentTarget
.value
)
129 let description
= '';
132 'description' : description
136 this.setState(_
.merge( this.resetProject() ,
147 handleUpdateSelectedUser(user
) {
149 selectedUser
: JSON
.parse(user
)
154 let u
= JSON
.parse(this.selectedUser
);
155 let r
= this.selectedRole
;
156 let projectUsers
= this.projectUsers
;
157 console
.log('adding user')
159 'user-name': u
['user-name'],
160 'user-domain': u
['user-domain'],
167 this.setState({projectUsers
, selectedUser
: JSON
.stringify(null)})
169 handleToggleUserRoleInProject(data
) {
171 let {userIndex
, roleIndex
, checked
} = data
;
172 let projectUsers
= this.projectUsers
;
173 let selectedRole
= self
.roles
[roleIndex
];
175 if(!projectUsers
[userIndex
].role
) projectUsers
[userIndex
].role
= [];
176 projectUsers
[userIndex
].role
.push({
177 role
: self
.roles
[roleIndex
]
180 let role
= projectUsers
[userIndex
].role
;
181 let roleIndex
= _
.findIndex(role
, {role
:selectedRole
})
182 projectUsers
[userIndex
].role
.splice(roleIndex
, 1)
184 self
.setState({projectUsers
});
187 handleUpdateUserRoleInProject(data
) {
188 let {userIndex
, roleIndex
, value
} = data
;
189 let projectUsers
= this.projectUsers
;
190 projectUsers
[userIndex
].role
[roleIndex
].role
= value
;
193 addRoleToUserInProject(userIndex
) {
194 let projectUsers
= this.projectUsers
;
195 if(!projectUsers
[userIndex
].role
) {
196 projectUsers
[userIndex
].role
= [];
198 projectUsers
[userIndex
].role
.push({
205 handleRemoveRoleFromUserInProject (data
) {
206 let {userIndex
, roleIndex
} = data
;
207 let projectUsers
= this.projectUsers
;
208 projectUsers
[userIndex
].role
.splice(roleIndex
, 1);
213 handleRemoveUserFromProject (userIndex
) {
214 let projectUsers
= this.projectUsers
;
215 projectUsers
.splice(userIndex
, 1);
220 getProjectsSuccess(projects
) {
221 this.alt
.actions
.global
.hideScreenLoader
.defer();
222 this.setState({projects
: projects
});
224 getUsersSuccess(users
) {
226 this.alt
.actions
.global
.hideScreenLoader
.defer();
227 this.setState({users
});
229 updateProjectSuccess() {
230 this.alt
.actions
.global
.hideScreenLoader
.defer();
232 let projects
= this.projects
|| [];
233 projects
[this.activeIndex
] = {
234 'name': this['name'],
235 'description': this['description'],
237 'user': self
.projectUsers
246 deleteProjectSuccess() {
247 this.alt
.actions
.global
.hideScreenLoader
.defer();
248 let projects
= this.projects
;
249 projects
.splice(this.activeIndex
, 1);
250 this.setState({projects
, projectOpen
: false})
252 createProjectSuccess() {
253 this.alt
.actions
.global
.hideScreenLoader
.defer();
254 let projects
= this.projects
|| [];
256 'name': this['name'],
257 'description': this['description']
263 activeIndex
: projects
.length
- 1
266 this.setState(newState
);