13936: Use Workbench.SiteName for the upper left banner
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 28 Oct 2019 15:19:23 +0000 (11:19 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 28 Oct 2019 15:19:23 +0000 (11:19 -0400)
src/common/config.ts
src/views-components/main-app-bar/main-app-bar.tsx
src/views/main-panel/main-panel-root.tsx
src/views/main-panel/main-panel.tsx

index 8f182324afc008944c68b278ea9f5c420283b537..40ba801266bb8e484e903cf4c2c0b768ecc1c0ab 100644 (file)
@@ -46,6 +46,7 @@ export interface ClusterConfigJSON {
         FileViewersConfigURL: string;
         WelcomePageHTML: string;
         InactivePageHTML: string;
+        SiteName: string;
     };
 }
 
@@ -145,6 +146,7 @@ export const mockClusterConfigJSON = (config: Partial<ClusterConfigJSON>): Clust
         FileViewersConfigURL: "",
         WelcomePageHTML: "",
         InactivePageHTML: "",
+        SiteName: "",
     },
     ...config
 });
index 475b29e1254f1ffcb0cdc6d720e30074bc5c4515..ce1cab4ca01b0b985554d0134ad6dcb3a5ef48b2 100644 (file)
@@ -32,6 +32,7 @@ interface MainAppBarDataProps {
     buildInfo?: string;
     children?: ReactNode;
     uuidPrefix: string;
+    siteBanner: string;
 }
 
 export type MainAppBarProps = MainAppBarDataProps & WithStyles<CssRules>;
@@ -44,7 +45,7 @@ export const MainAppBar = withStyles(styles)(
                     <Grid container item xs={3} direction="column" justify="center">
                         <Typography variant='h6' color="inherit" noWrap>
                             <Link to={Routes.ROOT} className={props.classes.link}>
-                                arvados workbench ({props.uuidPrefix})
+                                <span dangerouslySetInnerHTML={{ __html: props.siteBanner }} /> ({props.uuidPrefix})
                             </Link>
                         </Typography>
                         <Typography variant="caption" color="inherit">{props.buildInfo}</Typography>
index 16fc7a1f05a41d5bd4604ce0943eb605da2a0670..e7daaf00932f0a0c8080946b22f340e2114870f9 100644 (file)
@@ -30,23 +30,26 @@ export interface MainPanelRootDataProps {
     uuidPrefix: string;
     isNotLinking: boolean;
     isLinkingPath: boolean;
+    siteBanner: string;
 }
 
 type MainPanelRootProps = MainPanelRootDataProps & WithStyles<CssRules>;
 
 export const MainPanelRoot = withStyles(styles)(
-    ({ classes, loading, working, user, buildInfo, uuidPrefix, isNotLinking, isLinkingPath }: MainPanelRootProps) =>
+    ({ classes, loading, working, user, buildInfo, uuidPrefix,
+        isNotLinking, isLinkingPath, siteBanner }: MainPanelRootProps) =>
         loading
             ? <WorkbenchLoadingScreen />
             : <>
-               isNotLinking && <MainAppBar
+                {isNotLinking && <MainAppBar
                     user={user}
                     buildInfo={buildInfo}
-                    uuidPrefix={uuidPrefix}>
+                    uuidPrefix={uuidPrefix}
+                    siteBanner={siteBanner}>
                     {working ? <LinearProgress color="secondary" /> : null}
-               </MainAppBar> }
+                </MainAppBar>}
                 <Grid container direction="column" className={classes.root}>
-                    { user ? (user.isActive || (!user.isActive && isLinkingPath) ? <WorkbenchPanel isNotLinking={isNotLinking} isUserActive={user.isActive} /> : <InactivePanel />) : <LoginPanel /> }
+                    {user ? (user.isActive || (!user.isActive && isLinkingPath) ? <WorkbenchPanel isNotLinking={isNotLinking} isUserActive={user.isActive} /> : <InactivePanel />) : <LoginPanel />}
                 </Grid>
             </>
 );
index 5bf03da3986afbe73c8999c43cd119f438652785..dab4533fa306107b89bd6f28aabb22565e826c6b 100644 (file)
@@ -18,7 +18,8 @@ const mapStateToProps = (state: RootState): MainPanelRootDataProps => {
         buildInfo: state.appInfo.buildInfo,
         uuidPrefix: state.auth.localCluster,
         isNotLinking: state.linkAccountPanel.status === LinkAccountPanelStatus.NONE || state.linkAccountPanel.status === LinkAccountPanelStatus.INITIAL,
-        isLinkingPath:  state.router.location ? matchLinkAccountRoute(state.router.location.pathname) !== null : false
+        isLinkingPath: state.router.location ? matchLinkAccountRoute(state.router.location.pathname) !== null : false,
+        siteBanner: state.config.clusterConfig.Workbench.SiteName
     };
 };