Modify the bug which "Different service template shows the same nodes template table"
authornancylizi <li.zi30@zte.com.cn>
Thu, 29 Sep 2016 11:49:09 +0000 (19:49 +0800)
committernancylizi <li.zi30@zte.com.cn>
Thu, 29 Sep 2016 11:49:09 +0000 (19:49 +0800)
Issue-id:TOSCA-91

Change-Id: I6f7ee6c11f2926d1a0945f0a52e718e992a129fe
Signed-off-by: nancylizi <li.zi30@zte.com.cn>
openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmController.js
openo-portal/portal-catalog/src/main/webapp/catalog/js/template/tmDetailController.js
openo-portal/portal-catalog/src/main/webapp/catalog/templateDetail.html

index 1b1c76d..4b667a4 100644 (file)
@@ -23,7 +23,7 @@ var vm = avalon.define({
        $templateTableFields : {// table columns\r
                table: [\r
             {"mData": "serviceTemplateId", name: "ID", "bVisible": false},\r
-            {"mData": "templateName", name: $.i18n.prop("nfv-template-iui-field-templatename"), "fnRender" : tmUtil.nameRender},\r
+            {"mData": "templateName",name: $.i18n.prop("nfv-template-iui-field-templatename"),"fnRender": tmUtil.nameRender},\r
             //{"mData": "templateName", name: $.i18n.prop("nfv-template-iui-field-templatename-topo"), "fnRender" : tmUtil.topoRender},\r
             //{"mData": "templateName", name: $.i18n.prop("nfv-template-iui-field-templatename-nodes"), "fnRender" : tmUtil.nodesRender},\r
             {"mData": "vendor", name: $.i18n.prop("nfv-template-iui-field-vendor")},\r
@@ -33,7 +33,7 @@ var vm = avalon.define({
                ]\r
        },\r
     $language: {\r
-            "sProcessing": "<img src='../component/thirdparty/data-tables/images/loading-spinner-grey.gif'/><span>&nbsp;&nbsp;"\r
+            "sProcessing": "<img src='../common/thirdparty/data-tables/images/loading-spinner-grey.gif'/><span>&nbsp;&nbsp;"\r
                         +$.i18n.prop("nfv-nso-iui-table-sProcess")+"</span>",\r
             "sLengthMenu": $.i18n.prop("nfv-nso-iui-table-sLengthMenu"),\r
             "sZeroRecords": $.i18n.prop("nfv-nso-iui-table-sZeroRecords"),\r
index 4db377e..fe1567c 100644 (file)
  * limitations under the License.\r
  */\r
 var vm = avalon.define({\r
-    $id: "tmDetailController",\r
-    templateId: "",\r
-    templateData: [\r
+    $id : "tmDetailController",\r
+    templateId : "",\r
+    globalNodesData: {},\r
+    templateData : [\r
         {href: "#topology", name: "Topology", value: true},\r
         {href: "#nodes", name: "Nodes", value: false}\r
     ],\r
@@ -71,14 +72,16 @@ var vm = avalon.define({
             success: function (resp) {\r
                 if (resp) {\r
                     vm.nodesTab.nodesDetail.nodesTemplateDetailData = [];\r
+                    var nodesTempData = [];\r
                     for (var i = 0; i < resp.length; i++) {\r
                         //generate node table display data\r
                         var nodeTemplate = topoUtil.generateNodeTemplate(resp[i]);\r
-                        vm.nodesTab.nodesList.nodesData.push(nodeTemplate);\r
+                        nodesTempData.push(nodeTemplate);\r
                     }\r
+                    vm.globalNodesData[vm.templateId] = nodesTempData;\r
                     vm.nodesTab.nodesDetail.nodesTemplateDetailData = resp;\r
                     //generate topology graph display data\r
-                    vm.topologyTab.topoTemplateData = topoUtil.generateTopoTemplate(vm.nodesTab.nodesList.nodesData.$model);\r
+                    vm.topologyTab.topoTemplateData = topoUtil.generateTopoTemplate(vm.globalNodesData[vm.templateId]);\r
                     //initialize topology data\r
                     topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model);\r
                     //vm.nodesTab.nodesList.$initNodesTable();\r
@@ -89,31 +92,6 @@ var vm = avalon.define({
             }\r
         });\r
     },\r
-    $initNodesData: function () {\r
-        $.ajax({\r
-            type: "GET",\r
-            url: vm.$restUrl.queryNodeTemplateUrl,\r
-            success: function (resp) {\r
-                if (resp) {\r
-                    vm.nodesTab.nodesDetail.nodesTemplateDetailData = [];\r
-                    for (var i = 0; i < resp.length; i++) {\r
-                        //generate node table display data\r
-                        var nodeTemplate = topoUtil.generateNodeTemplate(resp[i]);\r
-                        vm.nodesTab.nodesList.nodesData.push(nodeTemplate);\r
-                    }\r
-                    vm.nodesTab.nodesDetail.nodesTemplateDetailData = resp;\r
-                    //generate topology graph display data\r
-                    //vm.topologyTab.topoTemplateData = topoUtil.generateTopoTemplate(vm.nodesTab.nodesList.nodesData.$model);\r
-                    //initialize topology data\r
-                    //topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model);\r
-                    vm.nodesTab.nodesList.$initNodesTable();\r
-                }\r
-            },\r
-            error: function () {\r
-                commonUtil.showMessage($.i18n.prop("nfv-topology-iui-message-error"), "danger");\r
-            }\r
-        });\r
-    },\r
     topologyTab: {\r
         topology: "topology.html",\r
         vnfTip: $.i18n.prop("nfv-topology-iui-vnf-tip"),\r
@@ -161,9 +139,6 @@ var vm = avalon.define({
                 {"mData": "version", name: $.i18n.prop("nfv-template-iui-field-version")},\r
                 {"mData": "csarid", name: "packageID", "bVisible": false},\r
                 {"mData": "type", name: $.i18n.prop("nfv-template-iui-field-type")},\r
-                //{"mData": "inputs", name: $.i18n.prop("nfv-template-iui-field-inputs"),"fnRender" : tmDetailUtil.inputsRender},\r
-                //{"mData": "outputs", name: $.i18n.prop("nfv-template-iui-field-outputs"),"fnRender" : tmDetailUtil.outputsRender},\r
-                //{"mData": "operations", name: $.i18n.prop("nfv-template-iui-field-operations")}\r
             ]\r
         },\r
         $initNfvNodesTab: function () {\r
@@ -185,15 +160,43 @@ var vm = avalon.define({
                     tr.removeClass('shown');\r
                 }\r
                 else {\r
-                    table.fnOpen(tr[0], vm.nodesTab.nodesList.$format_Detail(), 'details');\r
+                    table.fnOpen(tr[0], vm.nodesTab.nodesList.$format_Detail(table,tr[0]), 'details');\r
                     tr.addClass('shown');\r
                 }\r
             });\r
         },\r
-\r
+        $initNodesData: function (tempId) {\r
+            $.ajax({\r
+                type: "GET",\r
+                //url: vm.$restUrl.queryNodeTemplateUrl,\r
+                url: "/openoapi/catalog/v1/servicetemplates/" + tempId + "/nodetemplates",\r
+                success: function (resp) {\r
+                    if (resp) {\r
+                        vm.nodesTab.nodesDetail.templatesNodesDetailData[tempId] = [];\r
+                        var nodesTempData = [];\r
+                        for (var i = 0; i < resp.length; i++) {\r
+                            //generate node table display data\r
+                            var nodeTemplate = topoUtil.generateNodeTemplate(resp[i]);\r
+                            nodesTempData.push(nodeTemplate);\r
+                        }\r
+                        vm.nodesTab.nodesList.nodesData[tempId] = nodesTempData;\r
+                        vm.nodesTab.nodesDetail.templatesNodesDetailData[tempId] = resp;\r
+                        //generate topology graph display data\r
+                        //vm.topologyTab.topoTemplateData = topoUtil.generateTopoTemplate(vm.nodesTab.nodesList.nodesData.$model);\r
+                        //initialize topology data\r
+                        //topoUtil.initTopoData(vm.topologyTab.topoTemplateData.$model);\r
+                        vm.nodesTab.nodesList.$initNodesTable(tempId);\r
+                    }\r
+                },\r
+                error: function () {\r
+                    commonUtil.showMessage($.i18n.prop("nfv-topology-iui-message-error"), "danger");\r
+                }\r
+            });\r
+        },\r
         //nodes list table\r
         nodesList: {\r
-            nodesData: [],\r
+            nodesData: {},\r
+            tempId:"",\r
             $nodesTabDataId: "ict_nodes_table",\r
             $nodesTabFields: {// table columns\r
                 table: [\r
@@ -227,27 +230,32 @@ var vm = avalon.define({
                     }\r
                 ]\r
             },\r
-            $initNodesTable: function () {\r
+            $initNodesTable: function (tempId) {\r
                 var setting = {};\r
                 setting.language = vm.$language;\r
                 setting.paginate = true;\r
                 setting.info = true;\r
                 //setting.sort = true;\r
                 setting.columns = vm.nodesTab.nodesList.$nodesTabFields.table;\r
-                setting.restUrl = vm.$restUrl.queryNodeTemplateUrl;\r
-                setting.tableId = vm.nodesTab.nodesList.$nodesTabDataId;\r
+                setting.restUrl = "/openoapi/catalog/v1/servicetemplates/" + tempId + "/nodetemplates";\r
+                setting.tableId = vm.nodesTab.nodesList.$nodesTabDataId + "_" + tempId;\r
                 //serverPageTable.initTableWithData(setting,vm.nodesTab.nodesList.$nodesTabDataId + '_div',vm.nodesTab.nodesList.nodesData.$model);\r
-                serverPageTable.initTableWithoutLib(setting, {}, vm.nodesTab.nodesList.$nodesTabDataId + '_div');\r
+                serverPageTable.initTableWithoutLib(setting, {}, setting.tableId + '_div');\r
             },\r
-            $format_Detail: function () {\r
-                var sOut = '<div class="row-fluid" data-name="table_zone"><div class="col-xs-12" id="ict_nodes_table_div"></div></div>'\r
-                vm.$initNodesData();\r
+            $format_Detail: function (oTable, nTr) {\r
+                var aData = oTable.fnGetData(nTr);\r
+                var tempId = aData.serviceTemplateId;\r
+                vm.nodesTab.nodesList.tempId = tempId;\r
+                var tableId = "ict_nodes_table" + "_" + tempId + "_div";\r
+                var sOut = '<div class="row-fluid" data-name="table_zone"><div class="col-xs-12" id="'+tableId+'"></div></div>'\r
+                vm.nodesTab.$initNodesData(tempId);\r
                 return sOut;\r
             },\r
         },\r
         //Nodes Details\r
         nodesDetail: {\r
             nodesTemplateDetailData: [],\r
+            templatesNodesDetailData:[],\r
             detailTitle: "",\r
             isShow: "none",\r
             detailIndex: 0,\r
@@ -264,13 +272,13 @@ var vm = avalon.define({
                     isActive: false\r
                 }\r
             ],\r
-            $showDetails: function (isShow, nodetypeid, nodetypename) {\r
+            $showDetails: function (isShow, nodetypeid, nodetypename,tempId) {\r
                 vm.nodesTab.nodesDetail.isShow = isShow;\r
                 if (isShow == "block") {\r
                     vm.nodesTab.nodesDetail.detailTitle = nodetypename + " " + $.i18n.prop("nfv-templateDetail-nodesTab-iui-title-nodeDetail"),\r
                         $('#' + vm.nodesTab.nodesDetail.detailData[0].id).click();\r
                     vm.nodesTab.nodesDetail.detailData[0].isActive = true;\r
-                    vm.nodesTab.nodesDetail.$initNodeDetailTable(nodetypeid);\r
+                    vm.nodesTab.nodesDetail.$initNodeDetailTable(nodetypeid,tempId);\r
                 }\r
             },\r
             detailCondChange: function (index) {\r
@@ -280,7 +288,7 @@ var vm = avalon.define({
                 }\r
                 vm.nodesTab.nodesDetail.detailData[index].isActive = true;\r
             },\r
-            $tableFields: {// table columns\r
+            $tableFields : {// table columns\r
                 general: [\r
                     {\r
                         "mData": "key",\r
@@ -323,8 +331,8 @@ var vm = avalon.define({
                     }\r
                 ]\r
             },\r
-            $initNodeDetailTable: function (nodetemplateid) {\r
-                var data = topoUtil.getCurrentDetailData(vm.nodesTab.nodesDetail.nodesTemplateDetailData.$model, nodetemplateid);\r
+            $initNodeDetailTable: function (nodetemplateid,tempId) {\r
+                var data = topoUtil.getCurrentDetailData(vm.nodesTab.nodesList.nodesData[tempId], nodetemplateid);\r
                 //initialize three tables of nodedetail\r
                 $.each(vm.nodesTab.nodesDetail.$tableFields, function (key, value) {\r
                     var setting = {};\r
index f2b88d7..5582a97 100644 (file)
 \r
        <script type="text/javascript" src="../common/thirdparty/jquery/jquery-1.10.2.min.js"></script>\r
     <script type="text/javascript" src="../common/thirdparty/bootstrap/js/bootstrap.min.js"></script>\r
-       <script type="text/javascript" src="../common/thirdparty/data-tables/jquery.dataTables.js"></script>\r
-       <script type="text/javascript" src="../common/thirdparty/data-tables/jquery.dataTables.min.js"></script>\r
+       <!--<script type="text/javascript" src="../common/thirdparty/data-tables/jquery.dataTables.js"></script>-->\r
+       <script type="text/javascript" src="../common/thirdparty/data-tables/jquery.dataTables-1.9.4.min.js"></script>\r
        <script type="text/javascript" src="../common/thirdparty/jquery.i18n/jquery.i18n.properties-1.0.9.js"></script>\r
 \r
        <script type="text/javascript" src="../common/thirdparty/bootstrap-growl/bootstrap-growl.min.js"></script>\r