diff options
Diffstat (limited to 'sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop')
10 files changed, 551 insertions, 0 deletions
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-bundle/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-bundle/pom.xml new file mode 100644 index 00000000..b7993d31 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-bundle/pom.xml @@ -0,0 +1,118 @@ +<?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>mwtnClosedLoop</artifactId> + <groupId>com.highstreet.technologies.odl.dlux</groupId> + <version>0.5.1-SNAPSHOT</version> + </parent> + <artifactId>mwtnClosedLoop-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>mwtnClosedLoop-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>mwtnClosedLoop-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/mwtnClosedLoop/mwtnClosedLoop-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 00000000..8187f7fe --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-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="mwtnClosedLoop"/> + <property name="url" value="/src/app/mwtnClosedLoop"/> + <property name="directory" value="/mwtnClosedLoop"/> + <property name="requireJs" value="app/mwtnClosedLoop/mwtnClosedLoop.module"/> + <property name="angularJs" value="app.mwtnClosedLoop"/> + <property name="cssDependencies"> + <list> + <value>src/app/mwtnClosedLoop/mwtnClosedLoop-custom.css</value> + </list> + </property> + </bean> +</blueprint>
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/pom.xml new file mode 100644 index 00000000..aadd37ce --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/pom.xml @@ -0,0 +1,15 @@ +<?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>mwtnClosedLoop</artifactId> + <groupId>com.highstreet.technologies.odl.dlux</groupId> + <version>0.5.1-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + <artifactId>mwtnClosedLoop-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/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/images/mwtnClosedLoop.png b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/images/mwtnClosedLoop.png Binary files differnew file mode 100755 index 00000000..b4ed3d5c --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/images/mwtnClosedLoop.png diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop-custom.css b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop-custom.css new file mode 100644 index 00000000..6e9a480c --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop-custom.css @@ -0,0 +1,26 @@ +/** + * Add your application related css here + */ + +.mwtnClosedLoopGrid { + height: 600px; + background-color: white; +} + +.mwtnClosedLoopGrid span { + color: #393939; +} + +.mwtnClosedLoopGrid span.mismatch { + font-weight: bold; + color: #428bca; +} + +.mwtnClosedLoopGrid .green { + color: darkgreen; +} +.mwtnClosedLoopGrid .green span { + color: darkgreen; +} + +
\ No newline at end of file diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.controller.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.controller.js new file mode 100644 index 00000000..99ad48b7 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.controller.js @@ -0,0 +1,160 @@ +/* + * 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/mwtnClosedLoop/mwtnClosedLoop.module','app/mwtnClosedLoop/mwtnClosedLoop.services','app/mwtnCommons/mwtnCommons.services'], function(mwtnClosedLoopApp) { + + mwtnClosedLoopApp.register.controller('mwtnClosedLoopCtrl', ['$scope', '$rootScope', 'uiGridConstants', '$mwtnClosedLoop', '$mwtnCommons', '$mwtnLog', 'OnfNetworkElement', 'MicrowavePhysicalSection', + function($scope, $rootScope, uiGridConstants, $mwtnClosedLoop, $mwtnCommons, $mwtnLog, OnfNetworkElement, MicrowavePhysicalSection) { + + var COMPONENT = 'mwtnClosedLoopCtrl'; + $mwtnLog.info({component: COMPONENT, message: 'Started!'}); + + $rootScope.section_logo = 'src/app/mwtnClosedLoop/images/mwtnClosedLoop.png'; // Add your topbar logo location here such as 'assets/images/logo_topology.gif' + + $scope.timerOptionList = [ + {id : '5seconds', name : "5 seconds"}, + {id : '30seconds', name : "30 seconds"}, + {id : '1minute', name : "One minute"}, + {id : '2minutes', name : "Two minutes"}, + {id : '30minutes', name : "30 minutes"}, + {id : '1hour', name : "One hour"}]; + + var clearMessages = function() { + $scope.info = undefined; + $scope.error = undefined; + }; + + $scope.executeNow = function() { + clearMessages(); + $mwtnCommons.executeClosedLoopAutomation().then(function(message){ + $mwtnLog.info({component: 'mwtnClosedLoopCtrl', message: 'Closed loop automation was started'}); + $scope.info = 'Closed loop automation was executed: ' + new Date().toISOString().toHumanReadableTimeFormat(); + $scope.refresh(); + }, function(error){ + $mwtnLog.error({component: 'mwtnClosedLoopCtrl', message: 'Cannot execute Closed Loop Automation'}); + $scope.error = 'Cannot execute Closed Loop Automation'; + $scope.refresh(); + }); + }; + + $scope.save = function() { + clearMessages(); + $mwtnCommons.saveClosedLoopAutomation($scope.timerEnabled, $scope.timerOption).then(function(message){ + $mwtnLog.info({component: 'mwtnClosedLoopCtrl', message: 'Timer was changed'}); + $scope.info = 'Timer was changed'; + $scope.refresh(); + }, function(error){ + $mwtnLog.error({component: 'mwtnClosedLoopCtrl', message: 'Cannot save timer'}); + $scope.error = 'Cannot save timer'; + $scope.refresh(); + }); + }; + + $scope.read = function() { + clearMessages(); + $mwtnCommons.readClosedLoopAutomation().then(function(message){ + $scope.timerEnabled = message.data.output.enabled; + $scope.timerOption = message.data.output.option; + $scope.refresh(); + }, function(error){ + $mwtnLog.error({component: 'mwtnClosedLoopCtrl', message: 'Cannot read configuration data from the server'}); + $scope.error = 'Cannot read configuration data from the server'; + $scope.refresh(); + }); + }; + + $scope.read(); + + var updateAirInterface = function(spec, data) { + if (data) { + var radioSignalID = data.airInterfaceConfiguration.radioSignalID; + $scope.gridOptions.data.map(function(row){ + if (row.name === spec.nodeId && row.radioSignalID === radioSignalID) { + row.actualAirInterfaceName = data.airInterfaceConfiguration.airInterfaceName; + } + }); + } else { + $scope.gridOptions.data.map(function(row){ + if (row.nodeId === spec.nodeId) { + row.actualAirInterfaceName = '?'; + } + }); + } + }; + + $scope.processing = false; + $scope.refresh = function() { + $scope.processing = true; + $mwtnClosedLoop.refresh().then(function(success){ + $scope.processing = false; + $scope.gridOptions.data = success.airInterfaces; + success.actualNodes.map(function(actualNode){ + if (actualNode.connectionStatus !== 'connected') { + return; + } + var revision = '2016-09-01'; + $mwtnClosedLoop.getActualNetworkElement(actualNode.id, revision).then(function(onfNe){ + var aOnfNe = new OnfNetworkElement(onfNe.NetworkElement); + aOnfNe.getLTPMwpsList().map(function(ltp){ + var spec = { + nodeId: actualNode.id, + revision: revision, + pacId: 'airinterface', + layerProtocolId: ltp._lpList[0].uuid, + partId: 'Configuration' + }; + $mwtnClosedLoop.getPacParts(spec).then(function(success){ + updateAirInterface(spec, success); + }, function(error){ + updateAirInterface(spec, error); + }); + }); + }, function(error){ + // do nothing + }); + }); + }, function(error){ + $scope.processing = false; + $scope.gridOptions.data = []; + }); + }; + + $scope.highlightFilteredHeader = $mwtnClosedLoop.highlightFilteredHeader; + + var requiredNesConnectionStatusCellTemplate = [ + '<div class="ui-grid-cell-contents" ng-class="{ \'green\': grid.getCellValue(row, col) === \'connected\'}"}>', + ' <i ng-show="grid.getCellValue(row, col) === \'connected\'" class="fa fa-link" aria-hidden="true"></i>', + ' <span>{{grid.getCellValue(row, col)}}</span>', + '</div>'].join(''); + + // ng-class="{\'mismatch\': {{row.entity.plannedAirInterfaceName}} !== grid.getCellValue(row, col) }" + var actualAirinterfaceNameTemplate = [ + '<div class="ui-grid-cell-contents">', + ' <span>{{grid.getCellValue(row, col)}}</span>', + '</div>'].join(''); + + $scope.gridOptions = JSON.parse(JSON.stringify($mwtnClosedLoop.gridOptions)); + $scope.gridOptions.columnDefs = [ + { field: 'id', type: 'number', displayName: 'Id', headerCellClass: $scope.highlightFilteredHeader, width : 50, cellClass: 'number', pinnedLeft : true , sort: { + direction: uiGridConstants.ASC, + ignoreSort: false, + priority: 0 + }}, + { field: 'name', type: 'string', displayName: 'Name', headerCellClass: $scope.highlightFilteredHeader, width : 140 }, + { field: 'connectionStatus', type: 'string', displayName: 'Connection status', headerCellClass: $scope.highlightFilteredHeader, width : 150, cellTemplate: requiredNesConnectionStatusCellTemplate }, + { field: 'radioSignalID', type: 'string', displayName: 'Radio signal id', headerCellClass: $scope.highlightFilteredHeader, width : 130 }, + { field: 'plannedAirInterfaceName', type: 'string', displayName: 'Planned airinterface name', headerCellClass: $scope.highlightFilteredHeader, width : 200 }, + { field: 'actualAirInterfaceName', type: 'string', displayName: 'Actual airinterface name', headerCellClass: $scope.highlightFilteredHeader, width : 250, cellTemplate: actualAirinterfaceNameTemplate}, + ]; + + $scope.refresh(); + + }]); + + +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.module.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.module.js new file mode 100644 index 00000000..cec6f69b --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.module.js @@ -0,0 +1,51 @@ +/* + * 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'], function(ng) { + var mwtnClosedLoopApp = angular.module('app.mwtnClosedLoop', ['ui.grid', 'ui.bootstrap', 'app.core', 'ui.router.state','config']); + + mwtnClosedLoopApp.config(function($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider, $translateProvider) { + mwtnClosedLoopApp.register = { + controller : $controllerProvider.register, + directive : $compileProvider.directive, + factory : $provide.factory, + service : $provide.service + + }; + + + NavHelperProvider.addControllerUrl('app/mwtnClosedLoop/mwtnClosedLoop.controller'); + NavHelperProvider.addToMenu('mwtnClosedLoop', { + "link" : "#/mwtnClosedLoop", + "active" : "main.mwtnClosedLoop", + "title" : "MWTN Closed Loop Automation", + "icon" : "fa fa-circle-o", // Add navigation icon css class here + "page" : { + "title" : "MWTN Closed Loop Automation", + "description" : "mwtnClosedLoop" + } + }); + + var access = routingConfig.accessLevels; + + $stateProvider.state('main.mwtnClosedLoop', { + url: 'mwtnClosedLoop', + access: access.admin, + views : { + 'content' : { + templateUrl: 'src/app/mwtnClosedLoop/mwtnClosedLoop.tpl.html', + controller: 'mwtnClosedLoopCtrl' + } + } + }); + + }); + + return mwtnClosedLoopApp; +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.services.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.services.js new file mode 100644 index 00000000..96c8c3e7 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.services.js @@ -0,0 +1,74 @@ +/* + * 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/mwtnClosedLoop/mwtnClosedLoop.module'],function(mwtnClosedLoopApp) { + + + mwtnClosedLoopApp.register.factory('$mwtnClosedLoop', function($q, $mwtnCommons, $mwtnLog) { + var service = {}; + + service.gridOptions = $mwtnCommons.gridOptions; + service.highlightFilteredHeader = $mwtnCommons.highlightFilteredHeader; + service.getActualNetworkElement = $mwtnCommons.getActualNetworkElement; + service.getPacParts = $mwtnCommons.getPacParts; + + + service.refresh = function() { + var deferred = $q.defer(); + $mwtnCommons.getRequiredNetworkElements(true).then(function(pNes){ + var neIds = pNes.map(function(pNe){ + pNe._source.connectionStatus = 'disconnected'; + return pNe._id; + }); + $mwtnCommons.getMountPoints(). then(function(mountpoints){ + var actualNodes = mountpoints.map(function(mountpoint){ + var pIndex = neIds.indexOf(mountpoint['node-id']); + if (pIndex > -1) { + pNes[pIndex]._source.connectionStatus = mountpoint['netconf-node-topology:connection-status']; + } + return { + id: mountpoint['node-id'], + connectionStatus: mountpoint['netconf-node-topology:connection-status'] + }; + }); + var airInterfaces = []; + pNes.map(function(hit){ + hit._source.MW_AirInterface_Pac.map(function(airinterface){ + return airinterface.airInterfaceConfiguration; + }).map(function(airinterface){ + airInterfaces.push({ + id: $mwtnCommons.getNodeIntIdFromNodeId(hit._source.nodeId), + name: hit._source.nodeId, + connectionStatus: hit._source.connectionStatus, + radioSignalID: airinterface.airInterfaceConfiguration.radioSignalID, + plannedAirInterfaceName: airinterface.airInterfaceConfiguration.airInterfaceName, + actualAirInterfaceName: '?' + }); + }); + }); + + airInterfaces.sort(function(a, b){ + if(a.radioSignalID < b.radioSignalID) return -1; + if(a.radioSignalID > b.radioSignalID) return 1; + return 0; + }); + deferred.resolve({airInterfaces: airInterfaces, actualNodes: actualNodes}); + }, function(error){ + deferred.reject([]); + }); + + }, function(error){ + deferred.reject([]); + }); + return deferred.promise; + }; + + return service; + }); + +}); diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.tpl.html new file mode 100644 index 00000000..62a2aca0 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/mwtnClosedLoop-module/src/main/resources/mwtnClosedLoop/mwtnClosedLoop.tpl.html @@ -0,0 +1,64 @@ +<ht-header help-link='sdnr/mwtn/mwtnClosedLoop/0.4.0/README.md'></ht-header> +<div class="owl container"> + <div class="row"> + <div class="col-md-2 text-right"> + <span class="white">{{'Timer ON/OFF' | translate}}</span> + </div> + <div class="col-md-4"> + <div class="form-group"> + <input type="checkbox" ng-model="timerEnabled"> + </div> + </div> + </div> + + <div class="row"> + <div class="col-md-2 text-right"> + <span class="white">{{'Timer Option' | translate}}</span> + </div> + <div class="col-md-4"> + <div class="form-group"> + <select class="form-control" ng-model="timerOption" ng-disabled="!timerEnabled"> + <option ng-repeat="timerOption in timerOptionList" value="{{timerOption.id}}">{{timerOption.name}}</option> + </select> + </div> + </div> + + <div class="col-md-6 text-right"> + <div class="form-group"> + <button type="button" class="btn btn-primary" ng-click="save()">{{'Save' | translate}}</button> + </div> + </div> + </div> + <div class="row"> + <hr /> + <div class="col-md-2"> + <div class="form-group"> + <button type="button" class="btn btn-primary" ng-click="executeNow()">{{'Execute now' | translate}}</button> + </div> + </div> + <div class="col-md-8"> + <div class="form-group"> + <span class="white" ng-show="info">{{ info }}</span> + <span ng-show="error" class="mwtnError">{{ error }}</span> + </div> + </div> + <div clase="col-md-2 text-right"> + <button class="btn btn-primary pull-right" ng-click="refresh()"> + <i class="fa fa-refresh" ng-class="{'fa-spin':processing == true}" aria-hidden="true"></i> + <span>{{'MWTN_REFRESH' | translate}}</span> + </button> + </div> + </div> + <div class="row"> + <div clase="col-md-12"> + <div id="mwtnClosedLoopGrid" ui-grid="gridOptions" ui-grid-exporter + ui-grid-selection ui-grid-pinning ui-grid-resize-columns + ui-grid-move-columns class="mwtnClosedLoopGrid"></div> + </div> + </div> + +</div> +<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/mwtnClosedLoop/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/pom.xml new file mode 100644 index 00000000..fc75d742 --- /dev/null +++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnClosedLoop/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> + </parent> + <packaging>pom</packaging> + <groupId>com.highstreet.technologies.odl.dlux</groupId> + <artifactId>mwtnClosedLoop</artifactId> + <version>0.5.1-SNAPSHOT</version> + <name>${prefix} ${project.artifactId}</name> + + <prerequisites> + <maven>3.0</maven> + </prerequisites> + + <modules> + <module>mwtnClosedLoop-module</module> + <module>mwtnClosedLoop-bundle</module> + </modules> +</project>
\ No newline at end of file |