From 05ef023752abdb4f1e072332496dc7c6eaff8965 Mon Sep 17 00:00:00 2001 From: herbert Date: Sat, 1 Feb 2020 16:00:00 +0100 Subject: SDN-R add updated odlux Updates all odlux framework and app components. Issue-ID: SDNC-1032 Signed-off-by: herbert Change-Id: I13c520489fd40d05b7fd5215f5941af6238e9cae --- sdnr/wt/odlux/framework/pom.xml | 314 ++++++++++----------- sdnr/wt/odlux/framework/src/app.css | 10 + .../src/components/material-table/index.tsx | 5 +- .../src/components/material-table/tableFilter.tsx | 6 +- .../src/components/material-table/utilities.ts | 26 +- sdnr/wt/odlux/framework/src/views/about.tsx | 77 ++++- sdnr/wt/odlux/framework/webpack.config.js | 6 +- 7 files changed, 267 insertions(+), 177 deletions(-) (limited to 'sdnr/wt/odlux/framework') diff --git a/sdnr/wt/odlux/framework/pom.xml b/sdnr/wt/odlux/framework/pom.xml index fc7a532c9..78349e471 100644 --- a/sdnr/wt/odlux/framework/pom.xml +++ b/sdnr/wt/odlux/framework/pom.xml @@ -1,165 +1,165 @@ - 4.0.0 + 4.0.0 - - org.onap.ccsdk.parent - odlparent - 1.5.2-SNAPSHOT - - + + org.onap.ccsdk.parent + odlparent + 1.5.2-SNAPSHOT + + - org.onap.ccsdk.features.sdnr.wt - sdnr-wt-odlux-framework - 0.7.1-SNAPSHOT - jar + org.onap.ccsdk.features.sdnr.wt + sdnr-wt-odlux-framework + 0.7.1-SNAPSHOT + jar - ccsdk-features :: ${project.artifactId} - - - Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0 - - + sdnr-wt-odlux-framework + + + Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0 + + - - ${maven.build.timestamp} - ONAP Frankfurt (Neon, mdsal ${odl.mdsal.version}) - 36.1a30021(19/12/12) - ONAP SDN-R | ONF Wireless for ${distversion} - Build: ${buildtime} ${buildno} ${project.version} - + + ${maven.build.timestamp} + ONAP Frankfurt (Neon, mdsal ${odl.mdsal.version}) + 39.0e1988b(20/01/12) + ONAP SDN-R | ONF Wireless for ${distversion} - Build: ${buildtime} ${buildno} ${project.version} + - - - - dist - odlux - - - - - maven-clean-plugin - - - - dist - false - - - node - false - - - node_modules - false - - - ../node_modules - false - - - - bin - false - - - - - - de.jacks-it-lab - frontend-maven-plugin - 1.7.2 - - - install node and yarn - - install-node-and-yarn - - - initialize - - v10.16.3 - v1.19.0 - - - - clear cache - - yarn - - initialize - - cache clean - ${project.basedir} - ${project.basedir}/../ - - - - install lerna - - yarn - - initialize - - add lerna@3.13.1 -W --exact - ${project.basedir} - ${project.basedir}/../ - - - - exec lerna bootstrap - - lerna - - initialize - - false - bootstrap - ${project.basedir} - ${project.basedir}/../ - - - - yarn build - - yarn - - - run build - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - com.google.code.maven-replacer-plugin - replacer - 1.5.2 - - - replace version - prepare-package - - replace - - - - - ${project.build.directory}/classes/odlux - - app.js - - - - ##odlux.version## - ${odlux.version} - - - - - - + + + + dist + odlux + + + + + maven-clean-plugin + + + + dist + false + + + node + false + + + node_modules + false + + + ../node_modules + false + + + + bin + false + + + + + + de.jacks-it-lab + frontend-maven-plugin + 1.7.2 + + + install node and yarn + + install-node-and-yarn + + + initialize + + v10.16.3 + v1.19.0 + + + + clear cache + + yarn + + initialize + + cache clean + ${project.basedir} + ${project.basedir}/../ + + + + install lerna + + yarn + + initialize + + add lerna@3.13.1 -W --exact + ${project.basedir} + ${project.basedir}/../ + + + + exec lerna bootstrap + + lerna + + initialize + + false + bootstrap + ${project.basedir} + ${project.basedir}/../ + + + + yarn build + + yarn + + + run build + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + com.google.code.maven-replacer-plugin + replacer + 1.5.2 + + + replace version + prepare-package + + replace + + + + + ${project.build.directory}/classes/odlux + + app.js + + + + ##odlux.version## + ${odlux.version} + + + + + + diff --git a/sdnr/wt/odlux/framework/src/app.css b/sdnr/wt/odlux/framework/src/app.css index 356f36dd0..f70fbc0e4 100644 --- a/sdnr/wt/odlux/framework/src/app.css +++ b/sdnr/wt/odlux/framework/src/app.css @@ -3,4 +3,14 @@ html, body, #app { padding: 0px; margin: 0px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; +} +.about-table td{ + padding:0.5rem 1rem; + border-bottom: 1px solid #DDD; +} +.about-table pre { + background:#FFF; + border:1px solid #CCC; + padding:1rem; + margin: 1rem 0; } \ No newline at end of file diff --git a/sdnr/wt/odlux/framework/src/components/material-table/index.tsx b/sdnr/wt/odlux/framework/src/components/material-table/index.tsx index 3e31c5e03..520674441 100644 --- a/sdnr/wt/odlux/framework/src/components/material-table/index.tsx +++ b/sdnr/wt/odlux/framework/src/components/material-table/index.tsx @@ -179,7 +179,7 @@ class MaterialTableComponent extends React.Component
- +
extends React.Component {showFilter && || null} {rows // may need ordering here - .map((entry: TData & { [key: string]: any }) => { + .map((entry: TData & { [key: string]: any }, index) => { const entryId = getId(entry); const isSelected = this.isSelected(entryId); return ( @@ -202,6 +202,7 @@ class MaterialTableComponent extends React.Component this.handleClick(event, entry, entryId)} role="checkbox" aria-checked={isSelected} + aria-label={`${(this.props.tableId ? this.props.tableId : 'table')}-row-${(index + 1)}`} tabIndex={-1} key={entryId} selected={isSelected} diff --git a/sdnr/wt/odlux/framework/src/components/material-table/tableFilter.tsx b/sdnr/wt/odlux/framework/src/components/material-table/tableFilter.tsx index 737ea85f9..2075e052c 100644 --- a/sdnr/wt/odlux/framework/src/components/material-table/tableFilter.tsx +++ b/sdnr/wt/odlux/framework/src/components/material-table/tableFilter.tsx @@ -69,14 +69,14 @@ class EnhancedTableFilterComponent extends React.Component - + ? - : } + : } ); }, this)} diff --git a/sdnr/wt/odlux/framework/src/components/material-table/utilities.ts b/sdnr/wt/odlux/framework/src/components/material-table/utilities.ts index 6e8902c07..74682cd95 100644 --- a/sdnr/wt/odlux/framework/src/components/material-table/utilities.ts +++ b/sdnr/wt/odlux/framework/src/components/material-table/utilities.ts @@ -196,6 +196,29 @@ export function createExternal(callback: DataCallback, selectState }).catch(error => new AddErrorInfoAction(error)); }; + const reloadActionAsync = async (dispatch: Dispatch, getAppState: () => IApplicationStoreState) => { + dispatch(new RefreshAction()); + const ownState = selectState(getAppState()); + const filter = { ...ownState.preFilter, ...(ownState.showFilter && ownState.filter || {}) }; + + try { + const result = await Promise.resolve(callback(ownState.page, ownState.rowsPerPage, ownState.orderBy, ownState.order, filter)); + + + if (ownState.page > 0 && ownState.rowsPerPage * ownState.page > result.total) { //if result is smaller than the currently shown page, new search and repaginate + + let newPage = Math.floor(result.total / ownState.rowsPerPage); + + const repaginationResult = await Promise.resolve(callback(newPage, ownState.rowsPerPage, ownState.orderBy, ownState.order, filter)); + dispatch(new SetResultAction(repaginationResult)); + } else { + dispatch(new SetResultAction(result)); + } + } catch (error) { + new AddErrorInfoAction(error); + } + }; + const createPreActions = (dispatch: Dispatch, skipRefresh: boolean = false) => { return { onPreFilterChanged: (preFilter: { [key: string]: string }) => { @@ -258,6 +281,7 @@ export function createExternal(callback: DataCallback, selectState createActions: createActions, createProperties: createProperties, createPreActions: createPreActions, - actionHandler: externalTableStateActionHandler + actionHandler: externalTableStateActionHandler, + reloadActionAsync: reloadActionAsync, } } \ No newline at end of file diff --git a/sdnr/wt/odlux/framework/src/views/about.tsx b/sdnr/wt/odlux/framework/src/views/about.tsx index d47e09c3a..59a71512c 100644 --- a/sdnr/wt/odlux/framework/src/views/about.tsx +++ b/sdnr/wt/odlux/framework/src/views/about.tsx @@ -15,17 +15,68 @@ * the License. * ============LICENSE_END========================================================================== */ -import * as React from 'react'; - -const AboutComponent = () => { - - return ( -
-

About

-
##odlux.version##
-
- ); -}; - -export const About = AboutComponent; +import * as React from 'react'; +import * as marked from 'marked'; +import * as hljs from 'highlight.js'; +import { requestRestExt } from '../services/restService'; +const defaultRenderer = new marked.Renderer(); +defaultRenderer.link = (href, title, text) => ( + `${text}` +); +interface AboutState { + content: string | null; +} + +class AboutComponent extends React.Component { + + + constructor(props: any) { + super(props); + this.state = { content: null } + this.loadAboutContent(); + } + private loadAboutContent(): void { + requestRestExt('/about').then((response) => { + this.setState({ content: response.status == 200 ? response.data : `${response.status} ${response.message}` || "Server error" }) + }).catch((error) => { + this.setState({ content: error }) + }) + } + render() { + + const markedOptions: marked.MarkedOptions = { + gfm: true, + breaks: false, + pedantic: false, + sanitize: true, + smartLists: true, + smartypants: false, + langPrefix: 'hljs ', + ...({}), + highlight: (code, lang) => { + if (!!(lang && hljs.getLanguage(lang))) { + return hljs.highlight(lang, code).value; + } + return code; + } + }; + + + const className = "about-table" + const style: React.CSSProperties = {}; + + const html = (marked(this.state.content || 'loading', { renderer: markedOptions && markedOptions.renderer || defaultRenderer })); + + return ( +
+ + ); + } +}; + +export const About = AboutComponent; export default About; \ No newline at end of file diff --git a/sdnr/wt/odlux/framework/webpack.config.js b/sdnr/wt/odlux/framework/webpack.config.js index 578a0ae44..93b748d73 100644 --- a/sdnr/wt/odlux/framework/webpack.config.js +++ b/sdnr/wt/odlux/framework/webpack.config.js @@ -191,7 +191,11 @@ module.exports = (env) => { }, proxy: { "/oauth2/**/*": { - target: "http://10.20.6.29:48181", + target: "http://172.18.0.3:8181", + secure: false + }, + "/about": { + target: "http://172.18.0.3:8181", secure: false } } -- cgit 1.2.3-korg