summaryrefslogtreecommitdiffstats
path: root/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm')
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-bundle/pom.xml89
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml19
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/pom.xml14
-rwxr-xr-xsdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/images/mwtnTdm.pngbin0 -> 2861 bytes
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm-custom.css11
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.controller.js159
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.module.js53
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.services.js31
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/templates/frame.tpl.html52
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/pom.xml24
10 files changed, 452 insertions, 0 deletions
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-bundle/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-bundle/pom.xml
new file mode 100644
index 00000000..11d9cec3
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-bundle/pom.xml
@@ -0,0 +1,89 @@
+<?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>mwtnTdm</artifactId>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <version>0.5.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>mwtnTdm-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>mwtnTdm-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>mwtnTdm-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>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml
new file mode 100644
index 00000000..02eb833c
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -0,0 +1,19 @@
+<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="mwtnTdm"/>
+ <property name="url" value="/src/app/mwtnTdm"/>
+ <property name="directory" value="/mwtnTdm"/>
+ <property name="requireJs" value="app/mwtnTdm/mwtnTdm.module"/>
+ <property name="angularJs" value="app.mwtnTdm"/>
+ <property name="cssDependencies">
+ <list>
+ <value>src/app/mwtnTdm/mwtnTdm-custom.css</value>
+ </list>
+ </property>
+ </bean>
+</blueprint> \ No newline at end of file
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/pom.xml
new file mode 100644
index 00000000..9c8c8716
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/pom.xml
@@ -0,0 +1,14 @@
+<?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>mwtnTdm</artifactId>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <version>0.5.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>mwtnTdm-module</artifactId>
+ <name>${prefix} ${project.artifactId}</name>
+ <packaging>jar</packaging>
+</project> \ No newline at end of file
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/images/mwtnTdm.png b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/images/mwtnTdm.png
new file mode 100755
index 00000000..2da5f584
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/images/mwtnTdm.png
Binary files differ
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm-custom.css b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm-custom.css
new file mode 100644
index 00000000..d396932f
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm-custom.css
@@ -0,0 +1,11 @@
+/**
+ * Add your application related css here
+ */
+
+.owl .bbg b {
+ color: white;
+}
+
+.owl .bbg i {
+ color: white;
+}
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.controller.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.controller.js
new file mode 100644
index 00000000..e4e488bc
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.controller.js
@@ -0,0 +1,159 @@
+/*
+ * @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 http://www.eclipse.org/legal/epl-v10.html
+ */
+
+define(['app/mwtnTdm/mwtnTdm.module',
+ 'app/mwtnTdm/mwtnTdm.services'],
+ function (mwtnTdmApp) {
+
+ mwtnTdmApp.register.controller('mwtnTdmCtrl', ['$scope', '$rootScope', '$timeout', '$mwtnLog', '$mwtnTdm', '$translate', 'OnfNetworkElement', 'uiGridConstants',
+ function ($scope, $rootScope, $timeout, $mwtnLog, $mwtnTdm, $translate, OnfNetworkElement, uiGridConstants) {
+
+ var COMPONENT = 'mwtnTdmCtrl';
+ $rootScope.section_logo = 'src/app/mwtnTdm/images/mwtnTdm.png'; // Add your topbar logo location here such as 'assets/images/logo_topology.gif'
+
+ $scope.highlightFilteredHeader = $mwtnTdm.highlightFilteredHeader;
+ $scope.gridOptions = JSON.parse(JSON.stringify($mwtnTdm.gridOptions));
+ $scope.gridOptions.onRegisterApi = function (gridApi) {
+ $scope.gridApi = gridApi;
+ };
+ $scope.gridOptions.columnDefs = [
+ // { field: 'id', type: 'number', displayName: 'No.', headerCellClass: $scope.highlightFilteredHeader, width : 50, cellClass: 'number', pinnedLeft : true },
+ { field: 'nodeId', type: 'string', displayName: 'Node', headerCellClass: $scope.highlightFilteredHeader, width: 200 },
+ { field: 'layer', type: 'string', displayName: 'Layer', headerCellClass: $scope.highlightFilteredHeader, width: 100 },
+ { field: 'ltpRef', type: 'string', displayName: 'Logical termiantion point', headerCellClass: $scope.highlightFilteredHeader, width: 300 },
+ { field: 'reserved', type: 'number', displayName: 'Reserved E1', headerCellClass: $scope.highlightFilteredHeader, width: 150, cellClass: 'number' },
+ { field: 'configured', type: 'number', displayName: 'Configured E1', headerCellClass: $scope.highlightFilteredHeader, width: 150, cellClass: 'number' },
+ { field: 'utilization', type: 'number', displayName: 'Utilization [%]', headerCellClass: $scope.highlightFilteredHeader, width: 150, cellClass: 'number', sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ } }
+ ];
+
+ $scope.gridOptions.data = [];
+
+ var getUtilization = function(row) {
+ if (row.reserved === '?' || row.configured === '?' || row.reserved < 1) {
+ return '?';
+ }
+ return (( row.configured / row.reserved ) * 100).toFixed(2);
+ };
+
+ var cleanProgess = function() {
+ $scope.progress = {
+ show: false,
+ max: 0,
+ value: 0
+ };
+ };
+ cleanProgess();
+
+ var cleanMessage = function() {
+ $scope.message = {
+ error: undefined,
+ show: true,
+ startTime: undefined,
+ endTime: undefined,
+ duration: undefined
+ };
+ };
+
+ var finish = function() {
+ $scope.message.endTime = new Date().toISOString();
+ $scope.message.duration = ((new Date($scope.message.endTime) - new Date($scope.message.startTime))/1000).toFixed(1) + 's';
+ $scope.gridOptions.columnDefs.filter(function(column){
+ return column.field === 'utilization';
+ }).map(function(column){
+ column.sort.direction = uiGridConstants.ASC;
+ $scope.gridApi.core.refresh();
+ });
+ $timeout(cleanProgess, 1000);
+ };
+ $scope.scan = function() {
+ cleanMessage();
+ $scope.progress.show = true;
+ $scope.message.startTime = new Date().toISOString();
+
+ $mwtnTdm.getMountPoints().then(function (mountpoints) {
+ $scope.gridOptions.data = [];
+ if (mountpoints.length === 0) {
+ $timeout(cleanProgess, 1000);
+ }
+ mountpoints.filter(function (mountpoint) {
+ return mountpoint['netconf-node-topology:connection-status'] === 'connected';
+ }).map(function (mountpoint) {
+ $mwtnTdm.getActualNetworkElement(mountpoint['node-id'], '2017-03-24').then(function (success) {
+ var onfNetworkElement = new OnfNetworkElement(success['network-element']);
+ var tdmLtps = onfNetworkElement.getLTPMwsList().filter(function (ltp) {
+ return ltp.getConditionalPackages()[0].contains('hybrid');
+ }).map(function (ltp) {
+ $scope.progress.max = $scope.progress.max + 1;
+ var row = {
+ ltpId: [ltp.getId(), onfNetworkElement.getId()].join('@'),
+ nodeId: onfNetworkElement.getName(),
+ layer: 'MWS',
+ ltpRef: ltp.getLabel(),
+ reserved: '?',
+ configured: '?',
+ utilization: '?'
+ };
+
+ var specConfig = {
+ nodeId: mountpoint['node-id'],
+ revision: '2017-03-24',
+ pacId: 'microwave-model:mw-hybrid-mw-structure-pac',
+ layerProtocolId: ltp.getLayerProtocols()[0].getId(),
+ partId: 'hybrid-mw-structure-configuration'
+ };
+ $mwtnTdm.getPacParts(specConfig).then(function(success){
+ success = $mwtnTdm.yangifyObject(success);
+ row.reserved = success['hybrid-mw-structure-configuration']['number-of-tdm-segments-to-be-reserved'];
+ row.utilization = getUtilization(row);
+ }, function(error){
+ // ignore
+ });
+
+ var specStatus = {
+ nodeId: mountpoint['node-id'],
+ revision: '2017-03-24',
+ pacId: 'microwave-model:mw-hybrid-mw-structure-pac',
+ layerProtocolId: ltp.getLayerProtocols()[0].getId(),
+ partId: 'hybrid-mw-structure-status'
+ };
+ $mwtnTdm.getPacParts(specStatus).then(function(success){
+ success = $mwtnTdm.yangifyObject(success);
+ row.configured = success['hybrid-mw-structure-status']['segment-status-list'].filter(function(item){
+ return item['segment-is-reserved-for-tdm'] === true;
+ }).length;
+ row.utilization = getUtilization(row);
+ $scope.progress.value = $scope.progress.value + 1;
+ if ($scope.progress.max === $scope.progress.value) {
+ finish();
+ }
+ }, function(error){
+ // ignore
+ });
+
+ $scope.gridOptions.data.push(row);
+ });
+ console.warn(JSON.stringify(tdmLtps));
+ if (tdmLtps.length === 0 && $scope.progress.max === $scope.progress.value) {
+ finish();
+ }
+ });
+ }, function (error) {
+ $scope.gridOptions.data = [];
+ });
+
+ });
+ };
+ $scope.scan();
+
+ }]);
+
+ });
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.module.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.module.js
new file mode 100644
index 00000000..b136b535
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.module.js
@@ -0,0 +1,53 @@
+/*
+ * 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/mwtnCommons.module',
+ 'app/mwtnCommons/bower_components/angular-clipboard/angular-clipboard'], function(ng) {
+ var mwtnTdmApp = angular.module('app.mwtnTdm', ['ui.grid', 'ui.bootstrap', 'app.core', 'ui.router.state', 'config', 'angular-clipboard']);
+
+ mwtnTdmApp.config(function($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider, $translateProvider) {
+ mwtnTdmApp.register = {
+ controller : $controllerProvider.register,
+ directive : $compileProvider.directive,
+ factory : $provide.factory,
+ service : $provide.service
+ };
+
+ NavHelperProvider.addControllerUrl('app/mwtnTdm/mwtnTdm.controller');
+ NavHelperProvider.addToMenu('mwtnTdm', {
+ "link" : "#/mwtnTdm",
+ "active" : "main.mwtnTdm",
+ "title" : "MWTN TDM",
+ "icon" : "fa fa-cogs", // Add navigation icon css class here
+ "page" : {
+ "title" : "MWTN TDM",
+ "description" : "mwtnTdm"
+ }
+ });
+
+ var access = routingConfig.accessLevels;
+
+ $stateProvider.state('main.mwtnTdm', {
+ url: 'mwtnTdm',
+ access: access.admin,
+ views : {
+ content : {
+ templateUrl: 'src/app/mwtnTdm/templates/frame.tpl.html',
+ controller: 'mwtnTdmCtrl'
+ }
+ }
+ });
+
+ });
+
+ return mwtnTdmApp;
+});
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.services.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.services.js
new file mode 100644
index 00000000..824fd26b
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/mwtnTdm.services.js
@@ -0,0 +1,31 @@
+/*
+ * @copyright 2017 highstreet technologies 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/mwtnTdm/mwtnTdm.module'],function(mwtnTdmApp) {
+
+ mwtnTdmApp.register.factory('$mwtnTdm', function($mwtnCommons, $mwtnDatabase, $mwtnLog) {
+
+ var service = {};
+
+ service.getPacParts = $mwtnCommons.getPacParts;
+ service.highlightFilteredHeader = $mwtnCommons.highlightFilteredHeader;
+ service.getMountPoints = $mwtnCommons.getMountPoints;
+ service.gridOptions = $mwtnCommons.gridOptions;
+ service.getActualNetworkElement = $mwtnCommons.getActualNetworkElement;
+ service.getMountPoints = $mwtnCommons.getMountPoints;
+ service.getPacParts = $mwtnCommons.getPacParts;
+
+ service.parts = $mwtnCommons.parts;
+ service.separator = $mwtnCommons.separator;
+ service.yangify = $mwtnCommons.yangify;
+ service.yangifyObject = $mwtnCommons.yangifyObject;
+
+ return service;
+ });
+
+});
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/templates/frame.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/templates/frame.tpl.html
new file mode 100644
index 00000000..c253807c
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/mwtnTdm-module/src/main/resources/mwtnTdm/templates/frame.tpl.html
@@ -0,0 +1,52 @@
+<ht-header help-link='sdnr/mwtnTdm/0.4.0/README.md'></ht-header>
+
+<div class="owl container" style="width: 100%;">
+
+ <div class="row bbg">
+ <div class="col-md-2">
+ <button type="button" id="scan" class="btn btn-primary" ng-click="scan()">
+ <i class="fa fa-spinner fa-pulse" aria-hidden="true" ng-if="progress.show"></i>
+ <span>{{'MWTN_SCAN_NETWORK' | translate}}</span>
+ </button>
+ </div>
+ <div class="col-md-3" ng-if="message.startTime !== undefined">
+ <span>{{'MWTN_START_TIME' | translate}}</span>
+ <b>{{message.startTime.toHumanReadableTimeFormat()}}</b>
+ </div>
+ <div class="col-md-3" ng-if="message.endTime !== undefined">
+ <span>{{'MWTN_END_TIME' | translate}}</span>
+ <b>{{message.endTime.toHumanReadableTimeFormat()}}</b>
+ </div>
+ <div class="col-md-2" ng-if="message.duration !== undefined">
+ <span>{{'MWTN_DURATION' | translate}}</span>
+ <b>{{message.duration}}</b>
+ </div>
+ </div>
+
+ <div class="row">
+ <div class=" col-md-12">
+ <hr/>
+ </div>
+ </div>
+
+ <div class="row">
+ <div class=" col-md-12">
+ <div id="mwtnTdmGrid" ui-grid="gridOptions" ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-resize-columns ui-grid-move-columns
+ class="mwtnLogGrid"></div>
+ </div>
+ </div>
+
+ <div class="row">
+ <div class=" col-md-12">
+ <uib-progressbar ng-if="progress.show" class="progress-striped col-md-12" type="primary" max="progress.max" value="progress.value">
+ <i class="owl-dark">{{progress.value}} / {{progress.max}}</i>
+ </uib-progressbar>
+ </div>
+ </div>
+
+</div>
+
+<hr />
+<div class="owl">
+ <span class="white">ONAP SDN-R | ONF Wireless for @distversion@ - Build: @buildtime@</span>
+</div> \ No newline at end of file
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/pom.xml
new file mode 100644
index 00000000..8abbeca5
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnTdm/pom.xml
@@ -0,0 +1,24 @@
+<?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>
+ <artifactId>mwtn</artifactId>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <version>0.5.1-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <packaging>pom</packaging>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <artifactId>mwtnTdm</artifactId>
+ <version>0.5.1-SNAPSHOT</version>
+ <name>${prefix} ${project.artifactId}</name>
+
+ <prerequisites>
+ <maven>3.0</maven>
+ </prerequisites>
+
+ <modules>
+ <module>mwtnTdm-module</module>
+ <module>mwtnTdm-bundle</module>
+ </modules>
+</project> \ No newline at end of file