Divide the MSB source codes into two repos
[msb/apigateway.git] / apiroute / apiroute-service / src / main / resources / iui-route / js / routeController.js
-/*
- * Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *     Author: Zhaoxing Meng
- *     email: meng.zhaoxing1@zte.com.cn
- */
-var table;
-var vm = avalon
-               .define({
-                       $id : "routeController",
-                       targetServiceUrl:"",
-                       targetFullServiceUrl:"",
-                       iuiRootPath:iuiRootPath,
-                       apiRootPath:apiRootPath,
-                       apiIframeUrl:"",
-                       iuiIframeUrl:"",
-                       boxVisible:true,
-                       routeTargetTitle:$.i18n.prop("org_openo_msb_route_content_title"),                      
-                       server_rtn:{
-                               info_block:false,
-                               warning_block:false,
-                               rtn_info:""
-                       },
-                       showAPIType:"0",
-                       showAPITypeName:[$.i18n.prop("org_openo_msb_route_swagger_type_predefined"),$.i18n.prop("org_openo_msb_route_swagger_type_custominput")],
-                       $msbProtocol :["REST","UI","HTTP","MQ","FTP","SNMP","TCP","UDP"],
-                       $msbType:["UI","NAF","SAF"],
-                       apiJson:{
-                               local:"",
-                               custom:""
-                       },
-                       setAPIType:function(type){
-                               vm.apiRouteInfo.apiJsonType=type;
-                               if(type==0){
-                                       vm.apiJson.local=vm.jsonApiSelectList.selectItems[0];
-                               }
-
-                       },      
-                       jsonApiSelectList:  {
-                                       condName : "type",
-                                       component_type : 'select',
-                                       selectItems : []
-                               },
-                       
-                dataTableLanguage: {
-                "sProcessing": "<img src='../img/loading-spinner-grey.gif'/><span>&nbsp;&nbsp;Loadding...</span>",   
-                "sLengthMenu": $.i18n.prop("org_openo_msb_route-table-sLengthMenu"),
-                "sZeroRecords": $.i18n.prop("org_openo_msb_route-table-sZeroRecords"),
-                "sInfo": "<span class='seperator'>  </span>" + $.i18n.prop("org_openo_msb_route-table-sInfo"),
-                "sInfoEmpty": $.i18n.prop("org_openo_msb_route-table-sInfoEmpty"),
-                "sGroupActions": $.i18n.prop("org_openo_msb_route-table-sGroupActions"),
-                "sAjaxRequestGeneralError": $.i18n.prop("org_openo_msb_route-table-sAjaxRequestGeneralError"),
-                "sEmptyTable": $.i18n.prop("org_openo_msb_route-table-sEmptyTable"),
-                "oPaginate": {
-                    "sPrevious": $.i18n.prop("org_openo_msb_route-table-sPrevious"),
-                    "sNext": $.i18n.prop("org_openo_msb_route-table-sNext"),
-                    "sPage": $.i18n.prop("org_openo_msb_route-table-sPage"),
-                    "sPageOf": $.i18n.prop("org_openo_msb_route-table-sPageOf")
-                },
-                "sSearch": $.i18n.prop("org_openo_msb_route-table-search"),
-                "sInfoFiltered": $.i18n.prop("org_openo_msb_route-table-infofilter") 
-            }, 
-                       $apiRouteUrl :apiBasePath+'/apiRoute',
-                       $apiRouteInstanceUrl :apiBasePath+'/apiRoute/{serviceName}/version/{version}',  
-                       $apiRouteStatusUrl :apiBasePath+'/apiRoute/{serviceName}/version/{version}/status/{status}',
-                       $apiDocsUrl :apiBasePath+'/apiRoute/apiDocs',   
-                       $apiGatewayPortUrl :apiBasePath+'/apiRoute/apiGatewayPort',     
-                       $discoverInfoUrl :apiBasePath+'/apiRoute/discoverInfo', 
-                       $iuiRouteUrl :apiBasePath+'/iuiRoute',
-                       $iuiRouteInstanceUrl :apiBasePath+'/iuiRoute/{serviceName}',
-                       $iuiRouteStatusUrl :apiBasePath+'/iuiRoute/{serviceName}/status/{status}',
-                       $customRouteUrl :apiBasePath+'/customRoute/all',
-                       $customRouteInstanceUrl :apiBasePath+'/customRoute/instance',
-                       $customRouteStatusUrl :apiBasePath+'/customRoute/status',       
-                       $msbRouteUrl:apiBasePath+'/services',   
-                       $msbRouteInstanceUrl :apiBasePath+'/services/{serviceName}/version/{version}',
-                       routeLoading:false,             
-                       apiRouteArray :  [],
-                       apiRouteInfo : {
-                           oldServiceName:"",                                  
-                               serviceName : "",
-                               oldVersion:"",  
-                               version : "",
-                               status:"",
-                               url:"",
-                               metricsUrl:"/admin/metrics",
-                               apiJson:"/swagger.json",
-                               apiJsonType:"1",
-                               control:"",
-                               server:"",
-                               servers: []
-                       },      
-                       iuiRouteArray :  [],
-                       iuiRouteInfo : {        
-                           oldServiceName:"",                          
-                               serviceName : "",
-                               status:"",
-                               url:"",
-                               server:"",
-                               control:"",
-                               servers: []
-                       },      
-                       customRouteArray :  [],
-                       customGroupRouteArray :  [],
-                       customRouteInfo : {     
-                           oldServiceName:"",          
-                               serviceName : "",
-                               status:"",
-                               url:"",
-                               server:"",
-                               control:"",
-                               servers: []
-                       },
-                       msbRouteArray :  [],
-                       msbRouteInfo : {        
-                           oldServiceName:"",  
-                           oldVersion:"",                              
-                               serviceName : "",
-                               version:"",
-                               status:"0",
-                               nodes:[],
-                               newHost:"",
-                               newttl:0,
-                               url:"",
-                               protocol:"",
-                               visualRange:"",
-                               visualRangeArray:[]                     
-                       },
-                       discoverInfo:{
-                               ip:"",
-                               port:"",
-                               enabled:false,
-                               deployMode:""
-                       },
-                       selectedRoute:"",
-                       selectedRouteType:"",
-                       routeDlgInfo:{
-                               titleName:"",
-                               saveType:""
-                       },                                                                                              
-                       $initRoute : function() {
-                       
-
-
-                           vm.routeLoading=true;
-
-                            $.ajax({
-                                       "type": 'get',
-                                        async: false,
-                                       "url":  vm.$discoverInfoUrl,
-                                       "dataType": "json",
-                                       success: function (resp) { 
-                                  
-                                        vm.discoverInfo = (resp==null)?"":resp;
-                                                                                                       
-                                       },
-                                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                                                  bootbox.alert("get discoverInfo fails:"+textStatus+":"+errorThrown); 
-                                        }
-                                   });
-
-                                 $.ajax({
-                       "type": 'get',
-                       "url":  vm.$apiRouteUrl,
-                       "dataType": "json",
-                       success: function (resp) {  
-                            vm.apiRouteArray = (resp==null)?[]:resp;  
-                            vm.apiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1});                     
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                                  bootbox.alert("get api services fails:"+textStatus+":"+errorThrown);                       
-                              return;
-                        },
-                        complete:function(){
-                               vm.routeLoading=false;
-                               routeUtil.refreshRoute();
-                                $.ajax({
-                                       "type": 'get',
-                                       "url":  vm.$apiGatewayPortUrl,
-                                       "dataType": "text",
-                                       success: function (resp) { 
-                                  
-                                        vm.targetServiceUrl=location.hostname+":"+resp;
-                                                                                                       
-                                       },
-                                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                                                  bootbox.alert("get apiGateway published port fails:"+textStatus+":"+errorThrown); 
-                                        }
-                                   });
-                         }
-                   });
-
-
-
-                                 $.ajax({
-                       "type": 'get',
-                       "url":  vm.$iuiRouteUrl,
-                       "dataType": "json",
-                       success: function (resp) {  
-                            vm.iuiRouteArray = (resp==null)?[]:resp;  
-                            vm.iuiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1});                     
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                                  bootbox.alert("get iui services fails:"+textStatus+":"+errorThrown);                       
-                              return;
-                        },
-                        complete:function(){                           
-                               routeUtil.refreshRoute();                               
-                         }
-                   });
-
-
-
-                                 $.ajax({
-                       "type": 'get',
-                       "url":  vm.$customRouteUrl,
-                       "dataType": "json",
-                       success: function (resp) {  
-                             vm.customRouteArray = (resp==null)?[]:resp;   
-                       
-                           if(resp!=null && resp.length>0)
-                           {
-                            routeUtil.groupRoute(resp);
-                           }
-
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                                  bootbox.alert("get custom services fails:"+textStatus+":"+errorThrown);                       
-                              return;
-                        },
-                        complete:function(){                           
-                               routeUtil.refreshRoute();                               
-                         }
-                   });
-
-
-                                 $.ajax({
-                       "type": 'get',
-                       "url":  vm.$apiDocsUrl,
-                       "dataType": "json",
-                       success: function (resp) {  
-                            vm.jsonApiSelectList.selectItems= (resp==null)?[]:resp;                    
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                                  bootbox.alert("get local apiDocs  fails:"+textStatus+":"+errorThrown); 
-                        }
-                   });
-
-
-
-                                 vm.initMSBRoute();
-
-
-               
-
-                       },
-                       initMSBRoute:function(){
-                               vm.initIUIfori18n();
-
-                               $.ajax({
-                       "type": 'get',
-                       "url":  vm.$msbRouteUrl,
-                       "dataType": "json",
-                       success: function (resp) {  
-                             vm.msbRouteArray = (resp==null)?[]:resp;  
-                       
-                            vm.msbRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); 
-                                               
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                                  bootbox.alert("get msb services fails:"+XMLHttpRequest.responseText);                       
-                              return;
-                        },
-                        complete:function(){
-
-                               table=$('#msbTable').DataTable({
-                                                    
-                                                         "oLanguage": vm.dataTableLanguage,
-                                                         columnDefs: [ {
-                                                                     targets: [ 0,8 ],
-                                                                     "searchable": false,
-                                                                     "bSortable": false,
-                                                                   }],                                                              
-                                                                  "order": [[2, 'asc']]
-                                                       });
-                               
-                               }
-                               });
-              
-                  
-                       },
-                       
-                       clickDisplayGraphAlink: function () {
-               vm.boxVisible = !vm.boxVisible;
-               },
-               addmsbHost:function(){
-                       if(vm.msbRouteInfo.newHost==""){
-                               vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_empty");
-                                       return;
-                       }
-
-                       if(vm.msbRouteInfo.newttl==""){
-                               vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_ttl_empty");
-                                       return;
-                       }
-
-                         var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/   
-                          var ip,port; 
-                                  if(!reg.test(vm.msbRouteInfo.newHost)){  
-                                       vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_format");
-                                       return;
-                                  }
-                                  else{
-                       
-                                       var hosts=vm.msbRouteInfo.newHost.split(":");  
-                                       ip=hosts[0];
-                                       port=hosts[1];
-                                  }
-
-                var reg_ttl=/^\d+$/
-         
-                                if(!reg_ttl.test(vm.msbRouteInfo.newttl)){  
-                                       vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_ttl_format");
-                                       return;
-                                  }  
-
-                                 
-
-                       // determine whether host repeated
-                               for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
-                               
-                                               if(vm.msbRouteInfo.nodes[i].ip==ip && vm.msbRouteInfo.nodes[i].port==port )
-                                               {
-                                                       vm.server_rtn.warning_block=true;
-                                                   vm.server_rtn.info_block=false; 
-                                                   vm.server_rtn.rtn_info=  $.i18n.prop('org_openo_msb_route_err_host_repeat',[vm.msbRouteInfo.newHost]); 
-                                                   return;
-                                               }
-                                       
-                               }
-
-                               vm.msbRouteInfo.nodes.push({"ip":ip,"port":port,"ttl":vm.msbRouteInfo.newttl});
-                               vm.msbRouteInfo.newHost="";
-                               vm.msbRouteInfo.newttl="";
-                               vm.server_rtn.warning_block=false;
-                           vm.server_rtn.info_block=false; 
-                               vm.server_rtn.rtn_info= "";
-
-
-               },
-               delmsbHost:function(ip,port){
-                       
-                       bootbox.confirm( $.i18n.prop('org_openo_msb_route_err_host_del',[ip],[port]),function(result){
-                               if(result){
-                                       
-                                        for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
-                                              if(vm.msbRouteInfo.nodes[i].ip == ip && vm.msbRouteInfo.nodes[i].port == port){
-                                                   vm.msbRouteInfo.nodes.splice(i, 1);
-                                                   break;
-                                               }
-                                           }   
-
-                              }
-       
-                               });
-
-                               vm.server_rtn.warning_block=false;
-                           vm.server_rtn.info_block=false; 
-                               vm.server_rtn.rtn_info= "";
-
-               },
-               addapiHost:function(){
-                       if(vm.apiRouteInfo.server==""){
-                               vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_empty");
-                                       return;
-                       }
-
-                         var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/   
-                         var ip,port;
-                                  if(!reg.test(vm.apiRouteInfo.server)){  
-                                       vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info=  $.i18n.prop("org_openo_msb_route_err_host_format");
-                                       return;
-                                  }
-                                  else{
-                                       var hosts=vm.apiRouteInfo.server.split(":")
-                                       ip=hosts[0];
-                                       port=hosts[1];
-                                  }
-
-                       // determine whether host repeated
-                               for(var i=0;i<vm.apiRouteInfo.servers.length;i++){
-                               
-                                               if(vm.apiRouteInfo.servers[i].ip==ip && vm.apiRouteInfo.servers[i].port==port)
-                                               {
-                                                       vm.server_rtn.warning_block=true;
-                                                   vm.server_rtn.info_block=false; 
-                                                   vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_host_repeat',[vm.apiRouteInfo.server]); 
-                                                       return;
-                                               }
-                                       
-                               }
-                               var server={ip:ip,port:port,weight: 0};
-                               vm.apiRouteInfo.servers.push(server);
-                               vm.apiRouteInfo.server="";
-                               vm.server_rtn.warning_block=false;
-                           vm.server_rtn.info_block=false; 
-                               vm.server_rtn.rtn_info= "";
-
-
-               },
-               delapiHost:function(ip,port){
-                       
-                       bootbox.confirm( $.i18n.prop('org_openo_msb_route_err_host_del',[ip],[port]),function(result){
-                               if(result){
-                                       
-                                        for(var i=0;i<vm.apiRouteInfo.servers.length;i++){
-                                              if(vm.apiRouteInfo.servers[i].ip == ip && vm.apiRouteInfo.servers[i].port == port ){
-                                                   vm.apiRouteInfo.servers.splice(i, 1);
-                                                   break;
-                                               }
-                                           }   
-
-                              }
-       
-                               });
-
-                               vm.server_rtn.warning_block=false;
-                           vm.server_rtn.info_block=false; 
-                               vm.server_rtn.rtn_info= "";
-
-               },
-               addcustomHost:function(){
-                       if(vm.customRouteInfo.server==""){
-                               vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info=  $.i18n.prop("org_openo_msb_route_err_host_empty");
-                                       return;
-                       }
-
-                         var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/   
-                         var ip,port;
-                                  if(!reg.test(vm.customRouteInfo.server)){  
-                                       vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_format");
-                                       return;
-                                  }
-                                  else{
-                                       var hosts=vm.customRouteInfo.server.split(":")
-                                       ip=hosts[0];
-                                       port=hosts[1];
-                                  }
-
-                       //判断host是否重复
-                               for(var i=0;i<vm.customRouteInfo.servers.length;i++){
-                               
-                                               if(vm.customRouteInfo.servers[i].ip==ip && vm.customRouteInfo.servers[i].port==port)
-                                               {
-                                                       vm.server_rtn.warning_block=true;
-                                                   vm.server_rtn.info_block=false; 
-                                                   vm.server_rtn.rtn_info=  $.i18n.prop('org_openo_msb_route_err_host_repeat',[vm.apiRouteInfo.server]);
-                                                       return;
-                                               }
-                                       
-                               }
-                               var server={ip:ip,port:port,weight: 0};
-                               vm.customRouteInfo.servers.push(server);
-                               vm.customRouteInfo.server="";
-                               vm.server_rtn.warning_block=false;
-                           vm.server_rtn.info_block=false; 
-                               vm.server_rtn.rtn_info= "";
-
-
-               },
-               delcustomHost:function(ip,port){
-                       
-                       bootbox.confirm( $.i18n.prop('org_openo_msb_route_err_host_del',[ip],[port]),function(result){
-                               if(result){
-                                       
-                                        for(var i=0;i<vm.customRouteInfo.servers.length;i++){
-                                              if(vm.customRouteInfo.servers[i].ip == ip && vm.customRouteInfo.servers[i].port == port ){
-                                                   vm.customRouteInfo.servers.splice(i, 1);
-                                                   break;
-                                               }
-                                           }   
-
-                              }
-       
-                               });
-
-                               vm.server_rtn.warning_block=false;
-                           vm.server_rtn.info_block=false; 
-                               vm.server_rtn.rtn_info= "";
-
-               },
-               addiuiHost:function(){
-                       if(vm.iuiRouteInfo.server==""){
-                               vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_empty");
-                                       return;
-                       }
-
-                         var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/   
-                         var ip,port;
-                                  if(!reg.test(vm.iuiRouteInfo.server)){  
-                                       vm.server_rtn.warning_block=true;
-                                   vm.server_rtn.info_block=false; 
-                                   vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_format");
-                                       return;
-                                  }
-                                  else{
-                                       var hosts=vm.iuiRouteInfo.server.split(":")
-                                       ip=hosts[0];
-                                       port=hosts[1];
-                                  }
-
-                       //判断host是否重复
-                               for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){
-                               
-                                               if(vm.iuiRouteInfo.servers[i].ip==ip && vm.iuiRouteInfo.servers[i].port==port)
-                                               {
-                                                       vm.server_rtn.warning_block=true;
-                                                   vm.server_rtn.info_block=false; 
-                                                   vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_host_repeat',[vm.apiRouteInfo.server]);
-                                                       return;
-                                               }
-                                       
-                               }
-                               var server={ip:ip,port:port,weight: 0};
-                               vm.iuiRouteInfo.servers.push(server);
-                               vm.iuiRouteInfo.server="";
-                               vm.server_rtn.warning_block=false;
-                           vm.server_rtn.info_block=false; 
-                               vm.server_rtn.rtn_info= "";
-
-
-               },
-               deliuiHost:function(ip,port){
-                       
-                       bootbox.confirm($.i18n.prop('org_openo_msb_route_err_host_del',[ip],[port]),function(result){
-                               if(result){
-                                       
-                                        for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){
-                                              if(vm.iuiRouteInfo.servers[i].ip == ip && vm.iuiRouteInfo.servers[i].port == port ){
-                                                   vm.iuiRouteInfo.servers.splice(i, 1);
-                                                   break;
-                                               }
-                                           }   
-
-                              }
-       
-                               });
-
-                               vm.server_rtn.warning_block=false;
-                           vm.server_rtn.info_block=false; 
-                               vm.server_rtn.rtn_info= "";
-
-               },
-               $showmsbRouteDlg:function() {
-                       vm.msbRouteInfo.serviceName=""; 
-                               vm.msbRouteInfo.version="";
-                               vm.msbRouteInfo.url="";
-                               vm.msbRouteInfo.protocol="";
-                               vm.msbRouteInfo.visualRange="";
-                               vm.msbRouteInfo.visualRangeArray=[];
-                               vm.msbRouteInfo.newHost="";
-                               vm.msbRouteInfo.nodes=[];                                       
-                               vm.msbRouteInfo.status="1";     
-                       
-
-                               vm.routeDlgInfo.saveType = "add";
-                               vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_add_msb');
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=false;
-
-               
-
-                               $(".form-group").each(function () {
-                                               $(this).removeClass('has-success');
-                                               $(this).removeClass('has-error');
-                                               $(this).find(".help-block[id]").remove();
-                                               $(this).find(".form-tip").removeClass('form-input-focus');
-                                               $(this).find(".item-tip").removeClass('item-tip-focus');
-                                       });
-
-                               $("#msbrouteDlg").modal("show");
-               },
-               $showiuiRouteDlg:function() {
-
-                               vm.iuiRouteInfo.serviceName="";
-                               vm.iuiRouteInfo.url="";
-                               vm.iuiRouteInfo.server="";
-                               vm.iuiRouteInfo.servers=[];     
-                               vm.iuiRouteInfo.control="0";    
-                               vm.iuiRouteInfo.status="1";     
-                       
-
-                               vm.routeDlgInfo.saveType = "add";
-                               vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_add_iui');
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=false;
-
-                               //$("input[name='iuioriService']").val("");
-
-                               $(".form-group").each(function () {
-                                               $(this).removeClass('has-success');
-                                               $(this).removeClass('has-error');
-                                               $(this).find(".help-block[id]").remove();
-                                               $(this).find(".form-tip").removeClass('form-input-focus');
-                                               $(this).find(".item-tip").removeClass('item-tip-focus');
-                                       });
-
-                               $("#iuirouteDlg").modal("show");
-                       },
-                       $showcustomRouteDlg:function() {
-
-                               vm.customRouteInfo.serviceName="";
-                               vm.customRouteInfo.url="";
-                               vm.customRouteInfo.server="";
-                               vm.customRouteInfo.servers=[];  
-                               vm.customRouteInfo.control="0"; 
-                               vm.customRouteInfo.status="1";          
-                       
-
-                               vm.routeDlgInfo.saveType = "add";
-                               vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_add_custom');
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=false;
-
-                               //$("input[name='customoriService']").val("");
-
-                               $(".form-group").each(function () {
-                                               $(this).removeClass('has-success');
-                                               $(this).removeClass('has-error');
-                                               $(this).find(".help-block[id]").remove();
-                                               $(this).find(".form-tip").removeClass('form-input-focus');
-                                               $(this).find(".item-tip").removeClass('item-tip-focus');
-                                       });
-
-                               $("#customrouteDlg").modal("show");
-                       },
-                       $showApiRouteDlg : function() {
-
-                               $('#apiTab a:first').tab('show');
-                               vm.apiRouteInfo.serviceName="";
-                               vm.apiRouteInfo.version="";
-                               vm.apiRouteInfo.url="";
-                               vm.apiRouteInfo.metricsUrl="/admin/metrics";
-                               vm.apiRouteInfo.control="0";
-                               vm.apiRouteInfo.status="1";
-                               // vm.apiRouteInfo.apiJson="/service/swagger.json";
-                               vm.apiRouteInfo.apiJsonType="1";                                
-                               vm.apiRouteInfo.server="";
-                               vm.apiRouteInfo.servers=[];     
-                       
-                               vm.apiJson.custom="/swagger.json";
-
-                               //$("input[name='oriService']").val("");
-
-                               $('#metricsFullurl').collapse('hide');
-                               $('#apiJsonFullurl').collapse('hide');
-
-                       
-
-                               vm.routeDlgInfo.saveType = "add";
-                               vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_add_api');
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=false;
-
-                               $(".form-group").each(function () {
-                                               $(this).removeClass('has-success');
-                                               $(this).removeClass('has-error');
-                                               $(this).find(".help-block[id]").remove();
-                                               $(this).find(".form-tip").removeClass('form-input-focus');
-                                               $(this).find(".item-tip").removeClass('item-tip-focus');
-                                       });
-
-
-                               $("#routeDlg").modal("show");
-                       },
-                       $saveiuiRoute : function() {
-
-                               iuisuccess.hide();
-                               iuierror.hide();
-                               if (iuiform.valid() == false) {
-                                       return false;
-                               }
-
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=true;
-
-                               vm.iuiRouteInfo.serviceName=$.trim(vm.iuiRouteInfo.serviceName);
-                               
-                               var servers=[];
-                               for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){
-                                       var server={ip:vm.iuiRouteInfo.servers[i].ip,port:vm.iuiRouteInfo.servers[i].port,weight: 0};
-                                       servers.push(server);
-                               }
-
-
-
-                               var iuiRouteUrl=vm.iuiRouteInfo.url=="/"?"":vm.iuiRouteInfo.url;
-                               var data= JSON.stringify({
-                                                        "serviceName": vm.iuiRouteInfo.serviceName,
-                                                         "url": iuiRouteUrl,
-                                                         "control":vm.iuiRouteInfo.control,
-                                                         "status":vm.iuiRouteInfo.status,
-                                                         "servers": servers
-                                               });
-
-                               if(vm.routeDlgInfo.saveType=="add")
-                               {
-
-                                       //Determine whether to repeat
-                                       for(var i=0;i<vm.iuiRouteArray.length;i++){
-                                       
-                                                       if(vm.iuiRouteArray[i].serviceName==vm.iuiRouteInfo.serviceName)
-                                                       {
-                                                               vm.server_rtn.warning_block=true;
-                                                           vm.server_rtn.info_block=false; 
-                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_repeat',[vm.iuiRouteInfo.serviceName]);
-                                                               return;
-                                                       }
-                                               
-                                       }
-
-                 //save service
-                 
-              
-                   $.ajax({
-                       "type": 'POST',
-                       "url":  vm.$iuiRouteUrl,
-                       "data" : data,
-                       "dataType": "json",
-                       "contentType":"application/json",
-                       success: function (resp) {  
-                               
-                                               vm.iuiRouteArray.push(JSON.parse(data)); 
-                                               vm.iuiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); 
-
-                                               routeUtil.refreshRoute();       
-                                               $('#iuirouteDlg').modal('hide');                                                        
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_service_save'),"success");                  
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                                  vm.server_rtn.warning_block=true;
-                                              vm.server_rtn.info_block=false; 
-                                              vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
-                             
-                        }
-                   });
-               }
-               else{  //update
-
-                                var url= vm.$iuiRouteInstanceUrl;
-                        url=url.replace("{serviceName}",vm.iuiRouteInfo.oldServiceName);
-
-                           //Determine whether to repeat
-                         if(vm.iuiRouteInfo.serviceName!=vm.iuiRouteInfo.oldServiceName)  //Has been modified service name
-                         {
-                                       for(var i=0;i<vm.iuiRouteArray.length;i++){
-                                       
-                                                       if(vm.iuiRouteArray[i].serviceName==vm.iuiRouteInfo.serviceName)
-                                                       {
-                                                               vm.server_rtn.warning_block=true;
-                                                           vm.server_rtn.info_block=false; 
-                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_repeat',[vm.iuiRouteInfo.serviceName]);
-                                                               return;
-                                                       }
-                                               
-                                       }
-                               }
-
-                       $.ajax({
-                       "type": 'PUT',
-                       "url": url,
-                        "data" :data,
-                       "dataType": "json",
-                       "contentType":"application/json",
-                       success: function (resp) {  
-                         
-                                                       for(var i=0;i<vm.iuiRouteArray.length;i++){
-                                           if(vm.iuiRouteArray[i].serviceName == vm.iuiRouteInfo.oldServiceName)
-                                           { 
-                                               vm.iuiRouteArray[i].serviceName=vm.iuiRouteInfo.serviceName;                                          
-                                               vm.iuiRouteArray[i].url=iuiRouteUrl;
-                                               vm.iuiRouteArray[i].servers=vm.iuiRouteInfo.servers;
-                                              
-                                               break;
-                                           }
-                                        }
-                             
-
-
-                                               $('#iuirouteDlg').modal('hide');                                                        
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_service_update'),"success"); 
-                                               
-
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                                  vm.server_rtn.warning_block=true;
-                                              vm.server_rtn.info_block=false; 
-                                              vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
-                             
-                        }
-                   });
-
-              
-                          }
-                       },
-                       $savecustomRoute : function() {
-
-                               customsuccess.hide();
-                               customerror.hide();
-                               if (customform.valid() == false) {
-                                       return false;
-                               }
-
-                               if(vm.customRouteInfo.servers.length==0){
-                                       vm.server_rtn.warning_block=true;
-                                       vm.server_rtn.info_block=false; 
-                                       vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_host_leastone');
-                                       return;
-                               }
-
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=true;
-
-                               vm.customRouteInfo.serviceName=$.trim(vm.customRouteInfo.serviceName);
-                               
-                               var servers=[];
-                               for(var i=0;i<vm.customRouteInfo.servers.length;i++){
-                                       var server={ip:vm.customRouteInfo.servers[i].ip,port:vm.customRouteInfo.servers[i].port,weight: 0};
-                                       servers.push(server);
-                               }
-
-                               var customRouteUrl=vm.customRouteInfo.url=="/"?"":vm.customRouteInfo.url;
-                               var data= JSON.stringify({
-                                                        "serviceName": vm.customRouteInfo.serviceName,
-                                                         "url": customRouteUrl,
-                                                         "control":vm.customRouteInfo.control,
-                                                         "status":vm.customRouteInfo.status,
-                                                         "servers": servers
-                                               });
-
-                               if(vm.routeDlgInfo.saveType=="add")
-                               {
-
-                                       //Determine whether to repeat
-                                       for(var i=0;i<vm.customRouteArray.length;i++){
-                                       
-                                                       if(vm.customRouteArray[i].serviceName==vm.customRouteInfo.serviceName)
-                                                       {
-                                                               vm.server_rtn.warning_block=true;
-                                                           vm.server_rtn.info_block=false; 
-                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_repeat',[vm.customRouteInfo.serviceName]);
-                                                               return;
-                                                       }
-                                               
-                                       }
-
-                 //save 
-                 
-              
-                   $.ajax({
-                       "type": 'POST',
-                       "url":  vm.$customRouteInstanceUrl,
-                       "data" : data,
-                       "dataType": "json",
-                       "contentType":"application/json",
-                       success: function (resp) {  
-                               
-                                               vm.customRouteArray.push(JSON.parse(data)); 
-                                               routeUtil.groupRoute(vm.customRouteArray);
-
-
-                                               routeUtil.refreshRoute();       
-                                               $('#customrouteDlg').modal('hide');                                                     
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_service_save'),"success");                       
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                                  vm.server_rtn.warning_block=true;
-                                              vm.server_rtn.info_block=false; 
-                                              vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
-                             
-                        }
-                   });
-               }
-               else{  //update
-
-                           //Determine whether to repeat
-                         if(vm.customRouteInfo.serviceName!=vm.customRouteInfo.oldServiceName)  //Has been modified service name
-                         {
-                                       for(var i=0;i<vm.customRouteArray.length;i++){
-                                       
-                                                       if(vm.customRouteArray[i].serviceName==vm.customRouteInfo.serviceName)
-                                                       {
-                                                               vm.server_rtn.warning_block=true;
-                                                           vm.server_rtn.info_block=false; 
-                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_repeat',[vm.customRouteInfo.serviceName]);
-                                                               return;
-                                                       }
-                                               
-                                       }
-                               }
-
-                                var url= vm.$customRouteInstanceUrl+"?serviceName="+vm.customRouteInfo.oldServiceName;
-               
-                       $.ajax({
-                       "type": 'PUT',
-                       "url": url,
-                        "data" :data,
-                       "dataType": "json",
-                       "contentType":"application/json",
-                       success: function (resp) {  
-                    
-                                                       for(var i=0;i<vm.customRouteArray.length;i++){
-                                           if(vm.customRouteArray[i].serviceName == vm.customRouteInfo.oldServiceName)
-                                           {
-                                               vm.customRouteArray[i].serviceName=vm.customRouteInfo.serviceName;                                            
-                                               vm.customRouteArray[i].url=customRouteUrl;
-                                               vm.customRouteArray[i].servers=vm.customRouteInfo.servers;
-                                               break;
-                                           }
-                                        }
-                                               
-                                               routeUtil.groupRoute(vm.customRouteArray);
-                             
-
-
-                                               $('#customrouteDlg').modal('hide');                                                     
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_service_update'),"success"); 
-                                               
-
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                                  vm.server_rtn.warning_block=true;
-                                              vm.server_rtn.info_block=false; 
-                                              vm.server_rtn.rtn_info=$.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
-                             
-                        }
-                   });
-
-              
-                          }
-                       },
-                       $saveApiRoute : function() {
-
-                               success.hide();
-                               error.hide();
-                               if (form.valid() == false) {
-                                       return false;
-                               }
-
-                               if(vm.apiRouteInfo.servers.length==0){
-                                       vm.server_rtn.warning_block=true;
-                                       vm.server_rtn.info_block=false; 
-                                       vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_host_leastone');
-                                       return;
-                               }
-
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=true;
-
-                               
-                               var apiRouteUrl=vm.apiRouteInfo.url=="/"?"":vm.apiRouteInfo.url;
-                               var apiJson=vm.apiRouteInfo.apiJsonType=="1"?vm.apiJson.custom:vm.apiJson.local;        
-
-                               var servers=[];
-                               for(var i=0;i<vm.apiRouteInfo.servers.length;i++){
-                                       var server={ip:vm.apiRouteInfo.servers[i].ip,port:vm.apiRouteInfo.servers[i].port,weight: 0};
-                                       servers.push(server);
-                               }
-
-
-                               var data= JSON.stringify({
-                                                        "serviceName": vm.apiRouteInfo.serviceName,
-                                                         "version": vm.apiRouteInfo.version,
-                                                         "url": apiRouteUrl,
-                                                         "metricsUrl":vm.apiRouteInfo.metricsUrl,
-                                                         "apiJson": apiJson,
-                                                         "apiJsonType":vm.apiRouteInfo.apiJsonType,
-                                                         "control":vm.apiRouteInfo.control,
-                                                         "status":vm.apiRouteInfo.status,
-                                                         "servers": servers
-                                               
-                                               });
-
-                               if(vm.routeDlgInfo.saveType=="add")
-                               {
-
-                                        //Determine whether to repeat
-                                       for(var i=0;i<vm.apiRouteArray.length;i++){
-                                       
-                                                       if(vm.apiRouteArray[i].serviceName==vm.apiRouteInfo.serviceName 
-                                                               && vm.apiRouteArray[i].version==vm.apiRouteInfo.version )
-                                                       {
-                                                               vm.server_rtn.warning_block=true;
-                                                           vm.server_rtn.info_block=false; 
-                                                           vm.server_rtn.rtn_info=$.i18n.prop('org_openo_msb_route_err_api_repeat',[vm.apiRouteInfo.serviceName],[vm.apiRouteInfo.version]);
-                                                               return;
-                                                       }
-                                               
-                                       }
-
-                 //save
-                 
-              
-                   $.ajax({
-                       "type": 'POST',
-                       "url":  vm.$apiRouteUrl,
-                       "data" : data,
-                       "dataType": "json",
-                       "contentType":"application/json",
-                       success: function (resp) {  
-                               
-                                               vm.apiRouteArray.push(JSON.parse(data)); 
-                                               vm.apiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); 
-
-                                               routeUtil.refreshRoute();       
-                                               $('#routeDlg').modal('hide');                                                   
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_service_save'),"success");                  
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                                  vm.server_rtn.warning_block=true;
-                                              vm.server_rtn.info_block=false; 
-                                              vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
-                             
-                        }
-                   });
-               }
-               else{  //update
-                               
-
-                //Determine whether to repeat
-                         if(vm.apiRouteInfo.serviceName!=vm.apiRouteInfo.oldServiceName || 
-                         vm.apiRouteInfo.version!=vm.apiRouteInfo.oldVersion)  //Has been modified service name
-                         {
-                                       for(var i=0;i<vm.apiRouteArray.length;i++){
-                                       
-                                                       if(vm.apiRouteArray[i].serviceName==vm.apiRouteInfo.serviceName 
-                                                               && vm.apiRouteArray[i].version==vm.apiRouteInfo.version )
-                                                       {
-                                                               vm.server_rtn.warning_block=true;
-                                                           vm.server_rtn.info_block=false; 
-                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_api_repeat',[vm.apiRouteInfo.serviceName],[vm.apiRouteInfo.version]);
-                                                               return;
-                                                       }
-                                               
-                                       }
-                               }
-
-                                var url= vm.$apiRouteInstanceUrl;
-                                var version=vm.apiRouteInfo.oldVersion==""?"null":vm.apiRouteInfo.oldVersion;
-                        url=url.replace("{serviceName}",vm.apiRouteInfo.oldServiceName).replace("{version}",version);
-
-
-                                $.ajax({
-                       "type": 'PUT',
-                       "url": url,
-                        "data" :data,
-                       "dataType": "json",
-                       "contentType":"application/json",
-                       success: function (resp) {  
-                         
-                                                       for(var i=0;i<vm.apiRouteArray.length;i++){
-                                           if(vm.apiRouteArray[i].serviceName == vm.apiRouteInfo.oldServiceName && 
-                                               vm.apiRouteArray[i].version == vm.apiRouteInfo.oldVersion)
-                                           {
-                                               //vm.apiRouteArray[i] = JSON.parse(data);
-                                                               vm.apiRouteArray[i].serviceName=vm.apiRouteInfo.serviceName;
-                                                                       vm.apiRouteArray[i].version= vm.apiRouteInfo.version;
-                                                                       vm.apiRouteArray[i].url=apiRouteUrl;
-                                                                       vm.apiRouteArray[i].metricsUrl=vm.apiRouteInfo.metricsUrl;
-                                                                       vm.apiRouteArray[i].apiJson=apiJson;
-                                                                       vm.apiRouteArray[i].apiJsonType=vm.apiRouteInfo.apiJsonType;
-
-                                                                       vm.apiRouteArray[i].servers=vm.apiRouteInfo.servers;
-
-                                                                       
-                                               break;
-                                           }
-                                        }
-                             
-
-
-                                               $('#routeDlg').modal('hide');                                                   
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_service_update'),"success"); 
-                                               
-
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                                  vm.server_rtn.warning_block=true;
-                                              vm.server_rtn.info_block=false; 
-                                              vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
-                             
-                        }
-                   });
-
-              
-                          }
-                       },
-                       $savemsbRoute : function() {
-
-                               msbsuccess.hide();
-                               msberror.hide();
-                               if (msbform.valid() == false) {
-                                       return false;
-                               }
-
-                               if(vm.msbRouteInfo.nodes.length==0){
-                                       vm.server_rtn.warning_block=true;
-                                       vm.server_rtn.info_block=false; 
-                                       vm.server_rtn.rtn_info=$.i18n.prop('org_openo_msb_route_err_host_leastone');
-                                       return;
-                               }
-
-                               if(vm.msbRouteInfo.visualRangeArray.length==0){
-                                       vm.server_rtn.warning_block=true;
-                                       vm.server_rtn.info_block=false; 
-                                       vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_visualrange_empty');
-                                       return;
-                               }
-
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=true;
-
-                               var msbUrl=vm.msbRouteInfo.url=="/"?"":vm.msbRouteInfo.url;
-               
-
-                               var nodes=[];
-                               for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
-                                       var node={ip:vm.msbRouteInfo.nodes[i].ip,port:vm.msbRouteInfo.nodes[i].port,ttl: vm.msbRouteInfo.nodes[i].ttl};
-                                       nodes.push(node);
-                               }
-
-                               var data= JSON.stringify({
-                                                        "serviceName": vm.msbRouteInfo.serviceName,
-                                                         "version": vm.msbRouteInfo.version,
-                                                         "url": msbUrl,                                                         
-                                                         "nodes": nodes,
-                                                         "protocol":vm.msbRouteInfo.protocol,
-                                                         "visualRange":vm.msbRouteInfo.visualRangeArray.join("|")
-                                               });
-
-                               if(vm.routeDlgInfo.saveType=="add")
-                               {
-
-                                       //Determine whether to repeat
-                                       for(var i=0;i<vm.msbRouteArray.length;i++){
-                                       
-                                                       if(vm.msbRouteArray[i].serviceName==vm.msbRouteInfo.serviceName 
-                                                               && vm.msbRouteArray[i].version==vm.msbRouteInfo.version )
-                                                       {
-                                                               vm.server_rtn.warning_block=true;
-                                                           vm.server_rtn.info_block=false; 
-                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_api_repeat',[vm.msbRouteInfo.serviceName],[vm.msbRouteInfo.version]);
-                                                       }
-                                               
-                                       }
-
-                 //save
-                 
-              
-                   $.ajax({
-                       "type": 'POST',
-                       "url":  vm.$msbRouteUrl,
-                       "data" : data,
-                       "dataType": "json",
-                       "contentType":"application/json",
-                       success: function (resp) {  
-                          
-                                                // vm.msbRouteArray.push(JSON.parse(data)); 
-                                                 table.destroy();
-                                                 vm.initMSBRoute();
-
-                                         //       table=$('#msbTable').DataTable({
-                                                    
-                                                       //   "oLanguage": vm.$dataTableLanguage,
-                                                       //   columnDefs: [ {
-                                                       //            targets: [ 7 ],
-                                                       //            "searchable": false,
-                                                       //            "bSortable": false,
-                                                       //          }]
-                                                       // });
-       
-                                               $('#msbrouteDlg').modal('hide');                                                        
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_msb'),$.i18n.prop('org_openo_msb_route_service_save'),"success");                  
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                                  vm.server_rtn.warning_block=true;
-                                              vm.server_rtn.info_block=false; 
-                                              vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+XMLHttpRequest.responseText;                
-                             
-                        }
-                   });
-               }
-               else{  //update
-                               
-
-                //Determine whether to repeat
-                         if(vm.msbRouteInfo.serviceName!=vm.msbRouteInfo.oldServiceName || 
-                         vm.msbRouteInfo.version!=vm.msbRouteInfo.oldVersion)  //Has been modified service name or version
-                         {
-                                       for(var i=0;i<vm.msbRouteArray.length;i++){
-                                       
-                                                       if(vm.msbRouteArray[i].serviceName==vm.msbRouteInfo.serviceName 
-                                                               && vm.msbRouteArray[i].version==vm.msbRouteInfo.version )
-                                                       {
-                                                               vm.server_rtn.warning_block=true;
-                                                           vm.server_rtn.info_block=false; 
-                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_api_repeat',[vm.msbRouteInfo.serviceName],[vm.msbRouteInfo.version]);
-                                                               return;
-                                                       }
-                                               
-                                       }
-                               }
-
-                                var url= vm.$msbRouteInstanceUrl;
-                                var version=vm.msbRouteInfo.oldVersion==""?"null":vm.msbRouteInfo.oldVersion;
-                                var serviceName2= vm.msbRouteInfo.oldServiceName.replace(/\//g,"*");
-                        url=url.replace("{serviceName}",serviceName2).replace("{version}",version);
-
-
-                                $.ajax({
-                       "type": 'PUT',
-                       "url": url,
-                        "data" :data,
-                       "dataType": "json",
-                       "contentType":"application/json",
-                       success: function (resp) {  
-                    
-                                                       for(var i=0;i<vm.msbRouteArray.length;i++){
-                                           if(vm.msbRouteArray[i].serviceName == vm.msbRouteInfo.oldServiceName && 
-                                               vm.msbRouteArray[i].version == vm.msbRouteInfo.oldVersion)
-                                           {
-                                               //vm.apiRouteArray[i] = JSON.parse(data);
-                                                               vm.msbRouteArray[i].serviceName=vm.msbRouteInfo.serviceName;
-                                                                       vm.msbRouteArray[i].version= vm.msbRouteInfo.version;
-                                                                       vm.msbRouteArray[i].url=msbUrl;
-                                                                       vm.msbRouteArray[i].protocol=vm.msbRouteInfo.protocol;
-                                                                       vm.msbRouteArray[i].visualRange=vm.msbRouteInfo.visualRange;
-                                                                       vm.msbRouteArray[i].visualRangeArray=vm.msbRouteInfo.visualRangeArray;
-                                                                       vm.msbRouteArray[i].nodes=nodes;
-                                                                                                            
-                                               break;
-                                           }
-                                        }
-                             
-
-
-                                               $('#msbrouteDlg').modal('hide');                                                        
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_msb'),$.i18n.prop('org_openo_msb_route_service_update'),"success"); 
-                                               
-
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                                  vm.server_rtn.warning_block=true;
-                                              vm.server_rtn.info_block=false; 
-                                              vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+XMLHttpRequest.responseText;                
-                             
-                        }
-                   });
-
-              
-                          }
-                       },
-
-                       updateApiRouteStatus:function(serviceName,version,status){
-
-                               var url= vm.$apiRouteStatusUrl;
-                                   var version2=version==""?"null":version;
-                        url=url.replace("{serviceName}",serviceName).replace("{version}",version2).replace("{status}",status);
-       
-                                        $.ajax({
-                       "type": 'PUT',
-                       "url": url,
-                       "dataType": "json",
-                       success: function (resp) {  
-                               
-                             
-                                                        for(var i=0;i<vm.apiRouteArray.length;i++){
-                                              if(vm.apiRouteArray[i].serviceName == serviceName && 
-                                               vm.apiRouteArray[i].version == version){
-                                                   vm.apiRouteArray[i].status=status;
-                                                   break;
-                                               }
-                                           }   
-
-                                         if(status=='1')   
-                                         {
-                                           routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_status_enable'),"success");
-                                         }
-                                         else{
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_status_disable'),"success");
-                                         }
-                                       
-
-               
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                               bootbox.alert($.i18n.prop('org_openo_msb_route_err_status')+textStatus+":"+errorThrown);                
-                             
-                        }
-                   });
-
-                       },
-                       updateiuiRouteStatus:function(serviceName,status){
-
-                               var url= vm.$iuiRouteStatusUrl;
-                               
-                     url=url.replace("{serviceName}",serviceName).replace("{status}",status);
-       
-                                        $.ajax({
-                       "type": 'PUT',
-                       "url": url,
-                       "dataType": "json",
-                       success: function (resp) {  
-                               
-                              
-                                                        for(var i=0;i<vm.iuiRouteArray.length;i++){
-                                              if(vm.iuiRouteArray[i].serviceName == serviceName){
-                                                   vm.iuiRouteArray[i].status=status;
-                                                   break;
-                                               }
-                                           }   
-
-                                         if(status=='1')   
-                                         {
-                                           routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_status_enable'),"success");
-                                         }
-                                         else{
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_status_disable'),"success");
-                                         }
-                                       
-               
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                               bootbox.alert($.i18n.prop('org_openo_msb_route_err_status')+textStatus+":"+errorThrown);                
-                             
-                        }
-                   });
-
-                       },
-                       updatecustomRouteStatus:function(serviceName,status){
-
-                               
-              var url= vm.$customRouteStatusUrl+"?serviceName="+serviceName+"&status="+status;
-
-       
-                                        $.ajax({
-                       "type": 'PUT',
-                       "url": url,
-                       "dataType": "json",
-                       success: function (resp) {  
-                               
-                         
-                                                        for(var i=0;i<vm.customRouteArray.length;i++){
-                                              if(vm.customRouteArray[i].serviceName == serviceName){
-                                                   vm.customRouteArray[i].status=status;
-                                                   break;
-                                               }
-                                           }   
-
-
-                                   routeUtil.groupRoute(vm.customRouteArray);
-
-                                         if(status=='1')   
-                                         {
-                                           routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_status_enable'),"success");
-                                         }
-                                         else{
-                                               routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_status_disable'),"success");
-                                         }
-                                       
-
-               
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                               bootbox.alert($.i18n.prop('org_openo_msb_route_err_status')+textStatus+":"+errorThrown);                
-                             
-                        }
-                   });
-
-                       },
-                       updateApiRoute:function(apiRouteInfo,type){
-                       
-
-                       
-
-                               $('#metricsFullurl').collapse('hide');
-                               $('#apiJsonFullurl').collapse('hide');
-                               $('#apiTab a:first').tab('show');
-                               
-                               vm.apiRouteInfo.serviceName=apiRouteInfo.serviceName;
-                               vm.apiRouteInfo.oldServiceName=apiRouteInfo.serviceName;
-                               vm.apiRouteInfo.version= apiRouteInfo.version;
-                               vm.apiRouteInfo.oldVersion=apiRouteInfo.version;
-                               vm.apiRouteInfo.url=apiRouteInfo.url==""?"/":apiRouteInfo.url;
-                               vm.apiRouteInfo.metricsUrl=apiRouteInfo.metricsUrl;
-                               vm.apiRouteInfo.apiJson=apiRouteInfo.apiJson;
-                               vm.apiRouteInfo.apiJsonType=apiRouteInfo.apiJsonType;
-                               vm.apiRouteInfo.control=apiRouteInfo.control;
-                               vm.apiRouteInfo.status= apiRouteInfo.status;
-
-                               if(vm.apiRouteInfo.apiJsonType=="1"){
-                                       vm.apiJson.custom=apiRouteInfo.apiJson;
-                               }
-                               else{
-                                       vm.apiJson.local=apiRouteInfo.apiJson;
-                                       vm.apiJson.custom="/swagger.json";
-                                        $("#apiJsonSelect").val(apiRouteInfo.apiJson);
-                               }
-
-                               vm.apiRouteInfo.server="";
-                               vm.apiRouteInfo.servers=[];
-                               vm.apiRouteInfo.servers=apiRouteInfo.servers;
-
-                               
-
-
-                               // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);
-               
-                               vm.routeDlgInfo.saveType = type;
-                               if(type=='update'){
-                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_edit_api');    
-                               }
-                               else if(type=='view'){
-                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_view_api');    
-                               }
-                               
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=false;
-
-
-                               $(".form-group").each(function () {
-                                               $(this).removeClass('has-success');
-                                               $(this).removeClass('has-error');
-                                               $(this).find(".help-block[id]").remove();
-                                               $(this).find(".item-tip").addClass("item-tip-focus");
-                                               $(this).find(".form-tip").removeClass('form-input-focus');
-                                       });
-
-                               $("#routeDlg").modal("show");
-                       },
-                       updateiuiRoute:function(iuiRouteInfo,type){
-                               
-                               
-                               vm.iuiRouteInfo.serviceName=iuiRouteInfo.serviceName;
-                               vm.iuiRouteInfo.oldServiceName=iuiRouteInfo.serviceName;
-                               vm.iuiRouteInfo.url=iuiRouteInfo.url==""?"/":iuiRouteInfo.url;
-                               vm.iuiRouteInfo.server="";
-                               vm.iuiRouteInfo.servers=[];
-                               vm.iuiRouteInfo.servers=iuiRouteInfo.servers;
-                               vm.iuiRouteInfo.control=iuiRouteInfo.control;
-                               vm.iuiRouteInfo.status=iuiRouteInfo.status;
-
-
-                               // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);
-               
-                               
-                               vm.routeDlgInfo.saveType = type;
-                               if(type=='update'){
-                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_edit_iui');    
-                               }
-                               else if(type=='view'){
-                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_view_iui');    
-                               }
-
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=false;
-
-
-                               $(".form-group").each(function () {
-                                               $(this).removeClass('has-success');
-                                               $(this).removeClass('has-error');
-                                               $(this).find(".help-block[id]").remove();
-                                               $(this).find(".item-tip").addClass("item-tip-focus");
-                                               $(this).find(".form-tip").removeClass('form-input-focus');
-                                       });
-
-                               $("#iuirouteDlg").modal("show");
-                       },
-                       updatecustomRoute:function(customRouteInfo,type){
-                               
-                               
-                               vm.customRouteInfo.serviceName=customRouteInfo.serviceName;
-                               vm.customRouteInfo.oldServiceName=customRouteInfo.serviceName;
-                               
-                               vm.customRouteInfo.url=customRouteInfo.url==""?"/":customRouteInfo.url;
-                               vm.customRouteInfo.server="";
-                               vm.customRouteInfo.servers=[];
-                               vm.customRouteInfo.servers=customRouteInfo.servers;
-                               vm.customRouteInfo.control=customRouteInfo.control;
-                               vm.customRouteInfo.status=customRouteInfo.status;
-
-                               // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);
-               
-                               vm.routeDlgInfo.saveType = type;
-                               if(type=='update'){
-                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_edit_custom');
-                               }
-                               else if(type=='view'){
-                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_view_custom');
-                               }
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=false;
-
-
-                               $(".form-group").each(function () {
-                                               $(this).removeClass('has-success');
-                                               $(this).removeClass('has-error');
-                                               $(this).find(".help-block[id]").remove();
-                                               $(this).find(".item-tip").addClass("item-tip-focus");
-                                               $(this).find(".form-tip").removeClass('form-input-focus');
-                                       });
-
-                               $("#customrouteDlg").modal("show");
-                       },
-                       updatemsbRoute:function(msbRouteInfo){
-                       
-                                       vm.msbRouteInfo.serviceName=msbRouteInfo.serviceName;
-                                       vm.msbRouteInfo.oldServiceName=msbRouteInfo.serviceName;
-                                       vm.msbRouteInfo.version= msbRouteInfo.version;
-                                       vm.msbRouteInfo.oldVersion= msbRouteInfo.version
-                                       vm.msbRouteInfo.url=msbRouteInfo.url==""?"/":msbRouteInfo.url;
-                                       vm.msbRouteInfo.protocol=msbRouteInfo.protocol;
-                                       vm.msbRouteInfo.visualRange=msbRouteInfo.visualRange;
-                                       vm.msbRouteInfo.visualRangeArray=msbRouteInfo.visualRange.split("|");
-                                       vm.msbRouteInfo.nodes=msbRouteInfo.nodes;
-                                       vm.msbRouteInfo.newHost="";
-                                       vm.msbRouteInfo.newttl="";
-                       
-                               routeUtil.changeTargetServiceUrl();
-               
-                               vm.routeDlgInfo.saveType = "update";
-                               vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_edit_msb');
-                               vm.server_rtn.warning_block=false;
-                               vm.server_rtn.info_block=false;
-
-
-                               $(".form-group").each(function () {
-                                               $(this).removeClass('has-success');
-                                               $(this).removeClass('has-error');
-                                               $(this).find(".help-block[id]").remove();
-                                               $(this).find(".item-tip").addClass("item-tip-focus");
-                                               $(this).find(".form-tip").removeClass('form-input-focus');
-                                       });
-
-                               $("#msbrouteDlg").modal("show");
-                       },
-                       delApiRoute:function(serviceName,version){
-                               bootbox.confirm($.i18n.prop('org_openo_msb_route_err_service_del_ask',[serviceName],[version]),function(result){
-                               if(result){
-                                       var url= vm.$apiRouteInstanceUrl;
-                                   var version2=version==""?"null":version;
-                        url=url.replace("{serviceName}",serviceName).replace("{version}",version2);
-       
-                                        $.ajax({
-                       "type": 'DELETE',
-                       "url": url,
-                       "dataType": "json",
-                       success: function (resp) {  
-                               
-                                                        for(var i=0;i<vm.apiRouteArray.length;i++){
-                                              if(vm.apiRouteArray[i].serviceName == serviceName && 
-                                               vm.apiRouteArray[i].version == version){
-                                                   vm.apiRouteArray.splice(i, 1);
-                                                   break;
-                                               }
-                                           }   
-
-                                        routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_service_del_success'),"success");
-                                       
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                               bootbox.alert($.i18n.prop('org_openo_msb_route_service_del_fail')+textStatus+":"+errorThrown);                
-                             
-                        }
-                   });
-
-
-                              }
-       
-                               });
-                               
-                       },
-                       deliuiRoute:function(serviceName){
-                               bootbox.confirm($.i18n.prop('org_openo_msb_route_err_service2_del_ask',[serviceName]),function(result){
-                               if(result){
-                                       var url= vm.$iuiRouteInstanceUrl;
-                                
-                        url=url.replace("{serviceName}",serviceName);
-       
-                                        $.ajax({
-                       "type": 'DELETE',
-                       "url": url,
-                       "dataType": "json",
-                       success: function (resp) {  
-                               
-                                                        for(var i=0;i<vm.iuiRouteArray.length;i++){
-                                              if(vm.iuiRouteArray[i].serviceName == serviceName){
-                                                   vm.iuiRouteArray.splice(i, 1);
-                                                   break;
-                                               }
-                                           }   
-
-                                        routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_service_del_success'),"success");
-                                       
-               
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                               bootbox.alert($.i18n.prop('org_openo_msb_route_service_del_fail')+textStatus+":"+errorThrown);                
-                             
-                        }
-                   });
-
-
-                              }
-       
-                               });
-                               
-                       },
-                       delcustomRoute:function(serviceName){
-                               bootbox.confirm($.i18n.prop('org_openo_msb_route_err_service2_del_ask',[serviceName]),function(result){
-                               if(result){
-                                       var url= vm.$customRouteInstanceUrl+"?serviceName="+serviceName;
-       
-                                        $.ajax({
-                       "type": 'DELETE',
-                       "url": url,
-                       "dataType": "json",
-                       success: function (resp) {  
-                               
-                                                        for(var i=0;i<vm.customRouteArray.length;i++){
-                                              if(vm.customRouteArray[i].serviceName == serviceName){
-                                                   vm.customRouteArray.splice(i, 1);
-                                                   break;
-                                               }
-                                                               }
-
-                                            routeUtil.groupRoute(vm.customRouteArray);
-                                               
-
-                                        routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_service_del_success'),"success");
-                                       
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                               bootbox.alert($.i18n.prop('org_openo_msb_route_service_del_fail')+textStatus+":"+errorThrown);                
-                             
-                        }
-                   });
-
-
-                              }
-       
-                               });
-                               
-                       },
-                       delmsbRoute:function(serviceName,version,obj){
-                               bootbox.confirm($.i18n.prop('org_openo_msb_route_err_service_del_ask',[serviceName],[version]),function(result){
-                               if(result){
-                                       var url= vm.$msbRouteInstanceUrl;
-                                   var version2=version==""?"null":version;
-                                   var serviceName2= serviceName.replace(/\//g,"*");
-                        url=url.replace("{serviceName}",serviceName2).replace("{version}",version2);
-       
-                                        $.ajax({
-                       "type": 'DELETE',
-                       "url": url,
-                       "dataType": "json",
-                       success: function (resp) {  
-                               $(obj).parent().parent().addClass('selected');
-                               
-                               for(var i=0;i<vm.msbRouteArray.length;i++){
-                                              if(vm.msbRouteArray[i].serviceName == serviceName &&
-                                                       vm.msbRouteArray[i].version==version ){
-                                                   vm.msbRouteArray.splice(i, 1);
-                                                   break;
-                                               }
-                                                               }
-
-                                                        table.row('.selected').remove().draw( false );
-
-                                        routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_msb'),$.i18n.prop('org_openo_msb_route_service_del_success'),"success");
-                                       
-               
-                       },
-                        error: function(XMLHttpRequest, textStatus, errorThrown) {
-                                               
-                                               bootbox.alert($.i18n.prop('org_openo_msb_route_service_del_fail')+XMLHttpRequest.responseText);                
-                             
-                        }
-                        
-                            
-                   });
-
-
-                              }
-       
-                               });
-                               
-                       },
-                       exportServices:function(){
-                               var url=apiBasePath+"/apiRoute/export";
-                               window.open(url); 
-
-                       },
-                       gotoTarget:function(route,type){
-                               vm.selectedRoute=route;
-                               vm.selectedRouteType=type;
-
-                               if(type=="api")
-                               {
-                                 vm.gotoRestDoc(); 
-                               }
-                               else if(type=="iui"){
-                                 vm.gotoIUI(); 
-                               }
-                               
-                       },
-                       gotoRestDoc:function(){
-                               vm.routeTargetTitle=vm.selectedRoute.serviceName+"-"+$.i18n.prop("org_openo_msb_route_content_title");  
-
-                               var version=vm.selectedRoute.version==""?"":"/"+vm.selectedRoute.version;       
-
-                                   if(vm.selectedRoute.apiJsonType=="1")
-                                   {                   
-                                    
-                                    var sourceUrl= "/apijson/"+vm.selectedRoute.serviceName+version;
-                                       }
-                                       else{
-                                        var sourceUrl= iuiBasePath+"/ext/initSwaggerJson/"+vm.selectedRoute.apiJson;   
-                                       }
-                                       //Local json data read from the real API service service address parameter
-                                       var url=iuiBasePath+"/api-doc/index.html?url="+sourceUrl+"&api=/api/"+vm.selectedRoute.serviceName+version;
-
-                                $('#msbSubPage').attr("src",url);  
-                                vm.apiIframeUrl=url; 
-                       },
-                       gotoJVM:function(){
-                               vm.routeTargetTitle=vm.selectedRoute.serviceName+"-"+$.i18n.prop('org_openo_msb_route_metric_content_title');   
-                       
-                               var version=vm.selectedRoute.version==""?"":"/"+vm.selectedRoute.version;       
-
-                               var sourceUrl= "/admin/"+vm.selectedRoute.serviceName+version;
-                        
-                               
-                               var url=iuiBasePath+"/metrics/index.html?url="+sourceUrl;
-
-                                $('#msbSubPage').attr("src",url);   
-                       },
-                       gotoIUI:function(){
-                               vm.routeTargetTitle=vm.selectedRoute.serviceName+"-"+$.i18n.prop('org_openo_msb_route_iui_content_title');                              
-                               var url= "/iui/"+vm.selectedRoute.serviceName+"/";
-                                $('#msbSubPage').attr("src",url);   
-                                 vm.iuiIframeUrl=url; 
-                       },
-                       initIUIfori18n:function(){
-                               vm.routeTargetTitle=$.i18n.prop("org_openo_msb_route_content_title");   
-                               vm.showAPITypeName=[$.i18n.prop("org_openo_msb_route_swagger_type_predefined"),$.i18n.prop("org_openo_msb_route_swagger_type_custominput")];
-                               vm.dataTableLanguage={
-                "sProcessing": "<img src='../img/loading-spinner-grey.gif'/><span>&nbsp;&nbsp;Loadding...</span>",   
-                "sLengthMenu": $.i18n.prop("org_openo_msb_route-table-sLengthMenu"),
-                "sZeroRecords": $.i18n.prop("org_openo_msb_route-table-sZeroRecords"),
-                "sInfo": "<span class='seperator'>  </span>" + $.i18n.prop("org_openo_msb_route-table-sInfo"),
-                "sInfoEmpty": $.i18n.prop("org_openo_msb_route-table-sInfoEmpty"),
-                "sGroupActions": $.i18n.prop("org_openo_msb_route-table-sGroupActions"),
-                "sAjaxRequestGeneralError": $.i18n.prop("org_openo_msb_route-table-sAjaxRequestGeneralError"),
-                "sEmptyTable": $.i18n.prop("org_openo_msb_route-table-sEmptyTable"),
-                "oPaginate": {
-                    "sPrevious": $.i18n.prop("org_openo_msb_route-table-sPrevious"),
-                    "sNext": $.i18n.prop("org_openo_msb_route-table-sNext"),
-                    "sPage": $.i18n.prop("org_openo_msb_route-table-sPage"),
-                    "sPageOf": $.i18n.prop("org_openo_msb_route-table-sPageOf")
-                },
-                "sSearch": $.i18n.prop("org_openo_msb_route-table-search"),
-                "sInfoFiltered": $.i18n.prop("org_openo_msb_route-table-infofilter") 
-            }; 
-
-                       }
-                       
-               
-
-       });
-
-
+/*\r
+ * Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *         http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+var table;\r
+var vm = avalon\r
+               .define({\r
+                       $id : "routeController",\r
+                       route:{\r
+                               routeWay:"ip",\r
+                               routeHost:"",\r
+                               routeIP:"",\r
+                               routePort:"",\r
+                               routeSubDomain:"",\r
+                               iuiRootPath:iuiRootPath,\r
+                           apiRootPath:apiRootPath\r
+                       },                      \r
+                       apiIframeUrl:"",\r
+                       iuiIframeUrl:"",\r
+                       boxVisible:true,\r
+                       routeTargetTitle:"",                    \r
+                       server_rtn:{\r
+                               info_block:false,\r
+                               warning_block:false,\r
+                               rtn_info:""\r
+                       },\r
+                       showAPIType:"0",\r
+                       showAPITypeName:[$.i18n.prop("org_onap_msb_route_swagger_type_predefined"),$.i18n.prop("org_onap_msb_route_swagger_type_custominput")],\r
+                       $msbProtocol :["REST","HTTP","UI","MQ","FTP","SNMP","TCP","UDP"],\r
+                       $msbType:["UI","NAF","SAF"],\r
+                       apiJson:{\r
+                               local:"",\r
+                               custom:""\r
+                       },\r
+                       setAPIType:function(type){\r
+                               vm.apiRouteInfo.apiJsonType=type;\r
+                               if(type==0){\r
+                                       vm.apiJson.local=vm.jsonApiSelectList.selectItems[0];\r
+                               }\r
+\r
+                       },      \r
+                       jsonApiSelectList:  {\r
+                                       condName : "type",\r
+                                       component_type : 'select',\r
+                                       selectItems : []\r
+                               },\r
+                       \r
+                dataTableLanguage: {\r
+                "sProcessing": "<img src='../img/loading-spinner-grey.gif'/><span>&nbsp;&nbsp;Loadding...</span>",   \r
+                "sLengthMenu": $.i18n.prop("org_onap_msb_route-table-sLengthMenu"),\r
+                "sZeroRecords": $.i18n.prop("org_onap_msb_route-table-sZeroRecords"),\r
+                "sInfo": "<span class='seperator'>  </span>" + $.i18n.prop("org_onap_msb_route-table-sInfo"),\r
+                "sInfoEmpty": $.i18n.prop("org_onap_msb_route-table-sInfoEmpty"),\r
+                "sGroupActions": $.i18n.prop("org_onap_msb_route-table-sGroupActions"),\r
+                "sAjaxRequestGeneralError": $.i18n.prop("org_onap_msb_route-table-sAjaxRequestGeneralError"),\r
+                "sEmptyTable": $.i18n.prop("org_onap_msb_route-table-sEmptyTable"),\r
+                "oPaginate": {\r
+                    "sPrevious": $.i18n.prop("org_onap_msb_route-table-sPrevious"),\r
+                    "sNext": $.i18n.prop("org_onap_msb_route-table-sNext"),\r
+                    "sPage": $.i18n.prop("org_onap_msb_route-table-sPage"),\r
+                    "sPageOf": $.i18n.prop("org_onap_msb_route-table-sPageOf")\r
+                },\r
+                "sSearch": $.i18n.prop("org_onap_msb_route-table-search"),\r
+                "sInfoFiltered": $.i18n.prop("org_onap_msb_route-table-infofilter") \r
+            }, \r
+                       $apiRouteUrl :apiBasePath+'/apiRoute',\r
+                       $apiRouteInstanceUrl :apiBasePath+'/apiRoute/{serviceName}/version/{version}',  \r
+                       $apiRouteStatusUrl :apiBasePath+'/apiRoute/{serviceName}/version/{version}/status/{status}',\r
+                       $apiDocsUrl :apiBasePath+'/apiRoute/apiDocs',   \r
+                       $apiGatewayPortUrl :apiBasePath+'/apiRoute/apiGatewayPort',     \r
+                       $discoverInfoUrl :apiBasePath+'/apiRoute/discoverInfo', \r
+                       $iuiRouteUrl :apiBasePath+'/iuiRoute',\r
+                       $iuiRouteInstanceUrl :apiBasePath+'/iuiRoute/{serviceName}',\r
+                       $iuiRouteStatusUrl :apiBasePath+'/iuiRoute/{serviceName}/status/{status}',\r
+                       $customRouteUrl :apiBasePath+'/customRoute/all',\r
+                       $customRouteInstanceUrl :apiBasePath+'/customRoute/instance',\r
+                       $customRouteStatusUrl :apiBasePath+'/customRoute/status',       \r
+                       $msbRouteUrl:apiBasePath+'/services',   \r
+                       $msbRouteInstanceUrl :apiBasePath+'/services/{serviceName}/version/{version}',\r
+                       routeLoading:false,             \r
+                       apiRouteArray :  [],\r
+                       apiGroupByPortArray :  [],\r
+                       apiRouteInfo : {\r
+                           oldServiceName:"",                                  \r
+                               serviceName : "",\r
+                               oldVersion:"",  \r
+                               version : "",\r
+                               status:"",\r
+                               url:"",\r
+                               apiJson:"/swagger.json",\r
+                               apiJsonType:"1",\r
+                               control:"",\r
+                               host:"",\r
+                               publish_port:"",\r
+                               publishProtocol:"",\r
+                               server:"",\r
+                               servers: []\r
+                       },      \r
+                       iuiRouteArray :  [],\r
+                       iuiGroupByPortArray :  [],\r
+                       iuiRouteInfo : {        \r
+                           oldServiceName:"",                          \r
+                               serviceName : "",\r
+                               status:"",\r
+                               url:"",\r
+                               server:"",\r
+                               control:"",\r
+                               host:"",\r
+                               publish_port:"",\r
+                               publishProtocol:"",\r
+                               servers: []\r
+                       },      \r
+                       customRouteArray :  [],\r
+                       customGroupByPortArray :  [],\r
+                       customGroupRouteArray :  [],\r
+                       customRouteInfo : {     \r
+                           oldServiceName:"",          \r
+                               serviceName : "",\r
+                               status:"",\r
+                               url:"",\r
+                               server:"",\r
+                               control:"",\r
+                               host:"",\r
+                               publish_port:"",\r
+                               publishProtocol:"",\r
+                               servers: []\r
+                       },\r
+                       msbRouteArray :  [],\r
+                       msbRouteInfo : {        \r
+                           oldServiceName:"",  \r
+                           oldVersion:"",                              \r
+                               serviceName : "",\r
+                               version:"",\r
+                               status:"0",\r
+                               nodes:[],\r
+                               newHost:"",\r
+                               newttl:0,\r
+                               url:"",\r
+                               protocol:"",\r
+                               visualRange:"",\r
+                               visualRangeArray:[]                     \r
+                       },\r
+                       discoverInfo:{\r
+                               ip:"",\r
+                               port:"",\r
+                               enabled:true,\r
+                               deployMode:""\r
+                       },\r
+                       selectedRoute:"",\r
+                       selectedRouteType:"",\r
+                       routeDlgInfo:{\r
+                               titleName:"",\r
+                               saveType:""\r
+                       },                                                                                              \r
+                       $initRoute : function() {\r
+                       \r
+\r
+                               vm.route.routeSubDomain=window.location.host.substring(3);\r
+                       \r
+                               vm.route.routeWay="ip";\r
+                               vm.route.routeHost=window.location.host.split(":")[0]; //Default show port:80\r
+                               vm.route.routeIP=window.location.host.split(":")[0];\r
+\r
+                               /*if(window.location.host.split(":")[1]==null){\r
+                                       vm.route.routePort="80";\r
+                               }\r
+                               else{\r
+                                       vm.route.routePort=window.location.host.split(":")[1];\r
+                               }*/\r
+\r
+                               vm.route.routePort="80";\r
+\r
+                           var getDiscoverInfoReturn=true; \r
+                            $.ajax({\r
+                                       "type": 'get',\r
+                                       "async": false,\r
+                                       "url":  vm.$discoverInfoUrl,\r
+                                       "dataType": "json",\r
+                                       success: function (resp) { \r
+                                  \r
+                                        vm.discoverInfo = (resp==null)?"":resp;\r
+                                                                                                       \r
+                                       },\r
+                                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                                  getDiscoverInfoReturn=false;\r
+                                                                  bootbox.alert("get discoverInfo  from server fails:"+XMLHttpRequest.statusText); \r
+\r
+                                        }\r
+                                   });\r
+\r
+\r
+                                       \r
+\r
+                            if(!getDiscoverInfoReturn) return;\r
+                                               \r
+                           vm.routeLoading=true;\r
+\r
+                               $.ajax({\r
+                       "type": 'get',\r
+                       "url":  vm.$apiRouteUrl+"?routeWay="+vm.route.routeWay,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                            //vm.apiRouteArray = (resp==null)?[]:resp;  \r
+                            //vm.apiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1});\r
+                            if(resp!=null && resp.length>0){\r
+                               vm.apiGroupByPortArray=routeUtil.groupRouteByPort(resp);    \r
+                            }                  \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                                  bootbox.alert("get  API serviceInfos fails:"+XMLHttpRequest.responseText);                       \r
+                             \r
+                        },\r
+                        complete:function(){\r
+                               vm.routeLoading=false;\r
+                               routeUtil.refreshRoute();\r
+\r
+                         }\r
+                   });\r
+\r
+\r
+                                 $.ajax({\r
+                       "type": 'get',\r
+                       "url":  vm.$iuiRouteUrl+"?routeWay="+vm.route.routeWay,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                            //vm.iuiRouteArray = (resp==null)?[]:resp;  \r
+                            //vm.iuiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1});\r
+                           if(resp!=null && resp.length>0){\r
+                               vm.iuiGroupByPortArray=routeUtil.groupRouteByPort(resp);    \r
+                            }                          \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                                  console.info("get iui services fails:"+XMLHttpRequest.responseText);                       \r
+                             \r
+                        },\r
+                        complete:function(){                           \r
+                               routeUtil.refreshRoute();                               \r
+                         }\r
+                   });\r
+\r
+\r
+\r
+                                 $.ajax({\r
+                       "type": 'get',\r
+                       "url":  vm.$customRouteUrl+"?routeWay="+vm.route.routeWay,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                             //vm.customRouteArray = (resp==null)?[]:resp;   \r
+                       \r
+                           if(resp!=null && resp.length>0)\r
+                           {\r
+                            //routeUtil.groupRoute(resp);\r
+                            vm.customGroupByPortArray=routeUtil.groupRouteByPort(resp);  \r
+                           }\r
+\r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                                  console.info("get custom services fails:"+XMLHttpRequest.responseText);                      \r
+                            \r
+                        },\r
+                        complete:function(){                           \r
+                               routeUtil.refreshRoute();                               \r
+                         }\r
+                   });\r
+\r
+\r
+                                 $.ajax({\r
+                       "type": 'get',\r
+                       "url":  vm.$apiDocsUrl,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                            vm.jsonApiSelectList.selectItems= (resp==null)?[]:resp;                    \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                                  console.info("get local apiDocs  fails:"+textStatus+":"+errorThrown); \r
+                        }\r
+                   });\r
+\r
+\r
+                       \r
+\r
+                                 vm.initIUIfori18n();\r
+\r
+\r
+\r
+                                 if(vm.discoverInfo.enabled==false){\r
+                                       vm.initMSBRoute();\r
+                                }\r
+\r
+\r
+               \r
+\r
+                       },\r
+                       initMSBRoute:function(){\r
+                               vm.initIUIfori18n();\r
+\r
+                               $.ajax({\r
+                       "type": 'get',\r
+                       "url":  vm.$msbRouteUrl,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                             vm.msbRouteArray = (resp==null)?[]:resp;  \r
+                       \r
+                            vm.msbRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); \r
+                                               \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                                  bootbox.alert("get msb services fails:"+XMLHttpRequest.responseText);                       \r
+                              return;\r
+                        },\r
+                        complete:function(){\r
+\r
+                               table=$('#msbTable').DataTable({\r
+                                                    \r
+                                                         "oLanguage": vm.dataTableLanguage,\r
+                                                         columnDefs: [ {\r
+                                                                     targets: [ 0,8 ],\r
+                                                                     "searchable": false,\r
+                                                                     "bSortable": false\r
+                                                                   }],                                                              \r
+                                                                  "order": [[2, 'asc']]\r
+                                                       });\r
+                               \r
+                               }\r
+                               });\r
+              \r
+                  \r
+                       },\r
+                       \r
+                       clickDisplayGraphAlink: function () {\r
+               vm.boxVisible = !vm.boxVisible;\r
+               },\r
+               addmsbHost:function(){\r
+                       if(vm.msbRouteInfo.newHost==""){\r
+                               vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info= $.i18n.prop("org_onap_msb_route_err_host_empty");\r
+                                       return;\r
+                       }\r
+\r
+                       if(vm.msbRouteInfo.newttl==""){\r
+                               vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info= $.i18n.prop("org_onap_msb_route_err_ttl_empty");\r
+                                       return;\r
+                       }\r
+\r
+                         var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/   \r
+                          var ip,port; \r
+                                  if(!reg.test(vm.msbRouteInfo.newHost)){  \r
+                                       vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info= $.i18n.prop("org_onap_msb_route_err_host_format");\r
+                                       return;\r
+                                  }\r
+                                  else{\r
+                       \r
+                                       var hosts=vm.msbRouteInfo.newHost.split(":");  \r
+                                       ip=hosts[0];\r
+                                       port=hosts[1];\r
+                                  }\r
+\r
+                var reg_ttl=/^\d+$/\r
+         \r
+                                if(!reg_ttl.test(vm.msbRouteInfo.newttl)){  \r
+                                       vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info= $.i18n.prop("org_onap_msb_route_err_ttl_format");\r
+                                       return;\r
+                                  }  \r
+\r
+                                 \r
+\r
+                       // determine whether host repeated\r
+                               for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){\r
+                               \r
+                                               if(vm.msbRouteInfo.nodes[i].ip==ip && vm.msbRouteInfo.nodes[i].port==port )\r
+                                               {\r
+                                                       vm.server_rtn.warning_block=true;\r
+                                                   vm.server_rtn.info_block=false; \r
+                                                   vm.server_rtn.rtn_info=  $.i18n.prop('org_onap_msb_route_err_host_repeat',[vm.msbRouteInfo.newHost]); \r
+                                                   return;\r
+                                               }\r
+                                       \r
+                               }\r
+\r
+                               vm.msbRouteInfo.nodes.push({"ip":ip,"port":port,"ttl":vm.msbRouteInfo.newttl});\r
+                               vm.msbRouteInfo.newHost="";\r
+                               vm.msbRouteInfo.newttl="";\r
+                               vm.server_rtn.warning_block=false;\r
+                           vm.server_rtn.info_block=false; \r
+                               vm.server_rtn.rtn_info= "";\r
+\r
+\r
+               },\r
+               delmsbHost:function(ip,port){\r
+                       \r
+                       bootbox.confirm( $.i18n.prop('org_onap_msb_route_err_host_del',[ip],[port]),function(result){\r
+                               if(result){\r
+                                       \r
+                                        for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){\r
+                                              if(vm.msbRouteInfo.nodes[i].ip == ip && vm.msbRouteInfo.nodes[i].port == port){\r
+                                                   vm.msbRouteInfo.nodes.splice(i, 1);\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+                              }\r
+       \r
+                               });\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                           vm.server_rtn.info_block=false; \r
+                               vm.server_rtn.rtn_info= "";\r
+\r
+               },\r
+               addapiHost:function(){\r
+                       if(vm.apiRouteInfo.server==""){\r
+                               vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info= $.i18n.prop("org_onap_msb_route_err_host_empty");\r
+                                       return;\r
+                       }\r
+\r
+                         var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/   \r
+                         var ip,port;\r
+                                  if(!reg.test(vm.apiRouteInfo.server)){  \r
+                                       vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info=  $.i18n.prop("org_onap_msb_route_err_host_format");\r
+                                       return;\r
+                                  }\r
+                                  else{\r
+                                       var hosts=vm.apiRouteInfo.server.split(":")\r
+                                       ip=hosts[0];\r
+                                       port=hosts[1];\r
+                                  }\r
+\r
+                       // determine whether host repeated\r
+                               for(var i=0;i<vm.apiRouteInfo.servers.length;i++){\r
+                               \r
+                                               if(vm.apiRouteInfo.servers[i].ip==ip && vm.apiRouteInfo.servers[i].port==port)\r
+                                               {\r
+                                                       vm.server_rtn.warning_block=true;\r
+                                                   vm.server_rtn.info_block=false; \r
+                                                   vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_host_repeat',[vm.apiRouteInfo.server]); \r
+                                                       return;\r
+                                               }\r
+                                       \r
+                               }\r
+                               var server={ip:ip,port:port,weight: 0};\r
+                               vm.apiRouteInfo.servers.push(server);\r
+                               vm.apiRouteInfo.server="";\r
+                               vm.server_rtn.warning_block=false;\r
+                           vm.server_rtn.info_block=false; \r
+                               vm.server_rtn.rtn_info= "";\r
+\r
+\r
+               },\r
+               delapiHost:function(ip,port){\r
+                       \r
+                       bootbox.confirm( $.i18n.prop('org_onap_msb_route_err_host_del',[ip],[port]),function(result){\r
+                               if(result){\r
+                                       \r
+                                        for(var i=0;i<vm.apiRouteInfo.servers.length;i++){\r
+                                              if(vm.apiRouteInfo.servers[i].ip == ip && vm.apiRouteInfo.servers[i].port == port ){\r
+                                                   vm.apiRouteInfo.servers.splice(i, 1);\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+                              }\r
+       \r
+                               });\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                           vm.server_rtn.info_block=false; \r
+                               vm.server_rtn.rtn_info= "";\r
+\r
+               },\r
+               addcustomHost:function(){\r
+                       if(vm.customRouteInfo.server==""){\r
+                               vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info=  $.i18n.prop("org_onap_msb_route_err_host_empty");\r
+                                       return;\r
+                       }\r
+\r
+                         var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/   \r
+                         var ip,port;\r
+                                  if(!reg.test(vm.customRouteInfo.server)){  \r
+                                       vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info= $.i18n.prop("org_onap_msb_route_err_host_format");\r
+                                       return;\r
+                                  }\r
+                                  else{\r
+                                       var hosts=vm.customRouteInfo.server.split(":")\r
+                                       ip=hosts[0];\r
+                                       port=hosts[1];\r
+                                  }\r
+\r
+                       //判断host是否重复\r
+                               for(var i=0;i<vm.customRouteInfo.servers.length;i++){\r
+                               \r
+                                               if(vm.customRouteInfo.servers[i].ip==ip && vm.customRouteInfo.servers[i].port==port)\r
+                                               {\r
+                                                       vm.server_rtn.warning_block=true;\r
+                                                   vm.server_rtn.info_block=false; \r
+                                                   vm.server_rtn.rtn_info=  $.i18n.prop('org_onap_msb_route_err_host_repeat',[vm.apiRouteInfo.server]);\r
+                                                       return;\r
+                                               }\r
+                                       \r
+                               }\r
+                               var server={ip:ip,port:port,weight: 0};\r
+                               vm.customRouteInfo.servers.push(server);\r
+                               vm.customRouteInfo.server="";\r
+                               vm.server_rtn.warning_block=false;\r
+                           vm.server_rtn.info_block=false; \r
+                               vm.server_rtn.rtn_info= "";\r
+\r
+\r
+               },\r
+               delcustomHost:function(ip,port){\r
+                       \r
+                       bootbox.confirm( $.i18n.prop('org_onap_msb_route_err_host_del',[ip],[port]),function(result){\r
+                               if(result){\r
+                                       \r
+                                        for(var i=0;i<vm.customRouteInfo.servers.length;i++){\r
+                                              if(vm.customRouteInfo.servers[i].ip == ip && vm.customRouteInfo.servers[i].port == port ){\r
+                                                   vm.customRouteInfo.servers.splice(i, 1);\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+                              }\r
+       \r
+                               });\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                           vm.server_rtn.info_block=false; \r
+                               vm.server_rtn.rtn_info= "";\r
+\r
+               },\r
+               addiuiHost:function(){\r
+                       if(vm.iuiRouteInfo.server==""){\r
+                               vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info= $.i18n.prop("org_onap_msb_route_err_host_empty");\r
+                                       return;\r
+                       }\r
+\r
+                         var reg=/^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))):(\d{1,5})$/   \r
+                         var ip,port;\r
+                                  if(!reg.test(vm.iuiRouteInfo.server)){  \r
+                                       vm.server_rtn.warning_block=true;\r
+                                   vm.server_rtn.info_block=false; \r
+                                   vm.server_rtn.rtn_info= $.i18n.prop("org_onap_msb_route_err_host_format");\r
+                                       return;\r
+                                  }\r
+                                  else{\r
+                                       var hosts=vm.iuiRouteInfo.server.split(":")\r
+                                       ip=hosts[0];\r
+                                       port=hosts[1];\r
+                                  }\r
+\r
+                       //判断host是否重复\r
+                               for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){\r
+                               \r
+                                               if(vm.iuiRouteInfo.servers[i].ip==ip && vm.iuiRouteInfo.servers[i].port==port)\r
+                                               {\r
+                                                       vm.server_rtn.warning_block=true;\r
+                                                   vm.server_rtn.info_block=false; \r
+                                                   vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_host_repeat',[vm.apiRouteInfo.server]);\r
+                                                       return;\r
+                                               }\r
+                                       \r
+                               }\r
+                               var server={ip:ip,port:port,weight: 0};\r
+                               vm.iuiRouteInfo.servers.push(server);\r
+                               vm.iuiRouteInfo.server="";\r
+                               vm.server_rtn.warning_block=false;\r
+                           vm.server_rtn.info_block=false; \r
+                               vm.server_rtn.rtn_info= "";\r
+\r
+\r
+               },\r
+               deliuiHost:function(ip,port){\r
+                       \r
+                       bootbox.confirm($.i18n.prop('org_onap_msb_route_err_host_del',[ip],[port]),function(result){\r
+                               if(result){\r
+                                       \r
+                                        for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){\r
+                                              if(vm.iuiRouteInfo.servers[i].ip == ip && vm.iuiRouteInfo.servers[i].port == port ){\r
+                                                   vm.iuiRouteInfo.servers.splice(i, 1);\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+                              }\r
+       \r
+                               });\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                           vm.server_rtn.info_block=false; \r
+                               vm.server_rtn.rtn_info= "";\r
+\r
+               },\r
+               $showmsbRouteDlg:function() {\r
+                       vm.msbRouteInfo.serviceName=""; \r
+                               vm.msbRouteInfo.version="";\r
+                               vm.msbRouteInfo.url="";\r
+                               vm.msbRouteInfo.protocol="";\r
+                               vm.msbRouteInfo.visualRange="";\r
+                               vm.msbRouteInfo.visualRangeArray=[];\r
+                               vm.msbRouteInfo.newHost="";\r
+                               vm.msbRouteInfo.nodes=[];                                       \r
+                               vm.msbRouteInfo.status="1";     \r
+                       \r
+\r
+                               vm.routeDlgInfo.saveType = "add";\r
+                               vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_add_msb');\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=false;\r
+\r
+               \r
+\r
+                               $(".form-group").each(function () {\r
+                                               $(this).removeClass('has-success');\r
+                                               $(this).removeClass('has-error');\r
+                                               $(this).find(".help-block[id]").remove();\r
+                                               $(this).find(".form-tip").removeClass('form-input-focus');\r
+                                               $(this).find(".item-tip").removeClass('item-tip-focus');\r
+                                       });\r
+\r
+                               $("#msbrouteDlg").modal("show");\r
+               },\r
+               $showiuiRouteDlg:function() {\r
+\r
+                               vm.iuiRouteInfo.serviceName="";\r
+                               vm.iuiRouteInfo.url="";\r
+                               vm.iuiRouteInfo.server="";\r
+                               vm.iuiRouteInfo.servers=[];     \r
+                               vm.iuiRouteInfo.control="0";    \r
+                               vm.iuiRouteInfo.status="1";     \r
+                       \r
+\r
+                               vm.routeDlgInfo.saveType = "add";\r
+                               vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_add_iui');\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=false;\r
+\r
+                               //$("input[name='iuioriService']").val("");\r
+\r
+                               $(".form-group").each(function () {\r
+                                               $(this).removeClass('has-success');\r
+                                               $(this).removeClass('has-error');\r
+                                               $(this).find(".help-block[id]").remove();\r
+                                               $(this).find(".form-tip").removeClass('form-input-focus');\r
+                                               $(this).find(".item-tip").removeClass('item-tip-focus');\r
+                                       });\r
+\r
+                               $("#iuirouteDlg").modal("show");\r
+                       },\r
+                       $showcustomRouteDlg:function() {\r
+\r
+                               vm.customRouteInfo.serviceName="";\r
+                               vm.customRouteInfo.url="";\r
+                               vm.customRouteInfo.server="";\r
+                               vm.customRouteInfo.servers=[];  \r
+                               vm.customRouteInfo.control="0"; \r
+                               vm.customRouteInfo.status="1";          \r
+                       \r
+\r
+                               vm.routeDlgInfo.saveType = "add";\r
+                               vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_add_custom');\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=false;\r
+\r
+                               //$("input[name='customoriService']").val("");\r
+\r
+                               $(".form-group").each(function () {\r
+                                               $(this).removeClass('has-success');\r
+                                               $(this).removeClass('has-error');\r
+                                               $(this).find(".help-block[id]").remove();\r
+                                               $(this).find(".form-tip").removeClass('form-input-focus');\r
+                                               $(this).find(".item-tip").removeClass('item-tip-focus');\r
+                                       });\r
+\r
+                               $("#customrouteDlg").modal("show");\r
+                       },\r
+                       $showApiRouteDlg : function() {\r
+\r
+                               $('#apiTab a:first').tab('show');\r
+                               vm.apiRouteInfo.serviceName="";\r
+                               vm.apiRouteInfo.version="";\r
+                               vm.apiRouteInfo.url="";\r
+                               vm.apiRouteInfo.control="0";\r
+                               vm.apiRouteInfo.status="1";\r
+                               // vm.apiRouteInfo.apiJson="/service/swagger.json";\r
+                               vm.apiRouteInfo.apiJsonType="1";                                \r
+                               vm.apiRouteInfo.server="";\r
+                               vm.apiRouteInfo.servers=[];     \r
+                       \r
+                               vm.apiJson.custom="/swagger.json";\r
+\r
+                               //$("input[name='oriService']").val("");\r
+\r
+               \r
+                               $('#apiJsonFullurl').collapse('hide');\r
+\r
+                       \r
+\r
+                               vm.routeDlgInfo.saveType = "add";\r
+                               vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_add_api');\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=false;\r
+\r
+                               $(".form-group").each(function () {\r
+                                               $(this).removeClass('has-success');\r
+                                               $(this).removeClass('has-error');\r
+                                               $(this).find(".help-block[id]").remove();\r
+                                               $(this).find(".form-tip").removeClass('form-input-focus');\r
+                                               $(this).find(".item-tip").removeClass('item-tip-focus');\r
+                                       });\r
+\r
+\r
+                               $("#routeDlg").modal("show");\r
+                       },\r
+                       $saveiuiRoute : function() {\r
+\r
+                               iuisuccess.hide();\r
+                               iuierror.hide();\r
+                               if (iuiform.valid() == false) {\r
+                                       return false;\r
+                               }\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=true;\r
+\r
+                               vm.iuiRouteInfo.serviceName=$.trim(vm.iuiRouteInfo.serviceName);\r
+                               \r
+                               var servers=[];\r
+                               for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){\r
+                                       var server={ip:vm.iuiRouteInfo.servers[i].ip,port:vm.iuiRouteInfo.servers[i].port,weight: 0};\r
+                                       servers.push(server);\r
+                               }\r
+\r
+\r
+\r
+                               var iuiRouteUrl=vm.iuiRouteInfo.url=="/"?"":vm.iuiRouteInfo.url;\r
+                               var data= JSON.stringify({\r
+                                                        "serviceName": vm.iuiRouteInfo.serviceName,\r
+                                                         "url": iuiRouteUrl,\r
+                                                         "control":vm.iuiRouteInfo.control,\r
+                                                         "status":vm.iuiRouteInfo.status,\r
+                                                         "host":vm.iuiRouteInfo.host,\r
+                                                         "publish_port:":vm.iuiRouteInfo.publish_port,\r
+                                                         "servers": servers\r
+                                               });\r
+\r
+                               if(vm.routeDlgInfo.saveType=="add")\r
+                               {\r
+\r
+                                       //Determine whether to repeat\r
+                                       for(var i=0;i<vm.iuiRouteArray.length;i++){\r
+                                       \r
+                                                       if(vm.iuiRouteArray[i].serviceName==vm.iuiRouteInfo.serviceName)\r
+                                                       {\r
+                                                               vm.server_rtn.warning_block=true;\r
+                                                           vm.server_rtn.info_block=false; \r
+                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_repeat',[vm.iuiRouteInfo.serviceName]);\r
+                                                               return;\r
+                                                       }\r
+                                               \r
+                                       }\r
+\r
+                 //save service\r
+                 \r
+              \r
+                   $.ajax({\r
+                       "type": 'POST',\r
+                       "url":  vm.$iuiRouteUrl+"?routeWay="+vm.route.routeWay,\r
+                       "data" : data,\r
+                       "dataType": "json",\r
+                       "contentType":"application/json",\r
+                       success: function (resp) {  \r
+                               \r
+                                               vm.iuiRouteArray.push(JSON.parse(data)); \r
+                                               vm.iuiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); \r
+\r
+                                               routeUtil.refreshRoute();       \r
+                                               $('#iuirouteDlg').modal('hide');                                                        \r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_iui'),$.i18n.prop('org_onap_msb_route_service_save'),"success");                    \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                                  vm.server_rtn.warning_block=true;\r
+                                              vm.server_rtn.info_block=false; \r
+                                              vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_save')+textStatus+":"+errorThrown;                \r
+                             \r
+                        }\r
+                   });\r
+               }\r
+               else{  //update\r
+\r
+                                var url= vm.$iuiRouteInstanceUrl;\r
+                        url=url.replace("{serviceName}",vm.iuiRouteInfo.oldServiceName);\r
+                        url=url+"?host="+vm.iuiRouteInfo.host+"&publish_port="+vm.iuiRouteInfo.publish_port+"&routeWay="+vm.route.routeWay;\r
+\r
+\r
+                           //Determine whether to repeat\r
+                         if(vm.iuiRouteInfo.serviceName!=vm.iuiRouteInfo.oldServiceName)  //Has been modified service name\r
+                         {\r
+                                       for(var i=0;i<vm.iuiRouteArray.length;i++){\r
+                                       \r
+                                                       if(vm.iuiRouteArray[i].serviceName==vm.iuiRouteInfo.serviceName)\r
+                                                       {\r
+                                                               vm.server_rtn.warning_block=true;\r
+                                                           vm.server_rtn.info_block=false; \r
+                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_repeat',[vm.iuiRouteInfo.serviceName]);\r
+                                                               return;\r
+                                                       }\r
+                                               \r
+                                       }\r
+                               }\r
+\r
+                       $.ajax({\r
+                       "type": 'PUT',\r
+                       "url": url,\r
+                        "data" :data,\r
+                       "dataType": "json",\r
+                       "contentType":"application/json",\r
+                       success: function (resp) {  \r
+                         \r
+                                                       for(var i=0;i<vm.iuiRouteArray.length;i++){\r
+                                           if(vm.iuiRouteArray[i].serviceName == vm.iuiRouteInfo.oldServiceName)\r
+                                           { \r
+                                               vm.iuiRouteArray[i].serviceName=vm.iuiRouteInfo.serviceName;                                          \r
+                                               vm.iuiRouteArray[i].url=iuiRouteUrl;\r
+                                               vm.iuiRouteArray[i].servers=vm.iuiRouteInfo.servers;\r
+                                              \r
+                                               break;\r
+                                           }\r
+                                        }\r
+                             \r
+\r
+\r
+                                               $('#iuirouteDlg').modal('hide');                                                        \r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_iui'),$.i18n.prop('org_onap_msb_route_service_update'),"success"); \r
+                                               \r
+\r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                                  vm.server_rtn.warning_block=true;\r
+                                              vm.server_rtn.info_block=false; \r
+                                              vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_save')+textStatus+":"+errorThrown;                \r
+                             \r
+                        }\r
+                   });\r
+\r
+              \r
+                          }\r
+                       },\r
+                       $savecustomRoute : function() {\r
+\r
+                               customsuccess.hide();\r
+                               customerror.hide();\r
+                               if (customform.valid() == false) {\r
+                                       return false;\r
+                               }\r
+\r
+                               if(vm.customRouteInfo.servers.length==0){\r
+                                       vm.server_rtn.warning_block=true;\r
+                                       vm.server_rtn.info_block=false; \r
+                                       vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_host_leastone');\r
+                                       return;\r
+                               }\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=true;\r
+\r
+                               vm.customRouteInfo.serviceName=$.trim(vm.customRouteInfo.serviceName);\r
+                               \r
+                               var servers=[];\r
+                               for(var i=0;i<vm.customRouteInfo.servers.length;i++){\r
+                                       var server={ip:vm.customRouteInfo.servers[i].ip,port:vm.customRouteInfo.servers[i].port,weight: 0};\r
+                                       servers.push(server);\r
+                               }\r
+\r
+                               var customRouteUrl=vm.customRouteInfo.url=="/"?"":vm.customRouteInfo.url;\r
+                               var data= JSON.stringify({\r
+                                                        "serviceName": vm.customRouteInfo.serviceName,\r
+                                                         "url": customRouteUrl,\r
+                                                         "control":vm.customRouteInfo.control,\r
+                                                         "status":vm.customRouteInfo.status,\r
+                                                         "host":vm.customRouteInfo.host,\r
+                                                         "publish_port":vm.customRouteInfo.publish_port,\r
+                                                         "servers": servers\r
+                                               });\r
+\r
+                               if(vm.routeDlgInfo.saveType=="add")\r
+                               {\r
+\r
+                                       //Determine whether to repeat\r
+                                       for(var i=0;i<vm.customRouteArray.length;i++){\r
+                                       \r
+                                                       if(vm.customRouteArray[i].serviceName==vm.customRouteInfo.serviceName)\r
+                                                       {\r
+                                                               vm.server_rtn.warning_block=true;\r
+                                                           vm.server_rtn.info_block=false; \r
+                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_repeat',[vm.customRouteInfo.serviceName]);\r
+                                                               return;\r
+                                                       }\r
+                                               \r
+                                       }\r
+\r
+                 //save \r
+                 \r
+              \r
+                   $.ajax({\r
+                       "type": 'POST',\r
+                       "url":  vm.$customRouteInstanceUrl+"?routeWay="+vm.route.routeWay,\r
+                       "data" : data,\r
+                       "dataType": "json",\r
+                       "contentType":"application/json",\r
+                       success: function (resp) {  \r
+                               \r
+                                               vm.customRouteArray.push(JSON.parse(data)); \r
+                                               routeUtil.groupRoute(vm.customRouteArray);\r
+\r
+\r
+                                               routeUtil.refreshRoute();       \r
+                                               $('#customrouteDlg').modal('hide');                                                     \r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_custom'),$.i18n.prop('org_onap_msb_route_service_save'),"success");                 \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                                  vm.server_rtn.warning_block=true;\r
+                                              vm.server_rtn.info_block=false; \r
+                                              vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_save')+textStatus+":"+errorThrown;                \r
+                             \r
+                        }\r
+                   });\r
+               }\r
+               else{  //update\r
+\r
+                           //Determine whether to repeat\r
+                         if(vm.customRouteInfo.serviceName!=vm.customRouteInfo.oldServiceName)  //Has been modified service name\r
+                         {\r
+                                       for(var i=0;i<vm.customRouteArray.length;i++){\r
+                                       \r
+                                                       if(vm.customRouteArray[i].serviceName==vm.customRouteInfo.serviceName)\r
+                                                       {\r
+                                                               vm.server_rtn.warning_block=true;\r
+                                                           vm.server_rtn.info_block=false; \r
+                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_repeat',[vm.customRouteInfo.serviceName]);\r
+                                                               return;\r
+                                                       }\r
+                                               \r
+                                       }\r
+                               }\r
+\r
+                                var url= vm.$customRouteInstanceUrl+"?serviceName="+vm.customRouteInfo.oldServiceName;\r
+                                url=url+"&host="+vm.customRouteInfo.host+"&publish_port="+vm.customRouteInfo.publish_port+"&routeWay="+vm.route.routeWay;\r
+               \r
+                       $.ajax({\r
+                       "type": 'PUT',\r
+                       "url": url,\r
+                        "data" :data,\r
+                       "dataType": "json",\r
+                       "contentType":"application/json",\r
+                       success: function (resp) {  \r
+                    \r
+                                                       for(var i=0;i<vm.customRouteArray.length;i++){\r
+                                           if(vm.customRouteArray[i].serviceName == vm.customRouteInfo.oldServiceName)\r
+                                           {\r
+                                               vm.customRouteArray[i].serviceName=vm.customRouteInfo.serviceName;                                            \r
+                                               vm.customRouteArray[i].url=customRouteUrl;\r
+                                               vm.customRouteArray[i].servers=vm.customRouteInfo.servers;\r
+                                               break;\r
+                                           }\r
+                                        }\r
+                                               \r
+                                               routeUtil.groupRoute(vm.customRouteArray);\r
+                             \r
+\r
+\r
+                                               $('#customrouteDlg').modal('hide');                                                     \r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_custom'),$.i18n.prop('org_onap_msb_route_service_update'),"success"); \r
+                                               \r
+\r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                                  vm.server_rtn.warning_block=true;\r
+                                              vm.server_rtn.info_block=false; \r
+                                              vm.server_rtn.rtn_info=$.i18n.prop('org_onap_msb_route_err_service_save')+textStatus+":"+errorThrown;                \r
+                             \r
+                        }\r
+                   });\r
+\r
+              \r
+                          }\r
+                       },\r
+                       $saveApiRoute : function() {\r
+\r
+                               success.hide();\r
+                               error.hide();\r
+                               if (form.valid() == false) {\r
+                                       return false;\r
+                               }\r
+\r
+                               if(vm.apiRouteInfo.servers.length==0){\r
+                                       vm.server_rtn.warning_block=true;\r
+                                       vm.server_rtn.info_block=false; \r
+                                       vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_host_leastone');\r
+                                       return;\r
+                               }\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=true;\r
+\r
+                               \r
+                               var apiRouteUrl=vm.apiRouteInfo.url=="/"?"":vm.apiRouteInfo.url;\r
+                               var apiJson=vm.apiRouteInfo.apiJsonType=="1"?vm.apiJson.custom:vm.apiJson.local;        \r
+\r
+                               var servers=[];\r
+                               for(var i=0;i<vm.apiRouteInfo.servers.length;i++){\r
+                                       var server={ip:vm.apiRouteInfo.servers[i].ip,port:vm.apiRouteInfo.servers[i].port,weight: 0};\r
+                                       servers.push(server);\r
+                               }\r
+\r
+\r
+                               var data= JSON.stringify({\r
+                                                        "serviceName": vm.apiRouteInfo.serviceName,\r
+                                                         "version": vm.apiRouteInfo.version,\r
+                                                         "url": apiRouteUrl,\r
+                                                         "apiJson": apiJson,\r
+                                                         "apiJsonType":vm.apiRouteInfo.apiJsonType,\r
+                                                         "control":vm.apiRouteInfo.control,\r
+                                                         "status":vm.apiRouteInfo.status,\r
+                                                         "host":vm.apiRouteInfo.host,\r
+                                                         "publish_port":vm.apiRouteInfo.publish_port,\r
+                                                         "servers": servers\r
+                                               \r
+                                               });\r
+\r
+                               if(vm.routeDlgInfo.saveType=="add")\r
+                               {\r
+\r
+                                        //Determine whether to repeat\r
+                                       for(var i=0;i<vm.apiRouteArray.length;i++){\r
+                                       \r
+                                                       if(vm.apiRouteArray[i].serviceName==vm.apiRouteInfo.serviceName \r
+                                                               && vm.apiRouteArray[i].version==vm.apiRouteInfo.version )\r
+                                                       {\r
+                                                               vm.server_rtn.warning_block=true;\r
+                                                           vm.server_rtn.info_block=false; \r
+                                                           vm.server_rtn.rtn_info=$.i18n.prop('org_onap_msb_route_err_api_repeat',[vm.apiRouteInfo.serviceName],[vm.apiRouteInfo.version]);\r
+                                                               return;\r
+                                                       }\r
+                                               \r
+                                       }\r
+\r
+                 //save\r
+                 \r
+              \r
+                   $.ajax({\r
+                       "type": 'POST',\r
+                       "url":  vm.$apiRouteUrl+"?routeWay="+vm.route.routeWay,\r
+                       "data" : data,\r
+                       "dataType": "json",\r
+                       "contentType":"application/json",\r
+                       success: function (resp) {  \r
+                               \r
+                                               vm.apiRouteArray.push(JSON.parse(data)); \r
+                                               vm.apiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); \r
+\r
+                                               routeUtil.refreshRoute();       \r
+                                               $('#routeDlg').modal('hide');                                                   \r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_api'),$.i18n.prop('org_onap_msb_route_service_save'),"success");                    \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                                  vm.server_rtn.warning_block=true;\r
+                                              vm.server_rtn.info_block=false; \r
+                                              vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_save')+textStatus+":"+errorThrown;                \r
+                             \r
+                        }\r
+                   });\r
+               }\r
+               else{  //update\r
+                               \r
+\r
+                //Determine whether to repeat\r
+                         if(vm.apiRouteInfo.serviceName!=vm.apiRouteInfo.oldServiceName || \r
+                         vm.apiRouteInfo.version!=vm.apiRouteInfo.oldVersion)  //Has been modified service name\r
+                         {\r
+                                       for(var i=0;i<vm.apiRouteArray.length;i++){\r
+                                       \r
+                                                       if(vm.apiRouteArray[i].serviceName==vm.apiRouteInfo.serviceName \r
+                                                               && vm.apiRouteArray[i].version==vm.apiRouteInfo.version )\r
+                                                       {\r
+                                                               vm.server_rtn.warning_block=true;\r
+                                                           vm.server_rtn.info_block=false; \r
+                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_api_repeat',[vm.apiRouteInfo.serviceName],[vm.apiRouteInfo.version]);\r
+                                                               return;\r
+                                                       }\r
+                                               \r
+                                       }\r
+                               }\r
+\r
+                                var url= vm.$apiRouteInstanceUrl;\r
+                                var version=vm.apiRouteInfo.oldVersion==""?"null":vm.apiRouteInfo.oldVersion;\r
+                        url=url.replace("{serviceName}",vm.apiRouteInfo.oldServiceName).replace("{version}",version);\r
+                        url=url+"?host="+vm.apiRouteInfo.host+"&publish_port="+vm.apiRouteInfo.publish_port+"&routeWay="+vm.route.routeWay;\r
+\r
+\r
+                                $.ajax({\r
+                       "type": 'PUT',\r
+                       "url": url,\r
+                        "data" :data,\r
+                       "dataType": "json",\r
+                       "contentType":"application/json",\r
+                       success: function (resp) {  \r
+                         \r
+                                                       for(var i=0;i<vm.apiRouteArray.length;i++){\r
+                                           if(vm.apiRouteArray[i].serviceName == vm.apiRouteInfo.oldServiceName && \r
+                                               vm.apiRouteArray[i].version == vm.apiRouteInfo.oldVersion)\r
+                                           {\r
+                                               //vm.apiRouteArray[i] = JSON.parse(data);\r
+                                                               vm.apiRouteArray[i].serviceName=vm.apiRouteInfo.serviceName;\r
+                                                                       vm.apiRouteArray[i].version= vm.apiRouteInfo.version;\r
+                                                                       vm.apiRouteArray[i].url=apiRouteUrl;\r
+                                                                       vm.apiRouteArray[i].apiJson=apiJson;\r
+                                                                       vm.apiRouteArray[i].apiJsonType=vm.apiRouteInfo.apiJsonType;\r
+\r
+                                                                       vm.apiRouteArray[i].servers=vm.apiRouteInfo.servers;\r
+\r
+                                                                       \r
+                                               break;\r
+                                           }\r
+                                        }\r
+                             \r
+\r
+\r
+                                               $('#routeDlg').modal('hide');                                                   \r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_api'),$.i18n.prop('org_onap_msb_route_service_update'),"success"); \r
+                                               \r
+\r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                                  vm.server_rtn.warning_block=true;\r
+                                              vm.server_rtn.info_block=false; \r
+                                              vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_save')+textStatus+":"+errorThrown;                \r
+                             \r
+                        }\r
+                   });\r
+\r
+              \r
+                          }\r
+                       },\r
+                       $savemsbRoute : function() {\r
+\r
+                               msbsuccess.hide();\r
+                               msberror.hide();\r
+                               if (msbform.valid() == false) {\r
+                                       return false;\r
+                               }\r
+\r
+                               if(vm.msbRouteInfo.nodes.length==0){\r
+                                       vm.server_rtn.warning_block=true;\r
+                                       vm.server_rtn.info_block=false; \r
+                                       vm.server_rtn.rtn_info=$.i18n.prop('org_onap_msb_route_err_host_leastone');\r
+                                       return;\r
+                               }\r
+\r
+                               if(vm.msbRouteInfo.visualRangeArray.length==0){\r
+                                       vm.server_rtn.warning_block=true;\r
+                                       vm.server_rtn.info_block=false; \r
+                                       vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_visualrange_empty');\r
+                                       return;\r
+                               }\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=true;\r
+\r
+                               var msbUrl=vm.msbRouteInfo.url=="/"?"":vm.msbRouteInfo.url;\r
+               \r
+\r
+                               var nodes=[];\r
+                               for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){\r
+                                       var node={ip:vm.msbRouteInfo.nodes[i].ip,port:vm.msbRouteInfo.nodes[i].port,ttl: vm.msbRouteInfo.nodes[i].ttl};\r
+                                       nodes.push(node);\r
+                               }\r
+\r
+                               var data= JSON.stringify({\r
+                                                        "serviceName": vm.msbRouteInfo.serviceName,\r
+                                                         "version": vm.msbRouteInfo.version,\r
+                                                         "url": msbUrl,                                                         \r
+                                                         "nodes": nodes,\r
+                                                         "protocol":vm.msbRouteInfo.protocol,\r
+                                                         "visualRange":vm.msbRouteInfo.visualRangeArray.join("|")\r
+                                               });\r
+\r
+                               if(vm.routeDlgInfo.saveType=="add")\r
+                               {\r
+\r
+                                       //Determine whether to repeat\r
+                                       for(var i=0;i<vm.msbRouteArray.length;i++){\r
+                                       \r
+                                                       if(vm.msbRouteArray[i].serviceName==vm.msbRouteInfo.serviceName \r
+                                                               && vm.msbRouteArray[i].version==vm.msbRouteInfo.version )\r
+                                                       {\r
+                                                               vm.server_rtn.warning_block=true;\r
+                                                           vm.server_rtn.info_block=false; \r
+                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_api_repeat',[vm.msbRouteInfo.serviceName],[vm.msbRouteInfo.version]);\r
+                                                       }\r
+                                               \r
+                                       }\r
+\r
+                 //save\r
+                 \r
+              \r
+                   $.ajax({\r
+                       "type": 'POST',\r
+                       "url":  vm.$msbRouteUrl,\r
+                       "data" : data,\r
+                       "dataType": "json",\r
+                       "contentType":"application/json",\r
+                       success: function (resp) {  \r
+                          \r
+                                                // vm.msbRouteArray.push(JSON.parse(data)); \r
+                                                 table.destroy();\r
+                                                 vm.initMSBRoute();\r
+\r
+                                         //       table=$('#msbTable').DataTable({\r
+                                                    \r
+                                                       //   "oLanguage": vm.$dataTableLanguage,\r
+                                                       //   columnDefs: [ {\r
+                                                       //            targets: [ 7 ],\r
+                                                       //            "searchable": false,\r
+                                                       //            "bSortable": false,\r
+                                                       //          }]\r
+                                                       // });\r
+       \r
+                                               $('#msbrouteDlg').modal('hide');                                                        \r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_msb'),$.i18n.prop('org_onap_msb_route_service_save'),"success");                    \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                                  vm.server_rtn.warning_block=true;\r
+                                              vm.server_rtn.info_block=false; \r
+                                              vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_save')+XMLHttpRequest.responseText;                \r
+                             \r
+                        }\r
+                   });\r
+               }\r
+               else{  //update\r
+                               \r
+\r
+                //Determine whether to repeat\r
+                         if(vm.msbRouteInfo.serviceName!=vm.msbRouteInfo.oldServiceName || \r
+                         vm.msbRouteInfo.version!=vm.msbRouteInfo.oldVersion)  //Has been modified service name or version\r
+                         {\r
+                                       for(var i=0;i<vm.msbRouteArray.length;i++){\r
+                                       \r
+                                                       if(vm.msbRouteArray[i].serviceName==vm.msbRouteInfo.serviceName \r
+                                                               && vm.msbRouteArray[i].version==vm.msbRouteInfo.version )\r
+                                                       {\r
+                                                               vm.server_rtn.warning_block=true;\r
+                                                           vm.server_rtn.info_block=false; \r
+                                                           vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_api_repeat',[vm.msbRouteInfo.serviceName],[vm.msbRouteInfo.version]);\r
+                                                               return;\r
+                                                       }\r
+                                               \r
+                                       }\r
+                               }\r
+\r
+                                var url= vm.$msbRouteInstanceUrl;\r
+                                var version=vm.msbRouteInfo.oldVersion==""?"null":vm.msbRouteInfo.oldVersion;\r
+                                var serviceName2= vm.msbRouteInfo.oldServiceName.replace(/\//g,"*");\r
+                        url=url.replace("{serviceName}",serviceName2).replace("{version}",version);\r
+\r
+\r
+                                $.ajax({\r
+                       "type": 'PUT',\r
+                       "url": url,\r
+                        "data" :data,\r
+                       "dataType": "json",\r
+                       "contentType":"application/json",\r
+                       success: function (resp) {  \r
+                    \r
+                                                       for(var i=0;i<vm.msbRouteArray.length;i++){\r
+                                           if(vm.msbRouteArray[i].serviceName == vm.msbRouteInfo.oldServiceName && \r
+                                               vm.msbRouteArray[i].version == vm.msbRouteInfo.oldVersion)\r
+                                           {\r
+                                               //vm.apiRouteArray[i] = JSON.parse(data);\r
+                                                               vm.msbRouteArray[i].serviceName=vm.msbRouteInfo.serviceName;\r
+                                                                       vm.msbRouteArray[i].version= vm.msbRouteInfo.version;\r
+                                                                       vm.msbRouteArray[i].url=msbUrl;\r
+                                                                       vm.msbRouteArray[i].protocol=vm.msbRouteInfo.protocol;\r
+                                                                       vm.msbRouteArray[i].visualRange=vm.msbRouteInfo.visualRange;\r
+                                                                       vm.msbRouteArray[i].visualRangeArray=vm.msbRouteInfo.visualRangeArray;\r
+                                                                       vm.msbRouteArray[i].nodes=nodes;\r
+                                                                                                            \r
+                                               break;\r
+                                           }\r
+                                        }\r
+                             \r
+\r
+\r
+                                               $('#msbrouteDlg').modal('hide');                                                        \r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_msb'),$.i18n.prop('org_onap_msb_route_service_update'),"success"); \r
+                                               \r
+\r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                                  vm.server_rtn.warning_block=true;\r
+                                              vm.server_rtn.info_block=false; \r
+                                              vm.server_rtn.rtn_info= $.i18n.prop('org_onap_msb_route_err_service_save')+XMLHttpRequest.responseText;                \r
+                             \r
+                        }\r
+                   });\r
+\r
+              \r
+                          }\r
+                       },\r
+\r
+                       updateApiRouteStatus:function(serviceName,version,status){\r
+\r
+                               var url= vm.$apiRouteStatusUrl;\r
+                                   var version2=version==""?"null":version;\r
+                        url=url.replace("{serviceName}",serviceName).replace("{version}",version2).replace("{status}",status);\r
+       \r
+                                        $.ajax({\r
+                       "type": 'PUT',\r
+                       "url": url,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                               \r
+                             \r
+                                                        for(var i=0;i<vm.apiRouteArray.length;i++){\r
+                                              if(vm.apiRouteArray[i].serviceName == serviceName && \r
+                                               vm.apiRouteArray[i].version == version){\r
+                                                   vm.apiRouteArray[i].status=status;\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+                                         if(status=='1')   \r
+                                         {\r
+                                           routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_api'),$.i18n.prop('org_onap_msb_route_status_enable'),"success");\r
+                                         }\r
+                                         else{\r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_api'),$.i18n.prop('org_onap_msb_route_status_disable'),"success");\r
+                                         }\r
+                                       \r
+\r
+               \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                               bootbox.alert($.i18n.prop('org_onap_msb_route_err_status')+textStatus+":"+errorThrown);                \r
+                             \r
+                        }\r
+                   });\r
+\r
+                       },\r
+                       updateiuiRouteStatus:function(serviceName,status){\r
+\r
+                               var url= vm.$iuiRouteStatusUrl;\r
+                               \r
+                     url=url.replace("{serviceName}",serviceName).replace("{status}",status);\r
+       \r
+                                        $.ajax({\r
+                       "type": 'PUT',\r
+                       "url": url,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                               \r
+                              \r
+                                                        for(var i=0;i<vm.iuiRouteArray.length;i++){\r
+                                              if(vm.iuiRouteArray[i].serviceName == serviceName){\r
+                                                   vm.iuiRouteArray[i].status=status;\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+                                         if(status=='1')   \r
+                                         {\r
+                                           routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_iui'),$.i18n.prop('org_onap_msb_route_status_enable'),"success");\r
+                                         }\r
+                                         else{\r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_iui'),$.i18n.prop('org_onap_msb_route_status_disable'),"success");\r
+                                         }\r
+                                       \r
+               \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                               bootbox.alert($.i18n.prop('org_onap_msb_route_err_status')+textStatus+":"+errorThrown);                \r
+                             \r
+                        }\r
+                   });\r
+\r
+                       },\r
+                       updatecustomRouteStatus:function(serviceName,status){\r
+\r
+                               \r
+              var url= vm.$customRouteStatusUrl+"?serviceName="+serviceName+"&status="+status;\r
+\r
+       \r
+                                        $.ajax({\r
+                       "type": 'PUT',\r
+                       "url": url,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                               \r
+                         \r
+                                                        for(var i=0;i<vm.customRouteArray.length;i++){\r
+                                              if(vm.customRouteArray[i].serviceName == serviceName){\r
+                                                   vm.customRouteArray[i].status=status;\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+\r
+                                   routeUtil.groupRoute(vm.customRouteArray);\r
+\r
+                                         if(status=='1')   \r
+                                         {\r
+                                           routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_custom'),$.i18n.prop('org_onap_msb_route_status_enable'),"success");\r
+                                         }\r
+                                         else{\r
+                                               routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_custom'),$.i18n.prop('org_onap_msb_route_status_disable'),"success");\r
+                                         }\r
+                                       \r
+\r
+               \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                               bootbox.alert($.i18n.prop('org_onap_msb_route_err_status')+textStatus+":"+errorThrown);                \r
+                             \r
+                        }\r
+                   });\r
+\r
+                       },\r
+                       updateApiRoute:function(apiRouteInfo,type){\r
+                       \r
+                               if(vm.route.routeWay=="domain"){\r
+                                       vm.route.routeHost=apiRouteInfo.host+vm.route.routeSubDomain;                                   \r
+                               }\r
+                               else{\r
+                                       if(apiRouteInfo.publish_port!=""){\r
+                                               vm.route.routeHost=vm.route.routeIP+":"+apiRouteInfo.publish_port;                                              \r
+                                       }\r
+                                       else{\r
+                                               vm.route.routeHost=window.location.host.split(":")[0];\r
+                                       }\r
+                               }\r
+                       \r
+\r
+                               $('#apiJsonFullurl').collapse('hide');\r
+                               $('#apiTab a:first').tab('show');\r
+                               \r
+                               vm.apiRouteInfo.serviceName=apiRouteInfo.serviceName;\r
+                               vm.apiRouteInfo.oldServiceName=apiRouteInfo.serviceName;\r
+                               vm.apiRouteInfo.version= apiRouteInfo.version;\r
+                               vm.apiRouteInfo.oldVersion=apiRouteInfo.version;\r
+                               vm.apiRouteInfo.url=apiRouteInfo.url==""?"/":apiRouteInfo.url;\r
+                               vm.apiRouteInfo.apiJson=apiRouteInfo.apiJson;\r
+                               vm.apiRouteInfo.apiJsonType=apiRouteInfo.apiJsonType;\r
+                               vm.apiRouteInfo.control=apiRouteInfo.control;\r
+                               vm.apiRouteInfo.status= apiRouteInfo.status;\r
+                               vm.apiRouteInfo.host= apiRouteInfo.host;\r
+                               vm.apiRouteInfo.publish_port= apiRouteInfo.publish_port;\r
+                               vm.apiRouteInfo.publishProtocol= apiRouteInfo.publishProtocol;\r
+                               \r
+\r
+                               if(vm.apiRouteInfo.apiJsonType=="1"){\r
+                                       vm.apiJson.custom=apiRouteInfo.apiJson;\r
+                               }\r
+                               else{\r
+                                       vm.apiJson.local=apiRouteInfo.apiJson;\r
+                                       vm.apiJson.custom="/swagger.json";\r
+                                        $("#apiJsonSelect").val(apiRouteInfo.apiJson);\r
+                               }\r
+\r
+                               vm.apiRouteInfo.server="";\r
+                               vm.apiRouteInfo.servers=[];\r
+                               vm.apiRouteInfo.servers=apiRouteInfo.servers;\r
+\r
+                               \r
+\r
+\r
+                               // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);\r
+               \r
+                               vm.routeDlgInfo.saveType = type;\r
+                               if(type=='update'){\r
+                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_edit_api');     \r
+                               }\r
+                               else if(type=='view'){\r
+                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_view_api');     \r
+                               }\r
+                               \r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=false;\r
+\r
+\r
+                               $(".form-group").each(function () {\r
+                                               $(this).removeClass('has-success');\r
+                                               $(this).removeClass('has-error');\r
+                                               $(this).find(".help-block[id]").remove();\r
+                                               $(this).find(".item-tip").addClass("item-tip-focus");\r
+                                               $(this).find(".form-tip").removeClass('form-input-focus');\r
+                                       });\r
+\r
+                               $("#routeDlg").modal("show");\r
+                       },\r
+                       updateiuiRoute:function(iuiRouteInfo,type){\r
+                               \r
+                               if(vm.route.routeWay=="domain"){\r
+                                       vm.route.routeHost= iuiRouteInfo.host+vm.route.routeSubDomain;\r
+\r
+                               }\r
+                               else{\r
+                                       if(iuiRouteInfo.publish_port!=""){\r
+                                               vm.route.routeHost=vm.route.routeIP+":"+iuiRouteInfo.publish_port;                                              \r
+                                       }\r
+                                       else{\r
+                                               vm.route.routeHost=window.location.host.split(":")[0];\r
+                                       }\r
+                               }\r
+                               \r
+                               vm.iuiRouteInfo.serviceName=iuiRouteInfo.serviceName;\r
+                               vm.iuiRouteInfo.oldServiceName=iuiRouteInfo.serviceName;\r
+                               vm.iuiRouteInfo.url=iuiRouteInfo.url==""?"/":iuiRouteInfo.url;\r
+                               vm.iuiRouteInfo.server="";\r
+                               vm.iuiRouteInfo.servers=[];\r
+                               vm.iuiRouteInfo.servers=iuiRouteInfo.servers;\r
+                               vm.iuiRouteInfo.control=iuiRouteInfo.control;\r
+                               vm.iuiRouteInfo.status=iuiRouteInfo.status;\r
+                               vm.iuiRouteInfo.host= iuiRouteInfo.host;\r
+                               vm.iuiRouteInfo.publish_port= iuiRouteInfo.publish_port;\r
+                               vm.iuiRouteInfo.publishProtocol= iuiRouteInfo.publishProtocol;\r
+\r
+                               \r
+                               \r
+\r
+\r
+                               // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);\r
+               \r
+                               \r
+                               vm.routeDlgInfo.saveType = type;\r
+                               if(type=='update'){\r
+                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_edit_iui');     \r
+                               }\r
+                               else if(type=='view'){\r
+                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_view_iui');     \r
+                               }\r
+\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=false;\r
+\r
+\r
+                               $(".form-group").each(function () {\r
+                                               $(this).removeClass('has-success');\r
+                                               $(this).removeClass('has-error');\r
+                                               $(this).find(".help-block[id]").remove();\r
+                                               $(this).find(".item-tip").addClass("item-tip-focus");\r
+                                               $(this).find(".form-tip").removeClass('form-input-focus');\r
+                                       });\r
+\r
+                               $("#iuirouteDlg").modal("show");\r
+                       },\r
+                       updatecustomRoute:function(customRouteInfo,type){\r
+                               \r
+                               if(vm.route.routeWay=="domain"){\r
+                                       vm.route.routeHost= customRouteInfo.host+vm.route.routeSubDomain;\r
+\r
+                               }\r
+                               else{\r
+                                       if(customRouteInfo.publish_port!=""){\r
+                                               vm.route.routeHost=vm.route.routeIP+":"+customRouteInfo.publish_port;                                                   \r
+                                       }\r
+                                       else{\r
+                                               vm.route.routeHost=window.location.host.split(":")[0];\r
+                                       }\r
+                               }\r
+\r
+                       \r
+\r
+                               vm.customRouteInfo.serviceName=customRouteInfo.serviceName;\r
+                               vm.customRouteInfo.oldServiceName=customRouteInfo.serviceName;\r
+                               \r
+                               vm.customRouteInfo.url=customRouteInfo.url==""?"/":customRouteInfo.url;\r
+                               vm.customRouteInfo.server="";\r
+                               vm.customRouteInfo.servers=[];\r
+                               vm.customRouteInfo.servers=customRouteInfo.servers;\r
+                               vm.customRouteInfo.control=customRouteInfo.control;\r
+                               vm.customRouteInfo.status=customRouteInfo.status;\r
+                               vm.customRouteInfo.host= customRouteInfo.host;\r
+                               vm.customRouteInfo.publish_port= customRouteInfo.publish_port;\r
+                               vm.customRouteInfo.publishProtocol= customRouteInfo.publishProtocol;\r
+\r
+                               \r
+                               // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);\r
+               \r
+                               vm.routeDlgInfo.saveType = type;\r
+                               if(type=='update'){\r
+                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_edit_custom');\r
+                               }\r
+                               else if(type=='view'){\r
+                                       vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_view_custom');\r
+                               }\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=false;\r
+\r
+\r
+                               $(".form-group").each(function () {\r
+                                               $(this).removeClass('has-success');\r
+                                               $(this).removeClass('has-error');\r
+                                               $(this).find(".help-block[id]").remove();\r
+                                               $(this).find(".item-tip").addClass("item-tip-focus");\r
+                                               $(this).find(".form-tip").removeClass('form-input-focus');\r
+                                       });\r
+\r
+                               $("#customrouteDlg").modal("show");\r
+                       },\r
+                       updatemsbRoute:function(msbRouteInfo){\r
+                       \r
+                                       vm.msbRouteInfo.serviceName=msbRouteInfo.serviceName;\r
+                                       vm.msbRouteInfo.oldServiceName=msbRouteInfo.serviceName;\r
+                                       vm.msbRouteInfo.version= msbRouteInfo.version;\r
+                                       vm.msbRouteInfo.oldVersion= msbRouteInfo.version\r
+                                       vm.msbRouteInfo.url=msbRouteInfo.url==""?"/":msbRouteInfo.url;\r
+                                       vm.msbRouteInfo.protocol=msbRouteInfo.protocol;\r
+                                       vm.msbRouteInfo.visualRange=msbRouteInfo.visualRange;\r
+                                       vm.msbRouteInfo.visualRangeArray=msbRouteInfo.visualRange.split("|");\r
+                                       vm.msbRouteInfo.nodes=msbRouteInfo.nodes;\r
+                                       vm.msbRouteInfo.newHost="";\r
+                                       vm.msbRouteInfo.newttl="";\r
+                       \r
+                               routeUtil.changeTargetServiceUrl();\r
+               \r
+                               vm.routeDlgInfo.saveType = "update";\r
+                               vm.routeDlgInfo.titleName=$.i18n.prop('org_onap_msb_route_title_edit_msb');\r
+                               vm.server_rtn.warning_block=false;\r
+                               vm.server_rtn.info_block=false;\r
+\r
+\r
+                               $(".form-group").each(function () {\r
+                                               $(this).removeClass('has-success');\r
+                                               $(this).removeClass('has-error');\r
+                                               $(this).find(".help-block[id]").remove();\r
+                                               $(this).find(".item-tip").addClass("item-tip-focus");\r
+                                               $(this).find(".form-tip").removeClass('form-input-focus');\r
+                                       });\r
+\r
+                               $("#msbrouteDlg").modal("show");\r
+                       },\r
+                       delApiRoute:function(serviceName,version){\r
+                               bootbox.confirm($.i18n.prop('org_onap_msb_route_err_service_del_ask',[serviceName],[version]),function(result){\r
+                               if(result){\r
+                                       var url= vm.$apiRouteInstanceUrl;\r
+                                   var version2=version==""?"null":version;\r
+                        url=url.replace("{serviceName}",serviceName).replace("{version}",version2);\r
+       \r
+                                        $.ajax({\r
+                       "type": 'DELETE',\r
+                       "url": url,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                               \r
+                                                        for(var i=0;i<vm.apiRouteArray.length;i++){\r
+                                              if(vm.apiRouteArray[i].serviceName == serviceName && \r
+                                               vm.apiRouteArray[i].version == version){\r
+                                                   vm.apiRouteArray.splice(i, 1);\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+                                        routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_api'),$.i18n.prop('org_onap_msb_route_service_del_success'),"success");\r
+                                       \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                               bootbox.alert($.i18n.prop('org_onap_msb_route_service_del_fail')+textStatus+":"+errorThrown);                \r
+                             \r
+                        }\r
+                   });\r
+\r
+\r
+                              }\r
+       \r
+                               });\r
+                               \r
+                       },\r
+                       deliuiRoute:function(serviceName){\r
+                               bootbox.confirm($.i18n.prop('org_onap_msb_route_err_service2_del_ask',[serviceName]),function(result){\r
+                               if(result){\r
+                                       var url= vm.$iuiRouteInstanceUrl;\r
+                                \r
+                        url=url.replace("{serviceName}",serviceName);\r
+       \r
+                                        $.ajax({\r
+                       "type": 'DELETE',\r
+                       "url": url,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                               \r
+                                                        for(var i=0;i<vm.iuiRouteArray.length;i++){\r
+                                              if(vm.iuiRouteArray[i].serviceName == serviceName){\r
+                                                   vm.iuiRouteArray.splice(i, 1);\r
+                                                   break;\r
+                                               }\r
+                                           }   \r
+\r
+                                        routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_iui'),$.i18n.prop('org_onap_msb_route_service_del_success'),"success");\r
+                                       \r
+               \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                               bootbox.alert($.i18n.prop('org_onap_msb_route_service_del_fail')+textStatus+":"+errorThrown);                \r
+                             \r
+                        }\r
+                   });\r
+\r
+\r
+                              }\r
+       \r
+                               });\r
+                               \r
+                       },\r
+                       delcustomRoute:function(serviceName){\r
+                               bootbox.confirm($.i18n.prop('org_onap_msb_route_err_service2_del_ask',[serviceName]),function(result){\r
+                               if(result){\r
+                                       var url= vm.$customRouteInstanceUrl+"?serviceName="+serviceName;\r
+       \r
+                                        $.ajax({\r
+                       "type": 'DELETE',\r
+                       "url": url,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                               \r
+                                                        for(var i=0;i<vm.customRouteArray.length;i++){\r
+                                              if(vm.customRouteArray[i].serviceName == serviceName){\r
+                                                   vm.customRouteArray.splice(i, 1);\r
+                                                   break;\r
+                                               }\r
+                                                               }\r
+\r
+                                            routeUtil.groupRoute(vm.customRouteArray);\r
+                                               \r
+\r
+                                        routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_custom'),$.i18n.prop('org_onap_msb_route_service_del_success'),"success");\r
+                                       \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                               bootbox.alert($.i18n.prop('org_onap_msb_route_service_del_fail')+textStatus+":"+errorThrown);                \r
+                             \r
+                        }\r
+                   });\r
+\r
+\r
+                              }\r
+       \r
+                               });\r
+                               \r
+                       },\r
+                       delmsbRoute:function(serviceName,version,obj){\r
+                               bootbox.confirm($.i18n.prop('org_onap_msb_route_err_service_del_ask',[serviceName],[version]),function(result){\r
+                               if(result){\r
+                                       var url= vm.$msbRouteInstanceUrl;\r
+                                   var version2=version==""?"null":version;\r
+                                   var serviceName2= serviceName.replace(/\//g,"*");\r
+                        url=url.replace("{serviceName}",serviceName2).replace("{version}",version2);\r
+       \r
+                                        $.ajax({\r
+                       "type": 'DELETE',\r
+                       "url": url,\r
+                       "dataType": "json",\r
+                       success: function (resp) {  \r
+                               $(obj).parent().parent().addClass('selected');\r
+                               \r
+                               for(var i=0;i<vm.msbRouteArray.length;i++){\r
+                                              if(vm.msbRouteArray[i].serviceName == serviceName &&\r
+                                                       vm.msbRouteArray[i].version==version ){\r
+                                                   vm.msbRouteArray.splice(i, 1);\r
+                                                   break;\r
+                                               }\r
+                                                               }\r
+\r
+                                                        table.row('.selected').remove().draw( false );\r
+\r
+                                        routeUtil.growl($.i18n.prop('org_onap_msb_route_tab_msb'),$.i18n.prop('org_onap_msb_route_service_del_success'),"success");\r
+                                       \r
+               \r
+                       },\r
+                        error: function(XMLHttpRequest, textStatus, errorThrown) {\r
+                                               \r
+                                               bootbox.alert($.i18n.prop('org_onap_msb_route_service_del_fail')+XMLHttpRequest.responseText);                \r
+                             \r
+                        }\r
+                        \r
+                            \r
+                   });\r
+\r
+\r
+                              }\r
+       \r
+                               });\r
+                               \r
+                       },\r
+                       exportServices:function(){\r
+                               var url=apiBasePath+"/apiRoute/export"+"?routeWay="+vm.route.routeWay;\r
+                               window.open(url); \r
+\r
+                       },\r
+                       gotoTarget:function(route,type){\r
+                               vm.selectedRoute=route;\r
+                               vm.selectedRouteType=type;\r
+\r
+                               if (self != top) {\r
+                               $(window.parent.document.body).animate({scrollTop:$("#msbSubPage").offset().top},1000);\r
+                               }\r
+                               else{\r
+                               $("body").animate({scrollTop:$("#msbSubPage").offset().top},1000);      \r
+                               }\r
+\r
+                               if(type=="api")\r
+                               {\r
+                                 vm.gotoRestDoc(); \r
+                               }\r
+                               else if(type=="iui"){\r
+                                 vm.gotoIUI(); \r
+                               }\r
+\r
+\r
+       \r
+                               \r
+                       },\r
+                       gotoRestDoc:function(){\r
+                               vm.routeTargetTitle=vm.selectedRoute.serviceName+"-"+$.i18n.prop("org_onap_msb_route_content_title");   \r
+\r
+                               var version=vm.selectedRoute.version==""?"":"/"+vm.selectedRoute.version;\r
+                               var sourceUrl;  \r
+\r
+                                   if(vm.selectedRoute.apiJsonType=="1")\r
+                                   {                   \r
+                                    \r
+                                     if(vm.route.routeWay=="domain"){\r
+                                               \r
+                                                        sourceUrl=window.location.protocol+"//"+vm.selectedRoute.host+vm.route.routeSubDomain+ "/apijson/"+vm.selectedRoute.serviceName+version;                               \r
+                                     }\r
+                                     else{\r
+                                        if(vm.selectedRoute.publish_port!=""){\r
+                                               sourceUrl=vm.selectedRoute.publishProtocol+"://"+ vm.route.routeIP+":"+vm.selectedRoute.publish_port+"/apijson/"+vm.selectedRoute.serviceName+version;\r
+\r
+                                        }\r
+                                        else{\r
+                                                sourceUrl= "/apijson/"+vm.selectedRoute.serviceName+version;\r
+                                        }\r
+                                       \r
+                                     }\r
+                                 \r
+                                       }\r
+                                       else{\r
+                                         sourceUrl= iuiBasePath+"/ext/initSwaggerJson/"+vm.selectedRoute.apiJson;      \r
+                                       }\r
+                                       //Local json data read from the real API service service address parameter\r
+                                       var url=iuiBasePath+"/api-doc/index.html?url="+sourceUrl+"&api=/api/"+vm.selectedRoute.serviceName+version;\r
+\r
+                                $('#msbSubPage').attr("src",url);  \r
+                                vm.apiIframeUrl=url; \r
+                       },      \r
+                       gotoIUI:function(){\r
+                               vm.routeTargetTitle=vm.selectedRoute.serviceName+"-"+$.i18n.prop('org_onap_msb_route_iui_content_title');                               \r
+                               var url;\r
+                               if(vm.route.routeWay=="domain"){\r
+                                               \r
+                                       url=window.location.protocol+"//"+vm.selectedRoute.host+vm.route.routeSubDomain+ "/iui/"+vm.selectedRoute.serviceName+"/";                              \r
+                               }\r
+                               else{\r
+                                        if(vm.selectedRoute.publish_port!=""){\r
+                                               url=vm.selectedRoute.publishProtocol+"://"+ vm.route.routeIP+":"+vm.selectedRoute.publish_port+"/iui/"+vm.selectedRoute.serviceName+"/";\r
+\r
+                                    }\r
+                                    else{\r
+                                       url= "/iui/"+vm.selectedRoute.serviceName+"/";\r
+                                    }\r
+\r
+                       \r
+                               }\r
+                                $('#msbSubPage').attr("src",url);   \r
+                                 vm.iuiIframeUrl=url; \r
+                       },\r
+                       initIUIfori18n:function(){\r
+                               vm.routeTargetTitle=$.i18n.prop("org_onap_msb_route_content_title");    \r
+                               vm.showAPITypeName=[$.i18n.prop("org_onap_msb_route_swagger_type_predefined"),$.i18n.prop("org_onap_msb_route_swagger_type_custominput")];\r
+                               vm.dataTableLanguage={\r
+                "sProcessing": "<img src='../img/loading-spinner-grey.gif'/><span>&nbsp;&nbsp;Loadding...</span>",   \r
+                "sLengthMenu": $.i18n.prop("org_onap_msb_route-table-sLengthMenu"),\r
+                "sZeroRecords": $.i18n.prop("org_onap_msb_route-table-sZeroRecords"),\r
+                "sInfo": "<span class='seperator'>  </span>" + $.i18n.prop("org_onap_msb_route-table-sInfo"),\r
+                "sInfoEmpty": $.i18n.prop("org_onap_msb_route-table-sInfoEmpty"),\r
+                "sGroupActions": $.i18n.prop("org_onap_msb_route-table-sGroupActions"),\r
+                "sAjaxRequestGeneralError": $.i18n.prop("org_onap_msb_route-table-sAjaxRequestGeneralError"),\r
+                "sEmptyTable": $.i18n.prop("org_onap_msb_route-table-sEmptyTable"),\r
+                "oPaginate": {\r
+                    "sPrevious": $.i18n.prop("org_onap_msb_route-table-sPrevious"),\r
+                    "sNext": $.i18n.prop("org_onap_msb_route-table-sNext"),\r
+                    "sPage": $.i18n.prop("org_onap_msb_route-table-sPage"),\r
+                    "sPageOf": $.i18n.prop("org_onap_msb_route-table-sPageOf")\r
+                },\r
+                "sSearch": $.i18n.prop("org_onap_msb_route-table-search"),\r
+                "sInfoFiltered": $.i18n.prop("org_onap_msb_route-table-infofilter") \r
+            }; \r
+\r
+                       }\r
+                       \r
+               \r
+\r
+       });\r
+\r
+\r