From: Peter Amstutz Date: Mon, 13 May 2019 20:10:05 +0000 (-0400) Subject: 15064: Tell users which clusters are being searched. X-Git-Tag: 1.4.0~10^2~3 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/59000cfd2934a50da18b5e70fd14f12abd020eb7 15064: Tell users which clusters are being searched. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/src/components/data-explorer/data-explorer.tsx b/src/components/data-explorer/data-explorer.tsx index 7c1f9045..9f727049 100644 --- a/src/components/data-explorer/data-explorer.tsx +++ b/src/components/data-explorer/data-explorer.tsx @@ -50,6 +50,7 @@ interface DataExplorerDataProps { paperProps?: PaperProps; actions?: React.ReactNode; hideSearchInput?: boolean; + header?: React.ReactNode; paperKey?: string; currentItemUuid: string; } @@ -84,11 +85,12 @@ export const DataExplorer = withStyles(styles)( rowsPerPage, rowsPerPageOptions, onColumnToggle, searchValue, onSearch, items, itemsAvailable, onRowClick, onRowDoubleClick, classes, dataTableDefaultView, hideColumnSelector, actions, paperProps, hideSearchInput, - paperKey, fetchMode, currentItemUuid + paperKey, fetchMode, currentItemUuid, header } = this.props; return {(!hideColumnSelector || !hideSearchInput) && + {header &&
{header}
}
{!hideSearchInput && (), @@ -58,8 +59,15 @@ export const initAuth = (config: Config) => (dispatch: Dispatch, getState: () => dispatch(initSessions(services.authService, config, user)); dispatch(getUserDetails()).then((user: User) => { dispatch(authActions.INIT({ user, token })); - }).catch(() => { - logout()(dispatch, getState, services); + }).catch((err: AxiosError) => { + console.log("error"); + console.log(err); + if (err.response) { + // Bad token + if (err.response.status === 401) { + logout()(dispatch, getState, services); + } + } }); } Object.keys(config.remoteHosts).map((k) => { diff --git a/src/views/search-results-panel/search-results-panel-view.tsx b/src/views/search-results-panel/search-results-panel-view.tsx index 368a0d64..06312799 100644 --- a/src/views/search-results-panel/search-results-panel-view.tsx +++ b/src/views/search-results-panel/search-results-panel-view.tsx @@ -21,6 +21,9 @@ import { } from '~/views-components/data-explorer/renderers'; import { createTree } from '~/models/tree'; import { getInitialResourceTypeFilters } from '~/store/resource-type-filters/resource-type-filters'; +import { User } from "~/models/user"; +import { Config } from '~/common/config'; +import { Session } from "~/models/session"; export enum SearchResultsPanelColumnNames { CLUSTER = "Cluster", @@ -35,6 +38,9 @@ export enum SearchResultsPanelColumnNames { export interface SearchResultsPanelDataProps { data: SearchBarAdvanceFormData; + user: User; + sessions: Session[]; + remoteHostsConfig: { [key: string]: Config }; } export interface SearchResultsPanelActionProps { @@ -118,5 +124,7 @@ export const SearchResultsPanelView = (props: SearchResultsPanelProps) => { onRowDoubleClick={props.onItemDoubleClick} onContextMenu={props.onContextMenu} contextMenuColumn={true} - hideSearchInput />; + hideSearchInput + header={

Searching {props.sessions.filter((ss) => ss.loggedIn).map((ss) => {ss.clusterId})} +

} />; }; diff --git a/src/views/search-results-panel/search-results-panel.tsx b/src/views/search-results-panel/search-results-panel.tsx index 65999a5c..8fa0828b 100644 --- a/src/views/search-results-panel/search-results-panel.tsx +++ b/src/views/search-results-panel/search-results-panel.tsx @@ -10,6 +10,15 @@ import { openContextMenu, resourceKindToContextMenuKind } from '~/store/context- import { ResourceKind } from '~/models/resource'; import { loadDetailsPanel } from '~/store/details-panel/details-panel-action'; import { SearchResultsPanelView } from '~/views/search-results-panel/search-results-panel-view'; +import { RootState } from '~/store/store'; + +const mapStateToProps = (rootState: RootState) => { + return { + user: rootState.auth.user, + sessions: rootState.auth.sessions, + remoteHostsConfig: rootState.auth.remoteHostsConfig + }; +}; const mapDispatchToProps = (dispatch: Dispatch): SearchResultsPanelActionProps => ({ onContextMenu: (event, resourceUuid) => { @@ -34,4 +43,4 @@ const mapDispatchToProps = (dispatch: Dispatch): SearchResultsPanelActionProps = } }); -export const SearchResultsPanel = connect(null, mapDispatchToProps)(SearchResultsPanelView); \ No newline at end of file +export const SearchResultsPanel = connect(mapStateToProps, mapDispatchToProps)(SearchResultsPanelView);