15064: Send user home for multi-site search.
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 13 May 2019 20:15:47 +0000 (16:15 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 13 May 2019 20:30:35 +0000 (16:30 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

src/views/search-results-panel/search-results-panel-view.tsx
src/views/search-results-panel/search-results-panel.tsx

index 06312799c5cf653faddd80533a6e6cc8e1899696..df6a7e8c1ef0b2957715e2c40c4ab53203c2714c 100644 (file)
@@ -41,6 +41,7 @@ export interface SearchResultsPanelDataProps {
     user: User;
     sessions: Session[];
     remoteHostsConfig: { [key: string]: Config };
+    localCluster: string;
 }
 
 export interface SearchResultsPanelActionProps {
@@ -118,6 +119,7 @@ export const searchResultsPanelColumns: DataColumns<string> = [
 ];
 
 export const SearchResultsPanelView = (props: SearchResultsPanelProps) => {
+    const homeCluster = props.user.uuid.substr(0, 5);
     return <DataExplorer
         id={SEARCH_RESULTS_PANEL_ID}
         onRowClick={props.onItemClick}
@@ -125,6 +127,10 @@ export const SearchResultsPanelView = (props: SearchResultsPanelProps) => {
         onContextMenu={props.onContextMenu}
         contextMenuColumn={true}
         hideSearchInput
-        header={<p>Searching {props.sessions.filter((ss) => ss.loggedIn).map((ss) => <span key={ss.clusterId}> {ss.clusterId}</span>)}
-        </p>} />;
+        header={
+            props.localCluster === homeCluster ?
+                <p>Searching clusters: {props.sessions.filter((ss) => ss.loggedIn).map((ss) => <span key={ss.clusterId}> {ss.clusterId}</span>)}</p> :
+                <p>Searching local cluster {props.localCluster} only.  To search multiple clusters, <a href={props.remoteHostsConfig[homeCluster] && props.remoteHostsConfig[homeCluster].workbench2Url}> start from your home Workbench.</a></p>
+        }
+    />;
 };
index 8fa0828bec7d33662a68cd92f3c8dab83f8406b2..bde7207a8a8b19f156ba6b87b57d6092d8193060 100644 (file)
@@ -16,7 +16,8 @@ const mapStateToProps = (rootState: RootState) => {
     return {
         user: rootState.auth.user,
         sessions: rootState.auth.sessions,
-        remoteHostsConfig: rootState.auth.remoteHostsConfig
+        remoteHostsConfig: rootState.auth.remoteHostsConfig,
+        localCluster: rootState.auth.localCluster,
     };
 };