Merge changes from topic 'yangman'
authorMaxime Millette-Coulombe <mmcoulombe@inocybe.com>
Mon, 7 Nov 2016 13:15:57 +0000 (13:15 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 7 Nov 2016 13:15:57 +0000 (13:15 +0000)
* changes:
  Yangman - make elements accessible via ids - part1
  Yangman - view switched to json when request is run from history
  Yangman - hide show previous item icon if there are no data
  Remove version tags from modules/*/pom.xml
  Yangman - delayed progress bar is displayed
  Yangman - zero out Status and Time-update
  Yangman - Show all items box showed for a moment-update
  Yangman - Rpc output list is appending elements instead of replacing
  Yangman - fix fill node after put request

38 files changed:
modules/common-authentication-resources/pom.xml
modules/common-general-resources/pom.xml
modules/common-layout-resources/pom.xml
modules/common-login-resources/pom.xml
modules/common-navigation-resources/pom.xml
modules/common-sigmatopology-resources/pom.xml
modules/common-topbar-resources/pom.xml
modules/common-yangutils-resources/pom.xml
modules/common-yangutils-resources/src/main/resources/yangutils/services/node-wrapper.services.js
modules/connection_manager-resources/pom.xml
modules/container-resources/pom.xml
modules/core-resources/pom.xml
modules/flow-resources/pom.xml
modules/loader-resources/pom.xml
modules/network-resources/pom.xml
modules/node-resources/pom.xml
modules/topology-resources/pom.xml
modules/yangman-resources/pom.xml
modules/yangman-resources/src/main/resources/yangman/controllers/form/ym-list.controller.js
modules/yangman-resources/src/main/resources/yangman/controllers/request-header.controller.js
modules/yangman-resources/src/main/resources/yangman/controllers/requests-list.controller.js
modules/yangman-resources/src/main/resources/yangman/controllers/yang-form.controller.js
modules/yangman-resources/src/main/resources/yangman/directives/abn-tree.directive.js
modules/yangman-resources/src/main/resources/yangman/directives/yang-form-menu.directive.js
modules/yangman-resources/src/main/resources/yangman/services/parameters.services.js
modules/yangman-resources/src/main/resources/yangman/services/yangman.services.js
modules/yangman-resources/src/main/resources/yangman/views/directives/abn-tree.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/index.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/leftpanel/collections-tab.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/leftpanel/history-tab.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/leftpanel/module-detail.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/leftpanel/modules-tab.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/leftpanel/request-item.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/rightpanel/detail.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/rightpanel/request-data.tpl.html
modules/yangman-resources/src/main/resources/yangman/views/rightpanel/request-header.tpl.html
modules/yangui-resources/pom.xml
modules/yangvisualizer-resources/pom.xml

index 7a543faa21f5b94570ada3f73189bd9bf96f81c1..f7e8ed8a85f51766c46e11e16a698df6783a53e9 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.common.authentication.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Common Authentication Module Resources</description>
-  <version>${common.authentication.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 42068aade95a47961d397986648324298726e0aa..dab8b47c6e8f22e9340679d827901f6455567529 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.common.general.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Common General Module Resources</description>
-  <version>${common.general.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 47583a55b76a54a5e74b94fe31b15d93c3c4895c..14e50c1f8066e5f45c9d79dd622c0000367718d1 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.common.layout.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Common Layout Module Resources</description>
-  <version>${common.layout.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index ef2087be4f592c38f966b79ea9a1bf697fa759f2..76fa6570baac8b4eeb537c647425a83113de3372 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.common.login.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Common Login Module Resources</description>
-  <version>${common.login.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index c077c8f2f1d0ae9b6b66b877adcbb3c29dd51ebf..85fd054b86516ff8acecf90ae48f5fb3e9f5dda3 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.common.navigation.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Common Navigation Module Resources</description>
-  <version>${common.navigation.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 98e9bfaab2cfb197242c63ffda21e9873b3ddf61..7992fd177c10ee06d0318c6f62dcd47b319303a4 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.common.sigmatopology.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Sigma topology Module Resources</description>
-  <version>${common.sigmatopology.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index dffe9450f33317882558449e59f883d6c046db7b..c55f95aa488fdf49b1efbe3214bc25c02f992f11 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.common.topbar.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Common Topbar Module Resources</description>
-  <version>${common.topbar.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index e7cb125e5e1800a24bc9978cce3372002156b5f4..68a653a5d21e19ce9446ac8b5a2d995762573c8e 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.common.yangutils.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Common Yangutils Module Resources</description>
-  <version>${common.yangutils.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index af091f2ce733dfb7262685131095abea3a0b4eca..ac081febf40e3f6bbfeb7e1736843210d88ecc1e 100644 (file)
@@ -410,7 +410,7 @@ define([], function () {
                     newLeafListItem;
 
                 if (match) {
-
+                    node.value = [];
                     for (var i = 0; i < array.length; i++) {
                         newLeafListItem = {
                             value: array[i],
index a25431f81beb3e222592c6e0f7802ef7f9e60eb9..84eca6207b6b3ec6e678d8d46e27c0fdb5bb976d 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.connection_manager.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Connection manager Module Resources</description>
-  <version>${connection_manager.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 018eb02515db1cf8c97731c8eb8b7a95be336e6a..c408779593e25b6e3198a1d2a40668ba4c735069 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.container.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Container Module Resources</description>
-  <version>${container.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 779cb3438e6e975fe19455fd18deccade648b694..4f7f250886dbf9a5908dd8e9025f867dbc8cb0b7 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.core.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Core Module Resources</description>
-  <version>${core.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 51cbd93e11dce05f553e021415ca21f50dc26955..406412ebeb7cf849ca0713fb01ed59e42c4c2ed2 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.flow.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Flow Module Resources</description>
-  <version>${flow.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 5276a4269efbff0e15c253866baa37e4fa0caced..75634725aa29594f32b4bb76c4ca6d523a9bd811 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.loader.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Loader Module Resources</description>
-  <version>${loader.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 6ccfd823fac4fb6a3f0e2c1b22b0a438a013ae26..531f3a17bc746ef3c0b74d77ce71a6ee15cb86f1 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.network.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Network Module Resources</description>
-  <version>${network.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 277e3826eb19a0099ce02efec7a684a6ede2e51b..b684c7b7bff67a65c1ef2e8fc25b8ff6f0e753e5 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.node.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Node Module Resources</description>
-  <version>${node.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 09fa298a496fac0e3793cd35a7640d78adb4655d..57960245bcd2c962199b6c64e72e17d1f90aa5da 100644 (file)
@@ -19,6 +19,5 @@
   <artifactId>dlux.topology.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Topology Module Resources</description>
-  <version>${topology.resources.version}</version>
   <packaging>jar</packaging>
 </project>
index a18eb5a62e02e8c1127744962a90fb2582bf7bfe..2792c7e8ab71d6930d82450178aec9151c66b88b 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.yangman.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Yangman Module Resources</description>
-  <version>${yangman.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 0190a94244bb50c39f36662c2f5b4514627addf1..1dac57b073072ee29121b60e4955af8855bda457 100644 (file)
@@ -57,6 +57,10 @@ define([], function () {
 
                 yangList.addListElem();
             }
+
+            if (!$scope.node.listData.length) {
+                yangList.currentDisplayIndex = 1;
+            }
         }
 
         /**
index 79ea725c381e15b43d2e83096dc52a22303aae55..f851347d138e52039e744bf11135a06da57db25b 100644 (file)
@@ -7,11 +7,11 @@ define([
     angular.module('app.yangman').controller('RequestHeaderCtrl', RequestHeaderCtrl);
 
     RequestHeaderCtrl.$inject = [
-        '$mdDialog', '$mdToast', '$scope', '$rootScope', 'ENV', 'YangmanService', 'ParametersService',
+        '$timeout', '$mdDialog', '$mdToast', '$scope', '$rootScope', 'ENV', 'YangmanService', 'ParametersService',
         'PathUtilsService', 'RequestsService', '$filter', 'DataBackupService', 'constants', 'TimeTrackingService'
     ];
 
-    function RequestHeaderCtrl($mdDialog, $mdToast, $scope, $rootScope, ENV, YangmanService, ParametersService,
+    function RequestHeaderCtrl($timeout, $mdDialog, $mdToast, $scope, $rootScope, ENV, YangmanService, ParametersService,
                                PathUtilsService, RequestService, $filter, DataBackupService, constants,
                                TimeTrackingService) {
         var requestHeader = this;
@@ -399,6 +399,7 @@ define([
                     constants.YANGMAN_SET_ERROR_MESSAGE,
                     $filter('translate')(constants.YANGMAN_ERROR_EMPTY_IDENTIFIERS)
                 );
+                finishRequestProgress();
             }
 
             /**
@@ -523,15 +524,19 @@ define([
                 requestHeader.statusObj.time = null;
             }
 
-            if ( requestHeader.requestUrl.length ) {
-
-                if ( requestHeader.selectedShownDataType === constants.DISPLAY_TYPE_REQ_DATA ) {
-                    // get json data
-                    var params = { reqData: null };
-                    $scope.rootBroadcast(constants.YANGMAN_GET_CODEMIRROR_DATA_SENT, params);
-                    executeOperation(params.reqData ? angular.fromJson(params.reqData) : {}, cbk);
-                } else {
-                    executeOperation({}, cbk);
+            showRequestProgress();
+
+            $timeout(prepareData);
+            function prepareData() {
+                if ( requestHeader.requestUrl.length ) {
+                    if ( requestHeader.selectedShownDataType === constants.DISPLAY_TYPE_REQ_DATA ) {
+                        // get json data
+                        var params = { reqData: null };
+                        $scope.rootBroadcast(constants.YANGMAN_GET_CODEMIRROR_DATA_SENT, params);
+                        executeOperation(params.reqData ? angular.fromJson(params.reqData) : {}, cbk);
+                    } else {
+                        executeOperation({}, cbk);
+                    }
                 }
             }
         }
index fdf08ab0be92642f67589b099515c2a90090d694..e26061164ecf7bd20110bfae6704d63512ab9570 100644 (file)
@@ -260,7 +260,12 @@ define([
          * @param reqObj
          */
         function executeRequest(reqObj) {
-            showData(reqObj);
+            if ($scope.rightPanelSection === constants.DISPLAY_TYPE_FORM) {
+                showForm(reqObj);
+            }
+            else {
+                showData(reqObj);
+            }
             $scope.rootBroadcast(constants.YANGMAN_EXECUTE_WITH_DATA,{ data: reqObj.sentData });
         }
 
index f312608fbbd043d6b9d41c27ca7cfaf212b3da44..7a82ef855eb0dd1db8d3e9fe73818bda90911263 100644 (file)
@@ -28,15 +28,23 @@ define([
 
         yangForm.viewPath = $scope.globalViewPath + 'rightpanel/form';
         yangForm.errorMsg = '';
+        yangForm.inputIndex = 0;
         $scope.constants = constants;
 
-        // methods
+
         yangForm.getNodeName = getNodeName;
 
-        // watchers
-        $scope.$on(constants.YANGMAN_SET_ERROR_DATA, setRcvdErrorData);
+        init();
+
+
+
+
+        function init() {
+            $scope.$on(constants.YANGMAN_SET_ERROR_DATA, setRcvdErrorData);
+            $scope.$on(constants.YANGMAN_SET_ERROR_MESSAGE, setErrorMessage);
+        }
+
 
-        $scope.$on(constants.YANGMAN_SET_ERROR_MESSAGE, setErrorMessage);
 
         /**
          * Method for set error message in form
index 06358536e4a50c047d94a9aa0819aef005873e10..810ab18bb08df5c28ee4fcab599d78727a0a6230 100644 (file)
@@ -288,6 +288,7 @@ define(['angular'], function (angular) {
                                 }
                             }
                             scope.tree_rows.push({
+                                index: scope.tree_rows.length, // in template tracking by branch.uid, integer needed
                                 level: level,
                                 branch: branch,
                                 label: branch.label,
index 585f4e4c9ff47977bf361d9dbcc3dd2b423e5d7a..e5ba8b48ffea5524449456f95d3f0ec9b672ee0a 100644 (file)
@@ -72,6 +72,7 @@ define(['angular'], function (angular) {
                  */
                 function closeMenu(){
                     scope.isActive = false;
+                    scope.hideInfoBox();
                 }
 
                 /**
index 7c7d3fd07da759537a179dcbb10f8a54e21a7f44..55bd0ce93c3add59673ea54c4598e5dd923fc672 100644 (file)
@@ -17,6 +17,9 @@ define([
             service.createParameter = createParameter;
             service.validateFile = validateFile;
 
+            return service;
+
+
             /**
              * Validating collection import file
              * @param data
@@ -62,7 +65,6 @@ define([
             }
 
 
-            return service;
 
         }
 
index 59ed6d51d0889e1918b6670758d6069b81b809cc..5be603d013403015c53251342deaf7b8181ef6b4 100644 (file)
@@ -382,7 +382,6 @@ define([], function () {
 
             // fill each property - needed for root mountpoint node,
             // in other cases there should be only one property anyway
-            node.clear();
             props.forEach(function (p) {
                 node.fill(p, data[p]);
             });
index 257206f2bfbe95441da1a711aca139a7f4b4489a..1b5aa5c8ef61e823f8391f0ad0689e55e6833fa7 100644 (file)
@@ -2,9 +2,10 @@
         <md-list-item ng-repeat="row in tree_rows | filter:{visible:true} track by row.branch.uid"
                       ng-class="'level-' + {{ row.level }} + (row.branch.selected ? ' active':'')"
                       ng-click="user_clicks_branch(row.branch)"
-                      ng-init="(_dataCollection = []).length = row.level;">
+                      id="branch-{{row.index}}"
+                      ng-init="(_dataCollection = []).length = row.level; idIndex = idIndex + 1;">
             <span ng-repeat="i in _dataCollection track by $index" ng-class="{'empty-box' : $index !== 0}"></span>
-            <md-icon md-font-set="material-icons" class="pointer" ng-click="row.branch.expanded = !row.branch.expanded">{{row.tree_icon}}</md-icon>
+            <md-icon md-font-set="material-icons" class="pointer" id="toggle-branch-{{row.index}}" ng-click="row.branch.expanded = !row.branch.expanded">{{row.tree_icon}}</md-icon>
             <span flex class="indented tree-label">{{ row.label }} {{ row.branch.identifier }}</span>
         </md-list-item>
 </md-list>
index ab6be169eb94996adb4ac3b3de1b3e915633f7a8..8fea0ff6bc3ce40db50869c12846f8e02f588b6a 100644 (file)
@@ -5,6 +5,7 @@
         <!-- module arrow button -->
         <md-icon md-font-set="material-icons "
                  class="arrow-switcher"
+                 id="toggle-module-detail"
                  ng-click="main.toggleLeftPanel(); main.initModuleDetailHeight();"
                  ng-class="{'arrow-switcher__left' : main.leftPanelTab === 0}"
                  ng-show="selectedDatastore"> play_arrow </md-icon>
                     <!-- MODULES HISTORY COLLECTION TABS -->
                     <md-tabs class="yangmanModule__mhc-tabs inline-tabs" md-no-pagination md-dynamic-height md-stretch-tabs="always">
                         <!-- Modules tab -->
-                        <md-tab label="{{'YANGMAN_MODULES' | translate}}" md-on-select="main.switchedTab(0)">
+                        <md-tab label="{{'YANGMAN_MODULES' | translate}}" md-on-select="main.switchedTab(0)" id="tab-modules">
                             <div ng-include src="globalViewPath + 'leftpanel/modules-tab.tpl.html'" class="h100"></div>
                         </md-tab>
                         <!-- History tab -->
-                        <md-tab label="{{'YANGMAN_HISTORY' | translate}}" md-on-select="main.switchedTab(1)">
+                        <md-tab label="{{'YANGMAN_HISTORY' | translate}}" md-on-select="main.switchedTab(1)" id="tab-history">
                             <div ng-include src="globalViewPath + 'leftpanel/history-tab.tpl.html'" class="historyTab"></div>
                         </md-tab>
                         <!-- Collection tab -->
-                        <md-tab label="{{'YANGMAN_COLLECTIONS' | translate}}" md-on-select="main.switchedTab(2)">
+                        <md-tab label="{{'YANGMAN_COLLECTIONS' | translate}}" md-on-select="main.switchedTab(2)" id="tab-collections">
                             <div ng-include src="globalViewPath + 'leftpanel/collections-tab.tpl.html'" class="collectionsTab"></div>
                         </md-tab>
                     </md-tabs>
index b8d7a9e923fb3059c1b2019905699a46291760ae..870f43d3984ffb3d2913d1a3c793673e734bb78e 100644 (file)
             <md-icon class="material-icons">search</md-icon>
             <input class="ng-pristine ng-valid ng-touched"
                    type="text"
+                   id="search-collections"
                    flex
                    placeholder="{{'YANGMAN_SEARCH' | translate}}"
                    ng-model="reqList.search"
                    aria-invalid="false" />
             <md-button aria-label="{{'YANGMAN_CLEAR_SEARCH'| translate}}" flex="none"
                        ng-click="reqList.clearFilter()"
+                       id="search-collections-clear"
                        ng-if="reqList.search">
                 <md-icon class="material-icons clickable">
                     close
@@ -29,6 +31,7 @@
         <!-- sorting -->
         <span class="collection-button-container">
             <md-button  ng-click="reqList.toggleCollectionsSort()"
+                        id="sort-collections"
                         ng-disabled="reqList.collectionList.collections.length <= 1">
                 <md-icon class="material-icons clickable" > sort</md-icon>
             </md-button>
@@ -41,6 +44,7 @@
         <!-- save -->
         <span class="collection-button-container">
             <md-button  ng-click="reqList.showDgSaveReq($event)"
+                        id="collections-save-selected"
                         ng-disabled="reqList.mainList.getSelectedItems(reqList.filterCollReq).length === 0">
                 <md-icon class="material-icons clickable">
                     save
@@ -53,7 +57,7 @@
         <!-- importing -->
         <span class="collection-button-container">
             <input type="file" accept=".json" id="importCollection" on-read-file="reqList.readCollectionFromFile($fileContent)">
-            <md-button>
+            <md-button id="import-collection-button">
                 <label for="importCollection">
                     <md-icon class="material-icons clickable" >
                         file_upload
@@ -65,7 +69,7 @@
         <!-- /importing -->
 
         <md-menu layout-align="center start">
-            <md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu"  ng-click="$mdOpenMenu()">
+            <md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu" id="collections-delete-menu" ng-click="$mdOpenMenu()">
                 <md-icon class="material-icons clickable"> delete</md-icon>
                 <md-tooltip md-direction="bottom">{{'YANGMAN_DELETE_OPTIONS' | translate}}</md-tooltip>
             </md-button>
@@ -73,6 +77,7 @@
                 <!-- delete selected -->
                 <md-menu-item>
                     <md-button aria-label="{{'YANGMAN_REQS_DELETE'| translate}}"
+                               id="collections-delete-selected"
                                ng-click="reqList.showDgDeleteRequests($event)"
                                ng-disabled="reqList.mainList.getSelectedItems(reqList.filterCollReq).length === 0">
                         <md-icon class="material-icons clickable">
@@ -85,6 +90,7 @@
                 <!-- clear collections -->
                 <md-menu-item>
                     <md-button aria-label="{{'YANGMAN_DELETE_COLLECTIONS' | translate}}"
+                               id="collections-delete-all"
                                ng-click="reqList.clearCollectionList($event)">
                         <md-icon class="material-icons clickable">
                             delete_forever
 
         <!-- menu for selecting and deselecting-->
         <md-menu layout-align="center start">
-            <md-button ng-disabled="( !reqList.mainList.list.length)" aria-label="menu"  ng-click="$mdOpenMenu()">
+            <md-button ng-disabled="( !reqList.mainList.list.length)" aria-label="menu" id="collections-select-menu" ng-click="$mdOpenMenu()">
                 <md-icon class="material-icons clickable">
                     playlist_add_check
                 </md-icon>
                 <!-- select all -->
                 <md-menu-item>
                     <md-button aria-label="{{'YANGMAN_SELECT_ALL' | translate}}"
+                               id="collections-select-all"
                                ng-click="reqList.selectAllFilteredRequests()">
                         <md-icon class="material-icons clickable">
                             done
                 <md-menu-item>
                     <md-button aria-label="{{'YANGMAN_DESELECT_ALL' | translate}}"
                                ng-click="reqList.deselectAllFilteredRequests()"
+                               id="collections-deselect-all"
                                ng-disabled="reqList.mainList.getSelectedItems(reqList.filterCollReq).length === 0">
                         <md-icon class="material-icons clickable">
                             close
     <!-- collection list -->
     <md-content class="scrollableY">
 
-        <div ng-repeat="collection in reqList.mainList.collections | filter: reqList.filterCol | orderBy: (reqList.collectionsSortAsc ? '' : '-')+'name'">
+        <div ng-repeat="collection in reqList.mainList.collections | filter: reqList.filterCol | orderBy: (reqList.collectionsSortAsc ? '' : '-')+'name' track by $index" ng-init="collectionIndex = $index">
 
             <div layout="row">
 
                 <md-list-item class="yangmanModule__requests-list__collection"
                               flex
+                              id="collection-{{$index}}"
                               ng-class="{'expanded' : collection.expanded, 'selected': collection.expanded}"
                               ng-click="collection.toggleExpanded()">
 
                         <div layout="column">
 
                             <p flex>
-                            <span md-highlight-text="reqList.search" md-highlight-flags="i">
+                            <span md-highlight-text="reqList.search" id="collection-{{$index}}-name" md-highlight-flags="i">
                                 {{collection.name}}
                             </span><br />
                             <span class="desc">
 
                 </md-list-item>
                 <md-menu class="yangmanModule__requests-list__group__collectionMenu"
+                         id="collection-menu-{{$index}}"
                          md-offset="35 15"
                          layout-align="center start">
                     <md-button aria-label="menu" class="md-primary" ng-click="$mdOpenMenu()">
                     </md-button>
                     <md-menu-content class="reqMenu">
                         <md-menu-item>
-                            <md-button aria-label="Duplicate collection"
+                            <md-button aria-label="Edit collection"
+                                       id="collection-menu-{{$index}}-edit"
                                        ng-click="reqList.showDgEditCollection($event, collection, false)">
                                 <i class="material-icons">mode_edit</i>
                                 {{'YANGMAN_COLLECTION_EDIT'| translate}}
                         </md-menu-item>
                         <md-menu-item>
                             <md-button aria-label="{{'YANGMAN_COLLECTION_DUPLICATE'| translate}}"
+                                       id="collection-menu-{{$index}}-duplicate"
                                        ng-click="reqList.showDgEditCollection($event, collection, true)">
                                 <i class="material-icons">control_point_duplicate</i>
                                 {{'YANGMAN_COLLECTION_DUPLICATE'| translate}}
                         </md-menu-item>
                         <md-menu-item>
                             <md-button aria-label="{{'YANGMAN_COLLECTION_DOWNLOAD'| translate}}"
+                                       id="collection-menu-{{$index}}-download"
                                        ng-click="reqList.downloadCollection(collection)">
                                 <i class="material-icons">file_download</i>
                                 {{'YANGMAN_COLLECTION_DOWNLOAD'| translate}}
                         </md-menu-item>
                         <md-menu-item>
                             <md-button aria-label="{{'YANGMAN_COLLECTION_DELETE'| translate}}"
+                                       id="collection-menu-{{$index}}-delete"
                                        ng-click="reqList.showDgDeleteCollection($event, collection)">
                                 <i class="material-icons">delete</i>
                                 {{'YANGMAN_COLLECTION_DELETE'| translate}}
 
 
             <md-list ng-show="collection.expanded" class="yangmanModule__requests-list__collection__requests">
-                <div ng-repeat="request in collection.data | filter: reqList.filterReq"
+                <div ng-repeat="request in collection.data | filter: reqList.filterReq track by $index"
                      layout="row"
+                     ng-init="itemId='collection-request-'+collectionIndex+'-'+$index"
                      class="yangmanModule__requests-list__item-container"
                      ng-include src="globalViewPath + 'leftpanel/request-item.tpl.html'">
                 </div>
index f6560d01f9cd262de6e2728874cec130625b14fe..2d8c1ed25f8ad3dfc53ce0e98e6e70d81a11d40a 100644 (file)
                    type="text"
                    flex
                    placeholder="{{'YANGMAN_SEARCH' | translate}}"
+                   id="search-history"
                    ng-model="reqList.search"
                    aria-invalid="false" />
             <md-button aria-label="{{'YANGMAN_CLEAR_SEARCH'| translate}}" flex="none"
+                       id="search-history-clear"
                        ng-click="reqList.clearFilter()"
                        ng-if="reqList.search">
                 <md-icon class="material-icons clickable">
@@ -28,6 +30,7 @@
 
         <!-- save -->
         <md-button  ng-click="reqList.showDgSaveReq($event)"
+                    id="history-save-requests"
                     ng-disabled="!reqList.mainList.getSelectedItems(reqList.filterReq).length">
             <md-icon class="material-icons clickable">
                 save
@@ -38,7 +41,7 @@
 
         <!-- menu for deleting and clearing-->
         <md-menu layout-align="center start">
-            <md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu"  ng-click="$mdOpenMenu()">
+            <md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu" id="history-delete-menu" ng-click="$mdOpenMenu()">
                 <md-icon class="material-icons clickable"> delete</md-icon>
                 <md-tooltip md-direction="bottom">{{'YANGMAN_DELETE_OPTIONS' | translate}}</md-tooltip>
             </md-button>
@@ -47,6 +50,7 @@
                 <md-menu-item>
                     <md-button aria-label="{{'YANGMAN_REQS_DELETE'| translate}}"
                                ng-click="reqList.showDgDeleteRequests($event)"
+                               id="history-delete-selected"
                                ng-disabled="!reqList.mainList.getSelectedItems(reqList.filterReq).length">
                         <md-icon class="material-icons clickable"> delete</md-icon>
                         {{'YANGMAN_REQS_DELETE'| translate}}
@@ -57,6 +61,7 @@
                 <md-menu-item>
                     <md-button aria-label="{{'YANGMAN_DELETE_HISTORY' | translate}}"
                                ng-click="reqList.clearHistoryList($event)"
+                               id="history-delete-all"
                                ng-disabled="!reqList.mainList.list.length">
                         <md-icon class="material-icons clickable"> delete_forever</md-icon>
                         {{'YANGMAN_DELETE_HISTORY' | translate}}
@@ -69,7 +74,7 @@
 
         <!-- menu for selecting and deselecting-->
         <md-menu layout-align="center start">
-            <md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu"  ng-click="$mdOpenMenu()">
+            <md-button ng-disabled="!reqList.mainList.list.length" aria-label="menu" id="history-select-menu"  ng-click="$mdOpenMenu()">
                 <md-icon class="material-icons clickable">
                     playlist_add_check
                 </md-icon>
@@ -79,6 +84,7 @@
                 <!-- select all -->
                 <md-menu-item>
                     <md-button aria-label="{{'YANGMAN_SELECT_ALL' | translate}}"
+                               id="history-select-all"
                                ng-click="reqList.selectAllFilteredRequests()">
                         <md-icon class="material-icons clickable">
                             done
@@ -90,6 +96,7 @@
                 <!-- deselect all -->
                 <md-menu-item>
                     <md-button aria-label="{{'YANGMAN_DESELECT_ALL' | translate}}"
+                               id="history-deselect-all"
                                ng-click="reqList.deselectAllFilteredRequests()" ng-disabled="reqList.mainList.getSelectedItems(reqList.filterReq).length === 0">
                         <md-icon class="material-icons clickable">
                             close
 
     <!-- list of items grouped by date -->
     <md-content class="scrollableY">
-        <md-list-item ng-repeat="group in reqList.mainList.dateGroups | orderBy: 'name': true"
+        <md-list-item ng-repeat="group in reqList.mainList.dateGroups | orderBy: 'name': true track by $index"
+                      id="history-requests-group-{{$index}}"
+                      ng-init="groupIndex=$index"
                       class="yangmanModule__requests-list__group"
                       ng-if="(group.requests | filter:reqList.filterReq).length">
 
                 <md-list>
                     <div ng-repeat="request in group.requests | filter: reqList.filterReq  | orderBy: '-timestamp' track by $index"
                          layout="row"
+                         ng-init="itemId = 'history-request-'+groupIndex+'-'+$index"
                          class="yangmanModule__requests-list__item-container"
                          ng-include src="globalViewPath + 'leftpanel/request-item.tpl.html'">
                     </div>
index 62bce5d99dd936b80c27364ca1ccb7f97b4a9a84..7db2a81c576c989ac506148681e048bfc514017b 100644 (file)
@@ -1,15 +1,16 @@
 <md-content ng-controller="ModuleDetailCtrl as moduleDetail">
     <!-- Module title -->
     <h4 class="text-center"><small>module</small> {{selectedModule.label}}</h4>
+
     <!-- DATA STORE || RPC TABS -->
     <md-tabs md-no-pagination md-dynamic-height
              md-stretch-tabs="always"
              md-selected="moduleDetail.selectedDataStoreIndex"
              class="tabs inline-tabs">
-        <md-tab ng-repeat="item in selectedModule.children">
+        <md-tab ng-repeat="item in selectedModule.children track by $index">
             <md-tab-label>
                 <div layout="row">
-                    <span flex="grow" ng-click="moduleDetail.setDataDetailStore(item)">{{item.label}}</span>
+                    <span flex="grow" ng-click="moduleDetail.setDataDetailStore(item)"  id="selected-module-portion-{{$index}}">{{item.label}}</span>
                 </div>
             </md-tab-label>
 
index 399f233a75555ba959a90cb61e336ff451a579ec..a82737761d108dfd35629b49464948c95ddaa221 100644 (file)
@@ -6,12 +6,14 @@
             <input class="ng-pristine ng-valid ng-touched"
                    type="text"
                    flex
+                   id="search-modules"
                    placeholder="{{'YANGMAN_SEARCH' | translate}}"
                    ng-model="modulesList.search"
                    aria-invalid="false" />
 
             <!-- search clear button -->
             <md-button aria-label="{{'YANGMAN_CLEAR_SEARCH'| translate}}" flex="none"
+                       id="search-modules-clear"
                        ng-click="modulesList.clearFilter()"
                        ng-if="modulesList.search">
                 <md-icon class="material-icons clickable">
         </section>
 
         <!-- Modules list -->
-        <md-list-item ng-repeat="module in modulesList.treeApis | filter: modulesList.customSearch | orderBy: 'label'"
+        <md-list-item ng-repeat="module in modulesList.treeApis | filter: modulesList.customSearch | orderBy: 'label' track by $index"
                       class="yangmanModule__modules-list__item"
                       ng-class="{'expanded' : module.expanded, 'selected' : modulesList.checkSelectedModule(module)}"
+                      id="module_{{$index}}"
+                      ng-init="parentIndex = $index"
                       ng-hide="modulesList.showLoadingBox"
                       ng-click="modulesList.setModule(module, $event)">
             <!-- Item content -->
@@ -57,7 +61,7 @@
 
                 <!-- Datastore && rpc -->
                 <md-list flex class="yangmanModule__datastore-list" ng-show="module.expanded">
-                    <md-list-item ng-repeat="item in module.children">
+                    <md-list-item ng-repeat="item in module.children track by $index" id="module-{{parentIndex}}-portion-{{$index}}">
                         <div flex
                              layout="row"
                              layout-align="center center"
index 79054235b4dbb0b570ad11bbf93b721afdaa4f90..1357c385932d536cb9606134e771df8b0092a179 100644 (file)
@@ -1,17 +1,18 @@
 <!-- request row -->
 <md-list-item class="yangmanModule__requests-list__group__item"
               ng-class="{selected: request.selected}"
+              id="{{itemId}}"
               layout="row"
               flex="100"
               ng-click="reqList.selectRequest($event, request);">
 
     <div flex="15" class="yangmanModule__requests-list__group__item__method" layout-align="center center">
-        <p class="{{request.status === 'success' || !request.status ? request.method : 'error'}}"> {{request.method === vm.constants.OPERATION_DELETE ? 'DEL' : request.method }} </p>
+        <p id="{{itemId}}-operation" class="{{request.status === 'success' || !request.status ? request.method : 'error'}}"> {{request.method === vm.constants.OPERATION_DELETE ? 'DEL' : request.method }} </p>
         <md-tooltip md-direction="bottom" ng-show="request.status">{{request.status | uppercase }}</md-tooltip>
     </div>
 
     <div flex class="yangmanModule__requests-list__group__item__path" layout="column">
-        <p md-highlight-text="reqList.search" md-highlight-flags="i">
+        <p id="{{itemId}}-url" md-highlight-text="reqList.search" md-highlight-flags="i">
             {{ request.path }}
         </p>
     </div>
          layout-align="center start"
          ng-class="{selected: request.selected}">
 
-    <md-button aria-label="menu" class="md-primary" ng-click="reqList.selectOnlyThisRequest(request); $mdOpenMenu()">
+    <md-button aria-label="menu" class="md-primary" id="{{itemId}}-submenu" ng-click="reqList.selectOnlyThisRequest(request); $mdOpenMenu()">
         <i class="material-icons">menu</i>
     </md-button>
 
     <md-menu-content class="reqMenu">
         <md-menu-item>
-            <md-button aria-label="{{'YANGMAN_REQ_RUN'| translate}}" class="" ng-click="reqList.executeRequest(request)">
+            <md-button aria-label="{{'YANGMAN_REQ_RUN'| translate}}" id="{{itemId}}-execute" class="" ng-click="reqList.executeRequest(request)">
                 <i class="material-icons">play_arrow</i>
                 {{'YANGMAN_REQ_RUN'| translate}}
             </md-button>
         </md-menu-item>
         <md-menu-item>
-            <md-button aria-label="{{'YANGMAN_REQ_SHOW_FORM'| translate}}" ng-click="reqList.showForm(request)">
+            <md-button aria-label="{{'YANGMAN_REQ_SHOW_FORM'| translate}}" id="{{itemId}}-show-form" ng-click="reqList.showForm(request)">
                 <i class="material-icons">exit_to_app</i>
                 {{'YANGMAN_REQ_SHOW_FORM'| translate}}
             </md-button>
         </md-menu-item>
         <md-menu-item>
             <md-button aria-label="{{'YANGMAN_REQ_SHOW_SENT_DATA'| translate}}"
+                       id="{{itemId}}-show-sent-data"
                        ng-click="reqList.showData(request)">
                 <i class="material-icons">call_made</i>
                 {{'YANGMAN_REQ_SHOW_JSON_DATA'| translate}}
         </md-menu-item>
         <md-menu-item ng-if="request.collection.length">
             <md-button aria-label="{{'YANGMAN_REQ_DUPLICATE'| translate}}"
+                       id="{{itemId}}-duplicate"
                        ng-click="reqList.showDgSaveReq($event, request, true)">
                 <i class="material-icons">control_point_duplicate</i>
                 {{'YANGMAN_REQ_DUPLICATE'| translate}}
             </md-button>
         </md-menu-item>
         <md-menu-item>
-            <md-button aria-label="{{'YANGMAN_REQ_DELETE'| translate}}" ng-click="reqList.showDgDeleteRequests($event, request)">
+            <md-button aria-label="{{'YANGMAN_REQ_DELETE'| translate}}" id="{{itemId}}-delete" ng-click="reqList.showDgDeleteRequests($event, request)">
                 <i class="material-icons">delete</i>
                 {{'YANGMAN_REQ_DELETE'| translate}}
             </md-button>
index 519cd5e1ba66d08500193e80c64aa00828e6c6b1..9cdbd731f00607d1c96492b90f13409db7d6dc11 100644 (file)
@@ -6,21 +6,12 @@
 </section>
 <!-- /Header -->
 
-<!--<section class="yangmanModule__right-panel__request-progress">-->
-    <!--<div class="yangmanModule__right-panel__request-progress__loading-container">-->
-        <!--<md-progress-linear md-mode="query"></md-progress-linear>-->
-        <!--<div class="bottom-block">-->
-            <!--<span>{{ 'YANGMAN_EXECUTING_REQUEST' | translate }}...</span>-->
-        <!--</div>-->
-    <!--</div>-->
-<!--</section>-->
-
 <!-- Form section -->
 <section class="yangmanModule__right-panel__form bottom-content"
          ng-show="rightPanelSection === main.constants.DISPLAY_TYPE_FORM"
          ng-if="node"
          ng-controller="YangFormCtrl as yangForm">
-    <div ng-show="yangForm.errorMsg"><p class="error">{{ yangForm.errorMsg }}</p></div>
+    <div ng-show="yangForm.errorMsg"><p class="error" id="form-error-message">{{ yangForm.errorMsg }}</p></div>
     <div ng-include src="yangForm.viewPath + '/' + selectedDatastore.label + '/' + node.type+'.tpl.html'"></div>
 </section>
 <!-- /Form section -->
index 79261d935d59040620f1774185647f2ce29cac20..7532780aa3e90335bad325513db97c27d44334e3 100644 (file)
@@ -1,5 +1,6 @@
 <textarea ng-model="requestData.data"
           ui-codemirror
+          id="request-data-{{requestData.type | lowercase}}"
           ui-codemirror-opts="requestData.dataEditorOptions"
           class="codemirror-container">
 </textarea>
index 3857496d1ab94f601e2cb7433da1fcba0a8b1bd3..5fa4ffefae1de3972a8eabc0b682ebead2c3d3d7 100644 (file)
@@ -4,6 +4,7 @@
         <md-input-container flex="initial">
             <md-select ng-model="requestHeader.selectedOperation"
                        md-on-close="requestHeader.setJsonView()"
+                       id="request-selected-operation"
                        placeholder="{{'YANGMAN_SEL_METHOD' | translate}}">
 
                 <md-option ng-value="operation" ng-repeat="operation in requestHeader.selectedOperationsList">
             <md-input-container flex md-no-float ng-if="rightPanelSection === requestHeader.constants.DISPLAY_TYPE_REQ_DATA">
                 <input type="text"
                        ng-model="requestHeader.requestUrl"
+                       id="request-url"
                        placeholder="{{'YANGMAN_REQ_URL' | translate}}"
                        spellcheck="false">
             </md-input-container>
 
-            <div ng-repeat="pathElem in selectedSubApi.pathArray"
+            <div ng-repeat="pathElem in selectedSubApi.pathArray track by $index"
                  flex="nogrow"
+                 id="path-elem-{{$index}}"
                  layout="row"
+                 ng-init="parentIndex = $index"
                  ng-if="rightPanelSection === requestHeader.constants.DISPLAY_TYPE_FORM">
 
                 <md-input-container flex="nogrow" md-no-float class="input-span nrp" >
@@ -44,6 +48,7 @@
                            class="input-identifier"
                            ng-change="requestHeader.fillNodeData(pathElem, identifier)"
                            ng-model="identifier.value"
+                           id="path-elem-{{parentIndex}}-value"
                            aria-label="{{identifier.value}}"
                            ng-class="{'md-has-error': !identifier.value.length}"
                            spellcheck="false">
@@ -68,6 +73,7 @@
         <md-input-container flex="nogrow" layout="row" layout-align="start start" class="action-buttons">
             <!-- Execute action button -->
             <md-button class="md-raised md-primary has-progress"
+                       id="send-request"
                        ng-click="requestHeader.prepareDataAndExecute(
                             main.modulesTreeDisplayed() ? main.leftPanelShowModule : null
                        )">
             </md-button>
 
             <!-- Save request -->
-            <md-button class="md-raised md-warn" ng-click="requestHeader.saveRequestToCollection($event)">
+            <md-button class="md-raised md-warn" id="save-request" ng-click="requestHeader.saveRequestToCollection($event)">
                 {{'YANGMAN_SAVE' | translate}}
             </md-button>
 
             <!-- Parameters button -->
-            <md-button class="md-raised" ng-click="requestHeader.showParamsAdmin($event)">
+            <md-button class="md-raised" id="show-parameters" ng-click="requestHeader.showParamsAdmin($event)">
                 {{'YANGMAN_PARAMETERS' | translate}}
             </md-button>
 
             <!-- sub api custom functionality menu -->
+            <!-- todo: add ids for testing -->
             <md-menu ng-show="selectedSubApi.custFunct.length || requestHeader.selectedPluginsButtons.length">
                 <md-button aria-label="Open demo menu" class="md-icon-button" ng-click="$mdOpenMenu($event)">
                     <md-icon md-font-set="material-icons">more_vert</md-icon>
                         layout="row"
                         layout-align="start center"
                         ng-change="requestHeader.changeDataType()">
-            <md-radio-button value="form" aria-label="{{'YANGMAN_FORM' | translate}}">
+            <md-radio-button id="shown-data-type-form" value="form" aria-label="{{'YANGMAN_FORM' | translate}}">
                 {{'YANGMAN_FORM' | translate}}
             </md-radio-button>
 
-            <md-radio-button value="req-data" aria-label="{{'YANGMAN_JSON' | translate}}">
+            <md-radio-button id="shown-data-type-json" value="req-data" aria-label="{{'YANGMAN_JSON' | translate}}">
                 {{'YANGMAN_JSON' | translate}}
             </md-radio-button>
         </md-radio-group>
             <!-- Status -->
             <span flex="30">
                 {{'YANGMAN_STATUS' | translate}}:
-                <span ng-if="requestHeader.statusObj && requestHeader.statusObj.statusText">
+                <span id="info-request-status" ng-if="requestHeader.statusObj && requestHeader.statusObj.statusText">
                     {{requestHeader.statusObj.status}} {{requestHeader.statusObj.statusText}}
                 </span>
-                <span ng-if="!(requestHeader.statusObj && requestHeader.statusObj.statusText)">
+                <span id="info-request-status" ng-if="!(requestHeader.statusObj && requestHeader.statusObj.statusText)">
                     ...
                 </span>
             </span>
             <!-- Request time -->
             <span flex="30">
                 {{'YANGMAN_TIME' | translate}}:
-                <span ng-if="requestHeader.statusObj && requestHeader.statusObj.time">
+                <span id="info-request-execution-time" ng-if="requestHeader.statusObj && requestHeader.statusObj.time">
                     {{requestHeader.statusObj.time}} ms
                 </span>
-                <span ng-if="!(requestHeader.statusObj && requestHeader.statusObj.time)">
+                <span id="info-request-execution-time" ng-if="!(requestHeader.statusObj && requestHeader.statusObj.time)">
                     ...
                 </span>
             </span>
index c077d3d51594df4bcbbaeccc6c880c7179c53acf..25c965ca90dfd7cf62f8d94e036cc295e2d345ee 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.yangui.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Yangui Module Resources</description>
-  <version>${yangui.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>
index 8a834f5b3003ee0737b0e24bd5257d095d7234fe..85f21803fdc5feaef721c0de6debfd5cb887bd00 100644 (file)
@@ -19,7 +19,6 @@
   <artifactId>dlux.yangvisualizer.resources</artifactId>
   <name>${project.artifactId}</name>
   <description>Yang Visualizer Module Resources</description>
-  <version>${yangvisualizer.resources.version}</version>
   <packaging>jar</packaging>
 
 </project>