13936: Embed InactivePageHTML on inactive panel
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Fri, 25 Oct 2019 20:41:12 +0000 (16:41 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Fri, 25 Oct 2019 20:41:31 +0000 (16:41 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

src/common/config.ts
src/views/inactive-panel/inactive-panel.tsx

index 1f668292c32c3a5abfbdefee99dd2b3a7ecee441..8f182324afc008944c68b278ea9f5c420283b537 100644 (file)
@@ -45,6 +45,7 @@ export interface ClusterConfigJSON {
         VocabularyURL: string;
         FileViewersConfigURL: string;
         WelcomePageHTML: string;
+        InactivePageHTML: string;
     };
 }
 
@@ -143,6 +144,7 @@ export const mockClusterConfigJSON = (config: Partial<ClusterConfigJSON>): Clust
         VocabularyURL: "",
         FileViewersConfigURL: "",
         WelcomePageHTML: "",
+        InactivePageHTML: "",
     },
     ...config
 });
index 8d53a21ecaa060fd659d6c92ac7d9e4f83e6b692..91b4a51df8c41b150613077c277d7406b3226f7a 100644 (file)
@@ -9,7 +9,7 @@ import { Grid, Typography, Button } from '@material-ui/core';
 import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
 import { ArvadosTheme } from '~/common/custom-theme';
 import { navigateToLinkAccount } from '~/store/navigation/navigation-action';
-
+import { RootState } from '~/store/store';
 
 type CssRules = 'root' | 'ontop' | 'title';
 
@@ -47,31 +47,32 @@ const mapDispatchToProps = (dispatch: Dispatch): InactivePanelActionProps => ({
     }
 });
 
-type InactivePanelProps =  WithStyles<CssRules> & InactivePanelActionProps;
+export interface InactivePanelStateProps {
+    inactivePageText: string;
+}
+
+type InactivePanelProps = WithStyles<CssRules> & InactivePanelActionProps & InactivePanelStateProps;
 
-export const InactivePanel = connect(null, mapDispatchToProps)(withStyles(styles)((({ classes, startLinking }: InactivePanelProps) =>
-        <Grid container justify="center" alignItems="center" direction="column" spacing={24}
-            className={classes.root}
-            style={{ marginTop: 56, height: "100%" }}>
-            <Grid item>
-                <Typography variant='h6' align="center" className={classes.title}>
-                    Hi! You're logged in, but...
-                </Typography>
-            </Grid>
-            <Grid item>
-                <Typography align="center">
-                    Your account is inactive. An administrator must activate your account before you can get any further.
-                </Typography>
-            </Grid>
-            <Grid item>
-                <Typography align="center">
-                    If you would like to use this login to access another account click "Link Account".
-                </Typography>
-            </Grid>
-            <Grid item>
-                <Button className={classes.ontop} color="primary" variant="contained" onClick={() => startLinking()}>
-                    Link Account
-                </Button>
-            </Grid>
-        </Grid >
-    )));
+export const InactivePanel = connect((state: RootState) => ({
+    inactivePageText: state.config.clusterConfig.Workbench.InactivePageHTML
+}), mapDispatchToProps)(withStyles(styles)((({ classes, startLinking, inactivePageText }: InactivePanelProps) =>
+    <Grid container justify="center" alignItems="center" direction="column" spacing={24}
+        className={classes.root}
+        style={{ marginTop: 56, height: "100%" }}>
+        <Grid item>
+            <Typography>
+                <div dangerouslySetInnerHTML={{ __html: inactivePageText }} style={{ margin: "1em" }} />
+            </Typography>
+        </Grid>
+        <Grid item>
+            <Typography align="center">
+                If you would like to use this login to access another account click "Link Account".
+           </Typography>
+        </Grid>
+        <Grid item>
+            <Button className={classes.ontop} color="primary" variant="contained" onClick={() => startLinking()}>
+                Link Account
+           </Button>
+        </Grid>
+    </Grid >
+)));