Yangman - fix history request - json, form, run, save 85/41885/3
authorDaniel Kuzma -X (dakuzma - PANTHEON TECHNOLOGIES at Cisco) <dakuzma@cisco.com>
Fri, 15 Jul 2016 10:02:00 +0000 (12:02 +0200)
committerDaniel Malachovsky <dmalacho@cisco.com>
Fri, 22 Jul 2016 11:07:59 +0000 (13:07 +0200)
Change-Id: I6b2098b6c9d5af420aa96dd1ffe16df8f1917772
Signed-off-by: Daniel Kuzma -X (dakuzma - PANTHEON TECHNOLOGIES at Cisco) <dakuzma@cisco.com>
modules/yangman-resources/src/main/resources/yangman/controllers/module-detail.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/yangman.controller.js
modules/yangman-resources/src/main/resources/yangman/services/yangman.services.js

index 0ac81771ad1cc38e2a62976843fcf3c0ab0a1b65..d58b42734841e2bb5b72de39f27503fe4a01ef77 100644 (file)
@@ -5,9 +5,9 @@ define([
 
     angular.module('app.yangman').controller('ModuleDetailCtrl', ModuleDetailCtrl);
 
-    ModuleDetailCtrl.$inject = ['$scope', '$rootScope', '$timeout', 'YangmanService'];
+    ModuleDetailCtrl.$inject = ['$scope', '$rootScope', '$timeout', 'YangmanService', 'PathUtilsService'];
 
-    function ModuleDetailCtrl($scope, $rootScope, $timeout, YangmanService) {
+    function ModuleDetailCtrl($scope, $rootScope, $timeout, YangmanService, PathUtilsService) {
         var moduleDetail = this;
 
         moduleDetail.treeApis = [];
@@ -39,17 +39,13 @@ define([
          * @param subApiIndex
          */
         function setApiNode(apiIndex, subApiIndex){
-            // $scope.selectedOperation = null;
 
             if (apiIndex !== undefined && subApiIndex !== undefined ) {
 
                 $scope.setApi($scope.apis[apiIndex], $scope.apis[apiIndex].subApis[subApiIndex], true);
                 $scope.setNode($scope.selectedSubApi.node);
-
-            } else {
-                // $scope.selApi = null;
-                // $scope.selSubApi = null;
-                // $scope.node = null;
+                PathUtilsService.clearPath($scope.selectedSubApi.pathArray);
+                $scope.clearCM();
             }
         }
 
index c51db8372d6f4f82e9040df7e4ee08795cd9f7a4..01bceb7f5b7e3703d32cd8cf8dac602ae4476019 100644 (file)
@@ -244,35 +244,48 @@ define([
          */
         function setNodeDataFromRequestData(requestUrl, leftpanel){
 
+            setApiByUrl(requestUrl, function (treeApis) {
+                // set module
+                $scope.setModule($filter('filter')(treeApis, { label: $scope.selectedApi.module })[0]);
+
+                // set datastore
+                $scope.setDataStore(
+                    $filter('filter')(
+                        $scope.selectedModule.children,
+                        { label: $scope.selectedSubApi.storage })[0],
+                    true,
+                    leftpanel
+                );
+
+                // set node
+                $scope.setNode($scope.selectedSubApi.node);
+
+                // fill subapi path
+                PathUtilsService.fillPath($scope.selectedSubApi.pathArray, requestUrl);
+                setRequestUrl();
+            });
+        }
+
+        function setApiByUrl(url, cbk, fill){
             $scope.rootBroadcast('YANGMAN_GET_API_TREE_DATA', null, function (treeApis) {
                 var apisIndexes =
-                        PathUtilsService.searchNodeByPath(requestUrl, treeApis, null, true, true);
+                    PathUtilsService.searchNodeByPath(url, treeApis, null, true, true);
+
+                if ( apisIndexes ) {
 
-                if ( apisIndexes ){
                     // set apis
                     $scope.setApi(
                         $scope.apis[apisIndexes.indexApi],
                         $scope.apis[apisIndexes.indexApi].subApis[apisIndexes.indexSubApi]
                     );
 
-                    // set module
-                    $scope.setModule($filter('filter')(treeApis, { label: $scope.selectedApi.module })[0]);
-
-                    // set datastore
-                    $scope.setDataStore(
-                        $filter('filter')(
-                            $scope.selectedModule.children,
-                            { label: $scope.selectedSubApi.storage })[0],
-                        true,
-                        leftpanel
-                    );
+                    if ( $scope.selectedSubApi && fill ) {
+                        var updatedUrl = YangmanService.cutUrl(url);
+                        PathUtilsService.fillPath($scope.selectedSubApi.pathArray, updatedUrl);
 
-                    // set node
-                    $scope.setNode($scope.selectedSubApi.node);
+                    }
 
-                    // fill subapi path
-                    PathUtilsService.fillPath($scope.selectedSubApi.pathArray, requestUrl);
-                    setRequestUrl();
+                    (cbk || angular.noop)(treeApis);
                 }
             });
         }
@@ -338,10 +351,14 @@ define([
                     !PathUtilsService.checkEmptyIdentifiers($scope.selectedSubApi.pathArray) : true;
 
             if ( allowExecuteOperation ) {
+
                 showRequestProgress();
+                setRequestUrl(requestHeader.selectedShownDataType === 'req-data' ? requestHeader.requestUrl : null);
                 $scope.rootBroadcast('YANGMAN_SET_ERROR_MESSAGE', '');
 
-                setRequestUrl(requestHeader.selectedShownDataType === 'req-data' ? requestHeader.requestUrl : null);
+                if ( requestHeader.selectedShownDataType !== 'form' ){
+                    setApiByUrl(requestHeader.requestUrl, null, true);
+                }
 
                 var historyReq = RequestService.createHistoryRequest(null, null, requestHeader.requestUrl,
                     requestHeader.selectedOperation, '', '', '');
@@ -385,43 +402,38 @@ define([
 
                 sendErrorData({});
 
-                // create and set history request
-                historyReq.setExecutionData(
-                    reqInfo.requestSrcData,
-                    preparedReceivedData,
-                    reqInfo.status,
-                    reqInfo.status,
-                    reqInfo.statusText,
-                    reqInfo.time
-                );
-
                 if (requestHeader.selectedShownDataType === 'req-data'){
 
                     setNodeDataFromRequestData(requestHeader.requestUrl);
                     sendRequestData(preparedReceivedData, 'RECEIVED');
                     sendRequestData(reqInfo.requestSrcData || {}, 'SENT');
-                }
-                else {
+                } else {
 
                     if ($scope.node){
 
-                        YangmanService.fillNodeFromResponse(
-                            $scope.node,
-                            preparedReceivedData
-                        );
-
+                        YangmanService.fillNodeFromResponse($scope.node, preparedReceivedData);
                         $scope.node.expanded = true;
+
                         $scope.rootBroadcast('YANGMAN_DISABLE_ADDING_LIST_ELEMENT');
-                        sendRequestData(
-                            YangmanService.checkRpcReceivedData(preparedReceivedData, $scope.node),
-                            'RECEIVED'
-                        );
+                        preparedReceivedData = YangmanService.checkRpcReceivedData(preparedReceivedData, $scope.node);
+                        sendRequestData(preparedReceivedData, 'RECEIVED');
                     }
                 }
 
+                // create and set history request
+                historyReq.setExecutionData(
+                    reqInfo.requestSrcData,
+                    preparedReceivedData,
+                    reqInfo.status,
+                    reqInfo.status,
+                    reqInfo.statusText,
+                    reqInfo.time
+                );
+
                 $scope.rootBroadcast('YANGMAN_SAVE_EXECUTED_REQUEST', historyReq, function (){
                     $scope.rootBroadcast('YANGMAN_SELECT_THE_NEWEST_REQUEST');
                 });
+
                 (executeCbk || angular.noop)(historyReq);
 
 
@@ -449,8 +461,6 @@ define([
                     $scope.rootBroadcast('YANGMAN_SELECT_THE_NEWEST_REQUEST');
                 });
 
-
-
                 //setNodeDataFromRequestData(requestHeader.requestUrl);
 
                 if (response.data) {
@@ -458,6 +468,7 @@ define([
                     sendRequestData(response.data, 'RECEIVED');
                     sendErrorData(response.data);
                 }
+
                 (executeCbk || angular.noop)(historyReq);
 
 
index 3974ec30aa1ef81c0eb824844856b326e2cd2de7..e6329e1d868bdecb84e6cab02782414935bc99bc 100644 (file)
@@ -219,6 +219,16 @@ define([
                     });
 
                     if ( $scope.node ) {
+                        // prepare data for filling form
+                        data = $scope.node.type === 'rpc' ?
+                                YangmanService.prepareReceivedData(
+                                    $scope.node,
+                                    reqObj.method,
+                                    reqObj.receivedData,
+                                    reqObj.sentData,
+                                    'form'
+                                ) : data;
+
                         // try to fill node
                         YangmanService.fillNodeFromResponse($scope.node, data);
                         $scope.node.expanded = true;
@@ -245,10 +255,9 @@ define([
          */
         function showData(reqObj, select){
             var headerObj = {
-                    path: reqObj.path,
-                    method: reqObj.method
-                },
-                receivedData = {};
+                path: reqObj.path,
+                method: reqObj.method,
+            };
 
             // action select request
             if ( select ) {
@@ -258,8 +267,6 @@ define([
                     time: reqObj.responseTime,
                 };
 
-                receivedData = reqObj.receivedData;
-
                 $scope.rootBroadcast(
                     'YANGMAN_SET_ERROR_DATA',
                     reqObj.receivedData && reqObj.receivedData.hasOwnProperty('errors') ? reqObj.receivedData : {}
@@ -274,7 +281,7 @@ define([
 
             $scope.rootBroadcast(
                 'YANGMAN_SET_CODEMIRROR_DATA_RECEIVED',
-                { data: reqObj.setDataForView(receivedData) }
+                { data: reqObj.setDataForView(reqObj.receivedData) }
             );
 
             $scope.rootBroadcast(
index 3dcdcee9ae0c7143bba2d621ee3ce35e36790c96..eb9ab6dffd50777c6440eebdbdc1b526ebe17212 100644 (file)
@@ -308,11 +308,6 @@ define([
             $scope.selectedApi = api;
             $scope.selectedSubApi = subApi;
 
-            if ( subApi ) {
-                PathUtilsService.clearPath($scope.selectedSubApi.pathArray);
-                clearCM();
-            }
-
             $scope.$broadcast('SET_SEL_OPERATIONS', subApi ? $scope.selectedSubApi.operations : [], setUrl);
         }
 
index 740734ee32bc08519f56a06555465dda51c5513e..65f106a01ab03b1a01422b74d4a0d4dc43ffa7a3 100644 (file)
@@ -22,6 +22,7 @@ define([], function () {
         RequestsService
     ){
         var service = {
+            cutUrl: cutUrl,
             checkRpcReceivedData: checkRpcReceivedData,
             executeRequestOperation: executeRequestOperation,
             fillNodeFromResponse: fillNodeFromResponse,
@@ -104,7 +105,7 @@ define([], function () {
                     };
 
                     return (methodType[method] || methodType.DEFAULT)();
-                }
+                },
             };
 
             return (prepareType[node ? node.type : 'default'] || prepareType.default)();
@@ -227,6 +228,10 @@ define([], function () {
             return allPreparedData;
         }
 
+        function cutUrl(url){
+            return url.indexOf('restconf') > -1 ? url.split('restconf')[1].substring(1) : url;
+        }
+
         /**
          * Execute request built from this data
          * @param selectedApi