Update ODLUX
[ccsdk/features.git] / sdnr / wt / odlux / framework / src / views / frame.tsx
index 1c78dd2..278fbe1 100644 (file)
-/**\r
- * ============LICENSE_START========================================================================\r
- * ONAP : ccsdk feature sdnr wt odlux\r
- * =================================================================================================\r
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.\r
- * =================================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except\r
- * in compliance with the License. You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software distributed under the License\r
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\r
- * or implied. See the License for the specific language governing permissions and limitations under\r
- * the License.\r
- * ============LICENSE_END==========================================================================\r
- */\r
-import * as React from 'react';\r
-import { HashRouter as Router, Route, Redirect, Switch } from 'react-router-dom';\r
-\r
-import { withStyles, WithStyles, createStyles, Theme } from '@material-ui/core/styles';\r
-import { faHome, faAddressBook, faSignInAlt, faCog } from '@fortawesome/free-solid-svg-icons';\r
-\r
-import { SnackbarProvider } from 'notistack';\r
-import { ConfirmProvider } from 'material-ui-confirm';\r
-\r
-import AppFrame from '../components/routing/appFrame';\r
-import TitleBar from '../components/titleBar';\r
-import Menu from '../components/navigationMenu';\r
-import ErrorDisplay from '../components/errorDisplay';\r
-import SnackDisplay from '../components/material-ui/snackDisplay';\r
-\r
-import Home from '../views/home';\r
-import Login from '../views/login';\r
-import About from '../views/about';\r
-import Test from '../views/test';\r
-import UserSettings from '../views/settings';\r
-\r
-import applicationService from '../services/applicationManager';\r
-\r
-\r
-const styles = (theme: Theme) => createStyles({\r
-  root: {\r
-    flexGrow: 1,\r
-    height: '100%',\r
-    zIndex: 1,\r
-    overflow: 'hidden',\r
-    position: 'relative',\r
-    display: 'flex',\r
-  },\r
-  content: {\r
-    flexGrow: 1,\r
-    display: "flex",\r
-    flexDirection: "column",\r
-    backgroundColor: theme.palette.background.default,\r
-    padding: theme.spacing(3),\r
-    minWidth: 0, // So the Typography noWrap works\r
-  },\r
-  toolbar: theme.mixins.toolbar as any\r
-});\r
-\r
-\r
-\r
-type FrameProps = WithStyles<typeof styles>;\r
-\r
-class FrameComponent extends React.Component<FrameProps>{\r
-\r
-  render() {\r
-    const registrations = applicationService.applications;\r
-    const { classes } = this.props;\r
-    return (\r
-      <ConfirmProvider>\r
-        <SnackbarProvider maxSnack={3}>\r
-            <Router>\r
-            <div className={classes.root}>\r
-                <SnackDisplay />\r
-                <ErrorDisplay />\r
-                <TitleBar />\r
-                <Menu />\r
-                <main className={classes.content}>\r
-                {\r
-                    <div className={classes.toolbar} /> //needed for margins, don't remove!\r
-                }\r
-                <Switch>\r
-                    <Route exact path="/" component={() => (\r
-                      <AppFrame title={"Home"} icon={faHome} >\r
-                          <Home />\r
-                      </AppFrame>\r
-                    )} />\r
-                    <Route path="/about" component={() => (\r
-                      <AppFrame title={"About"} icon={faAddressBook} >\r
-                          <About />\r
-                      </AppFrame>\r
-                    )} />\r
-                    <Route path="/settings" component={() => (\r
-                      <AppFrame title={"Settings"} icon={faCog} >\r
-                          <UserSettings />\r
-                      </AppFrame>\r
-                    )} />\r
-                    {process.env.NODE_ENV === "development" ? <Route path="/test" component={() => (\r
-                      <AppFrame title={"Test"} icon={faAddressBook} >\r
-                          <Test />\r
-                      </AppFrame>\r
-                    )} /> : null}\r
-                    <Route path="/login" component={() => (\r
-                      <AppFrame title={"Login"} icon={faSignInAlt} >\r
-                          <Login />\r
-                      </AppFrame>\r
-                      )} />\r
-                    { Object.keys(registrations).map(p => {\r
-                      const application = registrations[p];\r
-                      return (<Route key={application.name} path={application.path || `/${application.name}`} component={() => (\r
-                          <AppFrame title={application.title || (typeof application.menuEntry === 'string' && application.menuEntry) || application.name} icon={application.icon} appId={application.name} >\r
-                          <application.rootComponent />\r
-                          </AppFrame>\r
-                      )} />)\r
-                    })}\r
-                    <Redirect to="/" />\r
-                </Switch>\r
-                </main>\r
-            </div>\r
-            </Router>\r
-        </SnackbarProvider>\r
-      </ConfirmProvider>  \r
-    );\r
-  }\r
-}\r
-\r
-export const Frame = withStyles(styles)(FrameComponent);\r
-export default Frame;\r
+/**
+ * ============LICENSE_START========================================================================
+ * ONAP : ccsdk feature sdnr wt odlux
+ * =================================================================================================
+ * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
+ * =================================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ * ============LICENSE_END==========================================================================
+ */
+import * as React from 'react';
+import { HashRouter as Router, Route, Redirect, Switch } from 'react-router-dom';
+
+import { Theme } from '@mui/material/styles';
+import { WithStyles } from '@mui/styles';
+import withStyles from '@mui/styles/withStyles';
+import createStyles from '@mui/styles/createStyles';
+import { faHome, faAddressBook, faSignInAlt, faCog } from '@fortawesome/free-solid-svg-icons';
+
+import { SnackbarProvider } from 'notistack';
+import { ConfirmProvider } from 'material-ui-confirm';
+
+import AppFrame from '../components/routing/appFrame';
+import TitleBar from '../components/titleBar';
+import Menu from '../components/navigationMenu';
+import ErrorDisplay from '../components/errorDisplay';
+import SnackDisplay from '../components/material-ui/snackDisplay';
+
+import Home from '../views/home';
+import Login from '../views/login';
+import About from '../views/about';
+import Test from '../views/test';
+import UserSettings from '../views/settings';
+
+import applicationService from '../services/applicationManager';
+
+
+const styles = (theme: Theme) => createStyles({
+  root: {
+    flexGrow: 1,
+    height: '100%',
+    zIndex: 1,
+    overflow: 'hidden',
+    position: 'relative',
+    display: 'flex',
+  },
+  content: {
+    flexGrow: 1,
+    display: "flex",
+    flexDirection: "column",
+    backgroundColor: '#fafafa',
+    padding: theme.spacing(3),
+    minWidth: 0, // So the Typography noWrap works
+  },
+  toolbar: theme.mixins.toolbar as any
+});
+
+
+
+type FrameProps = WithStyles<typeof styles>;
+
+class FrameComponent extends React.Component<FrameProps>{
+
+  render() {
+    const registrations = applicationService.applications;
+    const { classes } = this.props;
+    return (
+      <ConfirmProvider>
+        <SnackbarProvider maxSnack={3}>
+            <Router>
+            <div className={classes.root}>
+                <SnackDisplay />
+                <ErrorDisplay />
+                <TitleBar />
+                <Menu />
+                <main className={classes.content}>
+                {
+                    <div className={classes.toolbar} /> //needed for margins, don't remove!
+                }
+                <Switch>
+                    <Route exact path="/" component={() => (
+                      <AppFrame title={"Home"} icon={faHome} >
+                          <Home />
+                      </AppFrame>
+                    )} />
+                    <Route path="/about" component={() => (
+                      <AppFrame title={"About"} icon={faAddressBook} >
+                          <About />
+                      </AppFrame>
+                    )} />
+                    <Route path="/settings" component={() => (
+                      <AppFrame title={"Settings"} icon={faCog} >
+                          <UserSettings />
+                      </AppFrame>
+                    )} />
+                    {process.env.NODE_ENV === "development" ? <Route path="/test" component={() => (
+                      <AppFrame title={"Test"} icon={faAddressBook} >
+                          <Test />
+                      </AppFrame>
+                    )} /> : null}
+                    <Route path="/login" component={() => (
+                      <AppFrame title={"Login"} icon={faSignInAlt} >
+                          <Login />
+                      </AppFrame>
+                      )} />
+                    { Object.keys(registrations).map(p => {
+                      const application = registrations[p];
+                      return (<Route key={application.name} path={application.path || `/${application.name}`} component={() => (
+                          <AppFrame title={application.title || (typeof application.menuEntry === 'string' && application.menuEntry) || application.name} icon={application.icon} appId={application.name} >
+                          <application.rootComponent />
+                          </AppFrame>
+                      )} />)
+                    })}
+                    <Redirect to="/" />
+                </Switch>
+                </main>
+            </div>
+            </Router>
+        </SnackbarProvider>
+      </ConfirmProvider>  
+    );
+  }
+}
+
+export const Frame = withStyles(styles)(FrameComponent);
+export default Frame;