// // Copyright (C) Stanislaw Adaszewski, 2020 // Contact: s.adaszewski@gmail.com // Website: https://adared.ch/wba // License: GNU Affero General Public License, Version 3 // import { h, Component } from 'preact'; import { Router, route } from 'preact-router'; import WBBrowse from 'wb-browse'; import WBSignIn from 'wb-sign-in'; import WBSignOut from 'wb-sign-out'; import WBLandingPage from 'wb-landing-page'; import WBProcessView from 'wb-process-view'; import WBContainerView from 'wb-container-view'; import WBCollectionView from 'wb-collection-view'; import WBCollectionBrowse from 'wb-collection-browse'; import WBUsersPage from 'wb-users-page'; import WBWorkflowView from 'wb-workflow-view'; import WBLaunchWorkflowPage from 'wb-launch-workflow-page'; import WBDownloadPage from 'wb-download-page'; import WBImageViewerPage from 'wb-image-viewer-page'; import WBSharingPage from 'wb-sharing-page'; import WBProjectView from 'wb-project-view'; import arvadosTypeName from 'arvados-type-name'; class WBApp extends Component { constructor(...args) { super(...args); this.state.arvHost = window.localStorage['arvHost']; this.state.arvToken = window.localStorage['arvToken']; if ('currentUser' in window.localStorage) this.state.currentUser = JSON.parse(window.localStorage['currentUser']); this.loadToolbox(); } navbarItemUrl(item) { if (item['id'] === 'sign-out') { return ('/sign-out'); } else if (item['id'] === 'home') { return ('/browse/' + this.state.currentUser.uuid); } else if (item['id'] === 'all-projects') { return ('/browse'); } else if (item['id'] === 'all-users') { return ('/users'); } else if (item['id'] === 'shared-with-me') { return ('/shared-with-me'); } else if (item['id'] === 'whatsnew') { return ('https://adared.ch/wba'); } } breadcrumbClicked(item) { let objectType = arvadosTypeName(item.uuid.split('-')[1]); if (objectType === 'user') route('/browse/' + item.uuid) else if (objectType === 'group' && item.group_class === 'project') route('/browse/' + item.uuid); else if (objectType === 'container_request') route('/process/' + item.uuid) } addToToolbox(uuid) { this.state.toolboxItems.push(uuid); window.localStorage['toolboxItems'] = JSON.stringify(this.state.toolboxItems); } clearToolbox() { this.state.toolboxItems = []; delete window.localStorage['toolboxItems']; } loadToolbox() { this.state.toolboxItems = ('toolboxItems' in window.localStorage) ? JSON.parse(window.localStorage['toolboxItems']) : []; } render() { return ( ); } } export default WBApp;