diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/App.jsx b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/App.jsx index 1d7c315caa..58002cfb62 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/App.jsx +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/App.jsx @@ -20,6 +20,8 @@ import './App.css'; import React, {Component} from 'react'; import createHistory from 'history/createBrowserHistory'; import {BrowserRouter as Router, Redirect, Route, Switch} from 'react-router-dom' +import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; +import getMuiTheme from 'material-ui/styles/getMuiTheme'; import { ApplicationCreate, ApplicationListing, @@ -29,9 +31,21 @@ import { PlatformCreate, PlatformListing } from './components'; - const history = createHistory({basename: '/publisher'}); +/** + * User can define the themes in the config.json. The themes will be loaded based on the user preference. + */ +const theme = require("./config.json").theme; +let muiTheme = null; +if (theme.current === "default") { + let defaultTheme = require("material-ui/styles/baseThemes/" + theme.default); + muiTheme = getMuiTheme(defaultTheme.default); +} else { + let customTheme = require("./themes/" + theme.custom); + muiTheme = getMuiTheme(customTheme.default); +} + /** * This component defines the layout and the routes for the app. * All the content will be loaded inside the Base component. @@ -45,7 +59,6 @@ const history = createHistory({basename: '/publisher'}); * HashRouter is used because the other router types need the server to serve those urls. In hashRouter, server does * not want to serve the URL. * */ - class Base extends Component { constructor() { super(); @@ -91,6 +104,7 @@ class Publisher extends Component { render() { return (
+ @@ -98,6 +112,7 @@ class Publisher extends Component { +
); } diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/config.json b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/config.json new file mode 100644 index 0000000000..cb7ead56b1 --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/config.json @@ -0,0 +1,7 @@ +{ + "theme" : { + "current" : "default", + "default" : "lightBaseTheme", + "custom" : "custom-theme" + } +} diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/index.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/index.js index e94b572737..025a12afbe 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/index.js +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/index.js @@ -21,10 +21,9 @@ import React from 'react'; import Publisher from './App'; import ReactDOM from 'react-dom'; import registerServiceWorker from './registerServiceWorker'; -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; /** * This is the base js file of the app. All the content will be rendered in the root element. * */ -ReactDOM.render(, document.getElementById('root')); +ReactDOM.render(, document.getElementById('root')); registerServiceWorker(); diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/themes/custom-theme.js b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/themes/custom-theme.js new file mode 100644 index 0000000000..8342d4da36 --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.ui/src/main/resources/publisher/src/themes/custom-theme.js @@ -0,0 +1,12 @@ +import { + indigo500, indigo700, redA200, +} from 'material-ui/styles/colors'; + +export default { + palette: { + primary1Color: indigo500, + primary2Color: indigo700, + accent1Color: redA200, + pickerHeaderColor: indigo500, + }, +};