mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Adding changes for store.
This commit is contained in:
parent
498b2c02aa
commit
410fc69bfa
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "store",
|
"name": "store",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "WSO2 IoT Server App Publisher",
|
"description": "WSO2 IoT Server App Store",
|
||||||
"main": "App.js",
|
"main": "App.js",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@ -2,5 +2,10 @@
|
|||||||
"theme": {
|
"theme": {
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"value": "lightBaseTheme"
|
"value": "lightBaseTheme"
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"hostname": "localhost",
|
||||||
|
"httpsPort": "9443",
|
||||||
|
"apiPort": "8243"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -21,14 +21,14 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<meta name="theme-color" content="#000000">
|
<meta name="theme-color" content="#000000">
|
||||||
<link rel="stylesheet" type="text/css" href="/publisher/css/font-wso2.css">
|
<link rel="stylesheet" type="text/css" href="/store/css/font-wso2.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/publisher/themes/default/default-theme.css">
|
<link rel="stylesheet" type="text/css" href="/store/themes/default/default-theme.css">
|
||||||
<!--
|
<!--
|
||||||
manifest.json provides metadata used when your web app is added to the
|
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/
|
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
|
||||||
-->
|
-->
|
||||||
<link rel="manifest" href="/publisher/manifest.json">
|
<link rel="manifest" href="/store/manifest.json">
|
||||||
<link rel="shortcut icon" href="/publisher/images/favicon.png">
|
<link rel="shortcut icon" href="/store/images/favicon.png">
|
||||||
<!--
|
<!--
|
||||||
Notice the use of %PUBLIC_URL% in the tags above.
|
Notice the use of %PUBLIC_URL% in the tags above.
|
||||||
It will be replaced with the URL of the `public` folder during the build.
|
It will be replaced with the URL of the `public` folder during the build.
|
||||||
@ -38,14 +38,14 @@
|
|||||||
work correctly both with client-side routing and a non-root public URL.
|
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`.
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
-->
|
-->
|
||||||
<title>WSO2 IoT App Publisher</title>
|
<title>WSO2 IoT App Store</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<noscript>
|
<noscript>
|
||||||
You need to enable JavaScript to run this app.
|
You need to enable JavaScript to run this app.
|
||||||
</noscript>
|
</noscript>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
<script src='/publisher/dist/index.js'></script>
|
<script src='/store/dist/index.js'></script>
|
||||||
<!--
|
<!--
|
||||||
This HTML file is a template.
|
This HTML file is a template.
|
||||||
If you open it directly in the browser, you will see an empty page.
|
If you open it directly in the browser, you will see an empty page.
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"short_name": "App Publisher",
|
"short_name": "App Store",
|
||||||
"name": "WSO2 IoT App Publisher",
|
"name": "WSO2 IoT App Store",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "images/favicon.png",
|
"src": "images/favicon.png",
|
||||||
|
|||||||
@ -42,7 +42,7 @@ const history = createHistory({basename: '/store'});
|
|||||||
* The Router and Route components.
|
* The Router and Route components.
|
||||||
* The Router and Route is used for navigation.
|
* The Router and Route is used for navigation.
|
||||||
* We specify the component which needs to be rendered for an URL.
|
* We specify the component which needs to be rendered for an URL.
|
||||||
* Ex: When navigate to publisher/overview, the overview component will be rendered inside the main layout.
|
* Ex: When navigate to store/overview, the overview component will be rendered inside the main layout.
|
||||||
*
|
*
|
||||||
* HashRouter is used because the other router types need the server to serve those urls. In hashRouter, server does
|
* 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.
|
* not want to serve the URL.
|
||||||
@ -67,6 +67,7 @@ class Base extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
console.log('in app.jsx');
|
||||||
if (this.state.user !== null) {
|
if (this.state.user !== null) {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@ -87,9 +88,19 @@ class Base extends Component {
|
|||||||
</Switch>
|
</Switch>
|
||||||
</BaseLayout>
|
</BaseLayout>
|
||||||
</div>
|
</div>
|
||||||
)
|
);
|
||||||
} else {
|
} else {
|
||||||
return (<Redirect to={"/assets/apps"}/>)
|
return (
|
||||||
|
<div>
|
||||||
|
<BaseLayout>
|
||||||
|
<Switch>
|
||||||
|
<Redirect exact path={"/"} to={"/assets/apps"}/>
|
||||||
|
<Route exact path={"/assets/apps"} component={ApplicationListing}/>
|
||||||
|
<Route component={NotFound}/>
|
||||||
|
</Switch>
|
||||||
|
</BaseLayout>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -97,24 +108,19 @@ class Base extends Component {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This component is referred by the index.js to initiate the application.
|
* This component is referred by the index.js to initiate the application.
|
||||||
* TODO: Currently the URL shows like https://localhost:9443/publisher/#/publisher/assets/apps/create. this needs to
|
* TODO: Currently the URL shows like https://localhost:9443/store/#/store/assets/apps/create. this needs to
|
||||||
* be fixed as https://localhost:9443/publisher/#/assets/apps/create
|
* be fixed as https://localhost:9443/store/#/assets/apps/create
|
||||||
*
|
*
|
||||||
* */
|
* */
|
||||||
class Store extends Component {
|
class Store extends Component {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this.state = {
|
|
||||||
muiTheme: null,
|
|
||||||
selectedType: null,
|
|
||||||
selectedTheme: null
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div className="App">
|
<div className="App">
|
||||||
<Router basename="publisher" history={history}>
|
<Router basename="store" history={history}>
|
||||||
<Switch>
|
<Switch>
|
||||||
<Route path="/login" component={Login}/>
|
<Route path="/login" component={Login}/>
|
||||||
<Route path="/logout" component={Login}/>
|
<Route path="/logout" component={Login}/>
|
||||||
|
|||||||
@ -60,6 +60,10 @@ class AuthHandler {
|
|||||||
return login_promise;
|
return login_promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static loginAsAnonymous(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Persists the user object in browser's local storage.
|
* Persists the user object in browser's local storage.
|
||||||
* @param user: The user object.
|
* @param user: The user object.
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper methods for app publisher.
|
* Helper methods for app store.
|
||||||
* */
|
* */
|
||||||
export default class Helper {
|
export default class Helper {
|
||||||
|
|
||||||
|
|||||||
@ -16,32 +16,53 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'use strict';
|
import axios from 'axios';
|
||||||
|
|
||||||
|
|
||||||
//TODO: Replace the server address with response from auth endpoint and remove hardcoded ids etc.
|
//TODO: Replace the server address with response from auth endpoint and remove hardcoded ids etc.
|
||||||
export default class Constants {
|
class Constants {
|
||||||
|
|
||||||
static scopes = 'perm:application:get perm:application:create perm:application:update perm:application-mgt:login' +
|
constructor() {
|
||||||
|
this.contentTypeHeaderName = 'Content-Type';
|
||||||
|
this.contentType = 'application/json';
|
||||||
|
this.https = 'https://';
|
||||||
|
console.log('server config called');
|
||||||
|
this.serverConfig = {};
|
||||||
|
this.getServerConfig();
|
||||||
|
|
||||||
|
this.scopes = 'perm:application:get perm:application:create perm:application:update perm:application-mgt:login' +
|
||||||
' perm:application:delete perm:platform:add perm:platform:remove perm:roles:view perm:devices:view';
|
' perm:application:delete perm:platform:add perm:platform:remove perm:roles:view perm:devices:view';
|
||||||
|
|
||||||
static appManagerEndpoints = {
|
this.appManagerEndpoints = {
|
||||||
GET_ALL_APPS: 'https://localhost:8243/api/application-mgt/v1.0/applications/1.0.0/',
|
GET_ALL_APPS: this.https + this.serverConfig.hostname + ':' + this.serverConfig.httpsPort + '/api/application-mgt/v1.0/applications/1.0.0/',
|
||||||
CREATE_APP: 'https://localhost:8243/api/application-mgt/v1.0/applications/1.0.0/',
|
CREATE_APP: 'https://localhost:8243/api/application-mgt/v1.0/applications/1.0.0/',
|
||||||
UPLOAD_IMAGE_ARTIFACTS: 'https://localhost:8243/api/application-mgt/v1.0/applications/1.0.0/upload-image-artifacts/', //+appId
|
UPLOAD_IMAGE_ARTIFACTS: 'https://localhost:8243/api/application-mgt/v1.0/applications/1.0.0/upload-image-artifacts/', //+appId
|
||||||
GET_IMAGE_ARTIFACTS: "https://localhost:8243/api/application-mgt/v1.0/applications/1.0.0/image-artifacts/"
|
GET_IMAGE_ARTIFACTS: "https://localhost:8243/api/application-mgt/v1.0/applications/1.0.0/image-artifacts/"
|
||||||
};
|
};
|
||||||
|
|
||||||
static platformManagerEndpoints = {
|
this.platformManagerEndpoints = {
|
||||||
CREATE_PLATFORM: 'https://localhost:8243/api/application-mgt/v1.0/platforms/1.0.0',
|
CREATE_PLATFORM: 'https://localhost:8243/api/application-mgt/v1.0/platforms/1.0.0',
|
||||||
GET_ENABLED_PLATFORMS: 'https://localhost:8243/api/application-mgt/v1.0/platforms/1.0.0?status=ENABLED',
|
GET_ENABLED_PLATFORMS: 'https://localhost:8243/api/application-mgt/v1.0/platforms/1.0.0?status=ENABLED',
|
||||||
GET_PLATFORM: 'https://localhost:8243/api/application-mgt/v1.0/platforms/1.0.0/'
|
GET_PLATFORM: 'https://localhost:8243/api/application-mgt/v1.0/platforms/1.0.0/'
|
||||||
};
|
};
|
||||||
|
|
||||||
static userConstants = {
|
this.userConstants = {
|
||||||
LOGIN_URL: "https://localhost:9443/auth/application-mgt/v1.0/auth/login",
|
LOGIN_URL: "https://localhost:9443/auth/application-mgt/v1.0/auth/login",
|
||||||
LOGOUT_URL: "https://localhost:9443/auth/application-mgt/v1.0/auth/logout",
|
LOGOUT_URL: "https://localhost:9443/auth/application-mgt/v1.0/auth/logout",
|
||||||
REFRESH_TOKEN_URL: "",
|
REFRESH_TOKEN_URL: "",
|
||||||
WSO2_USER: 'wso2_user',
|
WSO2_USER: 'wso2_user',
|
||||||
PARTIAL_TOKEN: 'WSO2_IOT_TOKEN'
|
PARTIAL_TOKEN: 'WSO2_IOT_TOKEN'
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getServerConfig(callback) {
|
||||||
|
let baseURL = window.location.origin;
|
||||||
|
let appContext = window.location.pathname.split("/")[1];
|
||||||
|
let configFileName = 'config.json';
|
||||||
|
return axios.get(baseURL + "/" + configFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default (new Constants);
|
||||||
|
|||||||
@ -75,7 +75,7 @@ class BaseLayout extends Component {
|
|||||||
<div id="header-content">
|
<div id="header-content">
|
||||||
<div id="header">
|
<div id="header">
|
||||||
<span id="header-text">
|
<span id="header-text">
|
||||||
WSO2 IoT App Publisher
|
WSO2 IoT App Store
|
||||||
</span>
|
</span>
|
||||||
<div id="header-btn-container">
|
<div id="header-btn-container">
|
||||||
<i className="fw fw-notification btn-header"></i>
|
<i className="fw fw-notification btn-header"></i>
|
||||||
@ -21,6 +21,7 @@ import {withRouter} from 'react-router-dom';
|
|||||||
import {Button, Col, Row, Table} from 'reactstrap';
|
import {Button, Col, Row, Table} from 'reactstrap';
|
||||||
import Drawer from '../UIComponents/Drawer/Drawer';
|
import Drawer from '../UIComponents/Drawer/Drawer';
|
||||||
import ApplicationView from './View/ApplicationView';
|
import ApplicationView from './View/ApplicationView';
|
||||||
|
import Constants from '../../common/constants';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The App Create Component.
|
* The App Create Component.
|
||||||
@ -54,6 +55,7 @@ class ApplicationListing extends Component {
|
|||||||
src: "http://dl1.cbsistatic.com/i/r/2016/08/08/0e67e43a-5a45-41ab-b81d-acfba8708044/resize/736x552/0c0ee669677b5060a0fa1bfb0c7873b4/android-logo-promo-470.png"
|
src: "http://dl1.cbsistatic.com/i/r/2016/08/08/0e67e43a-5a45-41ab-b81d-acfba8708044/resize/736x552/0c0ee669677b5060a0fa1bfb0c7873b4/android-logo-promo-470.png"
|
||||||
}]
|
}]
|
||||||
};
|
};
|
||||||
|
console.log(Constants.appManagerEndpoints.GET_ALL_APPS);
|
||||||
}
|
}
|
||||||
|
|
||||||
headers = [
|
headers = [
|
||||||
@ -200,7 +202,7 @@ class ApplicationListing extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let appListStyle = {
|
let appListStyle = {
|
||||||
marginRight: '500px',
|
marginRight: '500px'
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setState({drawer: style, appListStyle: appListStyle});
|
this.setState({drawer: style, appListStyle: appListStyle});
|
||||||
@ -237,15 +239,7 @@ class ApplicationListing extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
|
|
||||||
<div id="application-list" style={this.state.appListStyle}>
|
<div id="application-list" style={this.state.appListStyle}>
|
||||||
<Row>
|
|
||||||
<Col xs="3 offset-9">
|
|
||||||
<div className="platform-link-placeholder">
|
|
||||||
<Button><i className="fw fw-settings"></i> Platforms</Button>
|
|
||||||
</div>
|
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
<Row>
|
<Row>
|
||||||
<Col>
|
<Col>
|
||||||
<Table striped hover>
|
<Table striped hover>
|
||||||
|
|||||||
@ -72,7 +72,7 @@ class ApplicationEdit extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleOnBackClick() {
|
handleOnBackClick() {
|
||||||
window.location.href = "/publisher/assets/apps"
|
window.location.href = "/store/assets/apps"
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|||||||
@ -132,7 +132,7 @@ class Login extends Component {
|
|||||||
{/*TODO: Style the components.*/}
|
{/*TODO: Style the components.*/}
|
||||||
<Card id="login-card">
|
<Card id="login-card">
|
||||||
<CardBlock>
|
<CardBlock>
|
||||||
<CardTitle>WSO2 IoT APP Publisher</CardTitle>
|
<CardTitle>WSO2 IoT APP Store</CardTitle>
|
||||||
<Form onSubmit={this.handleLogin.bind(this)}>
|
<Form onSubmit={this.handleLogin.bind(this)}>
|
||||||
<FormGroup row>
|
<FormGroup row>
|
||||||
<Label for="userName" sm={2}>User Name:</Label>
|
<Label for="userName" sm={2}>User Name:</Label>
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
import Login from './User/Login/Login';
|
import Login from './User/Login/Login';
|
||||||
import NotFound from './Error/NotFound';
|
import NotFound from './Error/NotFound';
|
||||||
import BaseLayout from './AppPublisherBase/BaseLayout';
|
import BaseLayout from './AppStoreBase/BaseLayout';
|
||||||
import PlatformCreate from './Platform/PlatformCreate';
|
import PlatformCreate from './Platform/PlatformCreate';
|
||||||
import PlatformListing from './Platform/PlatformListing';
|
import PlatformListing from './Platform/PlatformListing';
|
||||||
import ApplicationCreate from './Application/Create/ApplicationCreate';
|
import ApplicationCreate from './Application/Create/ApplicationCreate';
|
||||||
|
|||||||
@ -48,7 +48,7 @@ export default function register() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener('load', () => {
|
window.addEventListener('load', () => {
|
||||||
const swUrl = `${process.env.PUBLIC_URL}/publisher/service-worker.js`;
|
const swUrl = `${process.env.PUBLIC_URL}/store/service-worker.js`;
|
||||||
|
|
||||||
if (!isLocalhost) {
|
if (!isLocalhost) {
|
||||||
// Is not local host. Just register service worker
|
// Is not local host. Just register service worker
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user