From: Michal Klobukowski Date: Thu, 14 Jun 2018 07:32:36 +0000 (+0200) Subject: Merge master branch X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/a884c545e3edad2cc2ac1210fc3148f922c155dc Merge master branch Feature #13590 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- a884c545e3edad2cc2ac1210fc3148f922c155dc diff --cc src/components/api-token/api-token.tsx index b6616d38bf,d63f6e0733..7656bf8733 --- a/src/components/api-token/api-token.tsx +++ b/src/components/api-token/api-token.tsx @@@ -23,11 -23,13 +23,13 @@@ class ApiToken extends React.Component< const search = this.props.location ? this.props.location.search : ""; const apiToken = ApiToken.getUrlParameter(search, 'api_token'); this.props.dispatch(authActions.SAVE_API_TOKEN(apiToken)); - this.props.dispatch(authService.getUserDetails()); - this.props.dispatch(projectService.getProjectList()); + this.props.dispatch(authService.getUserDetails()).then(() => { + const rootUuid = authService.getRootUuid(); + this.props.dispatch(projectService.getProjectList(rootUuid)); + }); } render() { - return + return ; } } diff --cc src/services/auth-service/auth-service.ts index 4e5013807f,07e0ff0913..5878dc6ed5 --- a/src/services/auth-service/auth-service.ts +++ b/src/services/auth-service/auth-service.ts @@@ -71,7 -86,11 +86,11 @@@ export default class AuthService .then(resp => { dispatch(actions.USER_DETAILS_SUCCESS(resp.data)); }); - // .catch(err => { - // }); - }; ++ } + + public getRootUuid() { + const uuid = this.getOwnerUuid(); + const uuidParts = uuid ? uuid.split('-') : []; + return uuidParts.length > 1 ? `${uuidParts[0]}-${uuidParts[1]}` : undefined; } } diff --cc src/services/project-service/project-service.ts index 939799d2dd,e1e490bbbb..dbc0f9277e --- a/src/services/project-service/project-service.ts +++ b/src/services/project-service/project-service.ts @@@ -35,23 -35,26 +35,26 @@@ interface GroupsResponse export default class ProjectService { public getProjectList = (parentUuid?: string) => (dispatch: Dispatch): Promise => { dispatch(actions.PROJECTS_REQUEST()); - - const ub = new UrlBuilder('/groups'); - const fb = new FilterBuilder(); - fb.addEqual(FilterField.OWNER_UUID, parentUuid); - const url = ub.addParam('filters', fb.get()).get(); - - return serverApi.get(url).then(groups => { - const projects = groups.data.items.map(g => ({ - name: g.name, - createdAt: g.created_at, - modifiedAt: g.modified_at, - href: g.href, - uuid: g.uuid, - ownerUuid: g.owner_uuid - } as Project)); - dispatch(actions.PROJECTS_SUCCESS({projects, parentItemId: parentUuid})); - return projects; - }); + if (parentUuid) { + const fb = new FilterBuilder(); + fb.addLike(FilterField.OWNER_UUID, parentUuid); + return serverApi.get('/groups', { params: { + filters: fb.get() + }}).then(groups => { + const projects = groups.data.items.map(g => ({ + name: g.name, + createdAt: g.created_at, + modifiedAt: g.modified_at, + href: g.href, + uuid: g.uuid, + ownerUuid: g.owner_uuid + } as Project)); + dispatch(actions.PROJECTS_SUCCESS({projects, parentItemId: parentUuid})); + return projects; + }); + } else { + dispatch(actions.PROJECTS_SUCCESS({projects: [], parentItemId: parentUuid})); + return Promise.resolve([]); + } - }; + } }