summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/helpApp/src
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/apps/helpApp/src')
-rw-r--r--sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx63
-rw-r--r--sdnr/wt/odlux/apps/helpApp/src/index.html14
-rw-r--r--sdnr/wt/odlux/apps/helpApp/src/models/tocNode.ts3
-rw-r--r--sdnr/wt/odlux/apps/helpApp/src/plugin.tsx2
-rw-r--r--sdnr/wt/odlux/apps/helpApp/src/services/helpService.ts1
5 files changed, 77 insertions, 6 deletions
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
diff --git a/sdnr/wt/odlux/apps/helpApp/src/index.html b/sdnr/wt/odlux/apps/helpApp/src/index.html
index 6865db051..e76109fd8 100644
--- a/sdnr/wt/odlux/apps/helpApp/src/index.html
+++ b/sdnr/wt/odlux/apps/helpApp/src/index.html
@@ -14,11 +14,15 @@
<script type="text/javascript" src="./require.js"></script>
<script type="text/javascript" src="./config.js"></script>
<script>
- // run the application
- require(["app", "helpApp"], function (app, helpApp) {
- helpApp.register();
- app("./app.tsx").runApplication();
- });
+ // run the application
+ require(["app", "connectApp", "faultApp", "maintenanceApp", "configurationApp", "helpApp"], function (app, connectApp, faultApp, maintenanceApp, configurationApp, helpApp) {
+ connectApp.register();
+ faultApp.register();
+ configurationApp.register();
+ maintenanceApp.register();
+ helpApp.register();
+ app("./app.tsx").runApplication();
+ });
</script>
</body>
diff --git a/sdnr/wt/odlux/apps/helpApp/src/models/tocNode.ts b/sdnr/wt/odlux/apps/helpApp/src/models/tocNode.ts
index ae73ec43d..ddb5e729e 100644
--- a/sdnr/wt/odlux/apps/helpApp/src/models/tocNode.ts
+++ b/sdnr/wt/odlux/apps/helpApp/src/models/tocNode.ts
@@ -5,7 +5,7 @@ export type VersionInfo = {
}
export type TocNode = {
- label: string;
+ label: string;
versions: {
[versionKey: string]: VersionInfo,
current: VersionInfo
@@ -17,6 +17,7 @@ export type TocNodeCollection = { [tocNodeKey: string]: TocNode };
export type TocTreeNode = {
+ id: string;
label: string;
uri: string;
nodes?: TocTreeNode[];
diff --git a/sdnr/wt/odlux/apps/helpApp/src/plugin.tsx b/sdnr/wt/odlux/apps/helpApp/src/plugin.tsx
index f871ab9d9..94f65b870 100644
--- a/sdnr/wt/odlux/apps/helpApp/src/plugin.tsx
+++ b/sdnr/wt/odlux/apps/helpApp/src/plugin.tsx
@@ -14,6 +14,7 @@ import { helpAppRootHandler } from './handlers/helpAppRootHandler';
import { HelpApplication } from './views/helpApplication';
import { SubMenuEntry } from "./components/subMenuEntry";
+import { HelpStatus } from "./components/helpStatus";
import '!style-loader!css-loader!highlight.js/styles/default.css';
@@ -58,6 +59,7 @@ export async function register() {
icon: faFirstAid,
rootComponent: App,
rootActionHandler: helpAppRootHandler,
+ statusBarElement: HelpStatus,
menuEntry: "Help",
subMenuEntry: SubMenuEntry
});
diff --git a/sdnr/wt/odlux/apps/helpApp/src/services/helpService.ts b/sdnr/wt/odlux/apps/helpApp/src/services/helpService.ts
index 800e0b47f..aa0b0ed43 100644
--- a/sdnr/wt/odlux/apps/helpApp/src/services/helpService.ts
+++ b/sdnr/wt/odlux/apps/helpApp/src/services/helpService.ts
@@ -29,6 +29,7 @@ class HelpService {
return Object.keys(col).reduce <TocTreeNode[]>((acc, key) => {
const current = col[key];
acc.push({
+ id: key,
label: current.label,
uri: current.versions.current.path,
nodes: current.nodes && mapNodesCollection(current.nodes) || undefined