diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmController.js b/openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmController.js
index 3b19d23..714d953 100644
--- a/openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmController.js
+++ b/openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmController.js
@@ -83,6 +83,7 @@
         setting.language = vm.$language;
         setting.paginate = true;
         setting.info = true;
+        setting.sort = true;
         setting.columns = vm.$packageTableFields.table;
         setting.restUrl = vm.$restUrl.queryPackageInfoUrl;
         setting.tableId = vm.$tableId;
@@ -120,15 +121,13 @@
             vm.packageDetail.detailData[index].isActive = true;
         },
         $initPackageDetailTable : function (csarId) {
-            var data;
-            for(var i=0; i<vm.resource.packageInfo.length; i++) {
-                if (vm.resource.packageInfo[i].csarId == csarId) {
-                    data = vm.resource.packageInfo[i];
-                    break;
+            var url=vm.$restUrl.queryPackageInfoUrl + "/" + csarId;
+            commonUtil.get(url,null,function(resp) {
+                if (resp) {
+                    vm.resource.packageDetails=resp;
                 }
-            }
-            vm.resource.packageDetails = data;
-            vm.resource.relationInfo = [];
+       })
+
         },
         $isRowDeletingStatus : function(name) {
             var table = $("#" + vm.$tableId).dataTable();
diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmUtil.js b/openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmUtil.js
index d69be0a..80067ab 100644
--- a/openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmUtil.js
+++ b/openo-portal/portal-catalog/src/main/webapp/catalog/js/package/pmUtil.js
@@ -110,8 +110,13 @@
                 }
                 refreshByCond();
             },
-            error : function() {
-                commonUtil.showMessage($.i18n.prop("nfv-package-iui-message-onBoard-error"), "failed");
+            error : function(resp) {
+                if(resp != "" && resp.responseText == "success") {
+                    commonUtil.showMessage($.i18n.prop("nfv-package-iui-message-onBoarded"), "success");
+                    refreshByCond();
+                } else {
+                    commonUtil.showMessage($.i18n.prop("nfv-package-iui-message-onBoard-error"), "failed");
+                }
             }
         });
     }
@@ -132,7 +137,7 @@
             }
             refreshByCond();
         },
-        error : function() {
+        error : function(resp) {
             commonUtil.showMessage($.i18n.prop("nfv-package-iui-message-onBoard-error"), "failed");
         }
     });
@@ -151,7 +156,7 @@
             }
             refreshByCond();
         },
-        error : function() {
+        error : function(resp) {
             commonUtil.showMessage($.i18n.prop("nfv-package-iui-message-onBoard-error"), "failed");
         }
     });
