diff --git a/frontend/src/js/component/wb-project-crumbs.js b/frontend/src/js/component/wb-project-crumbs.js index 41a74e1..d1c4652 100644 --- a/frontend/src/js/component/wb-project-crumbs.js +++ b/frontend/src/js/component/wb-project-crumbs.js @@ -5,10 +5,15 @@ import fetchProjectParents from 'fetch-project-parents'; class WBProjectCrumbs extends Component { constructor(...args) { super(...args); - this.state.items = []; + this.state.items = [ { 'name': 'All Projects' } ]; } fetchCrumbs() { + if (!this.props.uuid) { + this.setState({ 'items': [ { 'name': 'All Projects' } ] }); + return; + } + let { arvHost, arvToken } = this.props.appState; let prom = fetchProjectParents(arvHost, arvToken, this.props.uuid); prom = prom.then(parents => this.setState({ 'items': parents })); diff --git a/frontend/src/js/page/wb-app.js b/frontend/src/js/page/wb-app.js index 2a95d2e..85c1138 100644 --- a/frontend/src/js/page/wb-app.js +++ b/frontend/src/js/page/wb-app.js @@ -9,12 +9,14 @@ class WBApp extends Component { super(...args); this.state.arvHost = window.localStorage['arvHost']; this.state.arvToken = window.localStorage['arvToken']; + this.state.currentUser = JSON.parse(window.localStorage['currentUser']); this.appCallbacks = { - 'navbarItemClicked': this.navbarItemClicked + 'navbarItemClicked': item => this.navbarItemClicked(item) }; this.appState = { 'arvHost': this.state.arvHost, - 'arvToken': this.state.arvToken + 'arvToken': this.state.arvToken, + 'currentUser': this.state.currentUser }; } @@ -24,6 +26,13 @@ class WBApp extends Component { delete window.localStorage['arvToken']; delete window.localStorage['currentUser']; route('/sign-in'); + + } else if (item['id'] === 'home') { + route('/browse/' + this.appState.currentUser.uuid); + + } else if (item['id'] === 'all-projects') { + route('/browse'); + } } @@ -32,7 +41,7 @@ class WBApp extends Component { - + diff --git a/frontend/src/js/page/wb-sign-in.js b/frontend/src/js/page/wb-sign-in.js index a9ea513..cacc7f4 100644 --- a/frontend/src/js/page/wb-sign-in.js +++ b/frontend/src/js/page/wb-sign-in.js @@ -6,12 +6,16 @@ import makeArvadosRequest from 'make-arvados-request'; class WBSignIn extends Component { onSubmit() { + let { appState } = this.props; let { arvHost, arvToken } = this.state; - window.localStorage['arvHost'] = arvHost; - window.localStorage['arvToken'] = arvToken; let prom = makeArvadosRequest(arvHost, arvToken, '/arvados/v1/users/current'); prom = prom.then(xhr => { + window.localStorage['arvHost'] = arvHost; + window.localStorage['arvToken'] = arvToken; window.localStorage['currentUser'] = JSON.stringify(xhr.response); + appState.arvHost = arvHost; + appState.arvToken = arvToken; + appState.currentUser = xhr.response; route('/browse/' + xhr.response['uuid']); }); prom = prom.catch(() => {