From d93e6a996e60fb6abce9a870cef6b2d57bfa70fd Mon Sep 17 00:00:00 2001
From: Herbert Eiselt <herbert.eiselt@highstreet-technologies.com>
Date: Fri, 7 Jun 2019 17:40:50 +0200
Subject: SDNR Add missing status bar to ODLUX Framework

Modify framework and adapt all apps

Issue-ID: SDNC-789
Signed-off-by: Herbert Eiselt <herbert.eiselt@highstreet-technologies.com>
Change-Id: I1ea0a3df6c3f6db08f2bd7a21eb3b4cbf230a08a
Signed-off-by: Herbert Eiselt <herbert.eiselt@highstreet-technologies.com>
---
 .../apps/helpApp/src/components/helpStatus.tsx     | 63 ++++++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx

(limited to 'sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx')

diff --git a/sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx b/sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx
new file mode 100644
index 000000000..813fffd19
--- /dev/null
+++ b/sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx
@@ -0,0 +1,63 @@
+import * as React from 'react';
+
+import { withStyles, WithStyles, createStyles, Theme } from '@material-ui/core/styles';
+import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';  // select app icon
+
+import connect, { Connect } from '../../../../framework/src/flux/connect';
+import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore';
+
+import Typography from '@material-ui/core/Typography';
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import { faQuestionCircle } from '@fortawesome/free-solid-svg-icons';
+import { withRouter, RouteComponentProps } from 'react-router';
+
+const styles = (theme: Theme) => createStyles({
+  icon: {
+    marginLeft: 8,
+    marginRight: 8
+  },
+  disabled: {
+    color: theme.palette.grey[400]
+  },
+  link: {
+    cursor: "pointer",
+    '&:hover': {
+      textDecoration: "underline"
+    }
+  }
+});
+
+const mapProps = (state: IApplicationStoreState) => ({
+  appId: state.framework.applicationState.appId,
+  toc: state.help.toc
+});
+
+
+type HelpStatusComponentProps = & RouteComponentProps & WithStyles<typeof styles> & Connect<typeof mapProps>;
+
+class HelpStatusComponent extends React.Component<HelpStatusComponentProps> {
+  render() {
+    const { classes, history, toc, appId } = this.props;
+    const rootNode = toc && toc.find(t => t.id === "sdnr");
+    const helpNode = appId
+      ? rootNode && rootNode.nodes && rootNode.nodes.find(n => n.id === appId || n.id === appId+"App")
+      : rootNode;
+    return helpNode
+      ? (
+        <Typography variant="body1" color="inherit" className={classes.link} onClick={(event) => { event.stopPropagation(); history.push(`/help/${helpNode.uri}`) }} >
+          <FontAwesomeIcon className={classes.icon} icon={faQuestionCircle} />
+          Help
+        </Typography>
+      )
+      : (
+        <Typography variant="body1" className={classes.disabled}>
+          <FontAwesomeIcon className={classes.icon} icon={faQuestionCircle} />
+          Help
+        </Typography>
+      );
+  };
+
+}
+
+export const HelpStatus = withRouter(withStyles(styles)(connect(mapProps)(HelpStatusComponent)));
+export default HelpStatus;
\ No newline at end of file
-- 
cgit 1.2.3-korg