@@ -182,7 +187,7 @@
 
 pmUtil.nameRender = function(obj) {
     return '<a href="#" onclick="vm.packageDetail.$showDetails('
-        + '\'block\',\'' + obj.aData.id + '\', \'' + obj.aData.name + '\')">' + obj.aData.name + '</a>';
+        + '\'block\',\'' + obj.aData.csarId + '\', \'' + obj.aData.name + '\')">' + obj.aData.name + '</a>';
 }
 
 pmUtil.onBoardRender = function(obj) {
diff --git a/openo-portal/portal-catalog/src/main/webapp/catalog/js/template/topoUtil.js b/openo-portal/portal-catalog/src/main/webapp/catalog/js/template/topoUtil.js
index 2c0561e..47bd9a5 100644
--- a/openo-portal/portal-catalog/src/main/webapp/catalog/js/template/topoUtil.js
+++ b/openo-portal/portal-catalog/src/main/webapp/catalog/js/template/topoUtil.js
@@ -388,7 +388,7 @@
 	nodeTemplate.currentLinkNum = 0;
 	var relationShips = data.relationShips || []; //some nodes may not have relationships
 	$.each(relationShips, function(index, obj){
-		if (obj.sourceNodeId == data.id) {
+		if (obj.sourceNodeId == data.name) {
 			switch(obj.type) {
 				case "containedIn" :
 				case "tosca.relationships.nfv.ContainedIn" :
@@ -414,7 +414,7 @@
 					break;
 			}
 		}
-		if (obj.targetNodeId == data.id) {
+		if (obj.targetNodeId == data.name) {
 			switch(obj.type) {
 				case "connectedTo" : 
 				case "tosca.relationships.nfv.ConnectsTo" :
diff --git a/openo-portal/portal-common/src/main/webapp/common/json/menu_list.json b/openo-portal/portal-common/src/main/webapp/common/json/menu_list.json
index 37447d5..859c69b 100644
--- a/openo-portal/portal-common/src/main/webapp/common/json/menu_list.json
+++ b/openo-portal/portal-common/src/main/webapp/common/json/menu_list.json
@@ -58,12 +58,6 @@
         },
         {
             "parentId":"openo_menu_orchestrator",
-            "id":"openo_menu_orchestrator_model_design",
-            "url":"/winery/servicetemplates.html",
-            "iconClass":"fa fa-folder-open-o"
-        },
-        {
-            "parentId":"openo_menu_orchestrator",
             "id":"openo_menu_orchestrator_package",
             "url":"../catalog/csarPackage.html",
             "iconClass":"fa fa-folder-open-o"
diff --git a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/controller.html b/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/controller.html
index 40fe578..62bc2d9 100644
--- a/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/controller.html
+++ b/openo-portal/portal-extsys/src/main/webapp/extsys/sdncontroller/controller.html
@@ -32,7 +32,6 @@
         <script type="text/javascript" src="js/bootstrap-table-filter-control.min.js"></script>
         <script type="text/javascript">
             $(document).ready(function () {
-                setUrlFromFile();
                 loadControllerData();
             });
             function operateFormatter(value, row, index) {
diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html b/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html
index 087f125..ad3b597 100644
--- a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html
+++ b/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/gsolcmmain.html
@@ -29,6 +29,7 @@
     <script type="text/javascript" src="js/rest.js"></script>
     <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
     <script type="text/javascript" src="js/gsolcm.js"></script>
+    <script type="text/javascript" src="../common/thirdparty/bootbox/bootbox.min.js"></script>
     <script type="text/javascript" src="js/jquery-ui-1.12.1.min.js"></script>
     <link href="css/jquery-ui-1.12.1.min.css" rel="stylesheet" />
     <script type="text/javascript" src="js/bootstrap-table-filter-control.min.js"></script>
diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js b/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js
index c675ba4..eb66796 100644
--- a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js
+++ b/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/gsolcm.js
@@ -538,21 +538,26 @@
 }
 
 function deleteNe(rowId, row) {
-    var instanceId = row.serviceId;
-    var serviceType = row.serviceType;
-    var gatewayService = '/openoapi/servicegateway/v1/services/' + instanceId + '/terminate';
-    var remove = function () {
-        $('#sai').bootstrapTable('remove', {field: 'serviceId', values: [instanceId]});
+    var deleteHandle = function(result) {
+        if(result) {
+            var instanceId = row.serviceId;
+            var serviceType = row.serviceType;
+            var gatewayService = '/openoapi/servicegateway/v1/services/' + instanceId + '/terminate';
+            var remove = function () {
+                $('#sai').bootstrapTable('remove', {field: 'serviceId', values: [instanceId]});
+            };
+            if(serviceType === 'GSO') {
+                deleteGsoServiceInstance(gatewayService, instanceId, remove);
+            } else if (serviceType === 'NFVO') {
+                var nfvoNsUri = '/openoapi/nslcm/v1/ns';
+                deleteNonGsoServiceInstance(gatewayService, nfvoNsUri, instanceId, remove);
+            } else if (serviceType === 'SDNO') {
+                var sdnoNsUri = '/openoapi/sdnonslcm/v1/ns';
+                deleteNonGsoServiceInstance(gatewayService, sdnoNsUri, instanceId, remove);
+            }
+        }
     };
-    if(serviceType === 'GSO') {
-        deleteGsoServiceInstance(gatewayService, instanceId, remove)
-    } else if (serviceType === 'NFVO') {
-        var nfvoNsUri = '/openoapi/nslcm/v1/ns';
-        deleteNonGsoServiceInstance(gatewayService, nfvoNsUri, instanceId, remove);
-    } else if (serviceType === 'SDNO') {
-        var sdnoNsUri = '/openoapi/sdnonslcm/v1/ns';
-        deleteNonGsoServiceInstance(gatewayService, sdnoNsUri, instanceId, remove);
-    }
+    bootbox.confirm("Do you confirm to delete service?", deleteHandle);
 }
 
 function deleteGsoServiceInstance(gatewayService, instanceId, remove) {
diff --git a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/rest.js b/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/rest.js
index 7590bdf..a6e2eba 100644
--- a/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/rest.js
+++ b/openo-portal/portal-lifecyclemgr/src/main/webapp/lifecyclemgr/js/rest.js
@@ -174,7 +174,7 @@
     var parameter = {
             'sort': [],
             'pagination': 0,
-            'pagesize': 25,
+            'pagesize': 10000,
             'condition': {},
             'serviceId': ""
         };
