diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/inventoryApp')
9 files changed, 138 insertions, 104 deletions
diff --git a/sdnr/wt/odlux/apps/inventoryApp/package.json b/sdnr/wt/odlux/apps/inventoryApp/package.json index 79308234e..9e004c112 100644 --- a/sdnr/wt/odlux/apps/inventoryApp/package.json +++ b/sdnr/wt/odlux/apps/inventoryApp/package.json @@ -20,21 +20,21 @@ ], "author": "Matthias Fischer", "license": "Apache-2.0", - "dependencies": { - "@odlux/framework": "*" - }, + "dependencies": { + "@odlux/framework": "*" + }, "peerDependencies": { - "@types/react": "16.4.14", - "@types/react-dom": "16.0.8", + "@types/react": "16.9.11", + "@types/react-dom": "16.9.4", "@types/react-router-dom": "4.3.1", - "@material-ui/core": "3.8.3", - "@material-ui/icons": "3.0.2", + "@material-ui/core": "4.6.1", + "@material-ui/icons": "4.5.1", "@types/classnames": "2.2.6", "@types/flux": "3.1.8", "@types/jquery": "3.3.10", "jquery": "3.3.1", - "react": "16.5.2", - "react-dom": "16.5.2", + "react": "16.11.0", + "react-dom": "16.11.0", "react-router-dom": "4.3.1" } }
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/inventoryApp/pom.xml b/sdnr/wt/odlux/apps/inventoryApp/pom.xml index a958542e3..86c5e8381 100644 --- a/sdnr/wt/odlux/apps/inventoryApp/pom.xml +++ b/sdnr/wt/odlux/apps/inventoryApp/pom.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.onap.ccsdk.parent</groupId> @@ -7,18 +8,20 @@ <version>1.5.1-SNAPSHOT</version> <relativePath/> </parent> - <modelVersion>4.0.0</modelVersion> + <groupId>org.onap.ccsdk.features.sdnr.wt</groupId> <artifactId>sdnr-wt-odlux-app-inventoryApp</artifactId> <version>0.7.0-SNAPSHOT</version> <packaging>bundle</packaging> - <name>sdnr-wt-odlux-app-inventoryApp</name> + + <name>ccsdk-features :: ${project.artifactId}</name> <licenses> <license> <name>Apache License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0</url> </license> </licenses> + <dependencies> <dependency> <groupId>${project.groupId}</groupId> @@ -37,8 +40,21 @@ <scope>test</scope> </dependency> </dependencies> + <build> <sourceDirectory>src2/main/java</sourceDirectory> + <resources> + <resource> + <directory>dist</directory> + <targetPath>odlux</targetPath> + </resource> + <resource> + <directory>src2/main/resources</directory> + </resource> + <resource> + <directory>src2/test/resources</directory> + </resource> + </resources> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> @@ -61,10 +77,10 @@ <followSymlinks>false</followSymlinks> </fileset> <!-- eclipse bug build bin folder in basedir --> - <fileset> - <directory>bin</directory> - <followSymlinks>false</followSymlinks> - </fileset> + <fileset> + <directory>bin</directory> + <followSymlinks>false</followSymlinks> + </fileset> </filesets> </configuration> </plugin> @@ -87,7 +103,7 @@ </executions> </plugin> <plugin> - <groupId>de.jacksitlab</groupId> + <groupId>de.jacks-it-lab</groupId> <artifactId>frontend-maven-plugin</artifactId> <version>1.7.1</version> <executions> @@ -99,8 +115,8 @@ <!-- optional: default phase is "generate-resources" --> <phase>initialize</phase> <configuration> - <nodeVersion>v8.10.0</nodeVersion> - <yarnVersion>v1.12.3</yarnVersion> + <nodeVersion>v10.16.3</nodeVersion> + <yarnVersion>v1.19.0</yarnVersion> </configuration> </execution> <execution> @@ -130,27 +146,5 @@ </configuration> </plugin> </plugins> - <resources> - <resource> - <directory>dist</directory> - <targetPath>odlux</targetPath> - </resource> - <resource> - <directory>src2/main/resources</directory> - </resource> - <resource> - <directory>src2/test/resources</directory> - </resource> - </resources> </build> - <pluginRepositories> - <pluginRepository> - <id>highstreet repo</id> - <url>https://cloud-highstreet-technologies.com/mvn/</url> - <snapshots> - <enabled>true</enabled> - <updatePolicy>always</updatePolicy> - </snapshots> - </pluginRepository> - </pluginRepositories> </project> diff --git a/sdnr/wt/odlux/apps/inventoryApp/src/handlers/inventoryAppRootHandler.ts b/sdnr/wt/odlux/apps/inventoryApp/src/handlers/inventoryAppRootHandler.ts index 2ab0cebe4..786f6d0c5 100644 --- a/sdnr/wt/odlux/apps/inventoryApp/src/handlers/inventoryAppRootHandler.ts +++ b/sdnr/wt/odlux/apps/inventoryApp/src/handlers/inventoryAppRootHandler.ts @@ -1,20 +1,20 @@ /** - * ============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========================================================================== - */ +* ============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========================================================================== +*/ // main state handler import { combineActionHandler } from '../../../../framework/src/flux/middleware'; @@ -40,5 +40,6 @@ const actionHandlers = { inventoryElements: inventoryElementsActionHandler }; -export const faultAppRootHandler = combineActionHandler<IInventoryAppStateState>(actionHandlers); -export default faultAppRootHandler; +export const inventoryAppRootHandler = combineActionHandler<IInventoryAppStateState>(actionHandlers); +export default inventoryAppRootHandler; + diff --git a/sdnr/wt/odlux/apps/inventoryApp/src/handlers/inventoryElementsHandler.tsx b/sdnr/wt/odlux/apps/inventoryApp/src/handlers/inventoryElementsHandler.tsx index 7766634fb..a65319efa 100644 --- a/sdnr/wt/odlux/apps/inventoryApp/src/handlers/inventoryElementsHandler.tsx +++ b/sdnr/wt/odlux/apps/inventoryApp/src/handlers/inventoryElementsHandler.tsx @@ -23,7 +23,7 @@ import { InventoryType } from '../models/inventory'; export interface IInventoryElementsState extends IExternalTableState<InventoryType> { } // create eleactic search material data fetch handler -const inventoryElementsSearchHandler = createSearchDataHandler<InventoryType>("sdnevents/inventoryequipment"); +const inventoryElementsSearchHandler = createSearchDataHandler<InventoryType>("inventory"); export const { actionHandler: inventoryElementsActionHandler, diff --git a/sdnr/wt/odlux/apps/inventoryApp/src/models/inventory.ts b/sdnr/wt/odlux/apps/inventoryApp/src/models/inventory.ts index 8c70acbf3..9d747415f 100644 --- a/sdnr/wt/odlux/apps/inventoryApp/src/models/inventory.ts +++ b/sdnr/wt/odlux/apps/inventoryApp/src/models/inventory.ts @@ -19,7 +19,7 @@ export { HitEntry, Result } from '../../../../framework/src/models'; export type InventoryType = { treeLevel: number; parentUuid: string; - mountpoint: string; + nodeId: string; uuid: string; containedHolder?: (string)[] | null; manufacturerName?: string ; diff --git a/sdnr/wt/odlux/apps/inventoryApp/src/plugin.tsx b/sdnr/wt/odlux/apps/inventoryApp/src/plugin.tsx deleted file mode 100644 index 2a53203c8..000000000 --- a/sdnr/wt/odlux/apps/inventoryApp/src/plugin.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/** - * ============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========================================================================== - */ -// app configuration and main entry point for the app - - -import { faShoppingBag } from '@fortawesome/free-solid-svg-icons'; // select app icon - -import applicationManager from '../../../framework/src/services/applicationManager'; - -import { Dashboard } from './views/dashboard'; -import faultAppRootHandler from './handlers/inventoryAppRootHandler'; - -export function register() { - applicationManager.registerApplication({ - name: "inventory", - icon: faShoppingBag, - rootActionHandler: faultAppRootHandler, - rootComponent: Dashboard, - menuEntry: "Inventory" - }); -} diff --git a/sdnr/wt/odlux/apps/inventoryApp/src/pluginInventory.tsx b/sdnr/wt/odlux/apps/inventoryApp/src/pluginInventory.tsx new file mode 100644 index 000000000..ad53285cb --- /dev/null +++ b/sdnr/wt/odlux/apps/inventoryApp/src/pluginInventory.tsx @@ -0,0 +1,75 @@ +/** +* ============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========================================================================== +*/ +// app configuration and main entry point for the app + +import * as React from "react"; +import { withRouter, RouteComponentProps, Route, Switch, Redirect } from 'react-router-dom'; +import { faShoppingBag } from '@fortawesome/free-solid-svg-icons'; // select app icon +import applicationManager from '../../../framework/src/services/applicationManager'; + +import connect, { Connect, IDispatcher } from '../../../framework/src/flux/connect'; +import { IApplicationStoreState } from "../../../framework/src/store/applicationStore"; + +import { Dashboard } from './views/dashboard'; +import inventoryAppRootHandler from './handlers/inventoryAppRootHandler'; + +import { createInventoryElementsProperties, createInventoryElementsActions, inventoryElementsReloadAction } from "./handlers/inventoryElementsHandler"; + +let currentMountId: string | undefined = undefined; + +const mapProps = (state: IApplicationStoreState) => ({ + inventoryProperties: createInventoryElementsProperties(state), +}); + +const mapDisp = (dispatcher: IDispatcher) => ({ + inventoryActions: createInventoryElementsActions(dispatcher.dispatch, true) +}); + +const InventoryApplicationRouteAdapter = connect(mapProps, mapDisp)((props: RouteComponentProps<{ mountId?: string }> & Connect<typeof mapProps, typeof mapDisp>) => { + if (currentMountId !== props.match.params.mountId) { + currentMountId = props.match.params.mountId || undefined; + window.setTimeout(() => { + if (currentMountId) { + props.inventoryActions.onFilterChanged("nodeId", currentMountId); + props.inventoryProperties.showFilter; + props.inventoryActions.onRefresh(); + } + }); + } + return ( + <Dashboard /> + ) +}); + +const App = withRouter((props: RouteComponentProps) => ( + <Switch> + <Route path={`${props.match.path}/:mountId?`} component={InventoryApplicationRouteAdapter} /> + <Redirect to={`${props.match.path}`} /> + </Switch> +)); + +export function register() { + applicationManager.registerApplication({ + name: "inventory", + icon: faShoppingBag, + rootActionHandler: inventoryAppRootHandler, + rootComponent: App, + menuEntry: "Inventory" + }); +} + diff --git a/sdnr/wt/odlux/apps/inventoryApp/src/views/dashboard.tsx b/sdnr/wt/odlux/apps/inventoryApp/src/views/dashboard.tsx index 0d7244e4d..bd182ed5d 100644 --- a/sdnr/wt/odlux/apps/inventoryApp/src/views/dashboard.tsx +++ b/sdnr/wt/odlux/apps/inventoryApp/src/views/dashboard.tsx @@ -38,7 +38,7 @@ const mapDispatch = (dispatcher: IDispatcher) => ({ class DashboardComponent extends React.Component<Connect<typeof mapProps, typeof mapDispatch>> { render() { return <InventoryTable title="Inventory" idProperty="_id" columns={[ - { property: "mountpoint", title: "Mountpoint" }, + { property: "nodeId", title: "Node Name" }, { property: "manufacturerIdentifier", title: "Manufacturer" }, { property: "parentUuid", title: "Parent" }, { property: "uuid", title: "Name" }, @@ -56,7 +56,7 @@ class DashboardComponent extends React.Component<Connect<typeof mapProps, typeof componentDidMount() { this.props.inventoryElementsActions.onToggleFilter(); - this.props.inventoryElementsActions.onHandleRequestSort("mountpoint"); + this.props.inventoryElementsActions.onHandleRequestSort("node-id"); } } diff --git a/sdnr/wt/odlux/apps/inventoryApp/webpack.config.js b/sdnr/wt/odlux/apps/inventoryApp/webpack.config.js index 2af2bdb95..426763803 100644 --- a/sdnr/wt/odlux/apps/inventoryApp/webpack.config.js +++ b/sdnr/wt/odlux/apps/inventoryApp/webpack.config.js @@ -26,7 +26,7 @@ module.exports = (env) => { context: path.resolve(__dirname, "src"), entry: { - inventoryApp: ["./plugin.tsx"] + inventoryApp: ["./pluginInventory.tsx"] }, devtool: env === "release" ? false : "source-map", @@ -128,23 +128,23 @@ module.exports = (env) => { proxy: { "/oauth2/": { - target: "http://localhost:3000", + target: "http://localhost:48181", secure: false }, "/database/": { - target: "http://localhost:3000", + target: "http://localhost:48181", secure: false }, "/restconf/": { - target: "http://localhost:3000", + target: "http://localhost:48181", secure: false }, "/help/": { - target: "http://localhost:3000", + target: "http://localhost:48181", secure: false }, "/websocket/": { - target: "http://localhost:3000", + target: "http://localhost:48181", ws: true, changeOrigin: true, secure: false |