mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge pull request #962 from sinthuja/application-mgt
Adding more cleanup to the code.
This commit is contained in:
commit
812033642a
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
@ -0,0 +1,40 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="theme-color" content="#000000">
|
||||||
|
<!--
|
||||||
|
manifest.json provides metadata used when your web app is added to the
|
||||||
|
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
|
||||||
|
-->
|
||||||
|
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
|
||||||
|
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
|
||||||
|
<!--
|
||||||
|
Notice the use of %PUBLIC_URL% in the tags above.
|
||||||
|
It will be replaced with the URL of the `public` folder during the build.
|
||||||
|
Only files inside the `public` folder can be referenced from the HTML.
|
||||||
|
|
||||||
|
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||||
|
work correctly both with client-side routing and a non-root public URL.
|
||||||
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
|
-->
|
||||||
|
<title>React App</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<noscript>
|
||||||
|
You need to enable JavaScript to run this app.
|
||||||
|
</noscript>
|
||||||
|
<div id="root"></div>
|
||||||
|
<!--
|
||||||
|
This HTML file is a template.
|
||||||
|
If you open it directly in the browser, you will see an empty page.
|
||||||
|
|
||||||
|
You can add webfonts, meta tags, or analytics to this file.
|
||||||
|
The build step will place the bundled scripts into the <body> tag.
|
||||||
|
|
||||||
|
To begin the development, run `npm start` or `yarn start`.
|
||||||
|
To create a production bundle, use `npm run build` or `yarn build`.
|
||||||
|
-->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"short_name": "React App",
|
||||||
|
"name": "Create React App Sample",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "favicon.ico",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start_url": "./index.html",
|
||||||
|
"display": "standalone",
|
||||||
|
"theme_color": "#000000",
|
||||||
|
"background_color": "#ffffff"
|
||||||
|
}
|
||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
import React, {Component} from 'react';
|
import React, {Component} from 'react';
|
||||||
import createHistory from 'history/createBrowserHistory';
|
import createHistory from 'history/createBrowserHistory';
|
||||||
import {BrowserRouter as Router, Redirect, Route, Switch} from 'react-router-dom'
|
import {BrowserRouter as Router, Route, Switch} from 'react-router-dom'
|
||||||
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
|
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
|
||||||
import getMuiTheme from 'material-ui/styles/getMuiTheme';
|
import getMuiTheme from 'material-ui/styles/getMuiTheme';
|
||||||
import Login from './components/Login';
|
import Login from './components/Login';
|
||||||
@ -36,9 +36,6 @@ let muiTheme = null;
|
|||||||
if (theme.current === "default") {
|
if (theme.current === "default") {
|
||||||
let defaultTheme = require("material-ui/styles/baseThemes/" + theme.default);
|
let defaultTheme = require("material-ui/styles/baseThemes/" + theme.default);
|
||||||
muiTheme = getMuiTheme(defaultTheme.default);
|
muiTheme = getMuiTheme(defaultTheme.default);
|
||||||
} else {
|
|
||||||
let customTheme = require("./themes/" + theme.custom);
|
|
||||||
muiTheme = getMuiTheme(customTheme.default);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -55,17 +52,10 @@ if (theme.current === "default") {
|
|||||||
* not want to serve the URL.
|
* not want to serve the URL.
|
||||||
* */
|
* */
|
||||||
class Base extends Component {
|
class Base extends Component {
|
||||||
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
this.state = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
this.setState();
|
|
||||||
return (
|
return (
|
||||||
<div className="container">
|
<div className="container">
|
||||||
<BaseLayout state={this.state}>
|
<BaseLayout state={this.props.state} updateState={this.props.updateState}>
|
||||||
<Switch>
|
<Switch>
|
||||||
<Route component={NotFound}/>
|
<Route component={NotFound}/>
|
||||||
</Switch>
|
</Switch>
|
||||||
@ -73,15 +63,11 @@ class Base extends Component {
|
|||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
setState() {
|
Base.propTypes = {
|
||||||
if (this.props.location.state){
|
updateState: React.PropTypes.func.isRequired
|
||||||
this.state = this.props.location.state;
|
};
|
||||||
} else {
|
|
||||||
this.state = {};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component is referred by the index.js to initiate the application.
|
* This component is referred by the index.js to initiate the application.
|
||||||
@ -93,6 +79,11 @@ class Store extends Component {
|
|||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
if (!this.state) {
|
||||||
|
this.state = {};
|
||||||
|
this.state.store = {};
|
||||||
|
}
|
||||||
|
this.updateState = this.updateState.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@ -101,15 +92,22 @@ class Store extends Component {
|
|||||||
<MuiThemeProvider muiTheme={muiTheme}>
|
<MuiThemeProvider muiTheme={muiTheme}>
|
||||||
<Router basename="store" history={history}>
|
<Router basename="store" history={history}>
|
||||||
<Switch>
|
<Switch>
|
||||||
<Route path="/login" component={Login}/>
|
<Route path="/login"
|
||||||
<Route path="/logout" component={Login}/>
|
render={routeProps => <Login {...routeProps} updateState={this.updateState} state={this.state}/>}/>
|
||||||
<Route component={Base}/>
|
<Route path="/logout"
|
||||||
|
render={routeProps => <Base {...routeProps} updateState={this.updateState} state={this.state}/>}/>
|
||||||
|
<Route
|
||||||
|
render={routeProps => <Base {...routeProps} updateState={this.updateState} state={this.state}/>}/>
|
||||||
</Switch>
|
</Switch>
|
||||||
</Router>
|
</Router>
|
||||||
</MuiThemeProvider>
|
</MuiThemeProvider>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateState(data) {
|
||||||
|
this.setState(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Store;
|
export default Store;
|
||||||
|
|||||||
@ -26,7 +26,7 @@ import {List, ListItem} from 'material-ui/List';
|
|||||||
import Apps from 'material-ui/svg-icons/navigation/apps';
|
import Apps from 'material-ui/svg-icons/navigation/apps';
|
||||||
import NotificationsIcon from 'material-ui/svg-icons/social/notifications';
|
import NotificationsIcon from 'material-ui/svg-icons/social/notifications';
|
||||||
import ActionAccountCircle from 'material-ui/svg-icons/action/account-circle';
|
import ActionAccountCircle from 'material-ui/svg-icons/action/account-circle';
|
||||||
import { Link } from 'react-router-dom';
|
import {Link, withRouter} from 'react-router-dom';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base Layout:
|
* Base Layout:
|
||||||
@ -36,15 +36,6 @@ import { Link } from 'react-router-dom';
|
|||||||
* */
|
* */
|
||||||
class BaseLayout extends Component {
|
class BaseLayout extends Component {
|
||||||
|
|
||||||
constructor(props) {
|
|
||||||
super(props);
|
|
||||||
this.state = this.props.state;
|
|
||||||
}
|
|
||||||
|
|
||||||
componentWillMount() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
handleApplicationClick() {
|
handleApplicationClick() {
|
||||||
this.handleHistory('/assets/apps');
|
this.handleHistory('/assets/apps');
|
||||||
}
|
}
|
||||||
@ -59,9 +50,9 @@ class BaseLayout extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleUserLogin() {
|
handleUserLogin() {
|
||||||
if (this.state.user) {
|
if (this.props.state.store.user) {
|
||||||
return (
|
return (
|
||||||
<IconButton tooltip={this.state.user}>
|
<IconButton tooltip={this.props.state.store.user}>
|
||||||
<ActionAccountCircle/>
|
<ActionAccountCircle/>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
);
|
);
|
||||||
@ -73,10 +64,10 @@ class BaseLayout extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleNotification() {
|
handleNotification() {
|
||||||
if (this.state.user) {
|
if (this.props.state.store.user) {
|
||||||
return (
|
return (
|
||||||
<Badge
|
<Badge
|
||||||
badgeContent={this.state.notifications}
|
badgeContent={this.props.state.store.notifications}
|
||||||
secondary={true}
|
secondary={true}
|
||||||
badgeStyle={{top: 12, right: 12}}>
|
badgeStyle={{top: 12, right: 12}}>
|
||||||
<IconButton tooltip="Notifications">
|
<IconButton tooltip="Notifications">
|
||||||
@ -134,11 +125,8 @@ class BaseLayout extends Component {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseLayout
|
BaseLayout.propTypes = {
|
||||||
.propTypes = {
|
|
||||||
children: PropTypes.element
|
children: PropTypes.element
|
||||||
};
|
};
|
||||||
|
|
||||||
export
|
export default withRouter(BaseLayout);
|
||||||
default
|
|
||||||
BaseLayout;
|
|
||||||
|
|||||||
@ -61,14 +61,18 @@ class Login extends Component {
|
|||||||
|
|
||||||
handleLogin(event) {
|
handleLogin(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
console.log(this.props);
|
||||||
//TODO: send authentication request.
|
//TODO: send authentication request.
|
||||||
let location = {
|
let location = {
|
||||||
pathname: this.state.referrer,
|
pathname: this.state.referrer
|
||||||
state: {
|
};
|
||||||
notifications: 0,
|
let storeState = {
|
||||||
user: this.state.userName
|
store : {
|
||||||
|
user: this.state.userName,
|
||||||
|
notifications: 0
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
this.props.updateState(storeState);
|
||||||
this.props.history.push(location);
|
this.props.history.push(location);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,24 +16,10 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* This a sample custom theme file. In config.json, if the following changes are done, this theme will be applied.
|
|
||||||
* {
|
|
||||||
* "theme" : {
|
|
||||||
* "type" : "custom",
|
|
||||||
* "value" : "custom-theme"
|
|
||||||
* }
|
|
||||||
* }
|
|
||||||
*/
|
|
||||||
import {
|
|
||||||
indigo500, indigo700, redA200,
|
|
||||||
} from 'material-ui/styles/colors';
|
|
||||||
|
|
||||||
export default {
|
import BaseLayout from './BaseLayout';
|
||||||
palette: {
|
/**
|
||||||
primary1Color: indigo500,
|
* Contains all UI components related to Application, Login and Platform
|
||||||
primary2Color: indigo700,
|
*/
|
||||||
accent1Color: redA200,
|
|
||||||
pickerHeaderColor: indigo500,
|
export default {BaseLayout};
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,51 +0,0 @@
|
|||||||
body {
|
|
||||||
font: 14px "Century Gothic", Futura, sans-serif;
|
|
||||||
margin: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol, ul {
|
|
||||||
padding-left: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.board-row:after {
|
|
||||||
clear: both;
|
|
||||||
content: "";
|
|
||||||
display: table;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.square {
|
|
||||||
background: #fff;
|
|
||||||
border: 1px solid #999;
|
|
||||||
float: left;
|
|
||||||
font-size: 24px;
|
|
||||||
font-weight: bold;
|
|
||||||
line-height: 34px;
|
|
||||||
height: 34px;
|
|
||||||
margin-right: -1px;
|
|
||||||
margin-top: -1px;
|
|
||||||
padding: 0;
|
|
||||||
text-align: center;
|
|
||||||
width: 34px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.square:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kbd-navigation .square:focus {
|
|
||||||
background: #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.game {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
|
|
||||||
.game-info {
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,8 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import ReactDOM from 'react-dom';
|
import ReactDOM from 'react-dom';
|
||||||
import Store from './App';
|
import Store from './App';
|
||||||
import './index.css';
|
|
||||||
|
|
||||||
|
|
||||||
ReactDOM.render(<Store />, document.getElementById('root'));
|
ReactDOM.render(<Store />, document.getElementById('root'));
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user