diff options
Diffstat (limited to 'sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons')
21 files changed, 0 insertions, 7098 deletions
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-bundle/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-bundle/pom.xml deleted file mode 100644 index e9f85e05..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-bundle/pom.xml +++ /dev/null @@ -1,117 +0,0 @@ -<?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> - <artifactId>mwtnCommons</artifactId> - <groupId>com.highstreet.technologies.odl.dlux</groupId> - <version>0.5.1-SNAPSHOT</version> - </parent> - <artifactId>mwtnCommons-bundle</artifactId> - <name>${prefix} ${project.artifactId}</name> - <packaging>bundle</packaging> - <dependencies> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.core</artifactId> - <version>${osgi.core.version}</version> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.compendium</artifactId> - <version>${osgi.core.version}</version> - </dependency> - <dependency> - <groupId>org.apache.felix</groupId> - <artifactId>org.osgi.compendium</artifactId> - <version>${apache.felix.compendium}</version> - </dependency> - <dependency> - <groupId>org.opendaylight.dlux</groupId> - <artifactId>loader</artifactId> - <version>${dlux.loader.version}</version> - </dependency> - <dependency> - <groupId>com.highstreet.technologies.odl.dlux</groupId> - <artifactId>mwtnCommons-module</artifactId> - <version>0.5.1-SNAPSHOT</version> - </dependency> - </dependencies> - <build> - <resources> - <resource> - <directory>target/generated-resources</directory> - </resource> - <resource> - <directory>src/main/resources</directory> - </resource> - </resources> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <version>2.6</version> - <executions> - <!--loader Resources --> - <execution> - <id>unpack-loader-resources</id> - <goals> - <goal>unpack-dependencies</goal> - </goals> - <phase>generate-resources</phase> - <configuration> - <outputDirectory>${project.build.directory}/generated-resources</outputDirectory> - <groupId>com.highstreet.technologies.odl.dlux</groupId> - <includeArtifactIds>mwtnCommons-module</includeArtifactIds> - <excludes>META-INF\/**</excludes> - <excludeTransitive>true</excludeTransitive> - <ignorePermissions>false</ignorePermissions> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <extensions>true</extensions> - <configuration> - <instructions> - <Import-Package>org.osgi.service.http, - org.osgi.framework;version="1.0.0", - org.opendaylight.dlux.loader - </Import-Package> - <Export-Package></Export-Package> - </instructions> - </configuration> - </plugin> - - <!-- <plugin> - <artifactId>maven-resources-plugin</artifactId> - <version>3.0.1</version> - <executions> - <execution> - <id>copy-resources</id> - <!- - here the phase you need - -> - <phase>package</phase> - <goals> - <goal>copy-resources</goal> - </goals> - <configuration> - <outputDirectory>../../deploy</outputDirectory> - <resources> - <resource> - <directory>target</directory> - <includes> - <include>${project.artifactId}-${project.version}.jar</include> - </includes> - <filtering>true</filtering> - </resource> - </resources> - </configuration> - </execution> - </executions> - </plugin> --> - - </plugins> - </build> -</project> diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml deleted file mode 100644 index 5a693e16..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml +++ /dev/null @@ -1,23 +0,0 @@ -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> - <reference id="httpService" availability="mandatory" activation="eager" interface="org.osgi.service.http.HttpService"/> - <reference id="loader" availability="mandatory" activation="eager" interface="org.opendaylight.dlux.loader.DluxModuleLoader"/> - - <bean id="bundle" init-method="initialize" destroy-method="clean" class="org.opendaylight.dlux.loader.DluxModule"> - <property name="httpService" ref="httpService"/> - <property name="loader" ref="loader"/> - <property name="moduleName" value="mwtnCommons"/> - <property name="url" value="/src/app/mwtnCommons"/> - <property name="directory" value="/mwtnCommons"/> - <property name="requireJs" value="app/mwtnCommons/mwtnCommons.module"/> - <property name="angularJs" value="app.mwtnCommons"/> - <property name="cssDependencies"> - <list> - <value>src/app/mwtnCommons/mwtnCommons-custom.css</value> - <value>src/app/mwtnCommons/bower_components/font-awesome/css/font-awesome.css</value> - <value>src/app/mwtnCommons/bower_components/angular-ui-grid/ui-grid.min.css</value> - <value>src/app/mwtnCommons/bower_components/json-formatter/dist/json-formatter.min.css</value> -<!-- <value>src/app/mwtnCommons/bower_components/angular-bootstrap/ui-bootstrap-csp.css</value> --> - </list> - </property> - </bean> -</blueprint>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/pom.xml deleted file mode 100644 index b031831f..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?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> - <artifactId>mwtnCommons</artifactId> - <groupId>com.highstreet.technologies.odl.dlux</groupId> - <version>0.5.1-SNAPSHOT</version> - </parent> - <artifactId>mwtnCommons-module</artifactId> - <name>${prefix} ${project.artifactId}</name> - <packaging>jar</packaging> - - <build> - <pluginManagement> - <plugins> - <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence - on the Maven build itself. --> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>1.0.0</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <versionRange>[1.0.0,)</versionRange> - <goals> - <goal>exec</goal> - </goals> - </pluginExecutionFilter> - <action> - <execute/> - </action> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> - </plugin> - </plugins> - </pluginManagement> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <version>1.6.0</version> - <executions> - <execution> - <phase>generate-sources</phase> - <goals> - <goal>exec</goal> - </goals> - </execution> - </executions> - <configuration> - <executable>./bowerInstall.sh</executable> - <arguments> - <argument>install</argument> - </arguments> - <workingDirectory>${basedir}/src/main/resources/mwtnCommons/</workingDirectory> - </configuration> - </plugin> - </plugins> - </build> -</project>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/README.md b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/README.md deleted file mode 100644 index 3c254917..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# MTWN Comments - -This component offers services for MTWN specific ODL DLUX application development. -It should ensure, that common functionality of ODL DLUX applications is implemented and tested only once, but reused by several applications. - -All MWTN ODL DLUX application should have a dependency to 'mtwnCommons'. -However, it is a case by case decision by developers, whether such dependency is needed for their application of not. - -Common functions are: -* A centralized service ($mwtnLog), which stores application logs in a centralized database. It should simplify failure analysis and debugging. -* Communication with the RestConf API of OpenDaylight. -* WebSocket subscription for notification handling -* Implementation of common object classes as defined by the Microwave Information model (e.g. NetConfServer, NetworkElement, LogicalTerminationPoint, LayerProtocol, MW_AirInterface_Pac, MW_PureEthernetStructure_Pac, MW_EthernetContainer_Pac) -* Enhanced [angular.js](https://angularjs.org/) features for web development, which are not native in [ODL DLUX](https://wiki.opendaylight.org/view/OpenDaylight_dlux:Main). - -## Installation - -Additional [angular.js](https://angularjs.org/) feature and implementations are listed in the file [bower.json](./bower.json). - -``` -bower install -``` -Please see [bower.io](https://bower.io/) for further information about bower. - -## angular-chart.js - -* Open app/mwtnCommons/bower_components/angular-chart.js/dist/angular-chart -* Locate - else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['angular', 'chart'], factory); - } - - * change define(['angular', 'chart'], factory); to define(['angular', 'app/mwtnCommons/bower_components/chart.js/dist/Chart'], factory); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bower.json b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bower.json deleted file mode 100644 index 77aed945..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bower.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "mwtn-commons", - "homepage": "https://github.com/OpenNetworkingFoundation/CENTENNIAL/tree/master/03-WTP-PoC/code", - "authors": [ - "Martin Skorupski <martin.skorupski@highstreet-technologies.com>" - ], - "description": "bower components for microwave transport network specific opendaylight dlux applications", - "main": "", - "version": "0.5.1-SNAPSHOT", - "dependencies": { - "bootstrap": "~3.3.7", - "font-awesome": "~4.6.3", - "angular-ui-grid": "3.2.9", - "angular-clipboard": "~1.5.0", - "angular-chart.js": "~1.1.1", - "chart.js": "^2.5.0", - "lodash": "^4.17.4", - "json-formatter": "^0.6.0", - "cytoscape": "^3.1.1" - }, - "keywords": [ - "Microwave", - "Millimeterwave", - "MWTN", - "ONF", - "SDN", - "Transport", - "Wireless", - "xHaul" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bowerInstall.sh b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bowerInstall.sh deleted file mode 100755 index 054cf683..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bowerInstall.sh +++ /dev/null @@ -1,18 +0,0 @@ -echo "---------------------------------" -echo "Install bower and adapt to ODL UX" -echo "---------------------------------" -echo "Step1: Install bower" -bower install -q - -echo "Step2: Install Bower patches to adapt to ODL-DLUX" - -FileToPatch="angular-chart.js" -FileToPatchDestination="bower_components/angular-chart.js/dist" -FileToPatchOrigination="bower_components_patches" - -echo "- File to handle: $FileToPatch" -mv $FileToPatchDestination/$FileToPatch $FileToPatchDestination/$FileToPatch.orig -cp $FileToPatchOrigination/$FileToPatch.patch $FileToPatchDestination -mv $FileToPatchDestination/$FileToPatch.patch $FileToPatchDestination/$FileToPatch - -echo "Install bower script ends" diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bower_components_patches/angular-chart.js.patch b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bower_components_patches/angular-chart.js.patch deleted file mode 100644 index 23a4b361..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/bower_components_patches/angular-chart.js.patch +++ /dev/null @@ -1,400 +0,0 @@ -/*! - * angular-chart.js - An angular.js wrapper for Chart.js - * http://jtblin.github.io/angular-chart.js/ - * Version: 1.1.1 - * - * Copyright 2016 Jerome Touffe-Blin - * Released under the BSD-2-Clause license - * https://github.com/jtblin/angular-chart.js/blob/master/LICENSE - */ -(function (factory) { - 'use strict'; - if (typeof exports === 'object') { - // Node/CommonJS - module.exports = factory( - typeof angular !== 'undefined' ? angular : require('angular'), - typeof Chart !== 'undefined' ? Chart : require('chart.js')); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['angular', 'app/mwtnCommons/bower_components/chart.js/dist/Chart'], factory); - } else { - // Browser globals - if (typeof angular === 'undefined') { - throw new Error('AngularJS framework needs to be included, see https://angularjs.org/'); - } else if (typeof Chart === 'undefined') { - throw new Error('Chart.js library needs to be included, see http://jtblin.github.io/angular-chart.js/'); - } - factory(angular, Chart); - } -}(function (angular, Chart) { - 'use strict'; - - Chart.defaults.global.multiTooltipTemplate = '<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>'; - Chart.defaults.global.tooltips.mode = 'label'; - Chart.defaults.global.elements.line.borderWidth = 2; - Chart.defaults.global.elements.rectangle.borderWidth = 2; - Chart.defaults.global.legend.display = false; - Chart.defaults.global.colors = [ - '#97BBCD', // blue - '#DCDCDC', // light grey - '#F7464A', // red - '#46BFBD', // green - '#FDB45C', // yellow - '#949FB1', // grey - '#4D5360' // dark grey - ]; - - var useExcanvas = typeof window.G_vmlCanvasManager === 'object' && - window.G_vmlCanvasManager !== null && - typeof window.G_vmlCanvasManager.initElement === 'function'; - - if (useExcanvas) Chart.defaults.global.animation = false; - - return angular.module('chart.js', []) - .provider('ChartJs', ChartJsProvider) - .factory('ChartJsFactory', ['ChartJs', '$timeout', ChartJsFactory]) - .directive('chartBase', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory(); }]) - .directive('chartLine', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('line'); }]) - .directive('chartBar', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('bar'); }]) - .directive('chartHorizontalBar', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('horizontalBar'); }]) - .directive('chartRadar', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('radar'); }]) - .directive('chartDoughnut', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('doughnut'); }]) - .directive('chartPie', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('pie'); }]) - .directive('chartPolarArea', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('polarArea'); }]) - .directive('chartBubble', ['ChartJsFactory', function (ChartJsFactory) { return new ChartJsFactory('bubble'); }]) - .name; - - /** - * Wrapper for chart.js - * Allows configuring chart js using the provider - * - * angular.module('myModule', ['chart.js']).config(function(ChartJsProvider) { - * ChartJsProvider.setOptions({ responsive: false }); - * ChartJsProvider.setOptions('Line', { responsive: true }); - * }))) - */ - function ChartJsProvider () { - var options = { responsive: true }; - var ChartJs = { - Chart: Chart, - getOptions: function (type) { - var typeOptions = type && options[type] || {}; - return angular.extend({}, options, typeOptions); - } - }; - - /** - * Allow to set global options during configuration - */ - this.setOptions = function (type, customOptions) { - // If no type was specified set option for the global object - if (! customOptions) { - customOptions = type; - options = angular.merge(options, customOptions); - } else { - // Set options for the specific chart - options[type] = angular.merge(options[type] || {}, customOptions); - } - - angular.merge(ChartJs.Chart.defaults, options); - }; - - this.$get = function () { - return ChartJs; - }; - } - - function ChartJsFactory (ChartJs, $timeout) { - return function chart (type) { - return { - restrict: 'CA', - scope: { - chartGetColor: '=?', - chartType: '=', - chartData: '=?', - chartLabels: '=?', - chartOptions: '=?', - chartSeries: '=?', - chartColors: '=?', - chartClick: '=?', - chartHover: '=?', - chartDatasetOverride: '=?' - }, - link: function (scope, elem/*, attrs */) { - if (useExcanvas) window.G_vmlCanvasManager.initElement(elem[0]); - - // Order of setting "watch" matter - scope.$watch('chartData', watchData, true); - scope.$watch('chartSeries', watchOther, true); - scope.$watch('chartLabels', watchOther, true); - scope.$watch('chartOptions', watchOther, true); - scope.$watch('chartColors', watchOther, true); - scope.$watch('chartDatasetOverride', watchOther, true); - scope.$watch('chartType', watchType, false); - - scope.$on('$destroy', function () { - destroyChart(scope); - }); - - scope.$on('$resize', function () { - if (scope.chart) scope.chart.resize(); - }); - - function watchData (newVal, oldVal) { - if (! newVal || ! newVal.length || (Array.isArray(newVal[0]) && ! newVal[0].length)) { - destroyChart(scope); - return; - } - var chartType = type || scope.chartType; - if (! chartType) return; - - if (scope.chart && canUpdateChart(newVal, oldVal)) - return updateChart(newVal, scope); - - createChart(chartType, scope, elem); - } - - function watchOther (newVal, oldVal) { - if (isEmpty(newVal)) return; - if (angular.equals(newVal, oldVal)) return; - var chartType = type || scope.chartType; - if (! chartType) return; - - // chart.update() doesn't work for series and labels - // so we have to re-create the chart entirely - createChart(chartType, scope, elem); - } - - function watchType (newVal, oldVal) { - if (isEmpty(newVal)) return; - if (angular.equals(newVal, oldVal)) return; - createChart(newVal, scope, elem); - } - } - }; - }; - - function createChart (type, scope, elem) { - var options = getChartOptions(type, scope); - if (! hasData(scope) || ! canDisplay(type, scope, elem, options)) return; - - var cvs = elem[0]; - var ctx = cvs.getContext('2d'); - - scope.chartGetColor = getChartColorFn(scope); - var data = getChartData(type, scope); - // Destroy old chart if it exists to avoid ghost charts issue - // https://github.com/jtblin/angular-chart.js/issues/187 - destroyChart(scope); - - scope.chart = new ChartJs.Chart(ctx, { - type: type, - data: data, - options: options - }); - scope.$emit('chart-create', scope.chart); - bindEvents(cvs, scope); - } - - function canUpdateChart (newVal, oldVal) { - if (newVal && oldVal && newVal.length && oldVal.length) { - return Array.isArray(newVal[0]) ? - newVal.length === oldVal.length && newVal.every(function (element, index) { - return element.length === oldVal[index].length; }) : - oldVal.reduce(sum, 0) > 0 ? newVal.length === oldVal.length : false; - } - return false; - } - - function sum (carry, val) { - return carry + val; - } - - function getEventHandler (scope, action, triggerOnlyOnChange) { - var lastState = { - point: void 0, - points: void 0 - }; - return function (evt) { - var atEvent = scope.chart.getElementAtEvent || scope.chart.getPointAtEvent; - var atEvents = scope.chart.getElementsAtEvent || scope.chart.getPointsAtEvent; - if (atEvents) { - var points = atEvents.call(scope.chart, evt); - var point = atEvent ? atEvent.call(scope.chart, evt)[0] : void 0; - - if (triggerOnlyOnChange === false || - (! angular.equals(lastState.points, points) && ! angular.equals(lastState.point, point)) - ) { - lastState.point = point; - lastState.points = points; - scope[action](points, evt, point); - } - } - }; - } - - function getColors (type, scope) { - var colors = angular.copy(scope.chartColors || - ChartJs.getOptions(type).chartColors || - Chart.defaults.global.colors - ); - var notEnoughColors = colors.length < scope.chartData.length; - while (colors.length < scope.chartData.length) { - colors.push(scope.chartGetColor()); - } - // mutate colors in this case as we don't want - // the colors to change on each refresh - if (notEnoughColors) scope.chartColors = colors; - return colors.map(convertColor); - } - - function convertColor (color) { - // Allows RGB and RGBA colors to be input as a string: e.g.: "rgb(159,204,0)", "rgba(159,204,0, 0.5)" - if (typeof color === 'string' && color[0] === 'r') return getColor(rgbStringToRgb(color)); - // Allows hex colors to be input as a string. - if (typeof color === 'string' && color[0] === '#') return getColor(hexToRgb(color.substr(1))); - // Allows colors to be input as an object, bypassing getColor() entirely - if (typeof color === 'object' && color !== null) return color; - return getRandomColor(); - } - - function getRandomColor () { - var color = [getRandomInt(0, 255), getRandomInt(0, 255), getRandomInt(0, 255)]; - return getColor(color); - } - - function getColor (color) { - var alpha = color[3] || 1; - color = color.slice(0, 3); - return { - backgroundColor: rgba(color, 0.2), - pointBackgroundColor: rgba(color, alpha), - pointHoverBackgroundColor: rgba(color, 0.8), - borderColor: rgba(color, alpha), - pointBorderColor: '#fff', - pointHoverBorderColor: rgba(color, alpha) - }; - } - - function getRandomInt (min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; - } - - function rgba (color, alpha) { - // rgba not supported by IE8 - return useExcanvas ? 'rgb(' + color.join(',') + ')' : 'rgba(' + color.concat(alpha).join(',') + ')'; - } - - // Credit: http://stackoverflow.com/a/11508164/1190235 - function hexToRgb (hex) { - var bigint = parseInt(hex, 16), - r = (bigint >> 16) & 255, - g = (bigint >> 8) & 255, - b = bigint & 255; - - return [r, g, b]; - } - - function rgbStringToRgb (color) { - var match = color.match(/^rgba?\(([\d,.]+)\)$/); - if (! match) throw new Error('Cannot parse rgb value'); - color = match[1].split(','); - return color.map(Number); - } - - function hasData (scope) { - return scope.chartData && scope.chartData.length; - } - - function getChartColorFn (scope) { - return typeof scope.chartGetColor === 'function' ? scope.chartGetColor : getRandomColor; - } - - function getChartData (type, scope) { - var colors = getColors(type, scope); - return Array.isArray(scope.chartData[0]) ? - getDataSets(scope.chartLabels, scope.chartData, scope.chartSeries || [], colors, scope.chartDatasetOverride) : - getData(scope.chartLabels, scope.chartData, colors, scope.chartDatasetOverride); - } - - function getDataSets (labels, data, series, colors, datasetOverride) { - return { - labels: labels, - datasets: data.map(function (item, i) { - var dataset = angular.extend({}, colors[i], { - label: series[i], - data: item - }); - if (datasetOverride && datasetOverride.length >= i) { - angular.merge(dataset, datasetOverride[i]); - } - return dataset; - }) - }; - } - - function getData (labels, data, colors, datasetOverride) { - var dataset = { - labels: labels, - datasets: [{ - data: data, - backgroundColor: colors.map(function (color) { - return color.pointBackgroundColor; - }), - hoverBackgroundColor: colors.map(function (color) { - return color.backgroundColor; - }) - }] - }; - if (datasetOverride) { - angular.merge(dataset.datasets[0], datasetOverride); - } - return dataset; - } - - function getChartOptions (type, scope) { - return angular.extend({}, ChartJs.getOptions(type), scope.chartOptions); - } - - function bindEvents (cvs, scope) { - cvs.onclick = scope.chartClick ? getEventHandler(scope, 'chartClick', false) : angular.noop; - cvs.onmousemove = scope.chartHover ? getEventHandler(scope, 'chartHover', true) : angular.noop; - } - - function updateChart (values, scope) { - if (Array.isArray(scope.chartData[0])) { - scope.chart.data.datasets.forEach(function (dataset, i) { - dataset.data = values[i]; - }); - } else { - scope.chart.data.datasets[0].data = values; - } - - scope.chart.update(); - scope.$emit('chart-update', scope.chart); - } - - function isEmpty (value) { - return ! value || - (Array.isArray(value) && ! value.length) || - (typeof value === 'object' && ! Object.keys(value).length); - } - - function canDisplay (type, scope, elem, options) { - // TODO: check parent? - if (options.responsive && elem[0].clientHeight === 0) { - $timeout(function () { - createChart(type, scope, elem); - }, 50, false); - return false; - } - return true; - } - - function destroyChart(scope) { - if(! scope.chart) return; - scope.chart.destroy(); - scope.$emit('chart-destroy', scope.chart); - } - } -})); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/locale/locale-en_US.json b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/locale/locale-en_US.json deleted file mode 100644 index eb0ef3b5..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/locale/locale-en_US.json +++ /dev/null @@ -1,924 +0,0 @@ -{ - - "PNF_NAME": "Name", - "PNF_IDENTIFIER":"Identifier", - "PNF_EQUIPMENT_TYPE":"Equipment type", - "PNF_EQUIPMENT_MODEL": "Equipment model", - "PNF_EQUIPMENT_VENDOR": "Equipment vendor", - "PNF_IPv4ADDRESS": "IPv4 address", - "PNF_MAINTENANCE_MODE": "Maintenace mode", - "PNF_CREATE_IN_AAI": "Create PNF in Active and Available Inventory", - "PNF_DELETE_IN_AAI": "Delete PNF in Active and Available Inventory", - "PNF_RESOURCE_VERSION": "Resource version", - - "MWTN_AMSL_GRD": "Above mean sea level (ground)", - "MWTN_APPCOMMAND": "Application command", - "MWTN_AIR_INTERFACE_LINKS": "Air interface links", - "MWTN_BAND": "Band", - "MWTN_CLIADDRESS": "CLI address", - "MWTN_CONNECTED_LTP_REF": "Connected LTP", - "MWTN_CURRENT_PROBLEMS": "Current problem list", - "MWTN_CURRENT_PERFORMANCE": "Current performance", - "MWTN_DURATION": "Duration", - "MWTN_END_TIME": "End time", - "MWTN_FORWARDING_DOMAIN": "Forwarding domain (ETH switch)", - "MWTN_FORWARDING_CONSTRUCTS":"Forwarding constructs", - "MWTN_FC": "Forwarding constructs", - "MWTN_FC_PORT#1": "Port #1", - "MWTN_FC_PORT#2": "Port #2", - "MWTN_FC_UUID": "Forwarding construct UUID", - "MWTN_FD_EX":"Extension", - "MWTN_HISTORICAL_PERFORMANCES": "Performance history", - "MWTN_HTMEDIATOR": "Has mediator", - "MWTN_INFORMATION_RATE_CUR":"Current infromation rate", - "MWTN_LAT_LON":"Lat/Lon", - "MWTN_LTP1":"LTP#1", - "MWTN_LTP2":"LTP#2", - "MWTN_LTPEXTENSION": "Extension", - "MWTN_LINK_IDENTIFIER": "Link identifier", - "MWTN_LINKS": "Links", - "MWTN_LOWER_LEVEL_LINK": "Lower level link", - "MWTN_LOOP_BACK_IS_AVAIL": "Loopback support", - "MWTN_LOOP_BACK_IS_ON": "Loop-back is on", - "MWTN_LOOP_BACK_IS_UP": "Loopback", - "MWTN_MED_ADD": "Add", - "MWTN_MED_START":"Start", - "MWTN_MED_STOP":"Stop", - "MWTN_MED_CLOSE":"Close", - "MWTN_MED_DELETE":"Delete", - "MWTN_NEIPADDRESS": "IP address", - "MWTN_NEEXTENSION": "Extension", - "MWTN_NE_EXTENSION":"Extension", - "MWTN_NETYPE": "Network element type", - "MWTN_ONF_PTP_DATASET:MULTICAST_MAC_ADDRESS": "Multicast MAC address", - "MWTN_ONF_PTP_DATASET:MAX_STEPS_REMOVED": "Max. steps removed", - "MWTN_PEER_LTP_REF": "Peer LTP", - "MWTN_PHYSICAL_PORT_REFERENCE": "Physical port", - "MWTN_PTP_DEFAULT_DS_CONFIGURATION": "PTP default dataset configuration", - "MWTN_PTP_PORT_CONFIGURATION":"PTP port configuration", - "MWTN_RADIO": "Radio", - "MWTN_REQUIRED_NETWORK_ELEMENTS": "Required network elements", - "MWTN_REVISION": "Revision", - "MWTN_ROOTEQUIPMENT": "Equipment", - "MWTN_SERVICE_ID":"Service ID", - "MWTN_SCANNING": "Scanning...", - "MWTN_SCAN_NETWORK": "Scan network", - "MWTN_START_TIME": "Start time", - "MWTN_SITE_ID": "Site identifier", - "MWTN_SITE_NAME": "Site-name", - "MWTN_SUPPORTED_LOOP_BACK_KIND_LIST":"Supported loopback types", - "MWTN_STATUS": "Status", - "MWTN_TOP_LEVEL_EQUIPMENT":"Main equipment", - "MWTN_TYPE": "Type", - "MWTN_UNKNOWN_NETWORK_ELEMENTS": "Unknown network elements", - "MWTN_VEXTENSION": "Extension", - "MWTN_WEBURI": "Web UI", - - "MWTN_$$HASHKEY": "Key", - "MWTN_ACTION_VERB": "action-verb", - "MWTN_ACTUAL_EQUIPMENT": "actual-equipment", - "MWTN_ACTUAL_HOLDER": "actual-holder", - "MWTN_ADAPTIVEMODULATIONISAVAIL": "adaptiveModulationIsAvail", - "MWTN_ADAPTIVEMODULATIONISON": "adaptiveModulationIsOn", - "MWTN_ADAPTIVE_MODULATION_IS_AVAIL": "adaptive-modulation-is-avail", - "MWTN_ADAPTIVE_MODULATION_IS_ON": "adaptive-modulation-is-on", - "MWTN_ADDRESS_ELEMENT": "address-element", - "MWTN_ADDRESS_ELEMENT_NAME": "address-element-name", - "MWTN_ADDRESS_NAME": "address-name", - "MWTN_ADD_TO_REQUIRED_NETWORKELEMENTS": "Add to required Network Elements", - "MWTN_ADMINISTRATIVECONTROL": "administrativeControl", - "MWTN_ADMINISTRATIVESTATE": "administrativeState", - "MWTN_ADMINISTRATIVE_CONTROL": "administrative-control", - "MWTN_ADMINISTRATIVE_STATE": "administrative-state", - "MWTN_AGGREGATE_FUNCTION": "aggregate-function", - "MWTN_AIRINTERFACECAPABILITY": "airInterfaceCapability", - "MWTN_AIRINTERFACECONFIGURATION": "AirInterfaceConfiguration", - "MWTN_AIRINTERFACECURRENTPERFORMANCE": "AirInterfaceCurrentPerformance", - "MWTN_AIRINTERFACECURRENTPROBLEMS": "airInterfaceCurrentProblems", - "MWTN_AIRINTERFACEDIVERSITY": "airInterfaceDiversity", - "MWTN_AIRINTERFACEDIVERSITYCAPABILITY": "airInterfaceDiversityCapability", - "MWTN_AIRINTERFACEDIVERSITYCONFIGURATION": "airInterfaceDiversityConfiguration", - "MWTN_AIRINTERFACEDIVERSITYCURRENTPERFORMANCE": "AirInterfaceDiversityCurrentPerformance", - "MWTN_AIRINTERFACEDIVERSITYCURRENTPROBLEMS": "AirInterfaceDiversityCurrentProblems", - "MWTN_AIRINTERFACEDIVERSITYHISTORICALPERFORMANCES": "airInterfaceDiversityHistoricalPerformances", - "MWTN_AIRINTERFACEDIVERSITYSTATUS": "AirInterfaceDiversityStatus", - "MWTN_AIRINTERFACEHISTORICALPERFORMANCES": "airInterfaceHistoricalPerformances", - "MWTN_AIRINTERFACEHSBCONFIGURATIONISFAULTYSEVERITY": "airInterfaceHsbConfigurationIsFaultySeverity", - "MWTN_AIRINTERFACEHSBISDOWNSEVERITY": "airInterfaceHsbIsDownSeverity", - "MWTN_AIRINTERFACEHSBISPARTLYDOWNSEVERITY": "airInterfaceHsbIsPartlyDownSeverity", - "MWTN_AIRINTERFACEID": "Air interface identifier", - "MWTN_AIRINTERFACELIST": "airInterfaceList", - "MWTN_AIRINTERFACELTPLIST": "airInterfaceLtpList", - "MWTN_AIRINTERFACENAME": "Air interface name", - "MWTN_AIRINTERFACESTATUS": "airInterfaceStatus", - "MWTN_AIR_INTERFACE": "Air interface", - "MWTN_AIR_INTERFACES": "Air interfaces", - "MWTN_AIR_INTERFACE_CAPABILITY": "air-interface-capability", - "MWTN_AIR_INTERFACE_CONFIGURATION": "air-interface-configuration", - "MWTN_AIR_INTERFACE_CURRENT_PERFORMANCE": "air-interface-current-performance", - "MWTN_AIR_INTERFACE_CURRENT_PROBLEMS": "air-interface-current-problems", - "MWTN_AIR_INTERFACE_DIVERSITY": "air-interface-diversity", - "MWTN_AIR_INTERFACE_DIVERSITY_CAPABILITY": "air-interface-diversity-capability", - "MWTN_AIR_INTERFACE_DIVERSITY_CONFIGURATION": "air-interface-diversity-configuration", - "MWTN_AIR_INTERFACE_DIVERSITY_CURRENT_PERFORMANCE": "air-interface-diversity-current-performance", - "MWTN_AIR_INTERFACE_DIVERSITY_CURRENT_PROBLEMS": "air-interface-diversity-current-problems", - "MWTN_AIR_INTERFACE_DIVERSITY_HISTORICAL_PERFORMANCES": "air-interface-diversity-historical-performances", - "MWTN_AIR_INTERFACE_DIVERSITY_STATUS": "air-interface-diversity-status", - "MWTN_AIR_INTERFACE_HISTORICAL_PERFORMANCES": "air-interface-historical-performances", - "MWTN_AIR_INTERFACE_HSB_CONFIGURATION_IS_FAULTY_SEVERITY": "air-interface-hsb-configuration-is-faulty-severity", - "MWTN_AIR_INTERFACE_HSB_IS_DOWN_SEVERITY": "air-interface-hsb-is-down-severity", - "MWTN_AIR_INTERFACE_HSB_IS_PARTLY_DOWN_SEVERITY": "air-interface-hsb-is-partly-down-severity", - "MWTN_AIR_INTERFACE_NAME": "air-interface-name", - "MWTN_AIR_INTERFACE_STATUS": "air-interface-status", - "MWTN_ALARMS": "Alarms", - "MWTN_ALARM_LOG": "Alarm log", - "MWTN_ALARM_NOTIFICATIONS": "Alarm notifications", - "MWTN_ALARM_STATUS": "Alarm status", - "MWTN_ALICISAVAIL": "alicIsAvail", - "MWTN_ALICISON": "alicIsOn", - "MWTN_ALICISUP": "alicIsUp", - "MWTN_ALIC_IS_AVAIL": "alic-is-avail", - "MWTN_ALIC_IS_ON": "alic-is-on", - "MWTN_ALIC_IS_UP": "alic-is-up", - "MWTN_AMDOWNSHIFTLEVEL": "AM downshift level", - "MWTN_AMUPSHIFTLEVEL": "AM upshift level", - "MWTN_AM_DOWNSHIFT_LEVEL": "am-downshift-level", - "MWTN_AM_UPSHIFT_LEVEL": "am-upshift-level", - "MWTN_ANNOUNCE_RECEIPT_TIMEOUT": "announce-receipt-timeout", - "MWTN_APPLY": "Apply", - "MWTN_ARBITRARY_ELEMENT": "arbitrary-element", - "MWTN_ASSET_INSTANCE_IDENTIFIER": "asset-instance-identifier", - "MWTN_ASSET_TYPE_IDENTIFIER": "asset-type-identifier", - "MWTN_ATPCISAVAIL": "atpcIsAvail", - "MWTN_ATPCISON": "atpcIsOn", - "MWTN_ATPCISUP": "atpcIsUp", - "MWTN_ATPCRANGE": "atpcRange", - "MWTN_ATPCTHRESHLOWER": "atpcThreshLower", - "MWTN_ATPCTHRESHUPPER": "atpcThreshUpper", - "MWTN_ATPC_IS_AVAIL": "atpc-is-avail", - "MWTN_ATPC_IS_ON": "atpc-is-on", - "MWTN_ATPC_IS_UP": "atpc-is-up", - "MWTN_ATPC_RANGE": "atpc-range", - "MWTN_ATPC_THRESH_LOWER": "atpc-thresh-lower", - "MWTN_ATPC_THRESH_UPPER": "atpc-thresh-upper", - "MWTN_ATTRIBUTE": "Attribute", - "MWTN_ATTRIBUTE_NAME": "attribute-name", - "MWTN_ATTRIBUTE_VALUE_CHANGED": "Attribute value changed", - "MWTN_AUTOFREQSELECTISAVAIL": "Automatic frequency selection", - "MWTN_AUTOFREQSELECTISON": "autoFreqSelectIsOn", - "MWTN_AUTOFREQSELECTISUP": "autoFreqSelectIsUp", - "MWTN_AUTOFREQSELECTRANGE": "autoFreqSelectRange", - "MWTN_AUTO_FREQ_SELECT_IS_AVAIL": "auto-freq-select-is-avail", - "MWTN_AUTO_FREQ_SELECT_IS_ON": "auto-freq-select-is-on", - "MWTN_AUTO_FREQ_SELECT_IS_UP": "auto-freq-select-is-up", - "MWTN_AUTO_FREQ_SELECT_RANGE": "auto-freq-select-range", - "MWTN_AVAILABLEKINDSOFCONTAINERLIST": "Supported clients", - "MWTN_AVAILABLEKINDSOFDIVERSITY": "availableKindsOfDiversity", - "MWTN_AVAILABLE_KINDS_OF_DIVERSITY": "available-kinds-of-diversity", - "MWTN_BUNDLINGISAVAIL": "bundlingIsAvail", - "MWTN_BUNDLING_IS_AVAIL": "bundling-is-avail", - "MWTN_CANCEL": "Cancel", - "MWTN_CAPABILITY": "Capability", - "MWTN_CATEGORY": "category", - "MWTN_CHANNELBANDWIDTH": "Channel bandwidth", - "MWTN_CHANNEL_BANDWIDTH": "channel-bandwidth", - "MWTN_CLASS_OF_INSTANCE": "class-of-instance", - "MWTN_CLEAR": "Clear", - "MWTN_CLIENT_LTP": "Client LTPs", - "MWTN_CLOCK": "Clock (IEEE 1588v2)", - "MWTN_CLOCK_ACCURACY": "clock-accuracy", - "MWTN_CLOCK_CLASS": "clock-class", - "MWTN_CLOCK_IDENTITY": "clock-identity", - "MWTN_CLOCK_QUALITY": "clock-quality", - "MWTN_CLOSE": "Close", - "MWTN_COCHANNELGROUP": "CoChannelGroup", - "MWTN_COCHANNELGROUPID": "coChannelGroupId", - "MWTN_CODE_RATE": "code-rate", - "MWTN_CODE_RATE_CUR": "code-rate-cur", - "MWTN_COLLAPSE_ALL": "Collapse all", - "MWTN_CONDITIONALPACKAGE": "Conditional package", - "MWTN_CONDITIONAL_PACKAGE": "Conditional package", - "MWTN_CONFIGURATION": "Configuration", - "MWTN_CONFIGUREDCLIENTCAPACITY": "configuredClientCapacity", - "MWTN_CONFIGURED_CLIENT_CAPACITY": "configured-client-capacity", - "MWTN_CONFIG_AND_SWITCH_CONTROLLER": "config-and-switch-controller", - "MWTN_CONNECTED_LTP": "connected-ltp", - "MWTN_CONNECTIONSTATUS": "Connection status", - "MWTN_CONNECTION_STATUS_LOG": "Connection status log", - "MWTN_CONNECTOR": "connector", - "MWTN_CONNECTOR_CABLE_END": "connector-cable-end", - "MWTN_CONNECTOR_CAPABILITY": "connector-capability", - "MWTN_CONNECTOR_CONFIGURATION": "connector-configuration", - "MWTN_CONNECTOR_CURRENT_PROBLEMS": "connector-current-problems", - "MWTN_CONNECTOR_IN_HOLDER": "connector-in-holder", - "MWTN_CONNECTOR_ON_EQUIPMENT_FOR_CABLE": "connector-on-equipment-for-cable", - "MWTN_CONNECTOR_ON_EQUIPMENT_FOR_HOLDER": "connector-on-equipment-for-holder", - "MWTN_CONNECTOR_PAC": "connector-pac", - "MWTN_CONNECTOR_STATUS": "connector-status", - "MWTN_CONNECTOR_TYPE": "connector-type", - "MWTN_CONTAINED_HOLDER": "contained-holder", - "MWTN_CONTAINER": "Client", - "MWTN_CONTAINERID": "containerID", - "MWTN_CONTAINERTYPE": "containerType", - "MWTN_CONTAINER_ID": "container-id", - "MWTN_CONTAINER_NAME": "container-name", - "MWTN_CONTAINER_TYPE": "container-type", - "MWTN_CONTROL_PARAMETERS": "control-parameters", - "MWTN_COUNTER": "counter", - "MWTN_CO_CHANNEL_GROUP": "co-channel-group", - "MWTN_CO_CHANNEL_GROUP_ID": "co-channel-group-id", - "MWTN_CREATE": "Create", - "MWTN_CRYPTOGRAPHICKEY": "cryptographicKey", - "MWTN_CRYPTOGRAPHIC_KEY": "cryptographic-key", - "MWTN_CSES": "CSES", - "MWTN_CURRENTPERFORMANCEDATALIST": "currentPerformanceDataList", - "MWTN_CURRENTPROBLEMLIST": "currentProblemList", - "MWTN_CURRENT_DS": "current-ds", - "MWTN_CURRENT_PERFORMANCE_DATA_LIST": "current-performance-data", - "MWTN_CURRENT_PROBLEM_LIST": "Current problem list", - "MWTN_CURRENT_UTC_OFFSET": "current-utc-offset", - "MWTN_CURRENT_UTC_OFFSET_VALID": "current-utc-offset-valid", - "MWTN_CUT_THROUGH_COMMANDS": "Cut-through commands", - "MWTN_DEFAULT_DS": "default-ds", - "MWTN_DEFECTBLOCKSSUM": "Defect blocks (sum)", - "MWTN_DEFECT_BLOCKS_SUM": "defect-blocks-sum", - "MWTN_DELAY_ASYMMETRY": "delay-asymmetry", - "MWTN_ONF_PTP_DATASET:DELAY_ASYMMETRY": "delay-asymmetry", - "MWTN_DELAY_MECHANISM": "delay-mechanism", - "MWTN_DELETE": "Delete", - "MWTN_DESCRIPTION": "description", - "MWTN_DESIGNATED_ENABLED": "designated-enabled", - "MWTN_ONF_PTP_DATASET:DESIGNATED_ENABLED": "designated-enabled", - "MWTN_DIRECTIONALITY": "Directionality", - "MWTN_DIVERSITY_NAME": "diversity-name", - "MWTN_DOMAIN_NUMBER": "domain-number", - "MWTN_DUPLEXDISTANCE": "Duplex distance", - "MWTN_DUPLEXDISTANCEISVARIABLE": "Variable duplex distance", - "MWTN_DUPLEX_DISTANCE": "duplex-distance", - "MWTN_DUPLEX_DISTANCE_IS_VARIABLE": "duplex-distance-is-variable", - "MWTN_EFFORT_AND_ACTION": "effort-and-action", - "MWTN_ELAPSEDTIME": "elapsedTime", - "MWTN_ELAPSED_TIME": "elapsed-time", - "MWTN_ENCRYPTIONISAVAIL": "encryptionIsAvail", - "MWTN_ENCRYPTIONISON": "encryptionIsOn", - "MWTN_ENCRYPTION_IS_AVAIL": "encryption-is-avail", - "MWTN_ENCRYPTION_IS_ON": "encryption-is-on", - "MWTN_ENDPOINT": "endpoint", - "MWTN_EQUIPMENT": "equipment", - "MWTN_EQUIPMENT_CAPABILITY": "equipment-capability", - "MWTN_EQUIPMENT_CONFIGURATION": "equipment-configuration", - "MWTN_EQUIPMENT_CURRENT_PROBLEMS": "equipment-current-problems", - "MWTN_EQUIPMENT_INSTANCE": "equipment-instance", - "MWTN_EQUIPMENT_LOCATION": "equipment-location", - "MWTN_EQUIPMENT_PAC": "equipment-pac", - "MWTN_EQUIPMENT_STATUS": "equipment-status", - "MWTN_EQUIPMENT_TYPE": "equipment-type", - "MWTN_ES": "ES", - "MWTN_ETH": "Ethernet (ETH)", - "MWTN_ETH-CTP": "Ethernet connection termination point (ETH-CTP)", - "MWTN_ETHERNETCONTAINERCAPABILITY": "EthernetContainerCapability", - "MWTN_ETHERNETCONTAINERCONFIGURATION": "ethernetContainerConfiguration", - "MWTN_ETHERNETCONTAINERCURRENTPERFORMANCE": "ethernetContainerCurrentPerformance", - "MWTN_ETHERNETCONTAINERCURRENTPROBLEMS": "ethernetContainerCurrentProblems", - "MWTN_ETHERNETCONTAINERHISTORICALPERFORMANCES": "ethernetContainerHistoricalPerformances", - "MWTN_ETHERNETCONTAINERSTATUS": "ethernetContainerStatus", - "MWTN_ETHERNET_CAPABILITY": "ethernet-capability", - "MWTN_ETHERNET_CONFIGURATION": "ethernet-configuration", - "MWTN_ETHERNET_CONTAINER_CAPABILITY": "ethernet-container-capability", - "MWTN_ETHERNET_CONTAINER_CONFIGURATION": "ethernet-container-configuration", - "MWTN_ETHERNET_CONTAINER_CURRENT_PERFORMANCE": "ethernet-container-current-performance", - "MWTN_ETHERNET_CONTAINER_CURRENT_PROBLEMS": "ethernet-container-current-problems", - "MWTN_ETHERNET_CONTAINER_HISTORICAL_PERFORMANCES": "ethernet-container-historical-performances", - "MWTN_ETHERNET_CONTAINER_STATUS": "ethernet-container-status", - "MWTN_ETHERNET_CURRENT_PERFORMANCE": "ethernet-current-performance", - "MWTN_ETHERNET_CURRENT_PROBLEMS": "ethernet-current-problems", - "MWTN_ETHERNET_HISTORICAL_PERFORMANCES": "ethernet-historical-performances", - "MWTN_ETHERNET_PAC": "ethernet-pac", - "MWTN_ETHERNET_STATUS": "ethernet-status", - "MWTN_EXPECTED_EQUIPMENT": "expected-equipment", - "MWTN_EXPECTED_HOLDER": "expected-holder", - "MWTN_EXPOSED_CABLE": "exposed-cable", - "MWTN_EXTENSION": "Extension", - "MWTN_EXTENSIONLIST": "extensionList", - "MWTN_FAULTY_FLAG": "faulty-flag", - "MWTN_FCPORT": "FcPort", - "MWTN_FCPORTDIRECTION": "fcPortDirection", - "MWTN_FCSWITCH": "fcswitch", - "MWTN_FC_BLOCKS_SIGNAL_TO_LP": "fc-blocks-signal-to-lp", - "MWTN_FC_PORT": "fc-port", - "MWTN_FC_PORT_DIRECTION": "fc-port-direction", - "MWTN_FC_SWITCH": "fc-switch", - "MWTN_FD": "fd", - "MWTN_FIRE_CHARACTERISTICS": "fire-characteristics", - "MWTN_FORWARDINGCONSTRUCT": "ForwardingConstruct", - "MWTN_FORWARDINGDIRECTION": "forwardingDirection", - "MWTN_FORWARDINGDOMAIN": "ForwardingDomain", - "MWTN_FORWARDING_CONSTRUCT": "forwarding-construct", - "MWTN_FORWARDING_DIRECTION": "forwarding-direction", - "MWTN_FREQUENCY_TRACEABLE": "frequency-traceable", - "MWTN_FUNCTION_ENABLERS": "function-enablers", - "MWTN_GENERALDIRECTIVES": "generaldirectives", - "MWTN_GEOGRAPHICAL_LOCATION": "geographical-location", - "MWTN_GLOBALCLASS": "GlobalClass", - "MWTN_GLOBAL_PAC": "global-pac", - "MWTN_GRAPH": "Graph", - "MWTN_GRANDMASTER_CLOCK_QUALITY": "grandmaster-clock-quality", - "MWTN_GRANDMASTER_IDENTITY": "grandmaster-identity", - "MWTN_GRANDMASTER_PRIORITY1": "grandmaster-priority1", - "MWTN_GRANDMASTER_PRIORITY2": "grandmaster-priority2", - "MWTN_GRANULARITYPERIOD": "granularityPeriod", - "MWTN_GRANULARITY_PERIOD": "granularity-period", - "MWTN_HEIGHT": "height", - "MWTN_HIDE": "Hide", - "MWTN_HISTORICALPERFORMANCEDATALIST": "historicalPerformanceDataList", - "MWTN_HISTORICAL_PERFORMANCE_DATA_LIST": "historical-performance-data", - "MWTN_HISTORYDATAID": "historyDataId", - "MWTN_HISTORY_DATA_ID": "history-data-id", - "MWTN_HOLDER": "holder", - "MWTN_HOLDER_CAPABILITY": "holder-capability", - "MWTN_HOLDER_CATEGORY": "holder-category", - "MWTN_HOLDER_CONFIGURATION": "holder-configuration", - "MWTN_HOLDER_CURRENT_PROBLEMS": "holder-current-problems", - "MWTN_HOLDER_LOCATION": "holder-location", - "MWTN_HOLDER_MONITORS": "holder-monitors", - "MWTN_HOLDER_PAC": "holder-pac", - "MWTN_HOLDER_STATUS": "holder-status", - "MWTN_HOLDER_STRUCTURE": "holder-structure", - "MWTN_HOLDOFFTIME": "holdOffTime", - "MWTN_HOLD_OFF_TIME": "hold-off-time", - "MWTN_HYBRIDMWSTRUCTURECAPABILITY": "hybridMwStructureCapability", - "MWTN_HYBRIDMWSTRUCTURECONFIGURATION": "HybridMwStructureConfiguration", - "MWTN_HYBRIDMWSTRUCTURECURRENTPERFORMANCE": "HybridMwStructureCurrentPerformance", - "MWTN_HYBRIDMWSTRUCTURECURRENTPROBLEMS": "hybridMwStructureCurrentProblems", - "MWTN_HYBRIDMWSTRUCTUREHISTORICALPERFORMANCES": "hybridMwStructureHistoricalPerformances", - "MWTN_HYBRIDMWSTRUCTURESTATUS": "hybridMwStructureStatus", - "MWTN_HYBRID_MW_STRUCTURE_CAPABILITY": "hybrid-mw-structure-capability", - "MWTN_HYBRID_MW_STRUCTURE_CONFIGURATION": "hybrid-mw-structure-configuration", - "MWTN_HYBRID_MW_STRUCTURE_CURRENT_PERFORMANCE": "hybrid-mw-structure-current-performance", - "MWTN_HYBRID_MW_STRUCTURE_CURRENT_PROBLEMS": "hybrid-mw-structure-current-problems", - "MWTN_HYBRID_MW_STRUCTURE_HISTORICAL_PERFORMANCES": "hybrid-mw-structure-historical-performances", - "MWTN_HYBRID_MW_STRUCTURE_STATUS": "hybrid-mw-structure-status", - "MWTN_ID": "Identifier", - "MWTN_INFORMATIONRATE": "Information rate", - "MWTN_INFORMATIONRATECUR": "informationRateCur", - "MWTN_INSTANCE_LIST": "instances", - "MWTN_INSTANCE_NUMBER": "instance-number", - "MWTN_INTERFACE": "Interface", - "MWTN_INTERFERENCE_ALARM!": "INTERFERENCE ALARM!!!", - "MWTN_INTERFERENCE_ALARM?": "Interference alarm?", - "MWTN_INTERFERENCE_ALARM_STATUS": "Interferance alarm status", - "MWTN_INTERNAL_CONFIGURATION_AND_SWITCH_CONTROL": "internal-configuration-and-switch-control", - "MWTN_IPADDRESS": "IP address", - "MWTN_IPV4COMPRESSIONISAVAIL": "ipv4CompressionIsAvail", - "MWTN_IPV4COMPRESSIONISON": "ipv4CompressionIsOn", - "MWTN_IPV4_COMPRESSION_IS_AVAIL": "ipv4-compression-is-avail", - "MWTN_IPV4_COMPRESSION_IS_ON": "ipv4-compression-is-on", - "MWTN_IPV6COMPRESSIONISAVAIL": "ipv6CompressionIsAvail", - "MWTN_IPV6COMPRESSIONISON": "ipv6CompressionIsOn", - "MWTN_IPV6_COMPRESSION_IS_AVAIL": "ipv6-compression-is-avail", - "MWTN_IPV6_COMPRESSION_IS_ON": "ipv6-compression-is-on", - "MWTN_IS_ACTIVE": "is-active", - "MWTN_IS_ACTUAL_MISMATCH_WITH_EXPECTED": "is-actual-mismatch-with-expected", - "MWTN_IS_CAPTIVE": "is-captive", - "MWTN_IS_COORDINATED_SWITCHING_BOTH_ENDS": "is-coordinated-switching-both-ends", - "MWTN_IS_FIELD_REPLACEABLE": "is-field-replaceable", - "MWTN_IS_FROZEN": "is-frozen", - "MWTN_IS_GUIDED": "is-guided", - "MWTN_IS_HOT_SWAPPABLE": "is-hot-swappable", - "MWTN_IS_INTERNAL_PORT": "is-internal-port", - "MWTN_IS_NOT": "is-not", - "MWTN_IS_PROTECTION_LOCK_OUT": "is-protection-lock-out", - "MWTN_IS_QUANTIZED_SPACE": "is-quantized-space", - "MWTN_IS_SHORT_LIVED": "is-short-lived", - "MWTN_ITEMS": "items", - "MWTN_LABEL": "Label", - "MWTN_LABELLIST": "labelList", - "MWTN_LASTSTATUSCHANGE": "lastStatusChange", - "MWTN_LAST_STATUS_CHANGE": "last-status-change", - "MWTN_LAYER": "Layer", - "MWTN_LAYER2COMPRESSIONISAVAIL": "layer2CompressionIsAvail", - "MWTN_LAYER2COMPRESSIONISON": "layer2CompressionIsOn", - "MWTN_LAYER2_COMPRESSION_IS_AVAIL": "layer2-compression-is-avail", - "MWTN_LAYER2_COMPRESSION_IS_ON": "layer2-compression-is-on", - "MWTN_LAYER4COMPRESSIONISAVAIL": "layer4CompressionIsAvail", - "MWTN_LAYER4COMPRESSIONISON": "layer4CompressionIsOn", - "MWTN_LAYER4_COMPRESSION_IS_AVAIL": "layer4-compression-is-avail", - "MWTN_LAYER4_COMPRESSION_IS_ON": "layer4-compression-is-on", - "MWTN_LAYERPROTOCOL": "LayerProtocol", - "MWTN_LAYERPROTOCOLNAME": "layerProtocolName", - "MWTN_LAYERPROTOCOLNAMELIST": "layerProtocolNameList", - "MWTN_LAYER_PROTOCOL": "layer-protocol", - "MWTN_LAYER_PROTOCOL_NAME": "layer-protocol-name", - "MWTN_LEAP59": "leap59", - "MWTN_LEAP61": "leap61", - "MWTN_LENGTH": "length", - "MWTN_LIFECYCLESTATE": "lifecycleState", - "MWTN_LIFECYCLE_STATE": "lifecycle-state", - "MWTN_LINKISUP": "linkIsUp", - "MWTN_LINK_IS_UP": "link-is-up", - "MWTN_LOADING": "Loading...", - "MWTN_LOCALCLASS": "LocalClass", - "MWTN_LOCALENDPOINTID": "localEndPointId", - "MWTN_LOCALIDLIST": "localIdList", - "MWTN_LOCAL_END_POINT": "local-end-point", - "MWTN_LOCAL_END_POINT_ID": "local-end-point-id", - "MWTN_LOCAL_ID": "local-id", - "MWTN_LOCAL_PAC": "local-pac", - "MWTN_LOCAL_PRIORITY": "local-priority", - "MWTN_ONF_PTP_DATASET:LOCAL_PRIORITY": "local-priority", - "MWTN_LOCATION": "location", - "MWTN_LOGICALTERMINATIONPOINT": "LogicalTerminationPoint", - "MWTN_LOGICAL_TERMINATION_POINT": "logical-termination-point", - "MWTN_ONF_PTP_DATASET:LOGICAL_TERMINATION_POINT": "logical-termination-point", - "MWTN_LOG_ANNOUNCE_INTERVAL": "log-announce-interval", - "MWTN_LOG_MIN_DELAY_REQ_INTERVAL": "log-min-delay-req-interval", - "MWTN_LOG_MIN_PDELAY_REQ_INTERVAL": "log-min-pdelay-req-interval", - "MWTN_LOG_SYNC_INTERVAL": "log-sync-interval", - "MWTN_LOOPBACKISAVAIL": "loopBackIsAvail", - "MWTN_LOOPBACKISON": "loopBackIsOn", - "MWTN_LOOPBACKISUP": "loopBackIsUp", - "MWTN_LOOP_BACK_KIND_ON": "loop-back-kind-on", - "MWTN_LOOP_BACK_KIND_UP": "loop-back-kind-up", - "MWTN_LP": "Layer protocol", - "MWTN_LPDIRECTION": "lpDirection", - "MWTN_LP_DIRECTION": "lp-direction", - "MWTN_LTP": "LTP", - "MWTN_LTPS": "LTPs", - "MWTN_LTPDIRECTION": "ltpDirection", - "MWTN_LTP_DIRECTION": "ltp-direction", - "MWTN_MAINTENANCETIMER": "maintenanceTimer", - "MWTN_MAINTENANCETIMERRANGE": "maintenanceTimerRange", - "MWTN_MAINTENANCE_TIMER": "maintenance-timer", - "MWTN_MAINTENANCE_TIMER_RANGE": "maintenance-timer-range", - "MWTN_MAKE_KNOWN": "To required NEs...", - "MWTN_MANUFACTURED_THING": "manufactured-thing", - "MWTN_MANUFACTURER_IDENTIFIER": "manufacturer-identifier", - "MWTN_MANUFACTURER_NAME": "manufacturer-name", - "MWTN_MANUFACTURER_PROPERTIES": "manufacturer-properties", - "MWTN_MANUFACTURE_DATE": "manufacture-date", - "MWTN_MASTER_ONLY": "master-only", - "MWTN_ONF_PTP_DATASET:MASTER_ONLY": "master-only", - "MWTN_MATERIALS": "materials", - "MWTN_MAX_NUMBER_OF_SEGMENTS_RESERVABLE": "max-number-of-segments-reservable", - "MWTN_MAX_STEPS_REMOVED": "max-steps-removed", - "MWTN_MEAN_PATH_DELAY": "mean-path-delay", - "MWTN_MECHANICAL_FEATURES": "mechanical-features", - "MWTN_MECHANICAL_FUNCTIONS": "mechanical-functions", - "MWTN_MESSAGE": "Message", - "MWTN_MICROWAVEMODEL_OBJECTCLASSES_AIRINTERFACE:MW_AIRINTERFACE_PAC": "Airinterface", - "MWTN_MICROWAVEMODEL_OBJECTCLASSES_ETHERNETCONTAINER:MW_ETHERNETCONTAINER_PAC": "Ethernet container", - "MWTN_MICROWAVEMODEL_OBJECTCLASSES_PUREETHERNETSTRUCTURE:MW_PUREETHERNETSTRUCTURE_PAC": "Structure (pure ethernet)", - "MWTN_MICROWAVE_MODEL:MW_AIR_INTERFACE_DIVERISTY_PAC": "Diversity", - "MWTN_MICROWAVE_MODEL:MW_AIR_INTERFACE_PAC": "Airinterface", - "MWTN_MICROWAVE_MODEL:MW_ETHERNET_CONTAINER_PAC": "Ethernet container", - "MWTN_MICROWAVE_MODEL:MW_HYBRID_MW_STRUCTURE_PAC": "Structure (hybrid)", - "MWTN_MICROWAVE_MODEL:MW_PURE_ETHERNET_STRUCTURE_PAC": "Structure (pure ethernet)", - "MWTN_MICROWAVE_MODEL:MW_TDM_CONTAINER_PAC": "TDM container", - "MWTN_MIMOCHANNELS": "mimoChannels", - "MWTN_MIMOISAVAIL": "mimoIsAvail", - "MWTN_MIMOISON": "mimoIsOn", - "MWTN_MIMOISUP": "mimoIsUp", - "MWTN_MIMO_CHANNELS": "mimo-channels", - "MWTN_MIMO_IS_AVAIL": "mimo-is-avail", - "MWTN_MIMO_IS_ON": "mimo-is-on", - "MWTN_MIMO_IS_UP": "mimo-is-up", - "MWTN_MODEL_IDENTIFIER": "model-identifier", - "MWTN_MODULATIONCUR": "modulationCur", - "MWTN_MODULATIONISON": "modulationIsOn", - "MWTN_MODULATIONMAX": "modulationMax", - "MWTN_MODULATIONMIN": "modulationMin", - "MWTN_MODULATIONSCHEME": "Modulation scheme", - "MWTN_MODULATION_CUR": "modulation-cur", - "MWTN_MODULATION_IS_ON": "modulation-is-on", - "MWTN_MODULATION_MAX": "modulation-max", - "MWTN_MODULATION_MIN": "modulation-min", - "MWTN_MODULATION_SCHEME": "modulation-scheme", - "MWTN_MOUNT": "Mount", - "MWTN_MOUNTPOINT": "Mountpoint", - "MWTN_MPLSCOMPRESSIONISAVAIL": "mplsCompressionIsAvail", - "MWTN_MPLSCOMPRESSIONISON": "mplsCompressionIsOn", - "MWTN_MPLS_COMPRESSION_IS_AVAIL": "mpls-compression-is-avail", - "MWTN_MPLS_COMPRESSION_IS_ON": "mpls-compression-is-on", - "MWTN_MULTICAST_MAC_ADDRESS": "multicast-mac-address", - "MWTN_MWCURRENTPROBLEM": "MwCurrentProblem", - "MWTN_MWPS": "Microwave Physical Section (MWPS)", - "MWTN_MWS": "Microwave Section (MWS)", - "MWTN_MW_AIRINTERFACEDIVERSITY_PAC": "MW_AirInterfaceDiversity_Pac", - "MWTN_MW_AIRINTERFACEHSBENDPOINT_PAC": "MW_AirInterfaceHsbEndPoint_Pac", - "MWTN_MW_AIRINTERFACEHSBFCSWITCH_PAC": "MW_AirInterfaceHsbFcSwitch_Pac", - "MWTN_MW_AIRINTERFACE_PAC": "MW_AirInterface_Pac", - "MWTN_MW_AIR_INTERFACE_DIVERSITY_PAC": "mw-air-interface-diversity-pac", - "MWTN_MW_AIR_INTERFACE_HSB_END_POINT_PAC": "mw-air-interface-hsb-end-point-pac", - "MWTN_MW_AIR_INTERFACE_HSB_FC_SWITCH_PAC": "mw-air-interface-hsb-fc-switch-pac", - "MWTN_MW_AIR_INTERFACE_PAC": "mw-air-interface-pac", - "MWTN_MW_ETHERNETCONTAINER_PAC": "MW_EthernetContainer_Pac", - "MWTN_MW_ETHERNET_CONTAINER_PAC": "mw-ethernet-container-pac", - "MWTN_MW_HYBRIDMWSTRUCTURE_PAC": "MW_HybridMwStructure_Pac", - "MWTN_MW_HYBRID_MW_STRUCTURE_PAC": "mw-hybrid-mw-structure-pac", - "MWTN_MW_PUREETHERNETSTRUCTURE_PAC": "MW_PureEthernetStructure_Pac", - "MWTN_MW_PURE_ETHERNET_STRUCTURE_PAC": "mw-pure-ethernet-structure-pac", - "MWTN_MW_TDMCONTAINER_PAC": "MW_TdmContainer_Pac", - "MWTN_MW_TDM_CONTAINER_PAC": "mw-tdm-container-pac", - "MWTN_NAME": "Name", - "MWTN_NAMEANDVALUEAUTHORITY": "NameAndValueAuthority", - "MWTN_NAMEBINDING": "nameBinding", - "MWTN_NAMELIST": "nameList", - "MWTN_NAME_BINDING": "name-binding", - "MWTN_NECESSARY_INITIALCONDITION_CONSTRAINTS": "necessary-initialcondition-constraints", - "MWTN_NETCONF_PORT": "NetConf port", - "MWTN_NETWORKELEMENT": "Network element", - "MWTN_NETWORK_ELEMENT": "network-element", - "MWTN_NETWORK_ELEMENT_CAPABILITY": "network-element-capability", - "MWTN_NETWORK_ELEMENT_CONFIGURATION": "network-element-configuration", - "MWTN_NETWORK_ELEMENT_CURRENT_PROBLEMS": "network-element-current-problems", - "MWTN_NETWORK_ELEMENT_PAC": "network-element-pac", - "MWTN_NETWORK_ELEMENT_STATUS": "network-element-status", - "MWTN_NETWORK_SCHEME_SPECIFICATION": "network-scheme-specification", - "MWTN_NEW_VALUE": "new-value", - "MWTN_NICKNAME": "Nickname", - "MWTN_NODES": "Nodes", - "MWTN_NO_DEVICES_CONNECTED": "Sorry, no Microwave devices connected to OpenDaylight.", - "MWTN_NUMBEROFLTPS": "# of LTPs", - "MWTN_NUMBEROFTDMSEGMENTSTOBERESERVED": "numberOfTdmSegmentsToBeReserved", - "MWTN_NUMBER_OF_AIR_INTERFACES_MAX": "number-of-air-interfaces-max", - "MWTN_NUMBER_OF_TDM_SEGMENTS_TO_BE_RESERVED": "number-of-tdm-segments-to-be-reserved", - "MWTN_NUMBER_OF_TIME_SLOTS_REQUIRED": "number-of-time-slots-required", - "MWTN_NUMBER_PORTS": "number-ports", - "MWTN_OBJECTCLASS": "objectClass", - "MWTN_OBJECTIDREF": "Object", - "MWTN_OBJECT_CLASS": "object-class", - "MWTN_OBJECT_DELETION_CREATION": "Object deletion or creation", - "MWTN_OBJECT_ID_REF": "object-id-ref", - "MWTN_OBJECT_REFERENCE": "object-reference", - "MWTN_OBJECT_TYPE": "object-type", - "MWTN_OBSERVED_PARENT_CLOCK_PHASE_CHANGE_RATE": "observed-parent-clock-phase-change-rate", - "MWTN_OBSERVED_PARENT_OFFSET_SCALED_LOG_VARIANCE": "observed-parent-offset-scaled-log-variance", - "MWTN_OBSOLETE_DROP_ORDER_RANK": "obsolete-drop-order-rank", - "MWTN_OBSOLETE_PRIORITY_CLASS": "obsolete-priority-class", - "MWTN_OCCUPYING_FRU": "occupying-fru", - "MWTN_OFFSET_FROM_MASTER": "offset-from-master", - "MWTN_OFFSET_SCALED_LOG_VARIANCE": "offset-scaled-log-variance", - "MWTN_OK": "Ok", - "MWTN_ONF_ETHERNET_CONDITIONAL_PACKAGES:ETHERNET_PAC": "Ethernet", - "MWTN_OPERATIONALSTATE": "operationalState", - "MWTN_OPERATIONALSTATUS": "Operational status", - "MWTN_OPERATIONAL_STATE": "operational-state", - "MWTN_OPERATIONAL_STATUS": "operational-status", - "MWTN_OPERATIONIDENTIFIERS": "operationidentifiers", - "MWTN_OPERATION_DETAILS": "operation-details", - "MWTN_OPERATION_ENVELOPE": "operation-envelope", - "MWTN_OPERATION_SET": "operation-set", - "MWTN_OPERATOR_AUGMENTED_EQUIPMENT_TYPE": "operator-augmented-equipment-type", - "MWTN_OPERTYPE": "operType", - "MWTN_ORIENTATION": "orientation", - "MWTN_OTN_CURRENTDATA": "OTN_CurrentData", - "MWTN_OTN_HISTORYDATA": "OTN_HistoryData", - "MWTN_PACKETCOMPRESSIONISAVAIL": "packetCompressionIsAvail", - "MWTN_PACKETCOMPRESSIONISON": "packetCompressionIsOn", - "MWTN_PACKET_COMPRESSION_IS_AVAIL": "packet-compression-is-avail", - "MWTN_PACKET_COMPRESSION_IS_ON": "packet-compression-is-on", - "MWTN_PARENT_DS": "parent-ds", - "MWTN_PARENT_PORT_IDENTITY": "parent-port-identity", - "MWTN_PARENT_STATS": "parent-stats", - "MWTN_PART_TYPE_IDENTIFIER": "part-type-identifier", - "MWTN_PASSWORD": "Password", - "MWTN_PAUSE_RESUME_RULE": "pause-resume-rule", - "MWTN_PEER_LTP": "peer-ltp", - "MWTN_PEER_MEAN_PATH_DELAY": "peer-mean-path-delay", - "MWTN_PERFORMANCEDATA": "Performance data", - "MWTN_PERFORMANCE_DATA": "Performance-data", - "MWTN_PERIODENDTIME": "period-end-time", - "MWTN_PERIOD_END_TIME": "period-end-time", - "MWTN_PHYSICALPORTREFERENCE": "physical-port-reference", - "MWTN_PHYSICAL_CHARACTERISTICS": "physical-characteristics", - "MWTN_PHYSICAL_PROPERTIES": "physical-properties", - "MWTN_PHYSICAL_RATING": "physical-rating", - "MWTN_PIN": "pin", - "MWTN_PIN_GROUP": "pin-group", - "MWTN_PIN_LAYOUT": "pin-layout", - "MWTN_POLARIZATION": "Polarization", - "MWTN_PORT": "Port", - "MWTN_PORT_DS_LIST": "ptp-ports", - "MWTN_PORT_IDENTITY": "port-identity", - "MWTN_PORT_NUMBER": "port-number", - "MWTN_PORT_STATE": "port-state", - "MWTN_POSITION": "position", - "MWTN_POWERISON": "powerIsOn", - "MWTN_POWER_IS_ON": "power-is-on", - "MWTN_POWER_RATING": "power-rating", - "MWTN_POWER_STATE": "power-state", - "MWTN_PRIMARY_DOMAIN": "primary-domain", - "MWTN_PRIORITY1": "priority1", - "MWTN_PRIORITY2": "priority2", - "MWTN_PROBLEM": "problem", - "MWTN_PROBLEMKINDNAME": "Alarm", - "MWTN_PROBLEMKINDSEVERITY": "Severity", - "MWTN_PROBLEMKINDSEVERITYLIST": "Severity list", - "MWTN_PROBLEMNAME": "Problem name", - "MWTN_PROBLEMSEVERITY": "Severity", - "MWTN_PROBLEM_KIND_NAME": "problem-type", - "MWTN_PROBLEM_KIND_SEVERITY": "severity", - "MWTN_PROBLEM_KIND_SEVERITY_LIST": "severities", - "MWTN_PROBLEM_NAME": "problem-name", - "MWTN_PROBLEM_SEVERITY": "problem-severity", - "MWTN_PROBLEM_TYPE_NAME": "problem-type-name", - "MWTN_PROBLEM_TYPE_SEVERITY": "problem-type-severity", - "MWTN_PROBLEM_TYPE_SEVERITY_LIST": "problem-severities", - "MWTN_PROTTYPE": "protType", - "MWTN_PROT_TYPE": "prot-type", - "MWTN_PTP_TIMESCALE": "ptp-timescale", - "MWTN_PUREETHERNETSTRUCTURECAPABILITY": "pureEthernetStructureCapability", - "MWTN_PUREETHERNETSTRUCTURECONFIGURATION": "pureEthernetStructureConfiguration", - "MWTN_PUREETHERNETSTRUCTURECURRENTPERFORMANCE": "PureEthernetStructureCurrentPerformance", - "MWTN_PUREETHERNETSTRUCTURECURRENTPROBLEMS": "PureEthernetStructureCurrentProblems", - "MWTN_PUREETHERNETSTRUCTUREHISTORICALPERFORMANCES": "PureEthernetStructureHistoricalPerformances", - "MWTN_PUREETHERNETSTRUCTURESTATUS": "PureEthernetStructureStatus", - "MWTN_PURE_ETHERNET_STRUCTURE_CAPABILITY": "pure-ethernet-structure-capability", - "MWTN_PURE_ETHERNET_STRUCTURE_CONFIGURATION": "pure-ethernet-structure-configuration", - "MWTN_PURE_ETHERNET_STRUCTURE_CURRENT_PERFORMANCE": "pure-ethernet-structure-current-performance", - "MWTN_PURE_ETHERNET_STRUCTURE_CURRENT_PROBLEMS": "pure-ethernet-structure-current-problems", - "MWTN_PURE_ETHERNET_STRUCTURE_HISTORICAL_PERFORMANCES": "pure-ethernet-structure-historical-performances", - "MWTN_PURE_ETHERNET_STRUCTURE_STATUS": "pure-ethernet-structure-status", - "MWTN_QINQCOMPRESSIONISAVAIL": "qInQCompressionIsAvail", - "MWTN_QINQCOMPRESSIONISON": "qInQCompressionIsOn", - "MWTN_Q_IN_Q_COMPRESSION_IS_AVAIL": "q-in-q-compression-is-avail", - "MWTN_Q_IN_Q_COMPRESSION_IS_ON": "q-in-q-compression-is-on", - "MWTN_RADIOPOWERISUP": "radioPowerIsUp", - "MWTN_RADIOSIGNALID": "Radio signal identifier", - "MWTN_RADIOSIGNALIDS": "Radio signal identifiers", - "MWTN_RADIO_POWER_IS_UP": "radio-power-is-up", - "MWTN_RADIO_SIGNAL_ID": "radio-signal-id", - "MWTN_RECEIVERISON": "receiverIsOn", - "MWTN_RECEIVER_IS_ON": "receiver-is-on", - "MWTN_REFRESH": "Refresh", - "MWTN_REFRESH_STATUS": "refresh-status", - "MWTN_RELATIVE_POSITION": "relative-position", - "MWTN_REMOTEENDPOINTID": "remoteEndPointId", - "MWTN_REMOTE_END_POINT": "remote-end-point", - "MWTN_REMOTE_END_POINT_ID": "remote-end-point-id", - "MWTN_REVERSION_MODE": "reversion-mode", - "MWTN_REVISON": "Revision", - "MWTN_RFTEMPAVG": "Temerature (avg)", - "MWTN_RFTEMPCUR": "rfTempCur", - "MWTN_RFTEMPMAX": "Temerature (max)", - "MWTN_RFTEMPMIN": "Temerature (min)", - "MWTN_RF_TEMP_AVG": "rf-temp-avg", - "MWTN_RF_TEMP_CUR": "rf-temp-cur", - "MWTN_RF_TEMP_MAX": "rf-temp-max", - "MWTN_RF_TEMP_MIN": "rf-temp-min", - "MWTN_ROLE": "role", - "MWTN_ROTATION_SPEED": "rotation-speed", - "MWTN_RXCHANNELBANDWIDTH": "rxChannelBandwidth", - "MWTN_RXFREQUENCY": "Receive frequency", - "MWTN_RXFREQUENCYCUR": "rxFrequencyCur", - "MWTN_RXFREQUENCYMAX": "rxFrequencyMax", - "MWTN_RXFREQUENCYMIN": "rxFrequencyMin", - "MWTN_RXLEVELAVG": "Receive level (avg)", - "MWTN_RXLEVELCUR": "rxLevelCur", - "MWTN_RXLEVELMAX": "Receive level (min)", - "MWTN_RXLEVELMIN": "Receive level (max)", - "MWTN_RXTHRESHOLD": "RX threshold", - "MWTN_RX_CHANNEL_BANDWIDTH": "rx-channel-bandwidth", - "MWTN_RX_FREQUENCY": "rx-frequency", - "MWTN_RX_FREQUENCY_CUR": "rx-frequency-cur", - "MWTN_RX_FREQUENCY_MAX": "rx-frequency-max", - "MWTN_RX_FREQUENCY_MIN": "rx-frequency-min", - "MWTN_RX_LEVEL_AVG": "rx-level-avg", - "MWTN_RX_LEVEL_CUR": "rx-level-cur", - "MWTN_RX_LEVEL_MAX": "rx-level-max", - "MWTN_RX_LEVEL_MIN": "rx-level-min", - "MWTN_RX_THRESHOLD": "rx-threshold", - "MWTN_SCANNERID": "scannerId", - "MWTN_SCANNER_ID": "scanner-id", - "MWTN_SCRIPTID": "Script id", - "MWTN_SCRIPTLIST": "Scripts", - "MWTN_SEGMENTID": "segmentID", - "MWTN_SEGMENTSIDLIST": "segmentsIDList", - "MWTN_SEGMENTSTATUSLIST": "segmentStatusList", - "MWTN_SEGMENTS_ID_LIST": "segments-ids", - "MWTN_SEGMENT_ID": "segment-id", - "MWTN_SEGMENT_ID_REF": "segment-id-ref", - "MWTN_SEGMENT_IS_RESERVED_FOR_TDM": "segment-is-reserved-for-tdm", - "MWTN_SEGMENT_STATUS_LIST": "segment-status", - "MWTN_SEGMENT_STATUS_TYPE_ID": "segment-status-type-id", - "MWTN_SELECTION_PRIORITY": "selection-priority", - "MWTN_SELECT_LTP": "Select LTP", - "MWTN_SELECT_NETWORK_ELEMENT": "Select network element", - "MWTN_SEND": "Send", - "MWTN_SEQUENCENUMBER": "sequenceNumber", - "MWTN_SEQUENCE_NUMBER": "sequence-number", - "MWTN_SERIAL_NUMBER": "serial-number", - "MWTN_SERVERID": "Server identifier", - "MWTN_SERVER_LTP": "Server LTPs", - "MWTN_SERVICE_PRIORITY": "service-priority", - "MWTN_SES": "SES", - "MWTN_SEVERITY": "severity", - "MWTN_SHOWLIST": "Show list", - "MWTN_SHOWOBJECT": "Show object", - "MWTN_SINR": "Signal-to-interference-plus-noise ratio (SINR)", - "MWTN_SITE": "Site", - "MWTN_SLAVE_ONLY": "slave-only", - "MWTN_SNIRAVG": "SINR (avg)", - "MWTN_SNIRCUR": "SINR (current)", - "MWTN_SNIRMAX": "SINR (max)", - "MWTN_SNIRMIN": "SINR (min)", - "MWTN_SNIR_AVG": "SINR (avg)", - "MWTN_SNIR_CUR": "SINR (current)", - "MWTN_SNIR_MAX": "SINR (max)", - "MWTN_SNIR_MIN": "SINR (min)", - "MWTN_SORTOFCOCHANNELGROUP": "sortOfCoChannelGroup", - "MWTN_SORT_OF_CO_CHANNEL_GROUP": "sort-of-co-channel-group", - "MWTN_SPATIAL_PROPERTIES_OF_TYPE": "spatial-properties-of-type", - "MWTN_STATE_PAC": "State_Pac", - "MWTN_STEPS_REMOVED": "steps-removed", - "MWTN_STRUCTUREID": "structureId", - "MWTN_STRUCTURETYPE": "structureType", - "MWTN_STRUCTURE_ID": "structure-id", - "MWTN_STRUCTURE_ID_REF": "structure-id-ref", - "MWTN_STRUCTURE_TYPE": "structure-type", - "MWTN_SUBOBJECT": "Subobject", - "MWTN_SUM": "Sum", - "MWTN_SUPPORTEDALARMS": "supportedAlarms", - "MWTN_SUPPORTEDCHANNELPLAN": "Channnel plan", - "MWTN_SUPPORTEDCHANNELPLANLIST": "supportedChannelPlanList", - "MWTN_SUPPORTEDCHANNELPLANS": "Supported channel plans", - "MWTN_SUPPORTEDTDMCONTAINERTYPESLIST": "supportedTdmContainerTypesList", - "MWTN_SUPPORTEDTDMSTRUCTURETYPESLIST": "supportedTdmStructureTypesList", - "MWTN_SUPPORTED_ALARMS": "supported-alarms", - "MWTN_SUPPORTED_CHANNEL_PLAN": "supported-channel-plan", - "MWTN_SUPPORTED_CHANNEL_PLAN_LIST": "supported-channel-plans", - "MWTN_SUPPORTED_TDM_CONTAINER_TYPES_LIST": "supported-tdm-container-types", - "MWTN_SUPPORTED_TDM_STRUCTURE_TYPES_LIST": "supported-tdm-structure-types", - "MWTN_SUSPECTINTERVALFLAG": "suspectIntervalFlag", - "MWTN_SUSPECT_INTERVAL_FLAG": "suspect-interval-flag", - "MWTN_SWAPABILITY": "swapability", - "MWTN_SWITCH_CONTROL": "switch-control", - "MWTN_SWITCH_RULE": "switch-rule", - "MWTN_SWITCH_SELECTION_REASON": "switch-selection-reason", - "MWTN_SWITCH_SELECTS_PORTS": "switch-selects-ports", - "MWTN_TDMCONTAINERCAPABILITY": "tdmContainerCapability", - "MWTN_TDMCONTAINERCONFIGURATION": "tdmContainerConfiguration", - "MWTN_TDMCONTAINERCURRENTPERFORMANCE": "TdmContainerCurrentPerformance", - "MWTN_TDMCONTAINERCURRENTPROBLEMS": "tdmContainerCurrentProblems", - "MWTN_TDMCONTAINERHISTORICALPERFORMANCES": "TdmContainerHistoricalPerformances", - "MWTN_TDMCONTAINERSTATUS": "tdmContainerStatus", - "MWTN_TDM_CONTAINER_CAPABILITY": "tdm-container-capability", - "MWTN_TDM_CONTAINER_CONFIGURATION": "tdm-container-configuration", - "MWTN_TDM_CONTAINER_CURRENT_PERFORMANCE": "tdm-container-current-performance", - "MWTN_TDM_CONTAINER_CURRENT_PROBLEMS": "tdm-container-current-problems", - "MWTN_TDM_CONTAINER_HISTORICAL_PERFORMANCES": "tdm-container-historical-performances", - "MWTN_TDM_CONTAINER_NAME": "tdm-container-name", - "MWTN_TDM_CONTAINER_SIZE": "tdm-container-size", - "MWTN_TDM_CONTAINER_STATUS": "tdm-container-status", - "MWTN_TDM_SEGMENT_SIZE": "tdm-segment-size", - "MWTN_TDM_STRUCTURE_NAME": "tdm-structure-name", - "MWTN_TDM_TIME_SLOTS_IS_REQUIRED": "tdm-time-slots-is-required", - "MWTN_TEMPERATURE": "temperature", - "MWTN_TERMINATIONSTATE": "terminationState", - "MWTN_TERMINATION_STATE": "Termination state", - "MWTN_THERMAL_RATING": "thermal-rating", - "MWTN_TIME1024SYMBOLS": "Time 1024 QAM", - "MWTN_TIME1024SYMBOLSL": "Time 1024 QAM (light)", - "MWTN_TIME1024_STATES": "time1024-states", - "MWTN_TIME1024_STATES_L": "time1024-states-l", - "MWTN_TIME128SYMBOLS": "Time 128 QAM", - "MWTN_TIME128_STATES": "time128-states", - "MWTN_TIME16SYMBOLS": "Time 16 QAM", - "MWTN_TIME16SYMBOLSS": "Time 16 QAM (strong)", - "MWTN_TIME16_STATES": "time16-states", - "MWTN_TIME16_STATES_S": "time16-states-s", - "MWTN_TIME2048SYMBOLS": "Time 2048 QAM", - "MWTN_TIME2048SYMBOLSL": "Time 2048 QAM (light)", - "MWTN_TIME2048_STATES": "time2048-states", - "MWTN_TIME2048_STATES_L": "time2048-states-l", - "MWTN_TIME256SYMBOLS": "Time 256 QAM", - "MWTN_TIME256_STATES": "time256-states", - "MWTN_TIME2SYMBOLS": "Time 2 QAM", - "MWTN_TIME2_STATES": "time2-states", - "MWTN_TIME32SYMBOLS": "Time 32 QAM", - "MWTN_TIME32_STATES": "time32-states", - "MWTN_TIME4096SYMBOLS": "Time 4096 QAM", - "MWTN_TIME4096SYMBOLSL": "Time 4096 QAM (light)", - "MWTN_TIME4096_STATES": "time4096-states", - "MWTN_TIME4096_STATES_L": "time4096-states-l", - "MWTN_TIME4SYMBOLS": "Time 4 QAM", - "MWTN_TIME4SYMBOLSS": "Time 4 QAM (strong)", - "MWTN_TIME4_STATES": "time4-states", - "MWTN_TIME4_STATES_S": "time4-states-s", - "MWTN_TIME512SYMBOLS": "Time 512 QAM", - "MWTN_TIME512SYMBOLSL": "Time 512 QAM (light)", - "MWTN_TIME512_STATES": "time512-states", - "MWTN_TIME512_STATES_L": "time512-states-l", - "MWTN_TIME64SYMBOLS": "Time 64 QAM", - "MWTN_TIME64_STATES": "time64-states", - "MWTN_TIME8192SYMBOLS": "Time 8192 QAM", - "MWTN_TIME8192SYMBOLSL": "Time 8192 QAM (light)", - "MWTN_TIME8192_STATES": "time8192-states", - "MWTN_TIME8192_STATES_L": "time8192-states-l", - "MWTN_TIME8SYMBOLS": "Time 8 QAM", - "MWTN_TIME8_STATES": "time8-states", - "MWTN_TIMEPERIOD": "Period", - "MWTN_TIMESLOTCAPACITY": "Time slot capacity", - "MWTN_TIMESLOTID": "Time slot", - "MWTN_TIMESLOTIDLIST": "Time slot identifiers", - "MWTN_TIMESLOTSTATUSLIST": "Time slot status list", - "MWTN_TIMESTAMP": "timestamp", - "MWTN_TIME_PERIOD": "time-period", - "MWTN_TIME_PROPERTIES_DS": "time-properties-ds", - "MWTN_TIME_SOURCE": "time-source", - "MWTN_TIME_STAMP": "time-stamp", - "MWTN_TIME_TRACEABLE": "time-traceable", - "MWTN_TOTALNUMBEROFTIMESLOTS": "Total number of time slots", - "MWTN_TRAFFIC": "Traffic (Logical termination points)", - "MWTN_TRANSMISSIONMODEID": "Transmission mode identifier", - "MWTN_TRANSMISSIONMODELIST": "Transmission modes", - "MWTN_TRANSMISSION_MODE_ID": "transmission-mode-id", - "MWTN_TRANSMISSION_MODE_LIST": "transmission-mode", - "MWTN_TRANSMITTERISON": "transmitterIsOn", - "MWTN_TRANSMITTER_IS_ON": "transmitter-is-on", - "MWTN_TRANSPARENT_CLOCK_DEFAULT_DS": "transparent-clock-default-ds", - "MWTN_TRANSPARENT_CLOCK_PORT_DS_LIST": "transparent-clock-port", - "MWTN_TRIGGER_REFRESH": "trigger-refresh", - "MWTN_TWO_STEP_FLAG": "two-step-flag", - "MWTN_TXCHANNELBANDWIDTH": "txChannelBandwidth", - "MWTN_TXFREQUENCY": "Transmit frequency", - "MWTN_TXFREQUENCYCUR": "txFrequencyCur", - "MWTN_TXFREQUENCYMAX": "txFrequencyMax", - "MWTN_TXFREQUENCYMIN": "txFrequencyMin", - "MWTN_TXLEVELAVG": "Transmit level (avg)", - "MWTN_TXLEVELCUR": "txLevelCur", - "MWTN_TXLEVELMAX": "Transmit level (max)", - "MWTN_TXLEVELMIN": "Transmit level (min)", - "MWTN_TXPOWER": "txPower", - "MWTN_TXPOWERMAX": "Max tx power", - "MWTN_TXPOWERMIN": "Min tx power", - "MWTN_TX_CHANNEL_BANDWIDTH": "tx-channel-bandwidth", - "MWTN_TX_ETHERNET_BYTES_MAX_M": "tx-ethernet-bytes-max-m", - "MWTN_TX_ETHERNET_BYTES_MAX_S": "tx-ethernet-bytes-max-s", - "MWTN_TX_ETHERNET_BYTES_SUM": "tx-ethernet-bytes-sum", - "MWTN_TX_FREQUENCY": "tx-frequency", - "MWTN_TX_FREQUENCY_CUR": "tx-frequency-cur", - "MWTN_TX_FREQUENCY_MAX": "tx-frequency-max", - "MWTN_TX_FREQUENCY_MIN": "tx-frequency-min", - "MWTN_TX_LEVEL_AVG": "tx-level-avg", - "MWTN_TX_LEVEL_CUR": "tx-level-cur", - "MWTN_TX_LEVEL_MAX": "tx-level-max", - "MWTN_TX_LEVEL_MIN": "tx-level-min", - "MWTN_TX_POWER": "tx-power", - "MWTN_TX_POWER_MAX": "tx-power-max", - "MWTN_TX_POWER_MIN": "tx-power-min", - "MWTN_TYPEOFEQUIPMENT": "typeOfEquipment", - "MWTN_TYPE_NAME": "type-name", - "MWTN_TYPE_OF_EQUIPMENT": "type-of-equipment", - "MWTN_UNAVAILABILITY": "unavailability", - "MWTN_UNIVERSALIDAUTHORITY": "UniversalIdAuthority", - "MWTN_USERNAME": "User name", - "MWTN_UUID": "UUID", - "MWTN_VALUE": "value", - "MWTN_VALUE_NAME": "value-name", - "MWTN_VERSION": "version", - "MWTN_VERSION_NUMBER": "version-number", - "MWTN_VLANCOMPRESSIONISAVAIL": "vlanCompressionIsAvail", - "MWTN_VLANCOMPRESSIONISON": "vlanCompressionIsOn", - "MWTN_VLAN_COMPRESSION_IS_AVAIL": "vlan-compression-is-avail", - "MWTN_VLAN_COMPRESSION_IS_ON": "vlan-compression-is-on", - "MWTN_VLAN_ID": "vlan-id", - "MWTN_WAITTORESTORETIME": "waitToRestoreTime", - "MWTN_WAIT_TO_RESTORE_TIME": "wait-to-restore-time", - "MWTN_WAIT_TO_REVERT_TIME": "wait-to-revert-time", - "MWTN_WEIGHT_CHARACTERISTICS": "weight-characteristics", - "MWTN_WIDTH": "width", - "MWTN_X_CONNECTIONS": "Cross connections", - "MWTN_XPDAVG": "Cross polarization discrimination (avg)", - "MWTN_XPDCUR": "xpdCur", - "MWTN_XPDMAX": "Cross polarization discrimination (max)", - "MWTN_XPDMIN": "Cross polarization discrimination (min)", - "MWTN_XPD_AVG": "xpd-avg", - "MWTN_XPD_CUR": "xpd-cur", - "MWTN_XPD_MAX": "xpd-max", - "MWTN_XPD_MIN": "xpd-min", - "MWTN_XPICISAVAIL": "xPic", - "MWTN_XPICISON": "xpicIsOn", - "MWTN_XPICISUP": "xpicIsUp", - "MWTN_XPIC_IS_AVAIL": "xpic-is-avail", - "MWTN_XPIC_IS_ON": "xpic-is-on", - "MWTN_XPIC_IS_UP": "xpic-is-up", - "MWTN_YANG_CAPABILITIES": "Yang capabilities", - "MWTN__CLIENTLTPREFLIST": "_clientLtpRefList", - "MWTN__CONNECTEDLTPREF": "_connectedLtpRef", - "MWTN__FCPORTLIST": "_fcPortList", - "MWTN__FCREFLIST": "_fcRefList", - "MWTN__FCSWITCHLIST": "_fcSwitchList", - "MWTN__FDREFLIST": "_fdRefList", - "MWTN__LOWERLEVELFCREFLIST": "_lowerLevelFcRefList", - "MWTN__LOWERLEVELFDREFLIST": "_lowerLevelFdRefList", - "MWTN__LPLIST": "_lpList", - "MWTN__LTPREFLIST": "_ltpRefList", - "MWTN__PEERLTPREF": "_peerLtpRef", - "MWTN__SELECTEDFCPORTREFLIST": "_selectedFcPortRefList", - "MWTN__SERVERLTPREFLIST": "_serverLtpRefList", - "MWTN_«Q.822»-CURRENTDATA": "«Q.822»-CurrentData", - "MWTN_«Q.822»-HISTORYDATA": "«Q.822»-HistoryData", - "MWTN_«X.721»-TOP": "«X.721»-Top", - "MWTN_«X.739»-SCANNER": "«X.739»-Scanner" -}
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons-custom.css b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons-custom.css deleted file mode 100644 index cf22c146..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons-custom.css +++ /dev/null @@ -1,108 +0,0 @@ -/** - * Add your application related css here - */ - .ht-header { - display: block; - height: 32px; -} -.ht-header-right { - float: right; -} - -.owl { - padding:5px; -} -.owl-dark { - color: #414042; -} - -.owl .owl-dark { - color: #414042; -} - -.owl span { - color: white; -} - -.owl a span { - color: white; -} - -.owl .panel-default span { - color: #414042; -} - -.owl .panel-default a span.owl-dark { - color: #414042; -} - -.owl .panel-default .mwtn-json-viewer span.owl-dark { - color: #414042; -} - -.owl .panel-default .json-formatter-row .string{color:green;white-space:pre;word-wrap:break-word} -.owl .panel-default .json-formatter-row .number{color:#00f} -.owl .panel-default .json-formatter-row .boolean{color:red} -.owl .panel-default .json-formatter-row .null{color:#855A00} -.owl .panel-default .json-formatter-row .undefined{color:#ca0b69} -.owl .panel-default .json-formatter-row .function{color:#FF20ED} -.owl .panel-default .json-formatter-row .date{background-color:rgba(0,0,0,.05)} -.owl .panel-default .json-formatter-row .url{text-decoration:underline;color:#00f;cursor:pointer} -.owl .panel-default .json-formatter-row a span.bracket{color:#00f} -.owl .panel-default .json-formatter-row a span.key{color:#00008B;cursor:pointer} -.owl .panel-default .json-formatter-row a span.constructor-name{color: #888888; cursor:pointer} - -.mwtn-grid { - background-color: white; - color:black; -} - -@media (min-width: 1296px) { - .modal-huge { - width: 1200px; - } -} - - -.form-group span.mwtnError { - color: red; -} - -.mwtnLight { - color: white; -} - -.panel-group .panel-default span .mwtnError { - color: red; -} - -.mwtnSuccess { - color: darkgreen; -} - -.panel-group .panel-default span .mwtnSuccess { - color: darkgreen; -} - -.number { - text-align: right; -} - -.rotated { - transform: rotate(180deg); - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -o-transform: rotate(180deg); -} - -.vCenter { - margin: 5px 30px 5px 0px; - display: inline-block; - vertical-align: middle; - float: none; -} - -a.vCenter { - text-decoration: none; -} diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.controller.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.controller.js deleted file mode 100644 index 872c2aa8..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.controller.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -define(['app/mwtnCommons/mwtnCommons.module', - 'app/mwtnCommons/mwtnCommons.services'], function(mwtnCommonsApp) { - - mwtnCommonsApp.register.controller('mwtnCommonsCtrl', ['$scope', '$rootScope', '$mwtnCommons', '$mwtnLog', 'FileReader', - function($scope, $rootScope, $mwtnCommons, $mwtnLog, FileReader) { - - $rootScope.section_logo = ''; // Add your topbar logo location here such as 'assets/images/logo_topology.gif' - - $scope.mwtnCommonsInfo = {}; - - $mwtnCommons.getData(function(data){ - $scope.data = data; - }); - - }]); - -}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.module.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.module.js deleted file mode 100755 index ebc515ca..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.module.js +++ /dev/null @@ -1,622 +0,0 @@ -/* - * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -define(['angularAMD', - 'app/routingConfig', - 'app/core/core.services', - 'common/config/env.module', - 'app/mwtnCommons/bower_components/angular-ui-grid/ui-grid.min', - 'app/mwtnCommons/bower_components/chart.js/dist/Chart', - 'app/mwtnCommons/bower_components/angular-chart.js/dist/angular-chart', - 'app/mwtnCommons/bower_components/angular-clipboard/angular-clipboard', - 'ui-bootstrap', - 'app/mwtnCommons/bower_components/json-formatter/dist/json-formatter.min'], - function(ng) { - var mwtnCommonsApp = angular.module('app.mwtnCommons', ['app.core','chart.js', 'ui.router.state', 'ui.grid', 'ui.bootstrap', 'jsonFormatter', 'config', 'pascalprecht.translate', 'angular-clipboard']); - - mwtnCommonsApp.config(function($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider, $httpProvider, $translateProvider, $translatePartialLoaderProvider) { - mwtnCommonsApp.register = { - controller : $controllerProvider.register, - directive : $compileProvider.directive, - factory : $provide.factory, - service : $provide.service - }; - - $translatePartialLoaderProvider.addPart('app/mwtnCommons/locale/locale'); - - var access = routingConfig.accessLevels; - - }); - - mwtnCommonsApp.directive('htHeader', [ '$injector' ,function ($injector) { - return { - template: '<div class="ht-header"><div class="ht-header-right"><alarm-status ng-if="mwtnFaultExists"></alarm-status><help ng-if="helpExists" link="{{helpLink}}" ></help></div></div>', - controller: ['$scope', function ($scope) { - $scope.helpExists = $injector.has('helpDirective'); - $scope.mwtnFaultExists = $injector.has('alarmStatusDirective'); - }], - restict: "EA", - replace: true, - scope: { - helpLink: "@" - } - }; - }]); - - - return mwtnCommonsApp; -}); - - -/* - Copyright 2011-2013 Abdulla Abdurakhmanov - Original sources are available at https://code.google.com/p/x2js/ - - 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. - */ - -function X2JS(config) { - 'use strict'; - - var VERSION = "1.1.5"; - - config = config || {}; - initConfigDefaults(); - initRequiredPolyfills(); - - function initConfigDefaults() { - if(config.escapeMode === undefined) { - config.escapeMode = true; - } - config.attributePrefix = config.attributePrefix || "_"; - config.arrayAccessForm = config.arrayAccessForm || "none"; - config.emptyNodeForm = config.emptyNodeForm || "text"; - if(config.enableToStringFunc === undefined) { - config.enableToStringFunc = true; - } - config.arrayAccessFormPaths = config.arrayAccessFormPaths || []; - if(config.skipEmptyTextNodesForObj === undefined) { - config.skipEmptyTextNodesForObj = true; - } - if(config.stripWhitespaces === undefined) { - config.stripWhitespaces = true; - } - config.datetimeAccessFormPaths = config.datetimeAccessFormPaths || []; - } - - var DOMNodeTypes = { - ELEMENT_NODE : 1, - TEXT_NODE : 3, - CDATA_SECTION_NODE : 4, - COMMENT_NODE : 8, - DOCUMENT_NODE : 9 - }; - - function initRequiredPolyfills() { - function pad(number) { - var r = String(number); - if ( r.length === 1 ) { - r = '0' + r; - } - return r; - } - // Hello IE8- - if(typeof String.prototype.trim !== 'function') { - String.prototype.trim = function() { - return this.replace(/^\s+|^\n+|(\s|\n)+$/g, ''); - } - } - if(typeof Date.prototype.toISOString !== 'function') { - // Implementation from http://stackoverflow.com/questions/2573521/how-do-i-output-an-iso-8601-formatted-string-in-javascript - Date.prototype.toISOString = function() { - return this.getUTCFullYear() - + '-' + pad( this.getUTCMonth() + 1 ) - + '-' + pad( this.getUTCDate() ) - + 'T' + pad( this.getUTCHours() ) - + ':' + pad( this.getUTCMinutes() ) - + ':' + pad( this.getUTCSeconds() ) - + '.' + String( (this.getUTCMilliseconds()/1000).toFixed(3) ).slice( 2, 5 ) - + 'Z'; - }; - } - } - - function getNodeLocalName( node ) { - var nodeLocalName = node.localName; - if(nodeLocalName == null) // Yeah, this is IE!! - nodeLocalName = node.baseName; - if(nodeLocalName == null || nodeLocalName=="") // =="" is IE too - nodeLocalName = node.nodeName; - return nodeLocalName; - } - - function getNodePrefix(node) { - return node.prefix; - } - - function escapeXmlChars(str) { - if(typeof(str) == "string") - return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g, '/'); - else - return str; - } - - function unescapeXmlChars(str) { - return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, "'").replace(///g, '\/'); - } - - function toArrayAccessForm(obj, childName, path) { - switch(config.arrayAccessForm) { - case "property": - if(!(obj[childName] instanceof Array)) - obj[childName+"_asArray"] = [obj[childName]]; - else - obj[childName+"_asArray"] = obj[childName]; - break; - /*case "none": - break;*/ - } - - if(!(obj[childName] instanceof Array) && config.arrayAccessFormPaths.length > 0) { - var idx = 0; - for(; idx < config.arrayAccessFormPaths.length; idx++) { - var arrayPath = config.arrayAccessFormPaths[idx]; - if( typeof arrayPath === "string" ) { - if(arrayPath == path) - break; - } - else - if( arrayPath instanceof RegExp) { - if(arrayPath.test(path)) - break; - } - else - if( typeof arrayPath === "function") { - if(arrayPath(obj, childName, path)) - break; - } - } - if(idx!=config.arrayAccessFormPaths.length) { - obj[childName] = [obj[childName]]; - } - } - } - - function fromXmlDateTime(prop) { - // Implementation based up on http://stackoverflow.com/questions/8178598/xml-datetime-to-javascript-date-object - // Improved to support full spec and optional parts - var bits = prop.split(/[-T:+Z]/g); - - var d = new Date(bits[0], bits[1]-1, bits[2]); - var secondBits = bits[5].split("\."); - d.setHours(bits[3], bits[4], secondBits[0]); - if(secondBits.length>1) - d.setMilliseconds(secondBits[1]); - - // Get supplied time zone offset in minutes - if(bits[6] && bits[7]) { - var offsetMinutes = bits[6] * 60 + Number(bits[7]); - var sign = /\d\d-\d\d:\d\d$/.test(prop)? '-' : '+'; - - // Apply the sign - offsetMinutes = 0 + (sign == '-'? -1 * offsetMinutes : offsetMinutes); - - // Apply offset and local timezone - d.setMinutes(d.getMinutes() - offsetMinutes - d.getTimezoneOffset()) - } - else - if(prop.indexOf("Z", prop.length - 1) !== -1) { - d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds())); - } - - // d is now a local time equivalent to the supplied time - return d; - } - - function checkFromXmlDateTimePaths(value, childName, fullPath) { - if(config.datetimeAccessFormPaths.length > 0) { - var path = fullPath.split("\.#")[0]; - var idx = 0; - for(; idx < config.datetimeAccessFormPaths.length; idx++) { - var dtPath = config.datetimeAccessFormPaths[idx]; - if( typeof dtPath === "string" ) { - if(dtPath == path) - break; - } - else - if( dtPath instanceof RegExp) { - if(dtPath.test(path)) - break; - } - else - if( typeof dtPath === "function") { - if(dtPath(obj, childName, path)) - break; - } - } - if(idx!=config.datetimeAccessFormPaths.length) { - return fromXmlDateTime(value); - } - else - return value; - } - else - return value; - } - - function parseDOMChildren( node, path ) { - if(node.nodeType == DOMNodeTypes.DOCUMENT_NODE) { - var result = new Object; - var nodeChildren = node.childNodes; - // Alternative for firstElementChild which is not supported in some environments - for(var cidx=0; cidx <nodeChildren.length; cidx++) { - var child = nodeChildren.item(cidx); - if(child.nodeType == DOMNodeTypes.ELEMENT_NODE) { - var childName = getNodeLocalName(child); - result[childName] = parseDOMChildren(child, childName); - } - } - return result; - } - else - if(node.nodeType == DOMNodeTypes.ELEMENT_NODE) { - var result = new Object; - result.__cnt=0; - - var nodeChildren = node.childNodes; - - // Children nodes - for(var cidx=0; cidx <nodeChildren.length; cidx++) { - var child = nodeChildren.item(cidx); // nodeChildren[cidx]; - var childName = getNodeLocalName(child); - - if(child.nodeType!= DOMNodeTypes.COMMENT_NODE) { - result.__cnt++; - if(result[childName] == null) { - result[childName] = parseDOMChildren(child, path+"."+childName); - toArrayAccessForm(result, childName, path+"."+childName); - } - else { - if(result[childName] != null) { - if( !(result[childName] instanceof Array)) { - result[childName] = [result[childName]]; - toArrayAccessForm(result, childName, path+"."+childName); - } - } - (result[childName])[result[childName].length] = parseDOMChildren(child, path+"."+childName); - } - } - } - - // Attributes - for(var aidx=0; aidx <node.attributes.length; aidx++) { - var attr = node.attributes.item(aidx); // [aidx]; - result.__cnt++; - result[config.attributePrefix+attr.name]=attr.value; - } - - // Node namespace prefix - var nodePrefix = getNodePrefix(node); - if(nodePrefix!=null && nodePrefix!="") { - result.__cnt++; - result.__prefix=nodePrefix; - } - - if(result["#text"]!=null) { - result.__text = result["#text"]; - if(result.__text instanceof Array) { - result.__text = result.__text.join("\n"); - } - if(config.escapeMode) - result.__text = unescapeXmlChars(result.__text); - if(config.stripWhitespaces) - result.__text = result.__text.trim(); - delete result["#text"]; - if(config.arrayAccessForm=="property") - delete result["#text_asArray"]; - result.__text = checkFromXmlDateTimePaths(result.__text, childName, path+"."+childName); - } - if(result["#cdata-section"]!=null) { - result.__cdata = result["#cdata-section"]; - delete result["#cdata-section"]; - if(config.arrayAccessForm=="property") - delete result["#cdata-section_asArray"]; - } - - if( result.__cnt == 1 && result.__text!=null ) { - result = result.__text; - } - else - if( result.__cnt == 0 && config.emptyNodeForm=="text" ) { - result = ''; - } - else - if ( result.__cnt > 1 && result.__text!=null && config.skipEmptyTextNodesForObj) { - if( (config.stripWhitespaces && result.__text=="") || (result.__text.trim()=="")) { - delete result.__text; - } - } - delete result.__cnt; - - if( config.enableToStringFunc && (result.__text!=null || result.__cdata!=null )) { - result.toString = function() { - return (this.__text!=null? this.__text:'')+( this.__cdata!=null ? this.__cdata:''); - }; - } - - return result; - } - else - if(node.nodeType == DOMNodeTypes.TEXT_NODE || node.nodeType == DOMNodeTypes.CDATA_SECTION_NODE) { - return node.nodeValue; - } - } - - function startTag(jsonObj, element, attrList, closed) { - var resultStr = "<"+ ( (jsonObj!=null && jsonObj.__prefix!=null)? (jsonObj.__prefix+":"):"") + element; - if(attrList!=null) { - for(var aidx = 0; aidx < attrList.length; aidx++) { - var attrName = attrList[aidx]; - var attrVal = jsonObj[attrName]; - if(config.escapeMode) - attrVal=escapeXmlChars(attrVal); - resultStr+=" "+attrName.substr(config.attributePrefix.length)+"='"+attrVal+"'"; - } - } - if(!closed) - resultStr+=">"; - else - resultStr+="/>"; - return resultStr; - } - - function endTag(jsonObj,elementName) { - return "</"+ (jsonObj.__prefix!=null? (jsonObj.__prefix+":"):"")+elementName+">"; - } - - function endsWith(str, suffix) { - return str.indexOf(suffix, str.length - suffix.length) !== -1; - } - - function jsonXmlSpecialElem ( jsonObj, jsonObjField ) { - if((config.arrayAccessForm=="property" && endsWith(jsonObjField.toString(),("_asArray"))) - || jsonObjField.toString().indexOf(config.attributePrefix)==0 - || jsonObjField.toString().indexOf("__")==0 - || (jsonObj[jsonObjField] instanceof Function) ) - return true; - else - return false; - } - - function jsonXmlElemCount ( jsonObj ) { - var elementsCnt = 0; - if(jsonObj instanceof Object ) { - for( var it in jsonObj ) { - if(jsonXmlSpecialElem ( jsonObj, it) ) - continue; - elementsCnt++; - } - } - return elementsCnt; - } - - function parseJSONAttributes ( jsonObj ) { - var attrList = []; - if(jsonObj instanceof Object ) { - for( var ait in jsonObj ) { - if(ait.toString().indexOf("__")== -1 && ait.toString().indexOf(config.attributePrefix)==0) { - attrList.push(ait); - } - } - } - return attrList; - } - - function parseJSONTextAttrs ( jsonTxtObj ) { - var result =""; - - if(jsonTxtObj.__cdata!=null) { - result+="<![CDATA["+jsonTxtObj.__cdata+"]]>"; - } - - if(jsonTxtObj.__text!=null) { - if(config.escapeMode) - result+=escapeXmlChars(jsonTxtObj.__text); - else - result+=jsonTxtObj.__text; - } - return result; - } - - function parseJSONTextObject ( jsonTxtObj ) { - var result =""; - - if( jsonTxtObj instanceof Object ) { - result+=parseJSONTextAttrs ( jsonTxtObj ); - } - else - if(jsonTxtObj!=null) { - if(config.escapeMode) - result+=escapeXmlChars(jsonTxtObj); - else - result+=jsonTxtObj; - } - - return result; - } - - function parseJSONArray ( jsonArrRoot, jsonArrObj, attrList ) { - var result = ""; - if(jsonArrRoot.length == 0) { - result+=startTag(jsonArrRoot, jsonArrObj, attrList, true); - } - else { - for(var arIdx = 0; arIdx < jsonArrRoot.length; arIdx++) { - result+=startTag(jsonArrRoot[arIdx], jsonArrObj, parseJSONAttributes(jsonArrRoot[arIdx]), false); - result+=parseJSONObject(jsonArrRoot[arIdx]); - result+=endTag(jsonArrRoot[arIdx],jsonArrObj); - } - } - return result; - } - - function parseJSONObject ( jsonObj ) { - var result = ""; - - var elementsCnt = jsonXmlElemCount ( jsonObj ); - - if(elementsCnt > 0) { - for( var it in jsonObj ) { - - if(jsonXmlSpecialElem ( jsonObj, it) ) - continue; - - var subObj = jsonObj[it]; - - var attrList = parseJSONAttributes( subObj ) - - if(subObj == null || subObj == undefined) { - result+=startTag(subObj, it, attrList, true); - } - else - if(subObj instanceof Object) { - - if(subObj instanceof Array) { - result+=parseJSONArray( subObj, it, attrList ); - } - else if(subObj instanceof Date) { - result+=startTag(subObj, it, attrList, false); - result+=subObj.toISOString(); - result+=endTag(subObj,it); - } - else { - var subObjElementsCnt = jsonXmlElemCount ( subObj ); - if(subObjElementsCnt > 0 || subObj.__text!=null || subObj.__cdata!=null) { - result+=startTag(subObj, it, attrList, false); - result+=parseJSONObject(subObj); - result+=endTag(subObj,it); - } - else { - result+=startTag(subObj, it, attrList, true); - } - } - } - else { - result+=startTag(subObj, it, attrList, false); - result+=parseJSONTextObject(subObj); - result+=endTag(subObj,it); - } - } - } - result+=parseJSONTextObject(jsonObj); - - return result; - } - - this.parseXmlString = function(xmlDocStr) { - var isIEParser = window.ActiveXObject || "ActiveXObject" in window; - if (xmlDocStr === undefined) { - return null; - } - var xmlDoc; - if (window.DOMParser) { - var parser=new window.DOMParser(); - var parsererrorNS = null; - // IE9+ now is here - if(!isIEParser) { - try { - parsererrorNS = parser.parseFromString("INVALID", "text/xml").childNodes[0].namespaceURI; - } - catch(err) { - parsererrorNS = null; - } - } - try { - xmlDoc = parser.parseFromString( xmlDocStr, "text/xml" ); - if( parsererrorNS!= null && xmlDoc.getElementsByTagNameNS(parsererrorNS, "parsererror").length > 0) { - //throw new Error('Error parsing XML: '+xmlDocStr); - xmlDoc = null; - } - } - catch(err) { - xmlDoc = null; - } - } - else { - // IE :( - if(xmlDocStr.indexOf("<?")==0) { - xmlDocStr = xmlDocStr.substr( xmlDocStr.indexOf("?>") + 2 ); - } - xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); - xmlDoc.async="false"; - xmlDoc.loadXML(xmlDocStr); - } - return xmlDoc; - }; - - this.asArray = function(prop) { - if(prop instanceof Array) - return prop; - else - return [prop]; - }; - - this.toXmlDateTime = function(dt) { - if(dt instanceof Date) - return dt.toISOString(); - else - if(typeof(dt) === 'number' ) - return new Date(dt).toISOString(); - else - return null; - }; - - this.asDateTime = function(prop) { - if(typeof(prop) == "string") { - return fromXmlDateTime(prop); - } - else - return prop; - }; - - this.xml2json = function (xmlDoc) { - return parseDOMChildren ( xmlDoc ); - }; - - this.xml_str2json = function (xmlDocStr) { - var xmlDoc = this.parseXmlString(xmlDocStr); - if(xmlDoc!=null) - return this.xml2json(xmlDoc); - else - return null; - }; - - this.json2xml_str = function (jsonObj) { - return parseJSONObject ( jsonObj ); - }; - - this.json2xml = function (jsonObj) { - var xmlDocStr = this.json2xml_str (jsonObj); - return this.parseXmlString(xmlDocStr); - }; - - this.getVersion = function () { - return VERSION; - }; - -}
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.services.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.services.js deleted file mode 100644 index 9a713436..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.services.js +++ /dev/null @@ -1,3826 +0,0 @@ -/* - * @copyright 2017 highstreet technologies GmbH and others. All rights reserved. - * - * @license - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at {@link http://www.eclipse.org/legal/epl-v10.html} - */ - -if (!String.prototype.toHumanReadableTimeFormat) { - String.prototype.toHumanReadableTimeFormat = function () { - return this.replace(/T/g, ' ').replace(/Z/g, ' UTC').replace(/\+00:00/g, ' UTC'); - }; -} - -if (!String.prototype.base64ToHex) { - String.prototype.base64ToHex = function () { - var raw = atob(this); - var result = []; - for ( i = 0; i < raw.length; i++ ) { - var _hex = raw.charCodeAt(i).toString(16) - result.push('0x' + ( _hex.length === 2 ? _hex:'0' + _hex)); - } - return result.join(' '); - }; -} - -if (!String.prototype.contains) { - /** - * An extension to String, which checks whether another string is contained. - * @param {string} find A string to be checked, whether it is contained in 'this'. - * @return {boolean} True, if 'this' contains param 'find', otherwise false. - */ - String.prototype.contains = function (find) { - return this.indexOf(find) > -1; - }; -} - -if (!String.prototype.format) { - /** - * An extension to String, which replaces certain patterns by arguments. - * @see {@link https://stackoverflow.com/questions/610406/javascript-equivalent-to-printf-string-format|javascript-equivalent-to-printf-string-format} - * @return {string} Formated string. - */ - String.prototype.format = function () { - var args = arguments; - return this.replace(/{(\d+)}/g, function (match, number) { - return typeof args[number] !== 'undefined' ? args[number] : match - ; - }); - }; -} - -if (!String.prototype.replaceAll) { - /** - * An extension to String, which replaces certain patterns by arguments. - * @see {@link https://stackoverflow.com/questions/1144783/how-to-replace-all-occurrences-of-a-string-in-javascript|how-to-replace-all-occurrences-of-a-string-in-javascript} - * @param {string} find - The string which should be replaced. - * @param {string} replace - The string which should replace 'find'. - * @return {string} String where 'find' is replaced by 'replace'. - */ - String.prototype.replaceAll = function (find, replace) { - return this.replace(new RegExp(find, 'g'), replace); - } -} - -if (!Array.prototype.contains) { - /** - * An extension to Array checking whether an array of primitive types contains a given value. - * @param {string|number|boolean|null|undefined} find An object which should be removed from the array. - * @return {boolean} True, if 'this' contains param 'find', otherwise false.. - */ - Array.prototype.contains = function (find) { - return this.indexOf(find) > -1; - }; -} - -if (!Array.prototype.clean) { - /** - * An extension to Array removing defined values from an array. - * @see {@link https://gist.github.com/waynegraham/3684627|Array.clean()} - * @param {Object} deleteValue An object which should be removed from the array. - * @return {Array} An array without 'deleteValue'. - */ - Array.prototype.clean = function (deleteValue) { - for (var i = 0; i < this.length; i++) { // TODO swtich to .map() ? - if (this[i] === deleteValue) { - this.splice(i, 1); - i--; - } - } - return this; - }; -} - -define( - ['app/mwtnCommons/mwtnCommons.module'], - function (mwtnCommonsApp) { - - mwtnCommonsApp.register.controller('mwtnFooterController', ['$scope', function ($scope) { - var vm = this; - $scope.prefix = 'ONF Wireless for OpenDaylight Boron-SR3'; - }]); - - mwtnCommonsApp.register.directive('mwtnFooter', function () { - return { - restrict: 'E', - controller: 'mwtnFooterController', - controllerAs: 'vm', - templateUrl: 'src/app/mwtnCommons/templates/mwtnFooter.tpl.html' - }; - }); - - mwtnCommonsApp.register.controller('openConfigViewController', ['$scope', '$uibModalInstance', '$mwtnGlobal', '$mwtnCommons', '$mwtnDatabase', '$mwtnLog', 'valueData', - function ($scope, $uibModalInstance, $mwtnGlobal, $mwtnCommons, $mwtnDatabase, $mwtnLog, data) { - - var vm = this; - var COMPONENT = 'openConfigViewController'; - - $scope.getType = $mwtnGlobal.getType; - $scope.spec = data.spec; - $mwtnCommons.getConditionalPackagePart($scope.spec).then(function (success) { - - var getControlType = function(type) { - var result = 'text' - switch (type) { - case 'boolean': - result = 'checkbox'; - break; - case 'number': - result = 'number'; - break; - case 'string': - case 'array': - case 'object': - break; - default: - var message = 'Check control type for ' + type; - $mwtnLog.warning({ component: COMPONENT, message: message }); - } - return result; - }; - - success.layerProtocol = $scope.spec.layerProtocolId; - $scope.configuredData = success; - $scope.newData = $scope.configuredData[$scope.spec.partId]; - - $scope.viewData = $mwtnGlobal.getViewData($scope.configuredData[$scope.spec.partId], $scope.ne); - $mwtnDatabase.getSchema().then(function(schema){ - var ordered = {}; - var clone = JSON.parse(JSON.stringify($scope.viewData)); - var keys = Object.keys(clone).map(function(key){ - if ($mwtnGlobal.getType(key) !== 'string') { - console.log('key', key); - return; - } - var item = clone[key]; - if (!schema[key]) { - - var message = 'No schema information for ' + key; - console.error(key, schema[key]); - $mwtnLog.warning({ component: COMPONENT, message: message }); - item['order-number'] = $mwtnCommons.getOrderNumber(97, item); - item.description = 'No description available.'; - item.visible = true; - return key; - } - if (schema[key].controlType === undefined) { - item.controlType = getControlType(item.type); - } else { - item.controlType = schema[key].controlType; - } - item.unit = schema[key].unit; - item.description = schema[key].description; - item['order-number'] = $mwtnCommons.getOrderNumber(schema[key]['order-number'], item); - if (item.description === undefined || item.description === '') { - item.description = 'No description available.'; - } - // hide complex types for now -> TODO - if (item.type === 'array' || item.type === 'object') { - item.visible = false; - } - return key; - }).sort(function(a,b){ - if (clone[a]['order-number'] < clone[b]['order-number']) return -1; - if (clone[a]['order-number'] > clone[b]['order-number']) return 1; - return 0; - }).map(function(key){ - ordered[key] = clone[key]; - }); - $scope.viewData = ordered; - }, function(error){ - $scope.empty = true; - }); - - }, function (error) { - $scope.configuredData = undefined; - $mwtnLog.error({ component: COMPONENT, message: 'Requesting conditional package of ' + JSON.stringify($scope.spec) + ' failed!' }); - }); - - $scope.ok = function () { - $scope.processing = true; - Object.keys($scope.viewData).map(function(key){ - $scope.newData[key] = $scope.viewData[key].value; - }); - - $mwtnCommons.setConditionalPackagePart($scope.spec, $scope.newData).then(function(success){ - $scope.applied = {text: 'Applied: ' + new Date().toISOString(), class:'mwtnSuccess'}; - $scope.processing = false; - }, function(error){ - $scope.applied = {text: 'Error: ' + new Date().toISOString(), class:'mwtnError'}; - $scope.processing = false; - $mwtnLog.error({component: COMPONENT, message: JSON.stringify(error)}); - }); - - }; - - $scope.cancel = function () { - $uibModalInstance.close($scope.newData); - }; - - }]); - - mwtnCommonsApp.register.controller('mwtnJsonViewerController', ['$scope', '$uibModal', '$mwtnGlobal', '$mwtnCommons', '$mwtnDatabase', '$mwtnLog', - function ($scope, $uibModal, $mwtnGlobal, $mwtnCommons, $mwtnDatabase, $mwtnLog) { - var vm = this; - var COMPONENT = 'mwtnJsonViewerController'; - $scope.getType = $mwtnGlobal.getType; - - if ($scope.data) { - $scope.replace = false; - if ($scope.path && $scope.path.endsWith('-configuration') ) { - $scope.replace = true; - } - $scope.viewData = $mwtnGlobal.getViewData($scope.data, $scope.ne); - var path = [undefined, undefined, undefined]; - if ($scope.path) { - path = $scope.path.split($mwtnCommons.separator); - } - $scope.spec = { - nodeId: $scope.networkElement, - revision: '2017-03-20', - pacId: path[0], - layer: '???', - layerProtocolId: path[1], - partId: path[2], - config: true - }; - - $scope.openConfigView = function(){ - var modalInstance = $uibModal.open({ - animation: true, - ariaLabelledBy: 'modal-title', - ariaDescribedBy: 'modal-body', - templateUrl: 'src/app/mwtnCommons/templates/openConfigView.html', - controller: 'openConfigViewController', - size: 'huge', - resolve: { - valueData: function () { - return {spec:$scope.spec}; - } - } - }); - modalInstance.result.then(function(object) { - // update fetch new data from ODL - $mwtnCommons.getPacParts($scope.spec).then(function(success){ - // intermedite step to display something, even processing fails or takes time - $scope.viewData = $mwtnGlobal.getViewData(success[$scope.spec.partId], $scope.ne); - // now the nice way ;) - $scope.viewData = processData($scope.schema); - }, function(error){ - // ignore; - }); - }, function () { - // ignore; - }); - }; - - $scope.myClipboard = { - data: [$scope.data], - supported: true, - getJson: function () { - return JSON.stringify(this.data, null, ' '); - }, - copyToClipboard: function () { - var message = 'Copied to clipboard! ' + this.getJson(); - $mwtnLog.info({ component: COMPONENT, message: message }); - }, - error: function (err) { - $mwtnLog.error({ component: COMPONENT, message: err }); - } - }; - - var processData = function(schema) { - var ordered = {}; - var clone = JSON.parse(JSON.stringify($scope.viewData)); - var keys = Object.keys(clone).map(function(key){ - if ($mwtnGlobal.getType(key) !== 'string') { - console.log('key', key); - return; - } - var item = clone[key]; - if (!schema[key]) { - var message = 'No schema information for ' + key; - $mwtnLog.warning({ component: COMPONENT, message: message }); - item['order-number'] = $mwtnCommons.getOrderNumber(97, item); - item.description = 'No description available.'; - item.visible = true; - return key; - } - item.unit = schema[key].unit; - item.description = schema[key].description; - item['order-number'] = $mwtnCommons.getOrderNumber(schema[key]['order-number'], item); - if (item.description === undefined || item.description === '') { - item.description = 'No description available.'; - } - return key; - }).sort(function(a,b){ - if (clone[a]['order-number'] < clone[b]['order-number']) return -1; - if (clone[a]['order-number'] > clone[b]['order-number']) return 1; - return 0; - }).map(function(key){ - ordered[key] = clone[key]; - }); - $scope.info = false; - if (Object.keys(ordered).length === 0) { - $scope.info = 'An empty object is displayed. Please check if the NetConf server has send an empty object.'; - } - return ordered; - }; - - $mwtnDatabase.getSchema().then(function(schema){ - $scope.schema = schema; - $scope.viewData = processData($scope.schema); - }, function(error){ - // ignore; - }); - } - }]); - - mwtnCommonsApp.register.directive('mwtnJsonViewer', function () { - return { - restrict: 'E', - scope: { - data: '=', - path: '=', - ne: '=', // flag if ne class - networkElement: '=', - noButtons: '=' - }, - controller: 'mwtnJsonViewerController', - controllerAs: 'vm', - templateUrl: 'src/app/mwtnCommons/templates/mwtnJsonViewer.tpl.html' - }; - }); - - mwtnCommonsApp.register.controller('showGridCellDetailController', ['$scope', '$uibModalInstance', '$mwtnGlobal', 'valueData', - function ($scope, $uibModalInstance, $mwtnGlobal, valueData) { - - $scope.networkElement = valueData.networkElement; - $scope.path = valueData.path; - $scope.type = $mwtnGlobal.getType(valueData.value); - $scope.value = valueData.value; - // $scope.gridOptions = JSON.parse(JSON.stringify($mwtnCommons.gridOptions)); - // $scope.highlightFilteredHeader = $mwtnCommons.highlightFilteredHeader; - - console.log('valueData', JSON.stringify(valueData)); - - // $scope.ok = function () { - // $scope.processing = true; - // $mwtnCommons.setPacPartLists($scope.path, $scope.listData).then(function(success){ - // $scope.applied = {text: 'Applied: ' + new Date().toISOString(), class:'mwtnSuccess'}; - // $scope.processing = false; - // }, function(error){ - // $scope.applied = {text: 'Error: ' + new Date().toISOString(), class:'mwtnError'}; - // $scope.processing = false; - // $mwtnLog.error({component: COMPONENT, message: JSON.stringify(error)}); - // }); - - // }; - - $scope.cancel = function () { - $uibModalInstance.dismiss('cancel'); - }; - - }]); - - mwtnCommonsApp.register.controller('mwtnGridController', ['$scope', '$filter', '$uibModal', '$mwtnGlobal', '$mwtnCommons', '$mwtnLog', - function ($scope, $filter, $uibModal, $mwtnGlobal, $mwtnCommons, $mwtnLog) { - var vm = this; - var COMPONENT = 'mwtnGridController'; - - $scope.info = false; - - var data = JSON.parse(JSON.stringify($scope.data)); - if (!data) { - var message = 'No data to be displayed!";' - $mwtnLog.info({ component: COMPONENT, message: message }); - data = [{'message':message}]; - } - - if ($mwtnGlobal.getType(data) !== 'array') { - var message = 'Data must be of type "array"!'; - $mwtnLog.info({ component: COMPONENT, message: message }); - data = [{'message':message}]; - } - - if (data.length === 0) { - var message = 'Data list must have at least one entry!'; - $mwtnLog.info({ component: COMPONENT, message: message }); - data = [{'message':message}]; - } - - if ($mwtnGlobal.getType(data[0]) !== 'object') { - data = data.map(function(item){ - return {value: item}; - }); - } - - $scope.gridOptions = JSON.parse(JSON.stringify($mwtnCommons.gridOptions)); - $scope.highlightFilteredHeader = $mwtnCommons.highlightFilteredHeader; - - $scope.getTableHeight = function() { - var rowHeight = 30; - var headerHeight = 40; - var maxCount = 12; - var rowCount = $scope.gridOptions.data.length + 2; - var count = rowCount; - if (rowCount > maxCount) { - count = maxCount; - headerHeight = 31; - } - return { - height: (count * rowHeight + headerHeight) + 'px' - }; - }; - - var getCellTemplate = function(field) { - var object = ['transmission-mode-list', 'performance-data']; - if (object.contains(field)) { - console.warn(JSON.stringify(field)); - return ['<div class="ui-grid-cell-contents">', - '<i class="fa fa-info-circle" aria-hidden="true"', - ' ng-click="grid.appScope.show(grid.getCellValue(row, col))"', - ' style="color: rgb(66, 139, 202); cursor: pointer;"></i> ', - '{{grid.getCellValue(row, col)}}</div>'].join(''); - } - return '<div class="ui-grid-cell-contents">{{grid.getCellValue(row, col)}}</div>'; - }; - $scope.show = function(value){ - // console.warn(JSON.stringify(value)); - var type = $mwtnGlobal.getType(value); - // if (type === 'object') - var modalInstance = $uibModal.open({ - animation: true, - ariaLabelledBy: 'modal-title', - ariaDescribedBy: 'modal-body', - templateUrl: 'src/app/mwtnCommons/templates/showGridCellDetail.html', - controller: 'showGridCellDetailController', - size: 'huge', - resolve: { - valueData: function () { - return {networkElement: $scope.networkElement, path:$scope.path, value:value}; - } - } - }); - }; - var enable = data.length > 10; - $scope.gridOptions.columnDefs = Object.keys(data[0]).map(function (field) { - var type = $mwtnGlobal.getType(data[0][field]); - var labelId = $mwtnGlobal.getLabelId(field); - var displayName = $filter('translate')(labelId); - var visible = $mwtnGlobal.getVisibilityOf(field); - if (labelId.contains('$$') || labelId === 'MWTN_SPEC') { - visible = false; - } - return { - field: field, - type: type, - displayName: displayName, - enableSorting: true, - enableFiltering: enable, - headerCellClass: $scope.highlightFilteredHeader, - cellTemplate: getCellTemplate(field), - cellClass: type, - visible: visible - }; - }); - if ($scope.gridOptions.data.length < 10) { - $scope.gridOptions.minRowsToShow = data.length; // 10 is default - } - $scope.gridOptions.data = data; - // .sort(function(a, b){ - // if (a.type === 'object') return -1; - // if (a.type === 'array' ) return -2; - // return 0; - // }) - - $scope.myClipboard = { - data: $scope.data, - supported: true, - getJson: function () { - return JSON.stringify(this.data, null, ' '); - }, - copyToClipboard: function () { - var message = 'Copied to clipboard! ' + this.getJson(); - $mwtnLog.info({ component: COMPONENT, message: message }); - }, - error: function (err) { - $mwtnLog.error({ component: COMPONENT, message: err }); - } - }; - }]); - - mwtnCommonsApp.register.directive('mwtnGrid', function () { - return { - restrict: 'E', - scope: { - data: '=', - path: '=', - networkElement: '=' - }, - controller: 'mwtnGridController', - controllerAs: 'vm', - templateUrl: 'src/app/mwtnCommons/templates/mwtnGrid.tpl.html' - }; - }); - - mwtnCommonsApp.register.controller('mwtnSelectNetworkElementController', ['$scope', '$state','$mwtnCommons', function ($scope, $state, $mwtnCommons) { - var vm = this; - - /** - * A function which scanns the mountpoints for connected network-elements and adds it to networkElements. - * @param {{"onfAirInterfaceRevision": string, "node-id": string, "netconf-node-topology:connection-status": string}[]} mountpoints An array of mountpoints from OpenDaylight. - */ - var initNodeList = function (mountpoints) { - $scope.loading = true; - $scope.mountPoints = mountpoints; - $scope.networkElements = mountpoints.filter(function (mountpoint) { - return mountpoint['netconf-node-topology:connection-status'] === 'connected'; - }).map(function (mountpoint) { - return { id: mountpoint['node-id'], revision: mountpoint.onfAirInterfaceRevision }; - }).sort(function (a, b) { - if (a.id < b.id) return -1; - if (a.id > b.id) return 1; - return 0; - }); - - - $scope.networkElement = undefined; - if ($state.params.nodeId) { - - } - - console.error('nodeId', $state.params.nodeId); - - // select one of the nodes - /* dont do it in field applications!!!! - var select = parseInt(Math.random() * $scope.networkElements.length); - if (select !== undefined && $scope.networkElements[select]) { - $scope.networkElement = $scope.networkElements[select].id; - $scope.mountpoint = $scope.mountPoints.filter(function (mountpoint) { - return mountpoint['node-id'] === $scope.networkElement; - })[0]; - } - */ - $scope.loading = false; - }; - - $mwtnCommons.getMountPoints().then(function (mountpoints) { - initNodeList(mountpoints); - }, function (error) { - $scope.networkElements = []; - }); - }]); - - mwtnCommonsApp.register.directive('mwtnSelectNetworkElement', function () { - return { - restrict: 'E', - controller: 'mwtnSelectNetworkElementController', - controllerAs: 'vm', - templateUrl: 'src/app/mwtnCommons/templates/mwtnSelectNetworkElement.tpl.html' - }; - }); - - // mwtnCommonsApp.register.factory('$notifying', function($rootScope) { - // return { - // subscribe: function(scope, callback) { - // var handler = $rootScope.$on('notifying-service-event', callback); - // scope.$on('$destroy', handler); - // }, - - // notify: function(text) { - // $rootScope.$emit('notifying-service-event', text); - // } - // }; - // }); - - mwtnCommonsApp.register.factory('$mwtnGlobal', function () { - var service = {}; - - /** - * Returns false, if parameter/attribute should be in visible - * @param {string} field - a json to be analyzed - * @return {boolean} true, if the parameter should be visible, otherwise false. - */ - service.getVisibilityOf = function(field) { - var hide = ['name-binding', 'object-class']; - return !hide.contains(field); - }; - - /** - * Returns the (json) type of a value - * @param {*} value - a json to be analyzed - * @return type of json - */ - service.getType = function (value) { - var result = typeof value; - if (result === 'object' && JSON.stringify(value).substring(0, 1) === '[') { - result = 'array'; - } else if (result === 'object' && value === null) { - result = 'null'; - } else if (result === 'object' && value['value-name'] && value.value) { - result = 'name-value'; - } - return result; - }; - - service.getLabelId = function (string) { - return ['mwtn', string].join('_').replaceAll('-', '_').toUpperCase(); - }; - - var isIntesting = function(key) { - var instesting = ['name', 'local-id', 'label', 'extension', 'physical-port-reference', 'lp', 'server-ltp', 'client-ltp', 'layer-protocol-name']; - return instesting.contains(key); - } - /** - * Returns a simplfies json for display - * @param {*} data - the json to be simplified - * @param {boolean} ne - control parameter for finetuning - * @return a simplfied json for display - */ - service.getViewData = function (data, ne) { - var viewData = JSON.parse(JSON.stringify(data)); - if (ne) { - viewData.ltp = undefined; - viewData.fd = undefined; - } - Object.keys(viewData).map(function (key) { - var type = service.getType(viewData[key]); - var viewValue = { - value: viewData[key], - type: type, - labelId: service.getLabelId(key), - visible: service.getVisibilityOf(key) - }; - viewData[key] = viewValue; - if (type === 'array') { - if (key === 'extension') { - viewValue.value.map(function (item) { - viewData[item['value-name']] = { value: item.value, type: 'string', labelId:service.getLabelId(item['value-name']) }; - }); - viewData[key] = undefined; - } else if (viewValue.value.length === 1 && isIntesting(key)) { - // console.warn(key, JSON.stringify(viewData[key])); - var valueType = service.getType(viewValue.value[0]); - viewData[key].value = viewValue.value[0]; - viewData[key].type = valueType; - - if (valueType === 'object') { - viewData[key].value = service.getViewData(viewValue.value); - } else if (valueType === 'name-value') { - viewData[key].value = viewValue.value.value; - //viewData[key].type = 'string'; - } - } else if (type === 'object') { - viewData[key].value = service.getViewData(viewValue.value); - } - } - }); - return viewData; - }; - return service; - }); - - /** - * Process an array of data synchronously. - * Please see https://gist.github.com/KevinTCoughlin/6901825 - * @param {Array} data An array of data. - * @param {function} processData A function that processes an item of data. - * Signature: function(item, i, callback), where {@code item} is the i'th item, - * {@code i} is the loop index value and {@code calback} is the - * parameterless function to call on completion of processing an item. - * @param {function} done A callback function indecating that all items are processed. - */ - var doSynchronousLoop = function (data, processData, done) { - if (data && data.length > 0) { - var loop = function (data, i, processData, done) { - processData(data[i], i, function () { - if (++i < data.length) { - loop(data, i, processData, done); - } else { - done(); - } - }); - }; - loop(data, 0, processData, done); - } else { - done(); - } - }; - - mwtnCommonsApp.register.factory('$mwtnCommons', function ($http, $q, $mwtnGlobal, $mwtnLog, $mwtnDatabase, LogicalTerminationPoint, PtpClock) { - - var COMPONENT = '$mwtnCommons'; - - var service = { - base: window.location.origin + "/restconf/", - database: {}, - 'sdn-controller': [], - modules: {}, - layerProtocolNameOrder: { - 'MWPS': 6, - 'MWS': 5, - 'ETC': 4, - 'TDM': 3, - 'ETY': 2, - 'ETH-CTP': 1, - 'ETH': 1, - } - }; - - service.getOrderNumber = function(proposal, item){ - var result = proposal; - if (item.type === 'array') { - proposal = 99; - } else if (item.type === 'object') { - proposal = 98; - } else if (item.labelId === 'MWTN_LOCAL_ID') { - proposal = -1; - } else if (item.labelId === 'MWTN_LABEL') { - proposal = -2; - } else if (item.labelId === 'MWTN_NAME') { - proposal = -3; - } else if (item.labelId === 'MWTN_UUID') { - proposal = -4; - } - return proposal; - } - - /** - * A function to get the global-identifier of a condtional package subClass by a specifcation object of such subClass and a local-name. - * @param {{pacId: string, layerProtocolId: string, partId:string}} spec - Specification object of a conditional package subclass. - * @param {string} local-name (e.g. current-problems) - * @return {string} globel-identifier of a conditional packages subClass (e.g. 'air-interface-diversity-current-problems') - */ - service.getPartGlobalId = function (spec, localName) { - var address = spec.pacId.split(':'); - var module = address[0]; - var pacName = address[1]; - - // check for unexpected issues - if (!module) { - console.error('not module', module, JSON.stringify(spec)); - return; - } - if (!pacName) { - console.error('not pacName', pacName, JSON.stringify(spec)); - return; - } - if (!service.modules[module]) { - console.error('not service.modules[module]', service.modules[module], JSON.stringify(spec)); - return; - } - if (!service.modules[module][pacName]) { - console.error('not service.modules[module][pacName]', service.modules[module][pacName], JSON.stringify(spec)); - return; - } - if (!service.modules[module]) { - console.error('not ervice.modules[module][pacName][subClass]', service.modules[module][pacName][subClass], JSON.stringify(spec)); - return; - } - - return Object.keys(service.modules[module][pacName]).filter(function (subClass) { - return service.modules[module][pacName][subClass]['local-name'] === localName; - }).map(function (subClass) { - return service.modules[module][pacName][subClass].name; - })[0]; - - }; - - /** - * A function to get the local-name of a condtional package subClass by a specifcation object of such subClass. - * @param {{pacId: string, layerProtocolId: string, partId:string}} spec - Specification object of a conditional package subclass - * @return {string} local-name of a conditional packages subClass (e.g. 'current-problems') - */ - service.getPartLocalId = function (spec) { - var result; - Object.keys(service.modules).map(function (module) { - Object.keys(service.modules[module]).filter(function (pacName) { - return spec.pacId === [module, pacName].join(':') && service.modules[module][pacName][spec.partId].name === spec.partId; - }).map(function (pacName) { - result = service.modules[module][pacName][spec.partId]['local-name']; - }); - }); - return result; - }; - - var init = function () { - var deferred = $q.defer(); - var databaseRequest = { - base: $mwtnDatabase.base, - index: 'config', - docType: 'sdn-controller', - command: '_search', - method: 'GET', - from: 0, - size: 10 - }; - $mwtnDatabase.genericRequest(databaseRequest).then(function (success) { - // console.log('sc', JSON.stringify(success.data.hits.hits)); - service['sdn-controller'] = success.data.hits.hits; - $mwtnDatabase.getModules().then(function (success) { - service.modules = success; - }, function (error) { - service.modules = []; - console.error('modules', JSON.stringify(error)); - deferred.reject(error); - }); - deferred.resolve(); - }, function (error) { - service['sdn-controller'] = []; - console.error('sc', JSON.stringify(error)); - deferred.reject(error); - }); - - return deferred.promise; - }; - - service.getMainConroller = function () { - var deferred = $q.defer(); - if (service['sdn-controller'].length === 0) { - init().then(function (success) { - service['sdn-controller'].map(function (controller) { - result = controller; - }); - deferred.resolve(result); - }, function (error) { - deferred.reject(error); - }); - } else { - service['sdn-controller'].map(function (controller) { - result = controller; - }); - deferred.resolve(result); - } - return deferred.promise; - }; - - var createStream = function (streamName, callback) { - service.getMainConroller().then(function (success) { - var src = success._source; - var ip = src.host; - if (ip === 'localhost') { - ip = service.base.split('//')[1].split(':')[0]; - } - var url = [src['transport-protocol'], '://', ip, ':', src.port, '/restconf/streams/stream/', streamName].join(''); - var request = { - method: 'GET', - url: url - }; - $http(request).then(function (response) { - // console.log(response.headers('Location')); - callback(response.headers('Location')); - }, function errorCallback(response) { - console.error(JSON.stringify(response)); - callback(); - }); - }, function (error) { - console.error('mainController', error); - callback(); - }); - }; - - service.getMwtnWebSocketUrl = function () { - var deferred = $q.defer(); - service.getMainConroller().then(function (success) { - - var protocol = window.location.protocol.replace(/http/g, 'ws'); - var host = window.location.hostname; - var user = window.localStorage.odlUser; - if (user === undefined) user = 'admin' // ODL default user - var pw = window.localStorage.odlPass; - if (pw === undefined) pw = 'admin' // ODL default password - - var url = [protocol, '//', user, ':',pw, '@', host, ':8085/websocket'].join(''); - console.info('url', url); - - deferred.resolve(url); - }, function (error) { - console.error('mainController', error); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.formatTimeStamp = function (t) { - // t: time in ONF format, e.g. 20161020081633.7Z, 20161025235946.0+0000 - if (t.length !== '20161020081633.7Z'.length || t.length !== '20161025221822.0+0000') { - if (t.endsWith('Z') || t.endsWith('+0000')) { - if (!t.contains('-')) { - return [[t.slice(0, 4), t.slice(4, 6), t.slice(6, 8)].join('-'), - [t.slice(8, 10), t.slice(10, 12), t.slice(12, 16)].join(':')].join(' ') + ' UTC'; - } - } - } - // console.info('check', t); - // return new Date().toISOString().toHumanReadableTimeFormat(); - return t.toHumanReadableTimeFormat(); - }; - - service.formatData = function (event) { - var deferred = $q.defer(); - - var x2js = new X2JS(); - var jsonObj = x2js.xml_str2json(event.data); - // console.info('a', service.getType(jsonObj), JSON.stringify(jsonObj)); - if (jsonObj === null || service.getType(jsonObj) !== 'object') { - deferred.reject('ignore'); - } else { - notifType = Object.keys(jsonObj)[0]; - var formated = jsonObj[notifType]; - formated.timeStamp = service.formatTimeStamp(formated.timeStamp); - formated.notifType = notifType; - formated.myMessage = 'someMessage'; - formated.time = new Date().toISOString(); - deferred.resolve(formated); - } - - return deferred.promise; - }; - - service.getData = function (callback) { - return callback('$mwtnCommons registered to this application.'); - }; - - service.getType = $mwtnGlobal.getType; - service.getViewData = $mwtnGlobal.getViewData; - - service.getLayer = function (pacId) { - console.warn('@depricated', '$mwtnCommons.getLayer()'); - switch (pacId) { - case 'airinterface': - case 'air-interface': - return 'MWPS'; - case 'structure': - case 'pureEthernetStructure': - case 'hybridStructure': - case 'pure-ethernet-structure': - case 'hybrid-structure': - return 'MWS'; - case 'container': - case 'ethernetContainer': - case 'ethernet-container': - return 'ETC'; - case 'tdmContainer': - case 'tdm-container': - return 'TDM'; - default: - return (pacId); - } - }; - - /** @deprecated */ - service.parts = ['Capability', 'Configuration', 'Status', 'CurrentProblems', 'CurrentPerformance', 'HistoricalPerformances']; - - service.getLabelId = function (key, callback) { - return callback(['mwtn', key].join('_').toUpperCase()); - }; - - service.checkModules = function (names) { - // accepts a list of module names and - // attempts to load them, in order. - // attempt to load the module into m - var m; - var result = {}; - names.map(function (name) { - try { - m = angular.module(name); - result[name] = true; - } catch (err) { - result[name] = false; - } - }); - return result; - }; - - service.mount = function (mp) { - // mp: mounting point - var url = [service.base, service.url.mount(mp.name)].join(''); - /* deprecated - var xml = [ - '<module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">', - '<type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">prefix:sal-netconf-connector</type>', - '<name>{0}</name>', - '<address xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">{1}</address>', - '<port xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">{2}</port>', - '<username xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">{3}</username>', - '<password xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">{4}</password>', - '<tcp-only xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">false</tcp-only>', - '<event-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">', - ' <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:netty">prefix:netty-event-executor</type>', - ' <name>global-event-executor</name>', - '</event-executor>', - '<binding-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">', - ' <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-broker-osgi-registry</type>', - ' <name>binding-osgi-broker</name>', - '</binding-registry>', - '<dom-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">', - ' <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-broker-osgi-registry</type>', - ' <name>dom-broker</name>', - '</dom-registry>', - '<client-dispatcher xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">', - ' <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:netconf">prefix:netconf-client-dispatcher</type>', - ' <name>global-netconf-dispatcher</name>', - '</client-dispatcher>', - '<processing-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">', - ' <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:threadpool</type>', - ' <name>global-netconf-processing-executor</name>', - '</processing-executor>', - '<keepalive-executor xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf">', - ' <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:threadpool">prefix:scheduled-threadpool</type>', - ' <name>global-netconf-ssh-scheduled-executor</name>', - '</keepalive-executor>', - '</module>' ].join('').format(mp.name, mp.ipaddress, mp.port, mp.username, mp.password); */ - var xml = [ - '<node xmlns="urn:TBD:params:xml:ns:yang:network-topology">', - ' <node-id>{0}</node-id>', - ' <host xmlns="urn:opendaylight:netconf-node-topology">{1}</host>', - ' <port xmlns="urn:opendaylight:netconf-node-topology">{2}</port>', - ' <username xmlns="urn:opendaylight:netconf-node-topology">{3}</username>', - ' <password xmlns="urn:opendaylight:netconf-node-topology">{4}</password>', - ' <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>', - - ' <!-- non-mandatory fields with default values, you can safely remove these if you do not wish to override any of these values-->', - ' <reconnect-on-changed-schema xmlns="urn:opendaylight:netconf-node-topology">false</reconnect-on-changed-schema>', - ' <connection-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">20000</connection-timeout-millis>', - ' <max-connection-attempts xmlns="urn:opendaylight:netconf-node-topology">100</max-connection-attempts>', - ' <between-attempts-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">2000</between-attempts-timeout-millis>', - ' <sleep-factor xmlns="urn:opendaylight:netconf-node-topology">1.5</sleep-factor>', - - ' <!-- keepalive-delay set to 0 turns off keepalives-->', - ' <keepalive-delay xmlns="urn:opendaylight:netconf-node-topology">120</keepalive-delay>', - '</node>'].join('').format(mp.name, mp.ipaddress, mp.port, mp.username, mp.password); - - var request = { - method: 'PUT', - url: url, - headers: { - 'Content-Type': 'application/xml', - 'Accept': 'application/xml' - }, - data: xml - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - deferred.resolve(success.data); - }, function (error) { - $mwtnLog.error({ component: '$mwtnCommons.mount', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - /** - * A promise to unmount netconf devices the old way from OpenDaylight Lithium. - * This is needed in case Netconf devices from 3rd ONF Wireless PoC were mounted. - * @param {string} nodeId - The mountpoint identifier which should be unmounted the old way. - */ - var unmountDeprecated = function (nodeId) { - var url = [service.base, - 'config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount/config:modules/module/odl-sal-netconf-connector-cfg:sal-netconf-connector/', - nodeId].join(''); - var request = { - method: 'DELETE', - url: url - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - $mwtnLog.info({ component: COMPONENT, message: 'Mounting Point deleted: ' + nodeId }); - deferred.resolve(success.data); - }, function (error) { - $mwtnLog.info({ component: '$mwtnCommons.unmount', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - } - - /** - * A promise to unmount netconf devices from OpenDaylight Beryllium and higher. - * @param {string} nodeId - The mountpoint identifier which unmounted/disconnected from OpenDaylight. - */ - service.unmount = function (nodeId) { - var url = [service.base, service.url.unmount(nodeId)].join(''); - var request = { - method: 'DELETE', - url: url - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - $mwtnLog.info({ component: COMPONENT, message: 'Mounting Point deleted: ' + nodeId }); - deferred.resolve(success.data); - }, function (error) { - // try the old way - unmountDeprecated(nodeId).then( - function (success) { - $mwtnLog.info({ component: COMPONENT, message: 'Mounting Point deleted: ' + nodeId }); - deferred.resolve(success.data); - }, - function (error) { - $mwtnLog.info({ component: '$mwtnCommons.unmount', message: JSON.stringify(error.data) }); - deferred.reject(error); - } - ); - }); - return deferred.promise; - }; - - service.getPacParts = function (spec) { - var errorMsg = { info: 'No data received' }; - var deferred = $q.defer(); - switch (spec.pacId) { - case 'ne': - service.getActualNetworkElement(spec.nodeId, spec.revision).then(function (success) { - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Requesting ' + spec.nodeId + ' failed!' }); - deferred.reject(error); - }); - break; - case 'clock': - service.getPtpClockData(spec.nodeId, spec.revision).then(function (success) { - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Requesting clock for ' + spec.nodeId + ' failed!' }); - deferred.reject(); - }); - break; - case 'forwardingDomain': - console.warn('fd', JSON.stringify(spec)); - service.getForwardingDomain(spec.nodeId, 'eth-switch').then(function (success) { - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Requesting forwarding domain for ' + spec.nodeId + ' failed!' }); - deferred.reject(error); - }); - break; - case 'ltp': - var ltpKey = 'ltp'; - switch (spec.revision) { - case '2017-02-17': - case '2017-03-20': - case '2017-03-24': - case '2017-10-20': - ltpKey = 'ltp'; - break; - default: - ltpKey = '_ltpRefList'; - } - var odlRequest = { - method: 'GET', - url: [service.url.actualNetworkElement(spec.nodeId, spec.revision), ltpKey, spec.layerProtocolId].join('/') - }; - // console.info(odlRequest.url); - service.genericRequest(odlRequest).then(function (success) { - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Requesting LTPs of ' + spec.nodeId + ' failed!' }); - deferred.reject(errorMsg); - }); - break; - case 'MWPS': - case 'MWS': - case 'ETH-CTP': - case 'ETC': - case 'airinterface': - case 'structure': - case 'container': - // 3rd PoC - case 'MicrowaveModel-ObjectClasses-AirInterface:MW_AirInterface_Pac': - case 'MicrowaveModel-ObjectClasses-EthernetContainer:MW_EthernetContainer_Pac': - case 'MicrowaveModel-ObjectClasses-PureEthernetStructure:MW_PureEthernetStructure_Pac': - // 4th PoC - case 'microwave-model:mw-air-interface-pac': - case 'microwave-model:mw-air-interface-diversity-pac': - case 'microwave-model:mw-pure-ethernet-structure-pac': - case 'microwave-model:mw-hybrid-mw-structure-pac': - case 'microwave-model:mw-tdm-container-pac': - case 'microwave-model:mw-ethernet-container-pac': - case 'onf-ethernet-conditional-packages:ethernet-pac': - // PoC 4.1 - case 'onf-otn-odu-conditional-packages:otn-odu-connection-pac': - case 'onf-otn-odu-conditional-packages:otn-odu-termination-pac': - if (spec.partId) { - service.getConditionalPackagePart(spec).then(function (success) { - success.layerProtocol = spec.layerProtocolId; - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Requesting conditional package of ' + JSON.stringify(spec) + ' failed!' }); - deferred.reject(errorMsg); - }); - } else { - deferred.resolve(); - } - break; - case 'neCurrentProblems': - service.getNetworkElementCurrentProblemList(spec.nodeId, spec.revision).then(function (success) { - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Requesting ' + spec.nodeId + ' failed!' }); - deferred.reject(error); - }); - break; - case 'mountpoint': - case 'forwardingConstructs': - // not needed (currently) - deferred.resolve(); - break; - default: - $mwtnLog.error({ component: COMPONENT, message: 'Requesting ' + spec.pacId + ' is not supported!' }); - deferred.reject(errorMsg); - } - return deferred.promise; - }; - service.setPacParts = function (spec, data) { - var errorMsg = { info: 'No data received' }; - var deferred = $q.defer(); - switch (spec.pacId) { - // case 'ne': - // service.getActualNetworkElement(spec.nodeId, spec.revision).then(function(success){ - // deferred.resolve(success); - // }, function(error){ - // $mwtnLog.error({component: COMPONENT, message: 'Requesting ' + spec.nodeId + ' failed!'}); - // deferred.reject(errorMsg); - // }); - // break; - // case 'ltp': - // var odlRequest = { - // method: 'GET', - // url: [service.url.actualNetworkElement(spec.nodeId, spec.revision), '_ltpRefList', spec.layerProtocolId].join('/') - // }; - // service.genericRequest(odlRequest).then(function(success){ - // deferred.resolve(success); - // }, function(error){ - // $mwtnLog.error({component: COMPONENT, message: 'Requesting LTPs of ' + spec.nodeId + ' failed!'}); - // deferred.reject(errorMsg); - // }); - // break; - case 'airinterface': - case 'structure': - case 'container': - // 4th PoC - case 'microwave-model:mw-air-interface-pac': - case 'microwave-model:mw-air-interface-diversity-pac': - case 'microwave-model:mw-pure-ethernet-structure-pac': - case 'microwave-model:mw-hybrid-mw-structure-pac': - case 'microwave-model:mw-tdm-container-pac': - case 'microwave-model:mw-ethernet-container-pac': - case 'onf-ethernet-conditional-packages:ethernet-pac': - // PoC 4.1 - case 'onf-otn-odu-conditional-packages:otn-odu-connection-pac': - case 'onf-otn-odu-conditional-packages:otn-odu-termination-pac': - service.setConditionalPackagePart(spec, data).then(function (success) { - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Modification of ' + JSON.stringify(spec) + ' failed!' }); - deferred.reject(errorMsg); - }); - break; - default: - $mwtnLog.error({ component: COMPONENT, message: 'Modification of ' + spec.pacId + ' not supported!' }); - deferred.reject(errorMsg); - } - return deferred.promise; - }; - service.setPacPartLists = function (spec, listData) { - var errorMsg = { info: 'No data received' }; - var deferred = $q.defer(); - switch (spec.pacId) { - // case 'ne': - // service.getActualNetworkElement(spec.nodeId, spec.revision).then(function(success){ - // deferred.resolve(success); - // }, function(error){ - // $mwtnLog.error({component: COMPONENT, message: 'Requesting ' + spec.nodeId + ' failed!'}); - // deferred.reject(errorMsg); - // }); - // break; - // case 'ltp': - // var odlRequest = { - // method: 'GET', - // url: [service.url.actualNetworkElement(spec.nodeId, spec.revision), '_ltpRefList', spec.layerProtocolId].join('/') - // }; - // service.genericRequest(odlRequest).then(function(success){ - // deferred.resolve(success); - // }, function(error){ - // $mwtnLog.error({component: COMPONENT, message: 'Requesting LTPs of ' + spec.nodeId + ' failed!'}); - // deferred.reject(errorMsg); - // }); - // break; - case 'airinterface': - case 'structure': - case 'container': - // 4th PoC - case 'microwave-model:mw-air-interface-pac': - case 'microwave-model:mw-air-interface-diversity-pac': - case 'microwave-model:mw-pure-ethernet-structure-pac': - case 'microwave-model:mw-hybrid-mw-structure-pac': - case 'microwave-model:mw-tdm-container-pac': - case 'microwave-model:mw-ethernet-container-pac': - case 'onf-ethernet-conditional-packages:ethernet-pac': - // PoC 4.1 - case 'onf-otn-odu-conditional-packages:otn-odu-connection-pac': - case 'onf-otn-odu-conditional-packages:otn-odu-termination-pac': - service.setConditionalPackagePartList(spec, listData).then(function (success) { - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Modification of ' + JSON.stringify(spec) + ' failed!' }); - deferred.reject(errorMsg); - }); - break; - default: - $mwtnLog.error({ component: COMPONENT, message: 'Modification of ' + spec.pacId + ' not supported!' }); - deferred.reject(errorMsg); - } - return deferred.promise; - }; - var nodeIntId = 100; - service.getNodeIntIdFromNodeId = function (nodeId) { - nodeIntId = nodeIntId + 1; - if (nodeId.contains('-')) { - return nodeId.split('-')[1]; - } - return nodeIntId; - }; - - service.getRequiredNetworkElements = function (complete) { - var sort = [{ _id: { order: 'asc' } }];; - var query = { - match: { - required: true - } - }; - var deferred = $q.defer(); - $mwtnDatabase.getFilteredSortedData('mwtn', 'required-networkelement', 0, 10000, sort, query).then( - function (success) { - if (complete) { - deferred.resolve(success.data.hits.hits); - } - var result = success.data.hits.hits.map(function (ne) { - var yangifiedObj = service.yangifyObject(ne._source); - var pacKey = 'microwave-model:mw-air-interface-pac'; - if (yangifiedObj['microwave-model-object-classes-air-interface:mw-air-interface-pac']) { - pacKey = 'microwave-model-object-classes-air-interface:mw-air-interface-pac'; - } - var configKey = 'air-interface-configuration'; - var radioSignalIds = []; - if (yangifiedObj[pacKey]) { - radioSignalIds = yangifiedObj[pacKey].filter( - function (mwps) { - return mwps[configKey] && mwps[configKey]['radio-signal-id']; - } - ).map( - function (mwps) { - return mwps[configKey]['radio-signal-id']; - } - ).sort(); - } - return { - id: service.getNodeIntIdFromNodeId(yangifiedObj['node-id']), - name: yangifiedObj['node-id'], - ipaddress: yangifiedObj.connect.host, - port: yangifiedObj.connect.port, - username: yangifiedObj.connect.username, - password: yangifiedObj.connect.password, - radioSignalIds: JSON.stringify(radioSignalIds), - connectionStatus: 'disconnected' - }; - }); - deferred.resolve(result); - }, - function (error) { - $mwtnLog.error({ component: COMPONENT, message: 'Problems in retrieving required network elements.' }); - deferred.reject(error); - } - ); - return deferred.promise; - }; - - service.getConnectionStatus = function (neId) { - var url = service.base + service.url.connectionStatus(neId); - var request = { - method: 'GET', - url: url - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - // console.log(JSON.stringify(success)); - deferred.resolve(success.data.node[0]['netconf-node-topology:connection-status']); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - service.executeClosedLoopAutomation = function () { - var url = service.base + 'operations/closedLoopAutomation:start'; - var request = { - method: 'POST', - url: url - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - service.saveClosedLoopAutomation = function (enabled, option) { - var url = service.base + 'operations/closedLoopAutomation:save-timer'; - var request = { - method: 'POST', - url: url, - data: { - "input": { - "enabled": enabled, - "option": option - } - } - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - service.readClosedLoopAutomation = function () { - var url = service.base + 'operations/closedLoopAutomation:read-timer'; - var request = { - method: 'POST', - url: url, - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - /** - * A promise inquiring the a single mountpoint from topology-netconf. - * @param {string} nodeId - The mountpoint identifier. - * @return {{'node-id':string, 'netconf-node-topology:tcp-only': boolean, 'netconf-node-topology:host', string, 'netconf-node-topology:keepalive-delay':number, 'netconf-node-topology:port':number, 'netconf-node-topology:username':string, 'netconf-node-topology:password': string}} - The mountpoint from topology-netconf. - */ - service.getMountPoint = function (nodeId) { - var odlRequest = { - method: 'GET', - url: service.url.mount(nodeId) - }; - var deferred = $q.defer(); - service.genericRequest(odlRequest).then( - function (success) { - deferred.resolve(success.data.node[0]); - }, - function (error) { - deferred.reject(error); - } - ); - return deferred.promise; - }; - - service.getMountPoints = function () { - var url = service.base + service.url.actualNetworkElements(); - var request = { - method: 'GET', - url: url - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - var requiredTopology = 'topology-netconf'; - var topo = success.data.topology.filter(function (topo) { - return topo['topology-id'] === requiredTopology; - }); - // console.log('topo', JSON.stringify(topo)); - if (topo.length === 0) { - var message = ['ODL', requiredTopology, 'not found!'].join(' '); - $mwtnLog.error({ component: COMPONENT, message: message }); - deferred.reject(message); - } else if (topo[0].node) { - var mwMountPoints = topo[0].node.filter(function (mountpoint) { - return mountpoint['node-id'] !== 'controller-config'; - }).map(function (mountpoint) { - // console.info('mountpoint', JSON.stringify(mountpoint)); - var capId = 'netconf-node-topology:available-capabilities'; - if (mountpoint[capId] && mountpoint[capId]['available-capability']) { - var caps = mountpoint[capId]['available-capability'].filter(function (cap) { - // console.info(JSON.stringify(cap)); - return cap.capability.contains('?revision='); - }).map(function (cap) { - return { - module: cap.capability.split(')')[1], - revision: cap.capability.split('?revision=')[1].substring(0, 10) - }; - }).sort(function (a, b) { - if (a.module < b.module) return -1; - if (a.module > b.module) return 1; - return 0; - }); - // console.log('mountpoint', JSON.stringify(caps)); - mountpoint.onfCapabilities = caps; - mountpoint.onfCoreModelRevision = caps.filter(function (cap) { - return cap.module === 'core-model' || cap.module === 'CoreModel-CoreNetworkModule-ObjectClasses'; - }).map(function (cap) { - return cap.revision; - }); - if (mountpoint.onfCoreModelRevision.length === 1) { - mountpoint.onfCoreModelRevision = mountpoint.onfCoreModelRevision[0]; - } else { - $mwtnLog.error({ component: COMPONENT, message: mountpoint.onfCoreModelRevision.length + ' CoreModels supported by ' + mountpoint['node-id'] }); - } - - // console.log('caps', JSON.stringify(caps)); - mountpoint.onfAirInterfaceRevision = caps.filter(function (cap) { - return cap.module === 'microwave-model' || cap.module === 'MicrowaveModel-ObjectClasses-AirInterface'; - }).map(function (cap) { - return cap.revision; - }); - // console.log('onfAirInterfaceRevision', mountpoint.onfAirInterfaceRevision); - if (mountpoint.onfAirInterfaceRevision.length === 1) { - mountpoint.onfAirInterfaceRevision = mountpoint.onfAirInterfaceRevision[0]; - } else { - $mwtnLog.error({ component: COMPONENT, message: 'More than 1 or no MicrowaveModel supported by ' + mountpoint['node-id'] }); - } - } - var clusterConneactionStatus = 'netconf-node-topology:clustered-connection-status'; - if (mountpoint[clusterConneactionStatus] && mountpoint[clusterConneactionStatus]['netconf-master-node']) { - var value = mountpoint[clusterConneactionStatus]['netconf-master-node']; - value = value.substring(value.indexOf('@')); - mountpoint.client = value.substring(1, value.indexOf(':')); - } else { - mountpoint.client = window.location.hostname; - } - return mountpoint; - }); - // console.log('mwMountPoints', JSON.stringify(mwMountPoints)); - deferred.resolve(mwMountPoints); - } - }, function (error) { - $mwtnLog.error({ component: COMPONENT, message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - service.separator = ' '; - // grid settings - service.highlightFilteredHeader = function (row, rowRenderIndex, - col, colRenderIndex) { - if (col.filters[0].term) { - return 'header-filtered'; - } else { - return ''; - } - }; - service.gridOptions = { - data: [], - enableColumnResizing: true, - enableSorting: true, - enableFiltering: true, - enableGridMenu: true, - exporterMenuPdf: false, - showGridFooter: true, - // showColumnFooter: true, - fastWatch: true, - enableRowSelection: true, - enableRowHeaderSelection: true, - multiSelect: false - }; - service.gridOptions.gridMenuCustomItems = [{ - title: 'Rotate Grid', - action: function ($event) { - this.grid.element.toggleClass('rotated'); - }, - order: 210 - }]; - service.url = { - actualNetworkElements: function () { - return 'operational/network-topology:network-topology/topology/topology-netconf'; - }, - connectionStatus: function (neId) { - return 'operational/network-topology:network-topology/topology/topology-netconf/node/' + neId; - }, - mount: function (neId) { - return 'config/network-topology:network-topology/topology/topology-netconf/node/' + neId; - // return 'config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount/config:modules'; // depricated - }, - unmount: function (neId) { - // return 'config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount/config:modules/module/odl-sal-netconf-connector-cfg:sal-netconf-connector/' + neId; // depricated - return 'config/network-topology:network-topology/topology/topology-netconf/node/' + neId; - }, - forwardingDomain: function (neId, fdUuid) { - return 'operational/network-topology:network-topology/topology/topology-netconf/node/' + neId + '/yang-ext:mount/core-model:network-element/fd/' +fdUuid; - }, - forwardingConstruct: function (neId, fcUuid) { - return 'operational/network-topology:network-topology/topology/topology-netconf/node/' + neId + '/yang-ext:mount/core-model:forwarding-construct/' +fcUuid; - }, - clock: function (neId, revision) { - return 'operational/network-topology:network-topology/topology/topology-netconf/node/' + neId + '/yang-ext:mount/ietf-ptp-dataset:instance-list/1'; - }, - actualNetworkElement: function (neId, revision) { - switch (revision) { - case "2016-03-23": - return [ - 'operational/network-topology:network-topology/topology/topology-netconf/node/', - neId, - '/yang-ext:mount/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement/', - neId].join(''); - case "2017-02-17": - case "2017-03-20": - case "2017-03-24": - case "2017-10-20": - return [ - 'operational/network-topology:network-topology/topology/topology-netconf/node/', - neId, - '/yang-ext:mount/core-model:network-element'].join(''); - default: // 2016-08-11 - return [ - 'operational/network-topology:network-topology/topology/topology-netconf/node/', - neId, - '/yang-ext:mount/CoreModel-CoreNetworkModule-ObjectClasses:NetworkElement'].join(''); - } - }, - networkElementCurrentProblemList: function (neId, revision) { - console.log(neId, revision); - switch (revision) { - case "2016-08-11": - return [ - 'operational/network-topology:network-topology/topology/topology-netconf/node/', - neId, - '/yang-ext:mount/MicrowaveModel-NetworkElement-CurrentProblemList:NetworkElementCurrentProblems'].join(''); - case "2017-02-17": - case "2017-03-20": // TODO sko equipmentAlarms check new yang file if agreed - return [ - 'operational/network-topology:network-topology/topology/topology-netconf/node/', - neId, - '/yang-ext:mount/onf-core-model-conditional-packages:network-element-pac/network-element-current-problems'].join(''); - default: - return [ - 'operational/network-topology:network-topology/topology/topology-netconf/node/', - neId, - '/yang-ext:mount/onf-core-model-conditional-packages:network-element-pac/network-element-current-problems'].join(''); - } - } - }; - /* - * Changes different time formats to a common time fromat - * TODO currently not implemented! - */ - service.normalizeTimeFormat = function (time, format) { - return time; - }; - /* - * Changing a string according to yang naming conventions. - * The function should be alinged with the ONF Eagle project. - */ - service.yangify = function (str) { - var result = str - .replace(/RefList+$/, '') // endling "List" was removed - .replace(/List+$/, '') // endling "List" was removed - .replace(/([a-z])([A-Z])/g, '$1-$2') // insert dashes - .replace(/([0-9])([a-zA-Z])/g, '$1-$2') // insert dashes - .replace(/([A-Z])([A-Z])([a-z])/g, '$1-$2$3') // insert dashes - .toLowerCase() // lowercase everything - .replace(/^_/, '') // remove leading underscore - .replace(/:_/g, ':') // and leading underscores in path segments - .replace(/_/g, '-'); // convert underscore to dashes - - // catch "wrong" UML labels - var exceptions = { - 'air-interface':'air-interface-list', - 'air-interface-ltp':'air-interface-ltp-list', - 'air-interface-capability': 'air-interface-capability-list', - 'air-interface-current-problem': 'air-interface-current-problem-list', - 'container-capability': 'container-capability-list', - 'current-performance-data':'current-performance-data-list', - 'current-problem':'current-problem-list', - 'historical-performance-data':'historical-performance-data-list', - 'problem-kind-severity':'problem-kind-severity-list', - 'pure-ethernet-structure-capability':'pure-ethernet-structure-capability-list', - 'segment-status':'segment-status-list', - 'segments-id':'segments-id-list', - 'structure-capability': 'structure-capability-list', - 'structure-current-problem': 'structure-current-problem-list', - 'supported-tdm-container-types':'supported-tdm-container-types-list', - 'supported-tdm-structure-types':'supported-tdm-structure-types-list', - 'supported-channel-plan':'supported-channel-plan-list', - 'supported-loop-back-kind':'transmission-mode-list', - 'transmission-mode':'transmission-mode-list' - }; - if (exceptions[result]) { - console.warn(result, '.>', exceptions[result]); - result=exceptions[result]; - } - - // catch modulation value difference - if (result.startsWith('time') && result.endsWith('symbols') - || result.startsWith('time') && result.contains('-symbols-') && result.endsWith('-s') - || result.startsWith('time') && result.contains('-symbols-') && result.endsWith('-l')) { - result = result.replace('symbols', 'states'); - } - return result; - }; - - /* - * Checking, whether a jsonObject should be yangifyed - */ - service.isCamelCase = function (jsonObject) { - if (jsonObject === undefined || jsonObject === null) { - return true; - } - var result; - var type = service.getType(jsonObject); - switch (type) { - case 'object': - result = false; - Object.keys(jsonObject).map(function (key) { - result = result || key !== [service.yangify(key)]; - }); - break; - case 'array': - case 'boolean': - case 'function': - case 'string': - case 'number': - case 'null': - case 'undefined': - result = true; - break; - default: - console.error('Type1:', type, ' is not supported!'); - result = true; - } - return result; - }; - /* - * Yangifies a names/keys of a jsonOject - */ - service.yangifyObject = function (jsonObject) { - if (jsonObject === undefined || jsonObject === null) { - return jsonObject; - } - var result; - var type = service.getType(jsonObject); - switch (type) { - case 'object': - case 'name-value': - result = {}; - Object.keys(jsonObject).map(function (key) { - result[service.yangify(key)] = service.yangifyObject(jsonObject[key]); - }); - break; - case 'array': - result = jsonObject.map(function (item, index) { - return service.yangifyObject(item); - }); - break; - case 'boolean': - case 'function': - case 'string': - case 'number': - case 'null': - case 'undefined': - result = jsonObject; - break; - default: - console.error('Type:', type, ' is not supported!'); - result = jsonObject; - } - return result; - }; - /* - * Send a restconf request to OpenDayligth. - * All ODL restconf requests should pass this function. - */ - service.genericRequest = function (odlRequest) { - var url = [service.base, odlRequest.url].join(''); - var request = { - method: odlRequest.method, - url: url, - data: odlRequest.data - }; - var deferred = $q.defer(); - $http(request).then(function (success) { - // yangifing the response is required until all NEs has switch to CoreModel 1.2 (ONF-TR-532) - // deferred.resolve(service.yangifyObject(success)); - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: COMPONENT + '.genericRequest', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - service.getMountedNetConfServers = function (callback) { - var url = service.base + service.url.actualNetworkElements(); - var request = { - method: 'GET', - url: url - }; - $http(request).then(function (success) { - return callback(success.data); - }, function (error) { - console.error(JSON.stringify(error)); - return callback(); - }); - }; - - service.getActualNetworkElement = function (neId, revision) { - var url = [service.base, - service.url.actualNetworkElement(neId, revision)].join(''); - var request = { - method: 'GET', - url: url - }; - var taskId = [neId, 'ONF:CoreModel:NetworkElement data received'].join(' '); - - var deferred = $q.defer(); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - success.data.revision = revision; - // deferred.resolve(service.yangifyObject(success.data)); - deferred.resolve(success.data); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.info({ component: '$mwtnCommons.getActualNetworkElement', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getForwardingDomain = function(neId, fdUuid) { - var url = [service.base, - service.url.forwardingDomain(neId, fdUuid)].join(''); - var request = { - method: 'GET', - url: url - }; - var taskId = [neId, 'ONF:ForwardingDomain received'].join(' '); - - var deferred = $q.defer(); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - // deferred.resolve(service.yangifyObject(success.data)); - deferred.resolve(success.data); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.info({ component: '$mwtnCommons.getForwardingDomain', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getForwardingConstruct = function(neId, fcUuid) { - var url = [service.base, - service.url.forwardingConstruct(neId, fcUuid)].join(''); - var request = { - method: 'GET', - url: url - }; - var taskId = [neId, fcUuid, 'ONF:ForwardingConstruct received'].join(' '); - - var deferred = $q.defer(); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - // deferred.resolve(service.yangifyObject(success.data)); - deferred.resolve(success.data); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.info({ component: '$mwtnCommons.getForwardingConstruct', message: JSON.stringify(error.data) }); - deferred.reject(); - }); - return deferred.promise; - }; - - service.getPtpClockData = function(neId, revision) { - var url = [service.base, - service.url.clock(neId, revision)].join(''); - var request = { - method: 'GET', - url: url - }; - var taskId = [neId, 'ONF:PTP:DataSet received'].join(' '); - - var deferred = $q.defer(); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - success.data.revision = revision; - // deferred.resolve(service.yangifyObject(success.data)); - deferred.resolve(success.data); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.info({ component: '$mwtnCommons.getPtpClockData', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getNetworkElementCurrentProblemList = function (neId, revision) { - var url = [service.base, - service.url.networkElementCurrentProblemList(neId, revision)].join(''); - var request = { - method: 'GET', - url: url - }; - var taskId = [neId, 'ONF:CoreModel:NetworkElement data received'].join(' '); - - var deferred = $q.defer(); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - success.data.revision = revision; - // deferred.resolve(service.yangifyObject(success.data)); TODO: check if correct - deferred.resolve(success.data); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.info({ component: '$mwtnCommons.getActualNetworkElement', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - var getIdsByRevision = function (revision, pacId, partId) { - - switch (revision) { - case '2016-03-23': - switch (pacId) { - case 'MWPS': - case 'AirInterface': - case 'airinterface': - case 'airInterface': - pacId = 'MicrowaveModel-ObjectClasses-MwConnection:MW_AirInterface_Pac'; - partId = 'airInterface' + partId; - if (partId === 'airInterfaceCapability' || partId === 'airInterfaceCurrentProblems') { - partId = undefined; - } - break; - case 'MWS': - case 'Structure': - case 'structure': - pacId = 'MicrowaveModel-ObjectClasses-MwConnection:MW_Structure_Pac'; - partId = 'structure' + partId; - break; - case 'ETH-CTP': - case 'ETH': - case 'Container': - case 'container': - pacId = 'MicrowaveModel-ObjectClasses-MwConnection:MW_Container_Pac'; - partId = 'container' + partId; - break; - case 'TDM': - pacId = 'MicrowaveModel-ObjectClasses-MwConnection:MW_Container_Pac'; - partId = 'container' + partId; - break; - } - break; - case '2017-02-17': - case '2017-03-20': - case '2017-03-24': - switch (pacId) { - case 'MWPS': - case 'AirInterface': - case 'airinterface': - case 'airInterface': - case 'air-interface': - pacId = 'microwave-model:mw-air-interface-pac'; - partId = 'air-interface-' + service.yangify(partId); - break; - case 'MWS': - case 'Structure': - case 'structure': - var isHybrid = false; // TODO How do I know this? - if (isHybrid) { - pacId = 'microwave-model:mw-hybrid-mw-structure-pac'; - partId = 'hybrid-mw-structure-' + service.yangify(partId); - } else { - pacId = 'microwave-model:mw-pure-ethernet-structure-pac'; - partId = 'pure-ethernet-structure-' + service.yangify(partId); - } - break; - case 'ETH-CTP': - case 'ETC': - case 'Container': - case 'container': - pacId = 'microwave-model:mw-ethernet-container-pac'; - partId = 'ethernet-container-' + service.yangify(partId); - break; - case 'TDM': - pacId = 'microwave-model:mw-tdm-container-pac'; - partId = 'tdm-container-' + service.yangify(partId); - break; - } - break; - default: - switch (pacId) { - case 'MWPS': - case 'AirInterface': - case 'airinterface': - case 'airInterface': - pacId = 'MicrowaveModel-ObjectClasses-AirInterface:MW_AirInterface_Pac'; - partId = 'airInterface' + partId; - break; - case 'MWS': - case 'Structure': - case 'structure': - pacId = 'MicrowaveModel-ObjectClasses-PureEthernetStructure:MW_PureEthernetStructure_Pac'; - partId = 'pureEthernetStructure' + partId; - break; - case 'ETH-CTP': - case 'ETH': - case 'Container': - case 'container': - pacId = 'MicrowaveModel-ObjectClasses-EthernetContainer:MW_EthernetContainer_Pac'; - partId = 'ethernetContainer' + partId; - break; - case 'TDM': - pacId = 'microwave-model:mw-tdm-container-pac'; - partId = 'tdm-container-' + service.yangify(partId); - break; - } - } - return { - pacId: pacId, - partId: partId - }; - }; - - service.getConditionalPackagePart = function (spec) { - // console.log(JSON.stringify(spec)); - var deferred = $q.defer(); - if (!spec.partId) { - deferred.reject('ignore'); - return deferred.promise; - } - - var ids = getIdsByRevision(spec.revision, spec.pacId, spec.partId); - var operation = 'operational'; - if (spec.config === true) { - operation = 'config'; - } - - var url = [service.base, operation, - '/network-topology:network-topology/topology/topology-netconf/node/', - spec.nodeId, - '/yang-ext:mount/', ids.pacId, '/', - spec.layerProtocolId, '/', - ids.partId].join(''); - var request = { - method: 'GET', - url: url - }; - // console.log(JSON.stringify(request)); - - var taskId = [spec.nodeId, spec.layerProtocolId, spec.pacId, 'data received'].join(' '); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - success.data.revision = spec.revision; - deferred.resolve(success.data); - // console.log(JSON.stringify(service.yangifyObject(success.data))); - // [sko] not now - later after all apps are updated to the new model: deferred.resolve(service.yangifyObject(success.data)); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.info({ component: '$mwtnCommons.getConditionalPackagePart', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getPtpPort = function (spec) { - var deferred = $q.defer(); - if (!spec.networkElement || !spec.value) { - deferred.reject('ignore'); - return deferred.promise; - } - - var operation = 'config'; - var url = [service.base, operation, - '/network-topology:network-topology/topology/topology-netconf/node/', - spec.networkElement, - '/yang-ext:mount/ietf-ptp-dataset:instance-list/1/port-ds-list/', - spec.value['port-number']].join(''); - var request = { - method: 'GET', - url: url - }; - console.warn(JSON.stringify(request)); - - var taskId = [spec.networkElement, spec.value['port-number'], 'data received'].join(' '); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - console.warn(JSON.stringify(success.data)); - deferred.resolve(success.data); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.info({ component: '$mwtnCommons.getPtpPort', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.setPtpPort = function (spec, data) { - var deferred = $q.defer(); - if (!spec.networkElement || !spec.value) { - deferred.reject('ignore'); - return deferred.promise; - } - - var operation = 'config'; - var url = [service.base, operation, - '/network-topology:network-topology/topology/topology-netconf/node/', - spec.networkElement, - '/yang-ext:mount/ietf-ptp-dataset:instance-list/1/port-ds-list/', - spec.value['port-number']].join(''); - - var body = {'port-ds-list': data}; - - var request = { - method: 'PUT', - url: url, - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, - data: body - }; - - var taskId = [spec.networkElement, spec.value['port-number'], 'data received'].join(' '); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - deferred.resolve(success.data); - // deferred.resolve(service.yangifyObject(success.data)); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.error({ component: '$mwtnCommons.setPtpPort', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - - service.getPtpDefaultDs = function (spec) { - var deferred = $q.defer(); - if (!spec.networkElement || !spec.value) { - deferred.reject('ignore'); - return deferred.promise; - } - - var operation = 'config'; - var url = [service.base, operation, - '/network-topology:network-topology/topology/topology-netconf/node/', - spec.networkElement, - '/yang-ext:mount/ietf-ptp-dataset:instance-list/1/default-ds/'].join(''); - var request = { - method: 'GET', - url: url - }; - console.warn(JSON.stringify(request)); - - var taskId = [spec.networkElement, 'default-ds', 'data received'].join(' '); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - console.warn(JSON.stringify(success.data)); - deferred.resolve(success.data); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.info({ component: '$mwtnCommons.getPtpPort', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.setPtpDefaultDs = function (spec, data) { - var deferred = $q.defer(); - if (!spec.networkElement || !spec.value) { - deferred.reject('ignore'); - return deferred.promise; - } - - var operation = 'config'; - var url = [service.base, operation, - '/network-topology:network-topology/topology/topology-netconf/node/', - spec.networkElement, - '/yang-ext:mount/ietf-ptp-dataset:instance-list/1/default-ds/'].join(''); - - var body = {'default-ds': data}; - - var request = { - method: 'PUT', - url: url, - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, - data: body - }; - - var taskId = [spec.networkElement, 'default-ds', 'data received'].join(' '); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - deferred.resolve(success.data); - // deferred.resolve(service.yangifyObject(success.data)); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.error({ component: '$mwtnCommons.setPtpPort', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - - service.setConditionalPackagePart = function (spec, data) { - var deferred = $q.defer(); - if (!spec.partId) { - deferred.reject('ignore'); - return deferred.promise; - } - - var ids = getIdsByRevision(spec.revision, spec.pacId, spec.partId); - var body = {}; - body[ids.partId] = data; - - var url = [service.base, - 'config/network-topology:network-topology/topology/topology-netconf/node/', - spec.nodeId, - '/yang-ext:mount/', ids.pacId, '/', - spec.layerProtocolId, '/', - ids.partId].join(''); - var request = { - method: 'PUT', - url: url, - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, - data: body - }; - - var taskId = [spec.nodeId, spec.layerProtocolId, spec.pacId, 'data received'].join(' '); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - success.data.revision = spec.revision; - deferred.resolve(success.data); - // deferred.resolve(service.yangifyObject(success.data)); - }, function (error) { - console.timeEnd(taskId); - $mwtnLog.error({ component: '$mwtnCommons.setConditionalPackagePart', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - // pureEthernetStructureConfiguration/problemKindSeverityList/value1 - // { - // "problemKindSeverityList": [ - // { - // "problemKindName": "severity1", - // "problemKindSeverity": "warning" - // } - // ] - // } - - var processData = function (item, i, callback) { - var spec = item.spec; - var ids = getIdsByRevision(spec.revision, spec.pacId, - spec.partId); - item.spec = undefined; - var body = {}; - body[spec.attribute] = [item]; - $mwtnDatabase.getSchema().then(function (schema) { - - var key; - Object.keys(item).map(function (k) { - // works currently only for single key lists - if (schema[k] && schema[k]['is-key']) { - key = k; - } - }); - - var url = [ - service.base.slice(0, -1), - 'config/network-topology:network-topology/topology/topology-netconf/node', - spec.nodeId, 'yang-ext:mount', ids.pacId, - spec.layerProtocolId, ids.partId, - spec.attribute, item[key]].join('/'); - var request = { - method: 'PUT', - url: url, - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }, - data: body - }; - // console.log(JSON.stringify(request)); - var taskId = [spec.nodeId, spec.layerProtocolId, - spec.pacId, item.problemKindName, - 'data received'].join(' '); - console.time(taskId); - $http(request).then(function (success) { - console.timeEnd(taskId); - success.data.revision = spec.revision; - return callback(); - }, - function (error) { - console.timeEnd(taskId); - $mwtnLog - .error({ - component: '$mwtnCommons.setConditionalPackagePart', - message: JSON - .stringify(error.data) - }); - return callback(); - }); - }); - }; - - service.setConditionalPackagePartList = function (spec, data) { - var deferred = $q.defer(); - if (!spec.partId) { - deferred.reject('ignore'); - return deferred.promise; - } - - data.map(function (item) { - item.spec = spec; - }); - - doSynchronousLoop(data, processData, function () { - deferred.resolve(); - }); - return deferred.promise; - }; - - var saveRequiredNetworkElement = function (requiredNode) { - var url = [$mwtnDatabase.base, $mwtnDatabase.index, 'required-networkelement', - requiredNode.nodeId].join('/'); - var bodyString = JSON.stringify(requiredNode); - var headers = { - 'Content-Type': 'application/json', - 'Content-Length': bodyString.length - }; - var request = { - method: 'PUT', - url: url, - data: requiredNode - }; - - var deferred = $q.defer(); - console.time('database:' + url); - $http(request).then(function (success) { - console.timeEnd('database:' + url); - // console.log(JSON.stringify(success)); - deferred.resolve(success); - }, function (error) { - console.timeEnd('database:' + url); - $mwtnLog.error({ component: '$mwtnCommons.saveRequiredNetworkElement', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - return deferred.promise; - }; - - /** - * A function which inquires data from a netconf server and stores it in a database. - * @param {{'node-id': string, ipAddress: string, port: number, username: string, password: string, site:string, onfCoreModelRevision: string, onfAirInterfaceRevision: string}} netconfServer - A netConf server object with all connectivity parameters. - */ - service.addRequiredNetworkElement = function (netconfServer) { - /** {Object} requiredNode - Data set to be stored in database */ - var requiredNode = { - nodeId: netconfServer['node-id'], - siteRef: netconfServer.site, - onfCoreModelRevision: netconfServer.onfCoreModelRevision, - onfAirInterfaceRevision: netconfServer.onfAirInterfaceRevision, - required: true, - connect: { - mountId: netconfServer['node-id'], - host: netconfServer['netconf-node-topology:host'], - port: netconfServer['netconf-node-topology:port'], - username: netconfServer.username, - password: netconfServer.password - }, - 'core-model:network-element': {}, - }; - - var deferred = $q.defer(); - saveRequiredNetworkElement(requiredNode).then(function (success) { - deferred.resolve(success); - }, function (error) { - $mwtnLog.error({ component: '$mwtnCommons.saveRequiredNetworkElement', message: JSON.stringify(error.data) }); - deferred.reject(error); - }); - - // [sko] much simplified du to ONAP concepts, no device configuration needs to be stored in database. - - // // get NetworkElement object from node - // var spec = { - // nodeId: requiredNode.nodeId, - // revision: requiredNode.onfCoreModelRevision, - // pacId: 'ne' - // }; - - // var updatePart = function (spec, data) { - // data.layerProtocol = spec.layerProtocolId; - // requiredNode[spec.pacId].push(data); - // }; - - // var numberOfLtps = -1; - // var processLTPs = function (item, i, callback) { - // var ltp = new LogicalTerminationPoint(item); - // ltp.getLayerProtocols().map( - // /** - // * A function processing a layer-protocol object - // * @param {LayerProtocol} lp A layer-protocol object - // */ - // function (lp) { - // var conditionalPackage = lp.getConditionalPackage(true); - // if (conditionalPackage !== '') { - // if (requiredNode[conditionalPackage] === undefined) { - // // create missing pac array - // requiredNode[conditionalPackage] = []; - // } - // var spec = { - // nodeId: requiredNode.nodeId, - // revision: requiredNode.onfCoreModelRevision, - // pacId: conditionalPackage, - // layer: lp.getLayer(), - // layerProtocolId: lp.getId() - // }; - // spec.partId = service.getPartGlobalId(spec, 'configuration'); - // // console.info(JSON.stringify(spec)); - // service.getPacParts(spec).then(function (success) { - // // console.log(JSON.stringify(success)); - // spec.message = ['Process LTP', i+1, 'of', numberOfLtps].join(' '); - // $notifying.notify(spec); - // updatePart(spec, service.yangifyObject(success)); - // return callback(); - // }, function (error) { - // spec.message = ['Process LTP', i+1, 'of', numberOfLtps].join(' '); - // $notifying.notify(spec); - // $mwtnLog.error({ component: '$mwtnCommons.processLTPs bad data', message: JSON.stringify(error) }); - // return callback(); - // }); - // } else { - // $mwtnLog.info({ component: COMPONENT, message: 'No condtional package found: ' + ltp.getId() }); - // return callback(); - // } - // }); - - // // console.log(JSON.stringify(ltp.getData())); - // }; - - // service.getPacParts(spec).then(function (success) { - // success = service.yangifyObject(success); - // requiredNode['core-model:network-element'] = success['network-element']; - // var id = success['network-element']['node-id']; - // numberOfLtps = success['network-element'].ltp.length; - // doSynchronousLoop(success['network-element'].ltp, processLTPs, function () { - // saveRequiredNetworkElement(requiredNode).then(function (success) { - // $notifying.notify( { nodeId: id, message: 'finish'} ); - // deferred.resolve(success); - // }, function (error) { - // $mwtnLog.error({ component: '$mwtnCommons.saveRequiredNetworkElement', message: JSON.stringify(error.data) }); - // deferred.reject(error); - // }); - // }); - - // }, function (error) { - // $mwtnLog.error({ component: '$mwtnCommons.getPacParts', message: JSON.stringify(error.data) }); - // deferred.reject(error); - // }); - return deferred.promise; - }; - - service.registerForOdlEvents = function (path, callback) { - var request = { - method: 'POST', - url: [service.base, - 'operations/sal-remote:create-data-change-event-subscription'] - .join(''), - data: { - "input": { - "path": path, - "sal-remote-augment:datastore": "CONFIGURATION", - "sal-remote-augment:scope": "SUBTREE" - } - } - }; - $http(request).then( - function successCallback(response) { - // this callback will be called asynchronously - // when the response is available - // console.log(JSON.stringify(response)); - createStream(response.data.output['stream-name'], - function (socketLocation) { - callback(socketLocation); - }); - }, function errorCallback(response) { - // called asynchronously if an error occurs - // or server returns response with an error status. - console.error(JSON.stringify(response)); - }); - }; - - return service; - }); - - // Precision Time Protocol PTP - mwtnCommonsApp.register.factory('$mwtnPtp', function ($http, $q, $mwtnCommons, PtpClock) { - var key1 = 'netconf-node-topology:available-capabilities'; - var key2 = 'available-capability'; - var filterActivePtpClocks = function(mountpoints) { - return mountpoints.filter(function(mountpoint) { - if (!mountpoint) return false; - if (!mountpoint[key1]) return false; - if (!mountpoint[key1][key2]) return false; - if (mountpoint['netconf-node-topology:connection-status'] !== 'connected') return false; - var ptpCapability = mountpoint[key1][key2].filter(function(capability){ - return capability.contains('ietf-ptp-dataset'); - }); - return ptpCapability.length > 0; - }).map(function(mountpoint){ - return mountpoint['node-id']; - }); - }; - var ptpClocks = {}; - var processData = function (nodeId, i, callback) { - $mwtnCommons.getPtpClockData(nodeId).then( - function (success) { - ptpClocks[nodeId] = new PtpClock(success); - callback(); - }, - function (error) { - console.error(error); - callback(); - } - ); - }; - - var service = {}; - service.getPtpClocks = function() { - var deferred = $q.defer(); - - $mwtnCommons.getMountPoints().then(function (mountpoints) { - var ptpClockNodeIds = filterActivePtpClocks(mountpoints); - doSynchronousLoop(ptpClockNodeIds, processData, function () { - deferred.resolve(ptpClocks); - }); - }, function (error) { - console.log(error); - deferred.reject(); - }); - - return deferred.promise; - }; - - service.getParent = function(nodeId) { - var deferred = $q.defer(); - var request = { - method: 'GET', - url: 'operational/network-topology:network-topology/topology/topology-netconf/node/' + nodeId + '/yang-ext:mount/ietf-ptp-dataset:instance-list/1/parent-ds/parent-port-identity' - }; - - $mwtnCommons.genericRequest(request).then(function(success){ - console.warn(JSON.stringify(success)); - deferred.resolve(success.data['parent-port-identity']); - }, function(error) { - console.error(JSon.stringify(error)); - deferred.reject(); - }); - return deferred.promise; - }; - - return service; - }); - - // Service log - mwtnCommonsApp.register.factory('$mwtnLog', function ($http, $q, $mwtnDatabase) { - var writeLogToDB = function (data, callback) { - var url = [$mwtnDatabase.base, $mwtnDatabase.index, 'log'].join('/'); - var request = { - method: 'POST', - url: url, - data: { - timestamp: data.timestamp ? data.timestamp : new Date().toISOString(), - type: data.type ? data.type : 'info', - component: data.component ? data.component : 'unkonwn', - message: data.message - } - }; - $http(request).then(function successCallback(response) { - return callback(true); - }, function errorCallback(response) { - console.error(JSON.stringify(response)); - return callback(false); - }); - }; - - var createIndex = function (index, callback) { - var url = [$mwtnDatabase.base, index].join('/'); - var request = { - method: 'POST', - url: url, - data: { - timestamp: new Date().toISOString(), - type: 'info', - component: '$mwtnLog', - message: 'init log' - } - }; - $http(request).then(function (success) { - return callback(true); - }, function (error) { - console.error(JSON.stringify(error)); - return callback(false); - }); - }; - var checkIndex = function (index, callback) { - var url = [$mwtnDatabase.base, index].join('/'); - var request = { - method: 'HEAD', - url: url - }; - $http(request).then(function successCallback(response) { - return callback(true); - }, function errorCallback(response) { - console.error(JSON.stringify(response)); - createIndex(index, function (created) { - return callback(created); - }); - }); - }; - var checkDatabase = function (callback) { - var url = $mwtnDatabase.base; - var request = { - method: 'GET', - url: url - }; - $http(request).then(function successCallback(response) { - checkIndex($mwtnDatabase.index, function (exists) { - return callback(exists); - }); - }, function errorCallback(response) { - console.error(JSON.stringify(response)); - return callback(false); - }); - }; - var getData = function (type, log) { - var data = {}; - data.timestamp = new Date().toISOString(); - switch (typeof log) { - case 'string': - data.type = type; - data.component = 'unknown'; - data.message = log; - break; - case 'object': - data.type = type; - data.component = log.component; - data.message = log.message; - break; - default: - data.type = 'error'; - data.component = '$mwtnLog'; - data.message = 'pnf log service is called with wrong parameters.'; - } - // console.log(JSON.stringify(data)); - return data; - }; - var service = { - base: $mwtnDatabase.base - }; - service.debug = function (log) { - var data = getData('debug', log); - checkDatabase(function (isRunning) { - if (isRunning) { - writeLogToDB(data, function () { - // console.log('log stored'); - }); - } else { - console.error(data.timestamp, service.base, - 'Database (ElasticSerach) not reachable!?'); - } - }); - console.log(data.timestamp, JSON.stringify(log)); - }; - service.error = function (log) { - var data = getData('error', log); - checkDatabase(function (isRunning) { - if (isRunning) { - writeLogToDB(data, function () { - // console.log('log stored'); - }); - } else { - console.error(data.timestamp, service.base, - 'Database (ElasticSerach) not reachable!?'); - } - }); - console.error(data.timestamp, JSON.stringify(log)); - }; - service.info = function (log) { - var data = getData('info', log); - checkDatabase(function (isRunning) { - if (isRunning) { - writeLogToDB(data, function () { - // console.log('log stored'); - }); - } else { - console.error(data.timestamp, service.base, 'Database (ElasticSerach) not reachable!?'); - } - }); - console.info(data.timestamp, JSON.stringify(log)); - }; - service.warning = function (log) { - var data = getData('warning', log); - checkDatabase(function (isRunning) { - if (isRunning) { - writeLogToDB(data, function () { - // console.log('log stored'); - }); - } else { - console.error(data.timestamp, service.base, 'Database (ElasticSerach) not reachable!?'); - } - }); - console.warn(data.timestamp, JSON.stringify(log)); - }; - return service; - }); - - // Service log - mwtnCommonsApp.register.factory('$mwtnEthernet', function ($http, $q) { - var service = {}; - - service.base = window.location.origin + '/restconf'; - service.url = { - create: service.base + '/operations/route:create', - delete: service.base + '/operations/route:delete' - }; - - service.createForwardingConstruct = function(spec) { - var deferred = $q.defer(); - - var request = { - method: 'POST', - url: service.url.create, - data: { - input: { - vlanid: spec.vlan, - fc: [{ - nodeName: spec.nodeId, - aEnd: spec.ltp1, - zEnd: spec.ltp2 - } - ] - } - } - }; - console.log(JSON.stringify(spec)); - console.log(JSON.stringify(request)); - - var consoleId = 'create-forwarding-consturuct: '; - console.time(consoleId); - $http(request).then(function (success) { - console.timeEnd(consoleId); - console.log(JSON.stringify(success)); - deferred.resolve(success.data.output.status); - }, function (error) { - console.timeEnd(consoleId); - // console.error(JSON.stringify(error.statusText)); - deferred.reject(error.statusText); - }); - return deferred.promise; - }; - - service.deleteForwardingConstruct = function(spec) { - - var deferred = $q.defer(); - var request = { - method: 'POST', - url: service.url.delete, - data: {input:{vlanid:spec.ltp.slice(-2)}} - }; - console.log(JSON.stringify(spec)); - console.log(JSON.stringify(request)); - - var consoleId = 'delete-forwarding-consturuct: '; - console.time(consoleId); - $http(request).then(function (success) { - console.timeEnd(consoleId); - console.log(JSON.stringify(success)); - deferred.resolve(success.data.output.status); - }, function (error) { - console.timeEnd(consoleId); - // console.error(JSON.stringify(error.statusText)); - deferred.reject(error.statusText); - }); - return deferred.promise; - }; - - return service; - }); - - // Service Database (ElasticSerach) - mwtnCommonsApp.register.factory('$mwtnDatabase', function ($http, $q) { - var service = { - base: window.location.origin + '/database', - index: 'mwtn', - command: '_search', - mwtn: 'todo' - }; - - // TODO getBase is not needed anymore - service.getBase = function (functionId) { - var deferred = $q.defer(); - - deferred.resolve({ - base: service.base, - index: functionId - }); - - return deferred.promise; - }; - - service.genericRequest = function (databaseRequest) { - var url = [databaseRequest.base, databaseRequest.index, databaseRequest.docType, - databaseRequest.command].join('/'); - var request = { - method: databaseRequest.method, - url: url, - data: { - from: databaseRequest.from, - size: databaseRequest.size, - sort: databaseRequest.sort, - filter: databaseRequest.filter, - query: databaseRequest.query - } - }; - // overwrite request data if given - if (databaseRequest.data) { - request.data = databaseRequest.data; - } - var deferred = $q.defer(); - var consoleId = 'database: ' + url; - console.time(consoleId); - $http(request).then(function (success) { - console.timeEnd(consoleId); - // console.log(JSON.stringify(success)); - deferred.resolve(success); - }, function (error) { - console.timeEnd(consoleId); - console.warn(JSON.stringify(error)); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.aggregationRequest = function (databaseRequest) { - var url = [databaseRequest.base, databaseRequest.index, databaseRequest.docType, - databaseRequest.command].join('/'); - var request = { - method: databaseRequest.method, - url: url, - data: databaseRequest.aggregation - }; - var deferred = $q.defer(); - var consoleId = 'database: ' + url; - console.time(consoleId); - $http(request).then(function (success) { - console.timeEnd(consoleId); - deferred.resolve(success); - }, function (error) { - console.timeEnd(consoleId); - console.warn(JSON.stringify(error)); - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getAllData = function (functionId, docType, from, size, sort) { - var deferred = $q.defer(); - service.getBase(functionId).then(function (success) { - var databaseRequest = { - method: 'POST', - base: success.base, - index: success.index, - command: '_search', - docType: docType, - from: from, - size: size, - sort: sort, - query: { - match_all: {} - } - }; - service.genericRequest(databaseRequest).then(function (success) { - // console.log('getAllData', success); - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getFilteredData = function (functionId, docType, from, size, query) { - var deferred = $q.defer(); - service.getBase(functionId).then(function (success) { - var databaseRequest = { - method: 'POST', - base: success.base, - index: success.index, - command: '_search', - docType: docType, - from: from, - size: size, - sort: [], - query: query - }; - service.genericRequest(databaseRequest).then(function (success) { - // console.log('getAllData', success); - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getFilteredSortedData = function (functionId, docType, from, size, sort, query) { - var deferred = $q.defer(); - service.getBase(functionId).then(function (success) { - var databaseRequest = { - method: 'POST', - base: success.base, - index: success.index, - command: '_search', - docType: docType, - from: from, - size: size, - sort: sort, - query: query - }; - service.genericRequest(databaseRequest).then(function (success) { - // console.log('getAllData', success); - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getAggregatedData = function (functionId, docType, aggregation) { - var deferred = $q.defer(); - service.getBase(functionId).then(function (success) { - var databaseRequest = { - method: 'POST', - base: success.base, - index: success.index, - command: '_search', - docType: docType, - aggregation: aggregation - }; - service.aggregationRequest(databaseRequest).then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getAggregations = function (functionId, docType, aggregations) { - var deferred = $q.defer(); - service.getBase(functionId).then(function (success) { - var databaseRequest = { - method: 'POST', - base: success.base, - index: success.index, - command: '_search', - docType: docType, - aggregation: aggregations - }; - service.aggregationRequest(databaseRequest).then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - service.getData = function (docType, from, size, sort, filter, query) { - var deferred = $q.defer(); - service.getBase('mwtn').then(function (success) { - var databaseRequest = { - method: 'POST', - base: success.base, - index: success.index, - docType: docType, - from: from, - size: size, - sort: sort, - filter: filter, - query: query - }; - service.genericRequest(databaseRequest).then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - service.deleteDocType = function (spec) { - var deferred = $q.defer(); - service.getBase(spec.functionId).then(function (success) { - var databaseRequest = { - method: 'DELETE', - base: success.base, - index: success.index, - docType: spec.docType, - command: '_query', - query: spec.query - }; - - service.genericRequest(databaseRequest).then(function (success) { - deferred.resolve(status); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - /** - * A promise, which inquires a single document from database. - * @param {string} functionId - An identifier of an SDN function (e.g 'mwtn'). - * @param {string} docType - The document type of the document to be deleted. - * @param {string} id - An identifier of the document to be deleted. - */ - service.getSingleDocument = function (functionId, docType, id) { - var deferred = $q.defer(); - service.getBase(functionId).then(function (success) { - var databaseRequest = { - method: 'GET', - base: success.base, - index: success.index, - docType: docType, - command: id - }; - - service.genericRequest(databaseRequest).then(function (success) { - deferred.resolve(success.data._source); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - /** - * A promise, creating or updateing a single document of the database. - * @param {string} functionId - An identifier of an SDN function (e.g 'mwtn'). - * @param {string} docType - The document type of the document to be deleted. - * @param {string} id - An identifier of the document to be deleted. - * @param {Object} data - A json object to be stored in the database - */ - service.createSingleDocument = function (functionId, docType, id, data) { - var deferred = $q.defer(); - service.getBase(functionId).then(function (success) { - var databaseRequest = { - method: 'PUT', - base: success.base, - index: success.index, - docType: docType, - command: id, - data: data - }; - - service.genericRequest(databaseRequest).then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - /** - * A promise, which deletes one document within the database. - * @param {string} functionId - An identifier of an SDN function (e.g 'mwtn'). - * @param {string} docType - The document type of the document to be deleted. - * @param {string} id - An identifier of the document to be deleted. - */ - service.deleteSingleDocument = function (functionId, docType, id) { - var deferred = $q.defer(); - service.getBase(functionId).then(function (success) { - var databaseRequest = { - method: 'DELETE', - base: success.base, - index: success.index, - docType: docType, - command: id, - }; - - service.genericRequest(databaseRequest).then(function (success) { - deferred.resolve({ status: success.status, logId: success.data._id }); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - var moduleInformation; - var inquireModuleInformation = function () { - var deferred = $q.defer(); - service.getBase('mwtn').then(function (success) { - var databaseRequest = { - method: 'GET', - base: success.base, - index: success.index, - from: 0, - size: 999 - }; - service.getAllData('mwtn', 'module', 0, 999, undefined).then(function (success) { - // console.log(JSON.stringify(data.data.hits.hits)); - moduleInformation = {}; - success.data.hits.hits.map(function (hit) { - moduleInformation[hit._id] = hit._source; - }); - // console.log('got moduleInformation', Object.keys(moduleInformation).length); - return deferred.resolve(moduleInformation); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - /** - * A promise which returns object yang class and attribute descriptions - */ - service.getModules = function () { - var deferred = $q.defer(); - if (moduleInformation) { - deferred.resolve(moduleInformation); - } else { - inquireModuleInformation().then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - } - return deferred.promise; - }; - - var schemaInformation; - var inquireSchemaInformation = function () { - var deferred = $q.defer(); - service.getBase('mwtn').then(function (success) { - var databaseRequest = { - method: 'GET', - base: success.base, - index: success.index, - from: 0, - size: 999 - }; - service.getAllData('mwtn', 'schema-information', 0, 9999, undefined).then(function (success) { - // console.log(JSON.stringify(data.data.hits.hits)); - schemaInformation = {}; - success.data.hits.hits.map(function (hit) { - schemaInformation[hit._id] = hit._source; - }); - // console.log('got schemaInformation', Object.keys(schemaInformation).length); - return deferred.resolve(schemaInformation); - }, function (error) { - deferred.reject(error); - }); - }, function (error) { - deferred.reject(error); - }); - return deferred.promise; - }; - - /** - * A promise which returns object yang class and attribute descriptions - */ - service.getSchema = function () { - var deferred = $q.defer(); - if (schemaInformation) { - deferred.resolve(schemaInformation); - } else { - inquireSchemaInformation().then(function (success) { - deferred.resolve(success); - }, function (error) { - deferred.reject(error); - }); - } - return deferred.promise; - }; - - return service; - }); - // Class NetConfServer - mwtnCommonsApp.register.factory('NetConfServer', function () { - // Classes - // Class NetConfServer - var NetConfServer = function (data) { - this.data = data; - this.getData = function () { - return this.data; - }; - this.getRadioSignalId = function () { - return this.data.airInterfaceConfiguration.radioSignalId; - }; - this.isLinkUp = function () { - return this.data.airInterfaceStatus.linkIsUp; - }; - this.isPowerOn = function () { - return this.data.airInterfaceConfiguration.powerIsOn; - }; - this.isActive = function () { - return this.isPowerOn() && this.isLinkUp(); - }; - }; - return NetConfServer; - }); - - mwtnCommonsApp.register.factory('ActualNetworkElement', function () { - // Classes - // Class ActualNetworkElement - var ActualNetworkElement = function (data) { - this.data = data; - this.data.layerProtocols = {}; - this.setOnfNetworkElement = function (onfNe) { - this.data.onfNetworkElement = onfNe; - }; - this.getLpByRadioSignalId = function (radioSignalId) { - //console.log('getLP', JSON.stringify(this.data.ltp)); - var layerProtocol; - for (var layerProtocolKey in this.data.layerProtocols) { - if (this.data.layerProtocols[layerProtocolKey].getRadioSignalId && - radioSignalId === parseInt(this.data.layerProtocols[layerProtocolKey].getRadioSignalId())) { - layerProtocol = this.data.layerProtocols[layerProtocolKey]; - } - } - return layerProtocol; - }; - this.getLpByRadioSignalIds = function (radioSignalIds) { - //console.log('getLP', JSON.stringify(this.data.ltp)); - var layerProtocol; - if (radioSignalIds !== undefined) { - for (var layerProtocolKey in this.data.layerProtocols) { - if (this.data.layerProtocols[layerProtocolKey].getRadioSignalIds && - radioSignalIds.toString() === this.data.layerProtocols[layerProtocolKey].getRadioSignalIds(this).toString()) { - layerProtocol = this.data.layerProtocols[layerProtocolKey]; - } - } - } - return layerProtocol; - }; - this.setLP = function (onfPac) { - this.data.layerProtocols[onfPac.data.layerProtocol] = onfPac; - }; - this.getLpPac = function (lpRef) { - return this.data.layerProtocols[lpRef]; - }; - this.getName = function () { - return this.data.name; - }; - this.getConnectionStatus = function () { - return this.data.connectionStatus; - }; - this.isConnected = function () { - return this.data.name !== 'controller-config' && this.data.connectionStatus == 'connected'; - }; - this.setConnectionStatus = function (status) { - this.data.connectionStatus = status; - }; - }; - return ActualNetworkElement; - }); - - mwtnCommonsApp.register.factory('LogicalTerminationPoint', function ($mwtnGlobal, $mwtnLog) { - // Sub-Class LayerProtocol - /** - * An object representing an LP. - * @typedef {Object} LayerProtocol - */ - var LayerProtocol = function (data) { - // take a guess, if termiation-state is not exposed - if (data['termination-state'] === undefined) { - - data['termination-state'] = 'terminated-bidirectional'; - if (data['layer-protocol-name'] === "ETH") { - data['termination-state'] = 'lp-can-never-terminate'; - } - $mwtnLog.warning({ component: 'LTP.getTerminationState', message: 'Check whether NE provided mandatory termination state. ' + data.uuid }); - } else if (data['termination-state'] === false || data['termination-state'] === 'false' ) { - data['termination-state'] = 'terminated-bidirectional'; - } - - // console.log('in', JSON.stringify(data)); - var defaultMapping = { - 'ety-ttp': {}, - // [FFA 1709] 'etc-ttp': { 'capability': 'urn:onf:params:xml:ns:yang:microwave-model?module=microwave-model', 'revision': '2017-03-24', 'conditional-package': 'mw-ethernet-container-pac' }, - 'etc-ttp': { 'capability': 'uri:onf:MicrowaveModel-ObjectClasses-EthernetContainerl?module=MicrowaveModel-ObjectClasses-EthernetContainer', 'revision': '2016-09-02', 'conditional-package': 'MW_EthernetContainer_Pac' }, - 'tdm-ctp': { 'capability': 'urn:onf:params:xml:ns:yang:microwave-model?module=microwave-model', 'revision': '2017-03-24', 'conditional-package': 'mw-tdm-container-pac' }, - - // due to E/// - 'mws-ctp': { 'capability': 'uri:onf:MicrowaveModel-ObjectClasses-PureEthernetStructure?module=MicrowaveModel-ObjectClasses-PureEthernetStructure', 'revision': '2016-09-02', 'conditional-package': 'MW_PureEthernetStructure_Pac' }, - 'mwps-ctp': { 'capability': 'uri:onf:MicrowaveModel-ObjectClasses-AirInterface?module=MicrowaveModel-ObjectClasses-AirInterface', 'revision': '2016-09-01', 'conditional-package': 'MW_AirInterface_Pac' }, - // 'mws-ctp': { 'capability': 'urn:onf:params:xml:ns:yang:microwave-model?module=microwave-model', 'revision': '2017-03-24', 'conditional-package': 'mw-air-interface-diversity-pac' }, - - 'eth-ctp': { 'capability': 'urn:onf:params:xml:ns:yang:onf-ethernet-conditional-packages?module=onf-ethernet-conditional-packages', 'revision': '2017-04-02', 'conditional-package': 'ethernet-pac' }, - // 3rd PoC - 'mwps-ttp': { 'capability': 'uri:onf:MicrowaveModel-ObjectClasses-AirInterface?module=MicrowaveModel-ObjectClasses-AirInterface', 'revision': '2016-09-01', 'conditional-package': 'MW_AirInterface_Pac' }, - 'mws-ttp': { 'capability': 'uri:onf:MicrowaveModel-ObjectClasses-PureEthernetStructure?module=MicrowaveModel-ObjectClasses-PureEthernetStructure', 'revision': '2016-09-02', 'conditional-package': 'MW_PureEthernetStructure_Pac' }, - 'eth-ctp-ctp': { 'capability': 'uri:onf:MicrowaveModel-ObjectClasses-EthernetContainerl?module=MicrowaveModel-ObjectClasses-EthernetContainer', 'revision': '2016-09-02', 'conditional-package': 'MW_EthernetContainer_Pac' }, - 'etc-ctp': { 'capability': 'uri:onf:MicrowaveModel-ObjectClasses-EthernetContainerl?module=MicrowaveModel-ObjectClasses-EthernetContainer', 'revision': '2016-09-02', 'conditional-package': 'MW_EthernetContainer_Pac' }, - - }; - // create empty extension, if not exists - if (!data.extension) { - data.extension = []; - } - this.data = data; - - // methods - this.getData = function () { - return this.data; - }; - this.getId = function () { - return this.getData().uuid; - }; - this.getLabel = function () { - return ['LP(', this.getItuLabel(true).toUpperCase(), '): ', this.getId()].join(''); - }; - this.getLayer = function () { - var layer = this.getData()['layer-protocol-name']; - if (layer === 'ETH-CTP') { - layer = 'ETC'; - } - return layer; - }; - this.getTerminationState = function (abstract) { - // 3th PoC termination state is of type boolean - if (this.getData()['termination-state'] === true) { - return 'ttp'; - } else if (this.getData()['termination-state'] === false) { - return 'ctp'; - } - // 4th PoC termination state is of type enum - if (abstract !== true) { - return this.getData()['termination-state']; - } - var mapping = { - 'lp-can-never-terminate': 'ctp', - 'lt-not-terminated': 'ctp', - 'terminated-server-to-client-flow': 'ttp', - 'terminated-client-to-server-flow': 'ttp', - 'terminated-bidirectional': 'ttp', - 'lt-permenantly-terminated': 'ttp', - 'termination-state-unknown': 'ttp' - }; - return mapping[this.getData()['termination-state']]; - }; - this.getItuLabel = function () { - return [this.getLayer(), this.getTerminationState(true)].join('-').toLowerCase(); - }; - this.getExtension = function (key) { - var result = this.getData().extension.filter(function (ex) { - return ex['value-name'] === key; - }).map(function (ex) { - return ex.value; - }); - if (result && result.length > 0) { - return result[0]; - } - // check hardcoded alternatives - var ituLabel = this.getItuLabel(); - if (!defaultMapping[ituLabel]) { - return ''; - } - return defaultMapping[ituLabel][key]; - }; - /** - * A getter for the yang-capability of the LayerProtocol - * @param {boolean|undefined} moduleOnly - Defines, whether the result should contain only yang-module-name. - * @return {string} The conditional package name of the LayerProtocol - */ - this.getCapability = function (moduleOnly) { - var cap = this.getExtension('capability'); - if (!cap) return ''; - - // workaround bug in spec - if (cap.contains('onf-ethernet-conditional-package') && !cap.contains('onf-ethernet-conditional-packages')) { - console.warn('Inform vendor about spec error and updates'); - cap = cap.replaceAll('onf-ethernet-conditional-package', 'onf-ethernet-conditional-packages'); - } - if (cap !== '' && moduleOnly === true) { - return cap.split('?module=')[1]; - } - return cap; - }; - this.getRevision = function () { - return this.getExtension('revision'); - }; - /** - * A getter for the conditional package name of the LayerProtocol - * @param {boolean|undefined} addModule - Defines, whether the result should include the yang-module-name. - * @return {string} The conditional package name of the LayerProtocol - */ - this.getConditionalPackage = function (addModule) { - var cp = this.getExtension('conditional-package'); - if (!cp) { - return ''; - } - if (addModule === true) { - return [this.getCapability(true), cp].join(':'); - } - return cp; - }; - }; - - // Sub-Class LogicalTerminationPoint - /** - * An object representing an LTP. - * @typedef {Object} LogicalTerminationPoint - */ - var LogicalTerminationPoint = function (data) { - this.data = data; - this.layerProtocols = this.data.lp.map(function (layerProtocol) { - return new LayerProtocol(layerProtocol); - }); - // console.log(this.layerProtocols); - this.getData = function () { - return this.data; - }; - this.getId = function () { - return this.getData().uuid; - }; - this.getName = function () { - return this.getData().name[0].value; - }; - this.getDirectionality = function () { - return this.getData()['ltp-direction']; - }; - this.getServerLtps = function () { - return this.getData()['server-ltp']; - }; - this.getClientLtps = function () { - return this.getData()['client-ltp']; - }; - this.getLayer = function () { - return this.getLayerProtocols()[0].getLayer(); - }; - this.getLabel = function () { - return ['LTP(', this.getLayerProtocols()[0].getItuLabel(true).toUpperCase(), '): ', this.getId()].join(''); - }; - this.getLayerProtocols = function () { - return this.layerProtocols; - }; - this.getConditionalPackages = function () { - console.error(JSON.stringifythis.getLayerProtocols()()); - return this.getLayerProtocols().map(function (lp) { - return lp.getConditionalPackage(); - }); - }; - } - return LogicalTerminationPoint; - }); - - mwtnCommonsApp.register.factory('PtpClock', function (PtpPort) { - var PtpClock = function (data) { - var COMPONENT = "PtpClock"; - this.data = {}; - if (data && data['instance-list'] && data['instance-list'][0]) { - this.data = data['instance-list'][0]; - } - if (!this.data['port-ds-list'] || this.data['port-ds-list'].length === 0) { - this.ptpPorts = []; - var message = ['The PTP clock', data['instance-number'], 'dose not support a single PTP port.'].join(' '); - console.info({ component: COMPONENT, message: message }); - } else { - this.ptpPorts = this.data['port-ds-list'].map(function(ptpPort) { - return new PtpPort(ptpPort); - }); - } - - this.getData = function () { - return this.data; - // return JSON.parse(JSON.stringify(this.data).replaceAll('onf-ptp-dataset:', '')); - }; - this.getIdentity = function(hex) { - var defaultDs = this.getData()['default-ds']; - var result = 'ERROR: no clock identity found'; - if (defaultDs && defaultDs['clock-identity']) { - result = defaultDs['clock-identity']; - if (hex) { - result = result.base64ToHex(); - } - } - return result; - }; - this.getParent = function(hex) { - var parentDs = this.getData()['parent-ds']; - var key = 'parent-port-identity'; - var result = ''; - if (parentDs && parentDs[key] && parentDs[key]['clock-identity'] && parentDs[key]['port-number']) { - result = parentDs[key]['clock-identity']; - if (hex) { - result = result.base64ToHex(); - } - result = [result, parentDs[key]['port-number']].join('#'); - } - return result; - }; - this.getGrandMaster = function(hex) { - var parentDs = this.getData()['parent-ds']; - // console.warn(JSON.stringify(parentDs)); - var key = 'parent-port-identity'; - var result = ''; - if (parentDs && parentDs['grandmaster-identity']) { - result = parentDs['grandmaster-identity']; - if (hex) { - result = result.base64ToHex(); - } - } - return result; - }; - this.getPtpPorts = function () { - return this.ptpPorts; - }; - }; - return PtpClock; - }); - - mwtnCommonsApp.register.factory('PtpPort', function () { - var PtpPort = function (data) { - this.data = data; - this.getData = function () { - return this.data; - }; - this.getId = function() { - return this.getData()['port-number']; - }; - this.getNumber = function() { - return this.getData()['port-number']; - }; - this.getState = function() { - return this.getData()['port-state']; - }; - this.isSlave = function() { - return this.getData()['port-state'] === 'SLAVE'; - }; - this.isMaster = function() { - return this.getData()['port-state'] === 'MASTER'; - }; - this.getLogicalTerminationPointReference = function() { - return this.getData()['onf-ptp-dataset:logical-termination-point']; - }; - }; - return PtpPort; - }); - - mwtnCommonsApp.register.factory('OnfNetworkElement', function ($mwtnGlobal, LogicalTerminationPoint) { - // Classes - // Class OnfNetworkElement - var OnfNetworkElement = function (data) { - var COMPONENT = "OnfNetworkElement"; - - this.data = data; - if (!this.data) { - var message = ['No data received.'].join(' '); - console.warn({ component: COMPONENT, message: message }); - return; - } - - // console.log(JSON.stringify(data)); - if (!this.data.ltp || this.data.ltp.length === 0) { - this.logicalTerminationPoints = []; - var message = ['The network-element', data.uuid, 'does not support a single LTP. No LTP -> no SDN integration via ONF core-model.'].join(' '); - // TODO $mwtnLog -> Unknown provider: $mwtnlogProvider <- $mwtnlog <- OnfNetworkElement [sko] Dont get it ;( - console.warn({ component: COMPONENT, message: message }); - } else { - this.logicalTerminationPoints = this.data.ltp.map(function (logicalTerminationPoint) { - return new LogicalTerminationPoint(logicalTerminationPoint); - }); - } - - this.getData = function () { - return this.data; - }; - this.getId = function () { - return this.getData().uuid; - }; - this.getForwardingDomain = function () { - return this.getData().fd; - }; - this.getName = function () { - return this.getData().name[0].value || this.getData().uuid; - }; - this.getLogicalTerminationPoints = function () { - return this.logicalTerminationPoints; - }; - this.getLtp = function (id) { - var result = this.getLogicalTerminationPoints().filter(function (ltp) { - return ltp.getId() === id; - }); - if (result.length === 1) { - return result[0]; - } - return undefined; - }; - this.getLpById = function (id) { - var result = {}; - this.getLogicalTerminationPoints().map(function (ltp) { - ltp.getLayerProtocols().map(function (lp) { - if (lp.getData().uuid === id) { - result = lp; - } - }); - }); - return result; - }; - this.getNumberOfLtps = function () { - return this.logicalTerminationPoints.length; - }; - this.getServerLtps = function (layerProtocolRef) { - var result = []; - if (this.data._ltpRefList) { - var ltpList = this.data._ltpRefList.map(function (ltp) { - if (ltp.lp[0].uuid === layerProtocolRef) { - result = ltp._serverLtpRefList; - } - }); - } - return result; - }; - this.getClientLtpIds = function (layerProtocolRef) { - var result = []; - if (this.data._ltpRefList) { - var ltpList = this.data._ltpRefList.map(function (ltp) { - if (ltp.lp[0].uuid === layerProtocolRef) { - result = ltp._clientLtpRefList; - } - }); - } - return result; - }; - this.getLpByLtpRef = function (ltpRef) { - var result; - if (this.data._ltpRefList) { - var ltpList = this.data._ltpRefList.map(function (ltp) { - if (ltp.uuid === ltpRef) { - result = ltp.lp[0]; - } - }); - } - return result; - }; - this.getLtpsByLayer = function (layerProtocolName) { - return this.getLogicalTerminationPoints().filter(function (ltp) { - return ltp.getLayer() === layerProtocolName; - }); - }; - this.getLTPMwpsList = function () { - return this.getLtpsByLayer('MWPS'); - }; - this.getLTPMwsList = function () { - return this.getLtpsByLayer('MWS'); - }; - this.getLTPEthCtpList = function () { - return this.getLtpsByLayer('ETH'); - }; - this.getLTPTdmCtpList = function () { - return this.getLtpsByLayer('TDM'); - }; - }; - return OnfNetworkElement; - }); - - mwtnCommonsApp.register.factory('MicrowavePhysicalSection', function () { - // Classes - // Class MicrowavePhysicalSection - var MicrowavePhysicalSection = function (data) { - this.data = data; - this.getData = function () { - return this.data; - }; - this.getLayerProtocolId = function () { - return this.getData().layerProtocol; - }; - this.getRadioSignalId = function () { - return this.getData()['air-interface-configuration'] ? this.data['air-interface-configuration']['radio-signal-id'] : -1; - }; - this.isLinkUp = function () { - return this.getData()['air-interface-status']['link-is-up']; - }; - this.isPowerOn = function () { - return this.getData()['air-interface-configuration']['power-is-on']; - }; - this.isActive = function () { - return this.isPowerOn() && this.isLinkUp(); - }; - }; - return MicrowavePhysicalSection; - }); - - mwtnCommonsApp.register.factory('MicrowaveSection', function () { - // Classes - // Class MicrowaveSection - var MicrowaveSection = function (data) { - this.data = data; - this.getData = function () { - return this.data; - }; - this.getId = function () { - return this.data.layerProtocol; - }; - this.getRadioSignalIds = function (actualNe) { - this.data.parent = actualNe; - var result = []; - var onfNe = actualNe.data.onfNetworkElement; - var lpId = this.getId(); - onfNe.getServerLtps(lpId).map(function (mwpsLtpRef) { - var lpRef = onfNe.getLpByLtpRef(mwpsLtpRef).uuid; - var mwps = actualNe.getLpPac(lpRef); - result.push(mwps.getRadioSignalId()); - }); - return result; - }; - this.getTimeSlotCapacity = function () { - return this.data.structureCapability.timeSlotCapacity; - }; - this.getTotalNumberOfTimeSlots = function () { - return this.data.structureCapability.totalNumberOfTimeSlots; - }; - this.getNumberOfEffectiveTimeSlots = function () { - var count = 0; - this.data.structureStatus.timeSlotStatusList.map(function (ts) { - if (ts.operationalStatus === 'ENABLED') { - count = count + 1; - } - }); - return count; - }; - this.getConfiguredCapacity = function () { - return this.getTotalNumberOfTimeSlots() * this.getTimeSlotCapacity(); - }; - this.getEffectiveCapacity = function () { - return this.getNumberOfEffectiveTimeSlots() * this.getTimeSlotCapacity(); - }; - this.isActive = function () { - if (this.data.parent === undefined) { - return false; - } - var actualNe = this.data.parent; - var result = true; - var onfNe = actualNe.data.onfNetworkElement; - var lpId = this.getId(); - onfNe.getServerLtps(lpId).map(function (mwpsLtpRef) { - var lpRef = onfNe.getLpByLtpRef(mwpsLtpRef).uuid; - var mwps = actualNe.getLpPac(lpRef); - result = result && mwps.isActive(); - }); - return result; - }; - }; - return MicrowaveSection; - }); - });
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.tpl.html deleted file mode 100644 index 9594bca7..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/mwtnCommons.tpl.html +++ /dev/null @@ -1,7 +0,0 @@ -<!-- This is the landing page of you application, Update the content as per your requirements --> - -<h4>Your {{data}} application is loaded</h4> -<hr /> -<div class="owl"> - <span class="white">ONAP SDN-R | ONF Wireless for @distversion@ - Build: @buildtime@</span> -</div> diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnFooter.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnFooter.tpl.html deleted file mode 100644 index 597bcb98..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnFooter.tpl.html +++ /dev/null @@ -1,4 +0,0 @@ -<hr /> -<div class="owl"> - <span class="white">{{prefix}} - Build: @buildtime@</span> -</div>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnGrid.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnGrid.tpl.html deleted file mode 100644 index 2751ffcb..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnGrid.tpl.html +++ /dev/null @@ -1,23 +0,0 @@ -<div class="owl co1ntainer" > - - <div class="row"> - <div class="col-md-12"> - - <div ng-if="info !== false"> - <span class="owl-dark">{{info}}</span> - </div> - - <div ui-grid="gridOptions" - ui-grid-exporter - ui-grid-selection - ui-grid-pinning - ui-grid-resize-columns - ui-grid-move-columns - ui-grid-auto-resize - class="mwtn-grid" - ng-style="getTableHeight()"></div> - - </div> - </div> - -</div>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnJsonViewer.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnJsonViewer.tpl.html deleted file mode 100644 index 5f3cfbf5..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnJsonViewer.tpl.html +++ /dev/null @@ -1,110 +0,0 @@ -<div class="owl"> - <div class="row text-right" > - <div class="form-group" ng-if="noButtons !== true"> - <button class="btn btn-default" type="button" clipboard supported="myClipboard.supported" text="myClipboard.getJson()" - on-copied="myClipboard.copyToClipboard()" on-error="myClipboard.error(err)"> - <i class="fa fa-clipboard" aria-hidden="true"></i> - </button> - <button class="btn btn-default" type="button" ng-if="replace" ng-click="openConfigView()"> - <i class="fa fa-pencil-square-o pointer" aria-hidden="true" ></i> - </button> - <div> - </div> -</div> -<div class="owl"> - - <div ng-if="info !== false"> - <span class="owl-dark">{{info}}</span> - </div> - - <div class="row" ng-repeat="(key, value) in viewData track by $index" ng-show="value.value !== undefined"> - - <!-- type- default --> - <div class="col col-md-4 text-right" title="{{value.description}}" ng-if="value.type !== 'array' && value.visible === true"> - <span class="owl-dark">{{value.labelId | translate}}</span> - </div> - <div class="col col-md-4 text-left" ng-if="value.type !== 'boolean' && value.type !== 'number' && value.type !== 'object' && value.type !== 'array' && value.visible === true"> - <b>{{value.value}}</b> - </div> - - <!-- type-boolean --> - - <div class="col col-md-2" ng-if="value.type === 'boolean' && value.visible === true"> - <i class="fa" ng-class="{'fa-square-o': value.value === false, 'fa-check-square-o green': value.value === true}" aria-hidden="true"></i> - </div> - - <!-- type- number --> - <div class="col col-md-2 number" ng-if="value.type === 'number' && value.visible === true"> - <b>{{value.value}}</b> - </div> - <div class="col col-md-2 text-left" ng-if="value.unit && value.visible === true"> - <span class="owl-dark">{{value.unit}}</span> - </div> - - <!-- type- array of objects --> - <div class="col col-md-12" ng-if="value.type === 'array' && value.value.length !== 0 && getType(value.value[0]) === 'object'"> - <span class="owl-dark text-right" style="margin-top: 5px;">{{value.labelId | translate}}</span><br/> - <mwtn-grid network-element="networkElement" data="value.value" path="path"></mwtn-grid> - </div> - <!-- type- array of non objects --> - <div class="col col-md-4 text-right" title="{{value.description}}" ng-if="value.type === 'array' && value.value.length !== 0 && getType(value.value[0]) !== 'object'"> - <span class="owl-dark">{{value.labelId | translate}}</span> - </div> - <div class="col col-md-8 text-left" ng-if="value.type === 'array' && value.value.length !== 0 && getType(value.value[0]) !== 'object'"> - <b>{{value.value}}</b> - </div> - - <!-- type- object --> - <div class="col col-md-7" ng-if="value.type === 'object'"> - -<!-- <pre>{{value | json}}</pre> - ### - <hr> -<mwtn-json-viewer data="value.value"></mwtn-json-viewer> - <hr> - ### --> - - <div class="owl"> - - <!-- TODO exception case: current pm --> - <div class="row" ng-repeat="(oKey, oValue) in value.value track by $index" ng-if="oValue.value === undefined"> - <div class="col col-md-3 text-right"> - <span class="owl-dark">{{oKey | translate}}</span> - </div> - <div class="col col-md-4 text-right" ng-if="oValue.type !== 'object'"> - <b>{{oValue | json}}</b> - </div> - </div> - - <!-- expected case: --> - <div class="row" ng-repeat="(oKey, oValue) in value.value track by $index" ng-if="oValue.value !== undefined"> - <!-- oValue.type !== 'object'' && oValue.type !== 'array' --> - <div class="col col-md-3 text-right" ng-if="oValue.type !== 'object' && oValue.type !== 'array'"> - <span class="owl-dark">{{oValue.labelId || oKey.replace('onf-ptp-dataset:' ,'') | translate}}</span> - </div> - <div class="col col-md-4 text-right" ng-if="oValue.type !== 'object' && oValue.type !== 'array'"> - <b>{{oValue.value || oValue}}</b> - </div> - - - <!-- oValue.type === 'array'' --> - <div class="col col-md-3 text-right" ng-if="oValue.type === 'array'"> - <span class="owl-dark">{{oValue.labelId || oKey.replace('onf-ptp-dataset:' ,'') | translate}}</span> - </div> - <div class="col col-md-4" ng-if="oValue.type === 'array'"> - <json-formatter json="oValue.value" open="1"></json-formatter> - </div> - - <!-- oValue.type === 'object' --> - <div class="col col-md-3 text-right" ng-if="oValue.type === 'object'"> - <span class="owl-dark">{{oValue.labelId || oKey.replace('onf-ptp-dataset:' ,'') | translate}}</span> - </div> - <div class="col col-md-4" ng-if="oValue.type === 'object'"> - <json-formatter json="oValue.value" open="1"></json-formatter> - </div> - </div> - </div> - </div> - </div> - -</div>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnSelectNetworkElement.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnSelectNetworkElement.tpl.html deleted file mode 100644 index 58515605..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/mwtnSelectNetworkElement.tpl.html +++ /dev/null @@ -1,33 +0,0 @@ -<div class="owl container" ng-hide="networkElements.lenght !== 0" style="width: 100%"> - <p> - <span>{{ 'MWTN_NO_DEVICES_CONNECTED' | translate }}</span> - <span>Please check</span> - <a href="#/mwtnConnect" class="white"> - <span>MWTN Connect</span> - </a> - <span>.</span> - </p> -</div> -<div class="owl container" ng-show="networkElements.lenght !== 0" style="width: 100%"> - <div class="row"> - <div class="col-md-3 form-group" ng-show="networkElements.length > 30"> - <input list="networkElements" class="form-control" ng-model="networkElement"> - <datalist id="networkElements"> - <option ng-repeat="ne in networkElements" value="{{ne.id}}">{{ne.id}}</option> - </datalist> - </div> - <div class="col-md-3 form-group" ng-hide="networkElements.length > 30"> - <select class="form-control" ng-model="networkElement"> - <option ng-repeat="ne in networkElements" value="{{ne.id}}">{{ne.id}}</option> - </select> - </div> - <div class="col-md-2"> - <span class="white">{{'MWTN_SELECT_NETWORK_ELEMENT' | translate}}</span> - </div> - <div class="col-md-7 text-right"> - <div class="form-group"> - <button type="button" class="btn btn-default" ng-click="collapseAll()">{{'MWTN_COLLAPSE_ALL' | translate}}</button> - </div> - </div> - </div> -</div>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/openConfigView.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/openConfigView.html deleted file mode 100644 index 64c06e96..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/openConfigView.html +++ /dev/null @@ -1,69 +0,0 @@ - -<div class="modal-header"> - <h3 class="modal-title" id="modal-title">{{'MWTN_CONFIGURATION' | translate}}</h3> -</div> -<div class="modal-body" id="modal-body"> - <div class="container" style="width:100%"> - <div class="row"> - <div class="col-md-3 text-right" > - {{'MWTN_NETWORKELEMENT' | translate}} - </div> - <div class="col-md-9"> - <b>{{spec.nodeId}}</b> - </div> - </div> - <div class="row"> - <div class="col-md-3 text-right" > - {{'MWTN_CONDITIONAL_PACKAGE' | translate}} - </div> - <div class="col-md-9"> - <b>{{spec.pacId}}</b> - </div> - </div> - <div class="row"> - <div class="col-md-3 text-right" > - {{'MWTN_LP' | translate}} - </div> - <div class="col-md-9"> - <b>{{spec.layerProtocolId}}</b> - </div> - </div> - <div class="row"> - <div class="col-md-3 text-right" > - {{'MWTN_SUBOBJECT' | translate}} - </div> - <div class="col-md-9"> - <b>{{spec.partId}}</b> - </div> - <hr /> - </div> - <div class="row"> - - <div ng-repeat="(key, item) in viewData" ng-if="item.visible === true"> - - <!-- text, number, combo --> - <div class="col-md-3 text-right radio">{{item.labelId | translate}}</div> - <div ng-class="{'col-md-2':item.unit, 'col-md-3':!item.unit}" class="form-group" ng-if="item.controlType !== 'checkbox' && getType(item.controlType) !== 'array'"> - <input class="form-control" type="{{item.controlType}}" ng-model="item.value"></input> - </div> - <div class="col-md-3 checkbox" ng-if="item.controlType === 'checkbox'"><input type="checkbox" ng-model="item.value" /></div> - <div ng-class="{'col-md-2':item.unit, 'col-md-3':!item.unit}" class="form-group" ng-if="getType(item.controlType) === 'array'"> - <select class="form-control" ng-model="item.value"> - <option ng-repeat="option in item.controlType track by $index" value="{{option}}">{{option}}</option> - </select> - </div> - <div class="col-md-1 radio" ng-if="item.unit"> - <span class="owl-dark">{{item.unit}}</span> - </div> - - </div> - </div> -</div> -<div class="modal-footer"> - <div class="{{applied.class}}", ng-show="applied">{{applied.text}}</div> - <button class="btn btn-primary" type="button" ng-click="ok()"> - <span style="color: white;">{{'MWTN_APPLY' | translate}}</span> - <i class="pull-right fa fa-spinner fa-pulse" ng-show="processing"></i> - </button> - <button class="btn btn-warning" type="button" ng-click="cancel()">{{'MWTN_CLOSE' | translate}}</button> -</div>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/showGridCellDetail.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/showGridCellDetail.html deleted file mode 100644 index ab449bbc..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/templates/showGridCellDetail.html +++ /dev/null @@ -1,54 +0,0 @@ - -<div class="modal-header"> - <h3 class="modal-title" id="modal-title">{{'MWTN_CONFIGURATION' | translate}}</h3> -</div> -<div class="modal-body" id="modal-body"> - <div class="container" style="width:100%"> - <div class="row"> - <div class="col-md-3 text-right" > - {{'MWTN_NETWORKELEMENT' | translate}} - </div> - <div class="col-md-9"> - <b>{{networkElement}}</b> - </div> - </div> - <div class="row"> - <div class="col-md-3 text-right" > - {{'MWTN_CONDITIONAL_PACKAGE' | translate}} - </div> - <div class="col-md-9"> - <b>{{path.split('&nbsp;')[0]}}</b> - </div> - </div> - <div class="row"> - <div class="col-md-3 text-right" > - {{'MWTN_LP' | translate}} - </div> - <div class="col-md-9"> - <b>{{path.split('&nbsp;')[1]}}</b> - </div> - </div> - <div class="row"> - <div class="col-md-3 text-right" > - {{'MWTN_SUBOBJECT' | translate}} - </div> - <div class="col-md-9"> - <b>{{path.split('&nbsp;')[2]}}</b> - </div> - <hr /> - </div> - <div class="row"> - <mwtn-json-viewer network-element="networkElement" data="value" ng-if="type === 'object'"></mwtn-json-viewer> - <mwtn-grid network-element="networkElement" data="value" ng-if="type === 'array'"></mwtn-grid> - </div> - </div> -</div> -<div class="modal-footer"> - <div class="{{applied.class}}", ng-show="applied">{{applied.text}}</div> -<!-- - <button class="btn btn-primary" type="button" ng-click="ok()"> - <span>{{'MWTN_APPLY' | translate}}</span> - <i class="pull-right fa fa-spinner fa-pulse" ng-show="processing"></i> - </button> --> - <button class="btn btn-warning" type="button" ng-click="cancel()">{{'MWTN_CLOSE' | translate}}</button> -</div>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/xml2json.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/xml2json.js deleted file mode 100644 index 5ff7e578..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/mwtnCommons-module/src/main/resources/mwtnCommons/xml2json.js +++ /dev/null @@ -1,567 +0,0 @@ -/*
- Copyright 2011-2013 Abdulla Abdurakhmanov
- Original sources are available at https://code.google.com/p/x2js/
-
- 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.
- */
-
-function X2JS(config) {
- 'use strict';
-
- var VERSION = "1.1.5";
-
- config = config || {};
- initConfigDefaults();
- initRequiredPolyfills();
-
- function initConfigDefaults() {
- if(config.escapeMode === undefined) {
- config.escapeMode = true;
- }
- config.attributePrefix = config.attributePrefix || "_";
- config.arrayAccessForm = config.arrayAccessForm || "none";
- config.emptyNodeForm = config.emptyNodeForm || "text";
- if(config.enableToStringFunc === undefined) {
- config.enableToStringFunc = true;
- }
- config.arrayAccessFormPaths = config.arrayAccessFormPaths || [];
- if(config.skipEmptyTextNodesForObj === undefined) {
- config.skipEmptyTextNodesForObj = true;
- }
- if(config.stripWhitespaces === undefined) {
- config.stripWhitespaces = true;
- }
- config.datetimeAccessFormPaths = config.datetimeAccessFormPaths || [];
- }
-
- var DOMNodeTypes = {
- ELEMENT_NODE : 1,
- TEXT_NODE : 3,
- CDATA_SECTION_NODE : 4,
- COMMENT_NODE : 8,
- DOCUMENT_NODE : 9
- };
-
- function initRequiredPolyfills() {
- function pad(number) {
- var r = String(number);
- if ( r.length === 1 ) {
- r = '0' + r;
- }
- return r;
- }
- // Hello IE8-
- if(typeof String.prototype.trim !== 'function') {
- String.prototype.trim = function() {
- return this.replace(/^\s+|^\n+|(\s|\n)+$/g, '');
- }
- }
- if(typeof Date.prototype.toISOString !== 'function') {
- // Implementation from http://stackoverflow.com/questions/2573521/how-do-i-output-an-iso-8601-formatted-string-in-javascript
- Date.prototype.toISOString = function() {
- return this.getUTCFullYear()
- + '-' + pad( this.getUTCMonth() + 1 )
- + '-' + pad( this.getUTCDate() )
- + 'T' + pad( this.getUTCHours() )
- + ':' + pad( this.getUTCMinutes() )
- + ':' + pad( this.getUTCSeconds() )
- + '.' + String( (this.getUTCMilliseconds()/1000).toFixed(3) ).slice( 2, 5 )
- + 'Z';
- };
- }
- }
-
- function getNodeLocalName( node ) {
- var nodeLocalName = node.localName;
- if(nodeLocalName == null) // Yeah, this is IE!!
- nodeLocalName = node.baseName;
- if(nodeLocalName == null || nodeLocalName=="") // =="" is IE too
- nodeLocalName = node.nodeName;
- return nodeLocalName;
- }
-
- function getNodePrefix(node) {
- return node.prefix;
- }
-
- function escapeXmlChars(str) {
- if(typeof(str) == "string")
- return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g, '/');
- else
- return str;
- }
-
- function unescapeXmlChars(str) {
- return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, "'").replace(///g, '\/');
- }
-
- function toArrayAccessForm(obj, childName, path) {
- switch(config.arrayAccessForm) {
- case "property":
- if(!(obj[childName] instanceof Array))
- obj[childName+"_asArray"] = [obj[childName]];
- else
- obj[childName+"_asArray"] = obj[childName];
- break;
- /*case "none":
- break;*/
- }
-
- if(!(obj[childName] instanceof Array) && config.arrayAccessFormPaths.length > 0) {
- var idx = 0;
- for(; idx < config.arrayAccessFormPaths.length; idx++) {
- var arrayPath = config.arrayAccessFormPaths[idx];
- if( typeof arrayPath === "string" ) {
- if(arrayPath == path)
- break;
- }
- else
- if( arrayPath instanceof RegExp) {
- if(arrayPath.test(path))
- break;
- }
- else
- if( typeof arrayPath === "function") {
- if(arrayPath(obj, childName, path))
- break;
- }
- }
- if(idx!=config.arrayAccessFormPaths.length) {
- obj[childName] = [obj[childName]];
- }
- }
- }
-
- function fromXmlDateTime(prop) {
- // Implementation based up on http://stackoverflow.com/questions/8178598/xml-datetime-to-javascript-date-object
- // Improved to support full spec and optional parts
- var bits = prop.split(/[-T:+Z]/g);
-
- var d = new Date(bits[0], bits[1]-1, bits[2]);
- var secondBits = bits[5].split("\.");
- d.setHours(bits[3], bits[4], secondBits[0]);
- if(secondBits.length>1)
- d.setMilliseconds(secondBits[1]);
-
- // Get supplied time zone offset in minutes
- if(bits[6] && bits[7]) {
- var offsetMinutes = bits[6] * 60 + Number(bits[7]);
- var sign = /\d\d-\d\d:\d\d$/.test(prop)? '-' : '+';
-
- // Apply the sign
- offsetMinutes = 0 + (sign == '-'? -1 * offsetMinutes : offsetMinutes);
-
- // Apply offset and local timezone
- d.setMinutes(d.getMinutes() - offsetMinutes - d.getTimezoneOffset())
- }
- else
- if(prop.indexOf("Z", prop.length - 1) !== -1) {
- d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()));
- }
-
- // d is now a local time equivalent to the supplied time
- return d;
- }
-
- function checkFromXmlDateTimePaths(value, childName, fullPath) {
- if(config.datetimeAccessFormPaths.length > 0) {
- var path = fullPath.split("\.#")[0];
- var idx = 0;
- for(; idx < config.datetimeAccessFormPaths.length; idx++) {
- var dtPath = config.datetimeAccessFormPaths[idx];
- if( typeof dtPath === "string" ) {
- if(dtPath == path)
- break;
- }
- else
- if( dtPath instanceof RegExp) {
- if(dtPath.test(path))
- break;
- }
- else
- if( typeof dtPath === "function") {
- if(dtPath(obj, childName, path))
- break;
- }
- }
- if(idx!=config.datetimeAccessFormPaths.length) {
- return fromXmlDateTime(value);
- }
- else
- return value;
- }
- else
- return value;
- }
-
- function parseDOMChildren( node, path ) {
- if(node.nodeType == DOMNodeTypes.DOCUMENT_NODE) {
- var result = new Object;
- var nodeChildren = node.childNodes;
- // Alternative for firstElementChild which is not supported in some environments
- for(var cidx=0; cidx <nodeChildren.length; cidx++) {
- var child = nodeChildren.item(cidx);
- if(child.nodeType == DOMNodeTypes.ELEMENT_NODE) {
- var childName = getNodeLocalName(child);
- result[childName] = parseDOMChildren(child, childName);
- }
- }
- return result;
- }
- else
- if(node.nodeType == DOMNodeTypes.ELEMENT_NODE) {
- var result = new Object;
- result.__cnt=0;
-
- var nodeChildren = node.childNodes;
-
- // Children nodes
- for(var cidx=0; cidx <nodeChildren.length; cidx++) {
- var child = nodeChildren.item(cidx); // nodeChildren[cidx];
- var childName = getNodeLocalName(child);
-
- if(child.nodeType!= DOMNodeTypes.COMMENT_NODE) {
- result.__cnt++;
- if(result[childName] == null) {
- result[childName] = parseDOMChildren(child, path+"."+childName);
- toArrayAccessForm(result, childName, path+"."+childName);
- }
- else {
- if(result[childName] != null) {
- if( !(result[childName] instanceof Array)) {
- result[childName] = [result[childName]];
- toArrayAccessForm(result, childName, path+"."+childName);
- }
- }
- (result[childName])[result[childName].length] = parseDOMChildren(child, path+"."+childName);
- }
- }
- }
-
- // Attributes
- for(var aidx=0; aidx <node.attributes.length; aidx++) {
- var attr = node.attributes.item(aidx); // [aidx];
- result.__cnt++;
- result[config.attributePrefix+attr.name]=attr.value;
- }
-
- // Node namespace prefix
- var nodePrefix = getNodePrefix(node);
- if(nodePrefix!=null && nodePrefix!="") {
- result.__cnt++;
- result.__prefix=nodePrefix;
- }
-
- if(result["#text"]!=null) {
- result.__text = result["#text"];
- if(result.__text instanceof Array) {
- result.__text = result.__text.join("\n");
- }
- if(config.escapeMode)
- result.__text = unescapeXmlChars(result.__text);
- if(config.stripWhitespaces)
- result.__text = result.__text.trim();
- delete result["#text"];
- if(config.arrayAccessForm=="property")
- delete result["#text_asArray"];
- result.__text = checkFromXmlDateTimePaths(result.__text, childName, path+"."+childName);
- }
- if(result["#cdata-section"]!=null) {
- result.__cdata = result["#cdata-section"];
- delete result["#cdata-section"];
- if(config.arrayAccessForm=="property")
- delete result["#cdata-section_asArray"];
- }
-
- if( result.__cnt == 1 && result.__text!=null ) {
- result = result.__text;
- }
- else
- if( result.__cnt == 0 && config.emptyNodeForm=="text" ) {
- result = '';
- }
- else
- if ( result.__cnt > 1 && result.__text!=null && config.skipEmptyTextNodesForObj) {
- if( (config.stripWhitespaces && result.__text=="") || (result.__text.trim()=="")) {
- delete result.__text;
- }
- }
- delete result.__cnt;
-
- if( config.enableToStringFunc && (result.__text!=null || result.__cdata!=null )) {
- result.toString = function() {
- return (this.__text!=null? this.__text:'')+( this.__cdata!=null ? this.__cdata:'');
- };
- }
-
- return result;
- }
- else
- if(node.nodeType == DOMNodeTypes.TEXT_NODE || node.nodeType == DOMNodeTypes.CDATA_SECTION_NODE) {
- return node.nodeValue;
- }
- }
-
- function startTag(jsonObj, element, attrList, closed) {
- var resultStr = "<"+ ( (jsonObj!=null && jsonObj.__prefix!=null)? (jsonObj.__prefix+":"):"") + element;
- if(attrList!=null) {
- for(var aidx = 0; aidx < attrList.length; aidx++) {
- var attrName = attrList[aidx];
- var attrVal = jsonObj[attrName];
- if(config.escapeMode)
- attrVal=escapeXmlChars(attrVal);
- resultStr+=" "+attrName.substr(config.attributePrefix.length)+"='"+attrVal+"'";
- }
- }
- if(!closed)
- resultStr+=">";
- else
- resultStr+="/>";
- return resultStr;
- }
-
- function endTag(jsonObj,elementName) {
- return "</"+ (jsonObj.__prefix!=null? (jsonObj.__prefix+":"):"")+elementName+">";
- }
-
- function endsWith(str, suffix) {
- return str.indexOf(suffix, str.length - suffix.length) !== -1;
- }
-
- function jsonXmlSpecialElem ( jsonObj, jsonObjField ) {
- if((config.arrayAccessForm=="property" && endsWith(jsonObjField.toString(),("_asArray")))
- || jsonObjField.toString().indexOf(config.attributePrefix)==0
- || jsonObjField.toString().indexOf("__")==0
- || (jsonObj[jsonObjField] instanceof Function) )
- return true;
- else
- return false;
- }
-
- function jsonXmlElemCount ( jsonObj ) {
- var elementsCnt = 0;
- if(jsonObj instanceof Object ) {
- for( var it in jsonObj ) {
- if(jsonXmlSpecialElem ( jsonObj, it) )
- continue;
- elementsCnt++;
- }
- }
- return elementsCnt;
- }
-
- function parseJSONAttributes ( jsonObj ) {
- var attrList = [];
- if(jsonObj instanceof Object ) {
- for( var ait in jsonObj ) {
- if(ait.toString().indexOf("__")== -1 && ait.toString().indexOf(config.attributePrefix)==0) {
- attrList.push(ait);
- }
- }
- }
- return attrList;
- }
-
- function parseJSONTextAttrs ( jsonTxtObj ) {
- var result ="";
-
- if(jsonTxtObj.__cdata!=null) {
- result+="<![CDATA["+jsonTxtObj.__cdata+"]]>";
- }
-
- if(jsonTxtObj.__text!=null) {
- if(config.escapeMode)
- result+=escapeXmlChars(jsonTxtObj.__text);
- else
- result+=jsonTxtObj.__text;
- }
- return result;
- }
-
- function parseJSONTextObject ( jsonTxtObj ) {
- var result ="";
-
- if( jsonTxtObj instanceof Object ) {
- result+=parseJSONTextAttrs ( jsonTxtObj );
- }
- else
- if(jsonTxtObj!=null) {
- if(config.escapeMode)
- result+=escapeXmlChars(jsonTxtObj);
- else
- result+=jsonTxtObj;
- }
-
- return result;
- }
-
- function parseJSONArray ( jsonArrRoot, jsonArrObj, attrList ) {
- var result = "";
- if(jsonArrRoot.length == 0) {
- result+=startTag(jsonArrRoot, jsonArrObj, attrList, true);
- }
- else {
- for(var arIdx = 0; arIdx < jsonArrRoot.length; arIdx++) {
- result+=startTag(jsonArrRoot[arIdx], jsonArrObj, parseJSONAttributes(jsonArrRoot[arIdx]), false);
- result+=parseJSONObject(jsonArrRoot[arIdx]);
- result+=endTag(jsonArrRoot[arIdx],jsonArrObj);
- }
- }
- return result;
- }
-
- function parseJSONObject ( jsonObj ) {
- var result = "";
-
- var elementsCnt = jsonXmlElemCount ( jsonObj );
-
- if(elementsCnt > 0) {
- for( var it in jsonObj ) {
-
- if(jsonXmlSpecialElem ( jsonObj, it) )
- continue;
-
- var subObj = jsonObj[it];
-
- var attrList = parseJSONAttributes( subObj )
-
- if(subObj == null || subObj == undefined) {
- result+=startTag(subObj, it, attrList, true);
- }
- else
- if(subObj instanceof Object) {
-
- if(subObj instanceof Array) {
- result+=parseJSONArray( subObj, it, attrList );
- }
- else if(subObj instanceof Date) {
- result+=startTag(subObj, it, attrList, false);
- result+=subObj.toISOString();
- result+=endTag(subObj,it);
- }
- else {
- var subObjElementsCnt = jsonXmlElemCount ( subObj );
- if(subObjElementsCnt > 0 || subObj.__text!=null || subObj.__cdata!=null) {
- result+=startTag(subObj, it, attrList, false);
- result+=parseJSONObject(subObj);
- result+=endTag(subObj,it);
- }
- else {
- result+=startTag(subObj, it, attrList, true);
- }
- }
- }
- else {
- result+=startTag(subObj, it, attrList, false);
- result+=parseJSONTextObject(subObj);
- result+=endTag(subObj,it);
- }
- }
- }
- result+=parseJSONTextObject(jsonObj);
-
- return result;
- }
-
- this.parseXmlString = function(xmlDocStr) {
- var isIEParser = window.ActiveXObject || "ActiveXObject" in window;
- if (xmlDocStr === undefined) {
- return null;
- }
- var xmlDoc;
- if (window.DOMParser) {
- var parser=new window.DOMParser();
- var parsererrorNS = null;
- // IE9+ now is here
- if(!isIEParser) {
- try {
- parsererrorNS = parser.parseFromString("INVALID", "text/xml").childNodes[0].namespaceURI;
- }
- catch(err) {
- parsererrorNS = null;
- }
- }
- try {
- xmlDoc = parser.parseFromString( xmlDocStr, "text/xml" );
- if( parsererrorNS!= null && xmlDoc.getElementsByTagNameNS(parsererrorNS, "parsererror").length > 0) {
- //throw new Error('Error parsing XML: '+xmlDocStr);
- xmlDoc = null;
- }
- }
- catch(err) {
- xmlDoc = null;
- }
- }
- else {
- // IE :(
- if(xmlDocStr.indexOf("<?")==0) {
- xmlDocStr = xmlDocStr.substr( xmlDocStr.indexOf("?>") + 2 );
- }
- xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
- xmlDoc.async="false";
- xmlDoc.loadXML(xmlDocStr);
- }
- return xmlDoc;
- };
-
- this.asArray = function(prop) {
- if(prop instanceof Array)
- return prop;
- else
- return [prop];
- };
-
- this.toXmlDateTime = function(dt) {
- if(dt instanceof Date)
- return dt.toISOString();
- else
- if(typeof(dt) === 'number' )
- return new Date(dt).toISOString();
- else
- return null;
- };
-
- this.asDateTime = function(prop) {
- if(typeof(prop) == "string") {
- return fromXmlDateTime(prop);
- }
- else
- return prop;
- };
-
- this.xml2json = function (xmlDoc) {
- return parseDOMChildren ( xmlDoc );
- };
-
- this.xml_str2json = function (xmlDocStr) {
- var xmlDoc = this.parseXmlString(xmlDocStr);
- if(xmlDoc!=null)
- return this.xml2json(xmlDoc);
- else
- return null;
- };
-
- this.json2xml_str = function (jsonObj) {
- return parseJSONObject ( jsonObj );
- };
-
- this.json2xml = function (jsonObj) {
- var xmlDocStr = this.json2xml_str (jsonObj);
- return this.parseXmlString(xmlDocStr);
- };
-
- this.getVersion = function () {
- return VERSION;
- };
-
-}
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/pom.xml deleted file mode 100644 index 93caaec9..00000000 --- a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnCommons/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?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/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>com.highstreet.technologies.odl.dlux</groupId> - <artifactId>mwtn</artifactId> - <version>0.5.1-SNAPSHOT</version> - <relativePath>..</relativePath> - </parent> - - <groupId>com.highstreet.technologies.odl.dlux</groupId> - <artifactId>mwtnCommons</artifactId> - <version>0.5.1-SNAPSHOT</version> - <name>${prefix} ${project.artifactId}</name> - <packaging>pom</packaging> - - <prerequisites> - <maven>3.0</maven> - </prerequisites> - - <modules> - <module>mwtnCommons-module</module> - <module>mwtnCommons-bundle</module> - </modules> -</project>
\ No newline at end of file |