msb protocol synch change
[msb/apigateway.git] / msb-core / apiroute / apiroute-service / src / main / resources / iui-route / js / routeController.js
1 /*
2  * Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  *     Author: Zhaoxing Meng
17  *     email: meng.zhaoxing1@zte.com.cn
18  */
19 var table;
20 var vm = avalon
21                 .define({
22                         $id : "routeController",
23                         targetServiceUrl:"",
24                         targetFullServiceUrl:"",
25                         iuiRootPath:iuiRootPath,
26                         apiRootPath:apiRootPath,
27                         apiIframeUrl:"",
28                         iuiIframeUrl:"",
29                         boxVisible:true,
30                         routeTargetTitle:$.i18n.prop("org_openo_msb_route_content_title"),                      
31                         server_rtn:{
32                                 info_block:false,
33                                 warning_block:false,
34                                 rtn_info:""
35                         },
36                         showAPIType:"0",
37                         showAPITypeName:[$.i18n.prop("org_openo_msb_route_swagger_type_predefined"),$.i18n.prop("org_openo_msb_route_swagger_type_custominput")],
38                         $msbProtocol :["REST","UI","HTTP","MQ","FTP","SNMP","TCP","UDP"],
39                         $msbType:["UI","NAF","SAF"],
40                         apiJson:{
41                                 local:"",
42                                 custom:""
43                         },
44                         setAPIType:function(type){
45                                 vm.apiRouteInfo.apiJsonType=type;
46                                 if(type==0){
47                                         vm.apiJson.local=vm.jsonApiSelectList.selectItems[0];
48                                 }
49
50                         },      
51                         jsonApiSelectList:  {
52                                         condName : "type",
53                                         component_type : 'select',
54                                         selectItems : []
55                                 },
56                         
57                  dataTableLanguage: {
58                 "sProcessing": "<img src='../img/loading-spinner-grey.gif'/><span>&nbsp;&nbsp;Loadding...</span>",   
59                 "sLengthMenu": $.i18n.prop("org_openo_msb_route-table-sLengthMenu"),
60                 "sZeroRecords": $.i18n.prop("org_openo_msb_route-table-sZeroRecords"),
61                 "sInfo": "<span class='seperator'>  </span>" + $.i18n.prop("org_openo_msb_route-table-sInfo"),
62                 "sInfoEmpty": $.i18n.prop("org_openo_msb_route-table-sInfoEmpty"),
63                 "sGroupActions": $.i18n.prop("org_openo_msb_route-table-sGroupActions"),
64                 "sAjaxRequestGeneralError": $.i18n.prop("org_openo_msb_route-table-sAjaxRequestGeneralError"),
65                 "sEmptyTable": $.i18n.prop("org_openo_msb_route-table-sEmptyTable"),
66                 "oPaginate": {
67                     "sPrevious": $.i18n.prop("org_openo_msb_route-table-sPrevious"),
68                     "sNext": $.i18n.prop("org_openo_msb_route-table-sNext"),
69                     "sPage": $.i18n.prop("org_openo_msb_route-table-sPage"),
70                     "sPageOf": $.i18n.prop("org_openo_msb_route-table-sPageOf")
71                 },
72                 "sSearch": $.i18n.prop("org_openo_msb_route-table-search"),
73                 "sInfoFiltered": $.i18n.prop("org_openo_msb_route-table-infofilter") 
74             },  
75                         $apiRouteUrl :apiBasePath+'/apiRoute',
76                         $apiRouteInstanceUrl :apiBasePath+'/apiRoute/{serviceName}/version/{version}',  
77                         $apiRouteStatusUrl :apiBasePath+'/apiRoute/{serviceName}/version/{version}/status/{status}',
78                         $apiDocsUrl :apiBasePath+'/apiRoute/apiDocs',   
79                         $apiGatewayPortUrl :apiBasePath+'/apiRoute/apiGatewayPort',     
80                         $discoverInfoUrl :apiBasePath+'/apiRoute/discoverInfo', 
81                         $iuiRouteUrl :apiBasePath+'/iuiRoute',
82                         $iuiRouteInstanceUrl :apiBasePath+'/iuiRoute/{serviceName}',
83                         $iuiRouteStatusUrl :apiBasePath+'/iuiRoute/{serviceName}/status/{status}',
84                         $customRouteUrl :apiBasePath+'/customRoute/all',
85                         $customRouteInstanceUrl :apiBasePath+'/customRoute/instance',
86                         $customRouteStatusUrl :apiBasePath+'/customRoute/status',       
87                         $msbRouteUrl:apiBasePath+'/services',   
88                         $msbRouteInstanceUrl :apiBasePath+'/services/{serviceName}/version/{version}',
89                         routeLoading:false,             
90                         apiRouteArray :  [],
91                         apiRouteInfo : {
92                             oldServiceName:"",                                  
93                                 serviceName : "",
94                                 oldVersion:"",  
95                                 version : "",
96                                 status:"",
97                                 url:"",
98                                 metricsUrl:"/admin/metrics",
99                                 apiJson:"/swagger.json",
100                                 apiJsonType:"1",
101                                 control:"",
102                                 server:"",
103                                 servers: []
104                         },      
105                         iuiRouteArray :  [],
106                         iuiRouteInfo : {        
107                             oldServiceName:"",                          
108                                 serviceName : "",
109                                 status:"",
110                                 url:"",
111                                 server:"",
112                                 control:"",
113                                 servers: []
114                         },      
115                         customRouteArray :  [],
116                         customGroupRouteArray :  [],
117                         customRouteInfo : {     
118                             oldServiceName:"",          
119                                 serviceName : "",
120                                 status:"",
121                                 url:"",
122                                 server:"",
123                                 control:"",
124                                 servers: []
125                         },
126                         msbRouteArray :  [],
127                         msbRouteInfo : {        
128                             oldServiceName:"",  
129                             oldVersion:"",                              
130                                 serviceName : "",
131                                 version:"",
132                                 status:"0",
133                                 nodes:[],
134                                 newHost:"",
135                                 newttl:0,
136                                 url:"",
137                                 protocol:"",
138                                 visualRange:"",
139                                 visualRangeArray:[]                     
140                         },
141                         discoverInfo:{
142                                 ip:"",
143                                 port:"",
144                                 enabled:false,
145                                 deployMode:""
146                         },
147                         selectedRoute:"",
148                         selectedRouteType:"",
149                         routeDlgInfo:{
150                                 titleName:"",
151                                 saveType:""
152                         },                                                                                              
153                         $initRoute : function() {
154                         
155
156
157                             vm.routeLoading=true;
158
159                              $.ajax({
160                                         "type": 'get',
161                                          async: false,
162                                         "url":  vm.$discoverInfoUrl,
163                                         "dataType": "json",
164                                         success: function (resp) { 
165                                    
166                                          vm.discoverInfo = (resp==null)?"":resp;
167                                                                                                         
168                                         },
169                                          error: function(XMLHttpRequest, textStatus, errorThrown) {
170                                                                    bootbox.alert("get discoverInfo fails:"+textStatus+":"+errorThrown); 
171                                          }
172                                     });
173
174                                   $.ajax({
175                         "type": 'get',
176                         "url":  vm.$apiRouteUrl,
177                         "dataType": "json",
178                         success: function (resp) {  
179                              vm.apiRouteArray = (resp==null)?[]:resp;  
180                              vm.apiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1});                     
181                         },
182                          error: function(XMLHttpRequest, textStatus, errorThrown) {
183                                                    bootbox.alert("get api services fails:"+textStatus+":"+errorThrown);                       
184                                return;
185                          },
186                          complete:function(){
187                                 vm.routeLoading=false;
188                                 routeUtil.refreshRoute();
189                                  $.ajax({
190                                         "type": 'get',
191                                         "url":  vm.$apiGatewayPortUrl,
192                                         "dataType": "text",
193                                         success: function (resp) { 
194                                    
195                                          vm.targetServiceUrl=location.hostname+":"+resp;
196                                                                                                         
197                                         },
198                                          error: function(XMLHttpRequest, textStatus, errorThrown) {
199                                                                    bootbox.alert("get apiGateway published port fails:"+textStatus+":"+errorThrown); 
200                                          }
201                                     });
202                           }
203                     });
204
205
206
207                                   $.ajax({
208                         "type": 'get',
209                         "url":  vm.$iuiRouteUrl,
210                         "dataType": "json",
211                         success: function (resp) {  
212                              vm.iuiRouteArray = (resp==null)?[]:resp;  
213                              vm.iuiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1});                     
214                         },
215                          error: function(XMLHttpRequest, textStatus, errorThrown) {
216                                                    bootbox.alert("get iui services fails:"+textStatus+":"+errorThrown);                       
217                                return;
218                          },
219                          complete:function(){                           
220                                 routeUtil.refreshRoute();                               
221                           }
222                     });
223
224
225
226                                   $.ajax({
227                         "type": 'get',
228                         "url":  vm.$customRouteUrl,
229                         "dataType": "json",
230                         success: function (resp) {  
231                               vm.customRouteArray = (resp==null)?[]:resp;   
232                         
233                             if(resp!=null && resp.length>0)
234                             {
235                              routeUtil.groupRoute(resp);
236                             }
237
238                         },
239                          error: function(XMLHttpRequest, textStatus, errorThrown) {
240                                                    bootbox.alert("get custom services fails:"+textStatus+":"+errorThrown);                       
241                                return;
242                          },
243                          complete:function(){                           
244                                 routeUtil.refreshRoute();                               
245                           }
246                     });
247
248
249                                   $.ajax({
250                         "type": 'get',
251                         "url":  vm.$apiDocsUrl,
252                         "dataType": "json",
253                         success: function (resp) {  
254                              vm.jsonApiSelectList.selectItems= (resp==null)?[]:resp;                    
255                         },
256                          error: function(XMLHttpRequest, textStatus, errorThrown) {
257                                                    bootbox.alert("get local apiDocs  fails:"+textStatus+":"+errorThrown); 
258                          }
259                     });
260
261
262
263                                   vm.initMSBRoute();
264
265
266                 
267
268                         },
269                         initMSBRoute:function(){
270                                 vm.initIUIfori18n();
271
272                                 $.ajax({
273                         "type": 'get',
274                         "url":  vm.$msbRouteUrl,
275                         "dataType": "json",
276                         success: function (resp) {  
277                               vm.msbRouteArray = (resp==null)?[]:resp;  
278                         
279                              vm.msbRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); 
280                                                 
281                         },
282                          error: function(XMLHttpRequest, textStatus, errorThrown) {
283                                                    bootbox.alert("get msb services fails:"+XMLHttpRequest.responseText);                       
284                                return;
285                          },
286                          complete:function(){
287
288                                 table=$('#msbTable').DataTable({
289                                                      
290                                                           "oLanguage": vm.dataTableLanguage,
291                                                           columnDefs: [ {
292                                                                       targets: [ 0,8 ],
293                                                                       "searchable": false,
294                                                                       "bSortable": false,
295                                                                     }],                                                              
296                                                                    "order": [[2, 'asc']]
297                                                         });
298                                 
299                                 }
300                                 });
301                
302                    
303                         },
304                         
305                         clickDisplayGraphAlink: function () {
306                 vm.boxVisible = !vm.boxVisible;
307                 },
308                 addmsbHost:function(){
309                         if(vm.msbRouteInfo.newHost==""){
310                                 vm.server_rtn.warning_block=true;
311                                     vm.server_rtn.info_block=false; 
312                                     vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_empty");
313                                         return;
314                         }
315
316                         if(vm.msbRouteInfo.newttl==""){
317                                 vm.server_rtn.warning_block=true;
318                                     vm.server_rtn.info_block=false; 
319                                     vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_ttl_empty");
320                                         return;
321                         }
322
323                           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})$/   
324                            var ip,port; 
325                                    if(!reg.test(vm.msbRouteInfo.newHost)){  
326                                         vm.server_rtn.warning_block=true;
327                                     vm.server_rtn.info_block=false; 
328                                     vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_format");
329                                         return;
330                                    }
331                                    else{
332                         
333                                         var hosts=vm.msbRouteInfo.newHost.split(":");  
334                                         ip=hosts[0];
335                                         port=hosts[1];
336                                    }
337
338                 var reg_ttl=/^\d+$/
339          
340                                  if(!reg_ttl.test(vm.msbRouteInfo.newttl)){  
341                                         vm.server_rtn.warning_block=true;
342                                     vm.server_rtn.info_block=false; 
343                                     vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_ttl_format");
344                                         return;
345                                    }  
346
347                                   
348
349                         // determine whether host repeated
350                                 for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
351                                 
352                                                 if(vm.msbRouteInfo.nodes[i].ip==ip && vm.msbRouteInfo.nodes[i].port==port )
353                                                 {
354                                                         vm.server_rtn.warning_block=true;
355                                                     vm.server_rtn.info_block=false; 
356                                                     vm.server_rtn.rtn_info=  $.i18n.prop('org_openo_msb_route_err_host_repeat',[vm.msbRouteInfo.newHost]); 
357                                                     return;
358                                                 }
359                                         
360                                 }
361
362                                 vm.msbRouteInfo.nodes.push({"ip":ip,"port":port,"ttl":vm.msbRouteInfo.newttl});
363                                 vm.msbRouteInfo.newHost="";
364                                 vm.msbRouteInfo.newttl="";
365                                 vm.server_rtn.warning_block=false;
366                             vm.server_rtn.info_block=false; 
367                                 vm.server_rtn.rtn_info= "";
368
369
370                 },
371                 delmsbHost:function(ip,port){
372                         
373                         bootbox.confirm( $.i18n.prop('org_openo_msb_route_err_host_del',[ip],[port]),function(result){
374                                 if(result){
375                                         
376                                          for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
377                                                if(vm.msbRouteInfo.nodes[i].ip == ip && vm.msbRouteInfo.nodes[i].port == port){
378                                                     vm.msbRouteInfo.nodes.splice(i, 1);
379                                                     break;
380                                                 }
381                                             }   
382
383                                }
384         
385                                 });
386
387                                 vm.server_rtn.warning_block=false;
388                             vm.server_rtn.info_block=false; 
389                                 vm.server_rtn.rtn_info= "";
390
391                 },
392                 addapiHost:function(){
393                         if(vm.apiRouteInfo.server==""){
394                                 vm.server_rtn.warning_block=true;
395                                     vm.server_rtn.info_block=false; 
396                                     vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_empty");
397                                         return;
398                         }
399
400                           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})$/   
401                           var ip,port;
402                                    if(!reg.test(vm.apiRouteInfo.server)){  
403                                         vm.server_rtn.warning_block=true;
404                                     vm.server_rtn.info_block=false; 
405                                     vm.server_rtn.rtn_info=  $.i18n.prop("org_openo_msb_route_err_host_format");
406                                         return;
407                                    }
408                                    else{
409                                         var hosts=vm.apiRouteInfo.server.split(":")
410                                         ip=hosts[0];
411                                         port=hosts[1];
412                                    }
413
414                         // determine whether host repeated
415                                 for(var i=0;i<vm.apiRouteInfo.servers.length;i++){
416                                 
417                                                 if(vm.apiRouteInfo.servers[i].ip==ip && vm.apiRouteInfo.servers[i].port==port)
418                                                 {
419                                                         vm.server_rtn.warning_block=true;
420                                                     vm.server_rtn.info_block=false; 
421                                                     vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_host_repeat',[vm.apiRouteInfo.server]); 
422                                                         return;
423                                                 }
424                                         
425                                 }
426                                 var server={ip:ip,port:port,weight: 0};
427                                 vm.apiRouteInfo.servers.push(server);
428                                 vm.apiRouteInfo.server="";
429                                 vm.server_rtn.warning_block=false;
430                             vm.server_rtn.info_block=false; 
431                                 vm.server_rtn.rtn_info= "";
432
433
434                 },
435                 delapiHost:function(ip,port){
436                         
437                         bootbox.confirm( $.i18n.prop('org_openo_msb_route_err_host_del',[ip],[port]),function(result){
438                                 if(result){
439                                         
440                                          for(var i=0;i<vm.apiRouteInfo.servers.length;i++){
441                                                if(vm.apiRouteInfo.servers[i].ip == ip && vm.apiRouteInfo.servers[i].port == port ){
442                                                     vm.apiRouteInfo.servers.splice(i, 1);
443                                                     break;
444                                                 }
445                                             }   
446
447                                }
448         
449                                 });
450
451                                 vm.server_rtn.warning_block=false;
452                             vm.server_rtn.info_block=false; 
453                                 vm.server_rtn.rtn_info= "";
454
455                 },
456                 addcustomHost:function(){
457                         if(vm.customRouteInfo.server==""){
458                                 vm.server_rtn.warning_block=true;
459                                     vm.server_rtn.info_block=false; 
460                                     vm.server_rtn.rtn_info=  $.i18n.prop("org_openo_msb_route_err_host_empty");
461                                         return;
462                         }
463
464                           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})$/   
465                           var ip,port;
466                                    if(!reg.test(vm.customRouteInfo.server)){  
467                                         vm.server_rtn.warning_block=true;
468                                     vm.server_rtn.info_block=false; 
469                                     vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_format");
470                                         return;
471                                    }
472                                    else{
473                                         var hosts=vm.customRouteInfo.server.split(":")
474                                         ip=hosts[0];
475                                         port=hosts[1];
476                                    }
477
478                         //判断host是否重复
479                                 for(var i=0;i<vm.customRouteInfo.servers.length;i++){
480                                 
481                                                 if(vm.customRouteInfo.servers[i].ip==ip && vm.customRouteInfo.servers[i].port==port)
482                                                 {
483                                                         vm.server_rtn.warning_block=true;
484                                                     vm.server_rtn.info_block=false; 
485                                                     vm.server_rtn.rtn_info=  $.i18n.prop('org_openo_msb_route_err_host_repeat',[vm.apiRouteInfo.server]);
486                                                         return;
487                                                 }
488                                         
489                                 }
490                                 var server={ip:ip,port:port,weight: 0};
491                                 vm.customRouteInfo.servers.push(server);
492                                 vm.customRouteInfo.server="";
493                                 vm.server_rtn.warning_block=false;
494                             vm.server_rtn.info_block=false; 
495                                 vm.server_rtn.rtn_info= "";
496
497
498                 },
499                 delcustomHost:function(ip,port){
500                         
501                         bootbox.confirm( $.i18n.prop('org_openo_msb_route_err_host_del',[ip],[port]),function(result){
502                                 if(result){
503                                         
504                                          for(var i=0;i<vm.customRouteInfo.servers.length;i++){
505                                                if(vm.customRouteInfo.servers[i].ip == ip && vm.customRouteInfo.servers[i].port == port ){
506                                                     vm.customRouteInfo.servers.splice(i, 1);
507                                                     break;
508                                                 }
509                                             }   
510
511                                }
512         
513                                 });
514
515                                 vm.server_rtn.warning_block=false;
516                             vm.server_rtn.info_block=false; 
517                                 vm.server_rtn.rtn_info= "";
518
519                 },
520                 addiuiHost:function(){
521                         if(vm.iuiRouteInfo.server==""){
522                                 vm.server_rtn.warning_block=true;
523                                     vm.server_rtn.info_block=false; 
524                                     vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_empty");
525                                         return;
526                         }
527
528                           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})$/   
529                           var ip,port;
530                                    if(!reg.test(vm.iuiRouteInfo.server)){  
531                                         vm.server_rtn.warning_block=true;
532                                     vm.server_rtn.info_block=false; 
533                                     vm.server_rtn.rtn_info= $.i18n.prop("org_openo_msb_route_err_host_format");
534                                         return;
535                                    }
536                                    else{
537                                         var hosts=vm.iuiRouteInfo.server.split(":")
538                                         ip=hosts[0];
539                                         port=hosts[1];
540                                    }
541
542                         //判断host是否重复
543                                 for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){
544                                 
545                                                 if(vm.iuiRouteInfo.servers[i].ip==ip && vm.iuiRouteInfo.servers[i].port==port)
546                                                 {
547                                                         vm.server_rtn.warning_block=true;
548                                                     vm.server_rtn.info_block=false; 
549                                                     vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_host_repeat',[vm.apiRouteInfo.server]);
550                                                         return;
551                                                 }
552                                         
553                                 }
554                                 var server={ip:ip,port:port,weight: 0};
555                                 vm.iuiRouteInfo.servers.push(server);
556                                 vm.iuiRouteInfo.server="";
557                                 vm.server_rtn.warning_block=false;
558                             vm.server_rtn.info_block=false; 
559                                 vm.server_rtn.rtn_info= "";
560
561
562                 },
563                 deliuiHost:function(ip,port){
564                         
565                         bootbox.confirm($.i18n.prop('org_openo_msb_route_err_host_del',[ip],[port]),function(result){
566                                 if(result){
567                                         
568                                          for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){
569                                                if(vm.iuiRouteInfo.servers[i].ip == ip && vm.iuiRouteInfo.servers[i].port == port ){
570                                                     vm.iuiRouteInfo.servers.splice(i, 1);
571                                                     break;
572                                                 }
573                                             }   
574
575                                }
576         
577                                 });
578
579                                 vm.server_rtn.warning_block=false;
580                             vm.server_rtn.info_block=false; 
581                                 vm.server_rtn.rtn_info= "";
582
583                 },
584                 $showmsbRouteDlg:function() {
585                         vm.msbRouteInfo.serviceName=""; 
586                                 vm.msbRouteInfo.version="";
587                                 vm.msbRouteInfo.url="";
588                                 vm.msbRouteInfo.protocol="";
589                                 vm.msbRouteInfo.visualRange="";
590                                 vm.msbRouteInfo.visualRangeArray=[];
591                                 vm.msbRouteInfo.newHost="";
592                                 vm.msbRouteInfo.nodes=[];                                       
593                                 vm.msbRouteInfo.status="1";     
594                         
595
596                                 vm.routeDlgInfo.saveType = "add";
597                                 vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_add_msb');
598                                 vm.server_rtn.warning_block=false;
599                                 vm.server_rtn.info_block=false;
600
601                 
602
603                                 $(".form-group").each(function () {
604                                                 $(this).removeClass('has-success');
605                                                 $(this).removeClass('has-error');
606                                                 $(this).find(".help-block[id]").remove();
607                                                 $(this).find(".form-tip").removeClass('form-input-focus');
608                                                 $(this).find(".item-tip").removeClass('item-tip-focus');
609                                         });
610
611                                 $("#msbrouteDlg").modal("show");
612                 },
613                 $showiuiRouteDlg:function() {
614
615                                 vm.iuiRouteInfo.serviceName="";
616                                 vm.iuiRouteInfo.url="";
617                                 vm.iuiRouteInfo.server="";
618                                 vm.iuiRouteInfo.servers=[];     
619                                 vm.iuiRouteInfo.control="0";    
620                                 vm.iuiRouteInfo.status="1";     
621                         
622
623                                 vm.routeDlgInfo.saveType = "add";
624                                 vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_add_iui');
625                                 vm.server_rtn.warning_block=false;
626                                 vm.server_rtn.info_block=false;
627
628                                 //$("input[name='iuioriService']").val("");
629
630                                 $(".form-group").each(function () {
631                                                 $(this).removeClass('has-success');
632                                                 $(this).removeClass('has-error');
633                                                 $(this).find(".help-block[id]").remove();
634                                                 $(this).find(".form-tip").removeClass('form-input-focus');
635                                                 $(this).find(".item-tip").removeClass('item-tip-focus');
636                                         });
637
638                                 $("#iuirouteDlg").modal("show");
639                         },
640                         $showcustomRouteDlg:function() {
641
642                                 vm.customRouteInfo.serviceName="";
643                                 vm.customRouteInfo.url="";
644                                 vm.customRouteInfo.server="";
645                                 vm.customRouteInfo.servers=[];  
646                                 vm.customRouteInfo.control="0"; 
647                                 vm.customRouteInfo.status="1";          
648                         
649
650                                 vm.routeDlgInfo.saveType = "add";
651                                 vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_add_custom');
652                                 vm.server_rtn.warning_block=false;
653                                 vm.server_rtn.info_block=false;
654
655                                 //$("input[name='customoriService']").val("");
656
657                                 $(".form-group").each(function () {
658                                                 $(this).removeClass('has-success');
659                                                 $(this).removeClass('has-error');
660                                                 $(this).find(".help-block[id]").remove();
661                                                 $(this).find(".form-tip").removeClass('form-input-focus');
662                                                 $(this).find(".item-tip").removeClass('item-tip-focus');
663                                         });
664
665                                 $("#customrouteDlg").modal("show");
666                         },
667                         $showApiRouteDlg : function() {
668
669                                 $('#apiTab a:first').tab('show');
670                                 vm.apiRouteInfo.serviceName="";
671                                 vm.apiRouteInfo.version="";
672                                 vm.apiRouteInfo.url="";
673                                 vm.apiRouteInfo.metricsUrl="/admin/metrics";
674                                 vm.apiRouteInfo.control="0";
675                                 vm.apiRouteInfo.status="1";
676                                 // vm.apiRouteInfo.apiJson="/service/swagger.json";
677                                 vm.apiRouteInfo.apiJsonType="1";                                
678                                 vm.apiRouteInfo.server="";
679                                 vm.apiRouteInfo.servers=[];     
680                         
681                                 vm.apiJson.custom="/swagger.json";
682
683                                 //$("input[name='oriService']").val("");
684
685                                 $('#metricsFullurl').collapse('hide');
686                                 $('#apiJsonFullurl').collapse('hide');
687
688                         
689
690                                 vm.routeDlgInfo.saveType = "add";
691                                 vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_add_api');
692                                 vm.server_rtn.warning_block=false;
693                                 vm.server_rtn.info_block=false;
694
695                                 $(".form-group").each(function () {
696                                                 $(this).removeClass('has-success');
697                                                 $(this).removeClass('has-error');
698                                                 $(this).find(".help-block[id]").remove();
699                                                 $(this).find(".form-tip").removeClass('form-input-focus');
700                                                 $(this).find(".item-tip").removeClass('item-tip-focus');
701                                         });
702
703
704                                 $("#routeDlg").modal("show");
705                         },
706                         $saveiuiRoute : function() {
707
708                                 iuisuccess.hide();
709                                 iuierror.hide();
710                                 if (iuiform.valid() == false) {
711                                         return false;
712                                 }
713
714                                 vm.server_rtn.warning_block=false;
715                                 vm.server_rtn.info_block=true;
716
717                                 vm.iuiRouteInfo.serviceName=$.trim(vm.iuiRouteInfo.serviceName);
718                                 
719                                 var servers=[];
720                                 for(var i=0;i<vm.iuiRouteInfo.servers.length;i++){
721                                         var server={ip:vm.iuiRouteInfo.servers[i].ip,port:vm.iuiRouteInfo.servers[i].port,weight: 0};
722                                         servers.push(server);
723                                 }
724
725
726
727                                 var iuiRouteUrl=vm.iuiRouteInfo.url=="/"?"":vm.iuiRouteInfo.url;
728                                 var data= JSON.stringify({
729                                                          "serviceName": vm.iuiRouteInfo.serviceName,
730                                                           "url": iuiRouteUrl,
731                                                           "control":vm.iuiRouteInfo.control,
732                                                           "status":vm.iuiRouteInfo.status,
733                                                           "servers": servers
734                                                 });
735
736                                 if(vm.routeDlgInfo.saveType=="add")
737                                 {
738
739                                         //Determine whether to repeat
740                                         for(var i=0;i<vm.iuiRouteArray.length;i++){
741                                         
742                                                         if(vm.iuiRouteArray[i].serviceName==vm.iuiRouteInfo.serviceName)
743                                                         {
744                                                                 vm.server_rtn.warning_block=true;
745                                                             vm.server_rtn.info_block=false; 
746                                                             vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_repeat',[vm.iuiRouteInfo.serviceName]);
747                                                                 return;
748                                                         }
749                                                 
750                                         }
751
752                  //save service
753                  
754               
755                    $.ajax({
756                         "type": 'POST',
757                         "url":  vm.$iuiRouteUrl,
758                         "data" : data,
759                         "dataType": "json",
760                         "contentType":"application/json",
761                         success: function (resp) {  
762                                 
763                                                 vm.iuiRouteArray.push(JSON.parse(data)); 
764                                                 vm.iuiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); 
765
766                                                 routeUtil.refreshRoute();       
767                                                 $('#iuirouteDlg').modal('hide');                                                        
768                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_service_save'),"success");                  
769                         },
770                          error: function(XMLHttpRequest, textStatus, errorThrown) {
771                                                 
772                                                    vm.server_rtn.warning_block=true;
773                                                vm.server_rtn.info_block=false; 
774                                                vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
775                               
776                          }
777                     });
778                }
779                else{  //update
780
781                          var url= vm.$iuiRouteInstanceUrl;
782                         url=url.replace("{serviceName}",vm.iuiRouteInfo.oldServiceName);
783
784                            //Determine whether to repeat
785                   if(vm.iuiRouteInfo.serviceName!=vm.iuiRouteInfo.oldServiceName)  //Has been modified service name
786                   {
787                                         for(var i=0;i<vm.iuiRouteArray.length;i++){
788                                         
789                                                         if(vm.iuiRouteArray[i].serviceName==vm.iuiRouteInfo.serviceName)
790                                                         {
791                                                                 vm.server_rtn.warning_block=true;
792                                                             vm.server_rtn.info_block=false; 
793                                                             vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_repeat',[vm.iuiRouteInfo.serviceName]);
794                                                                 return;
795                                                         }
796                                                 
797                                         }
798                                 }
799
800                 $.ajax({
801                         "type": 'PUT',
802                         "url": url,
803                          "data" :data,
804                         "dataType": "json",
805                         "contentType":"application/json",
806                         success: function (resp) {  
807                           
808                                                         for(var i=0;i<vm.iuiRouteArray.length;i++){
809                                             if(vm.iuiRouteArray[i].serviceName == vm.iuiRouteInfo.oldServiceName)
810                                             { 
811                                                 vm.iuiRouteArray[i].serviceName=vm.iuiRouteInfo.serviceName;                                          
812                                                 vm.iuiRouteArray[i].url=iuiRouteUrl;
813                                                 vm.iuiRouteArray[i].servers=vm.iuiRouteInfo.servers;
814                                                
815                                                 break;
816                                             }
817                                          }
818                               
819
820
821                                                 $('#iuirouteDlg').modal('hide');                                                        
822                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_service_update'),"success"); 
823                                                 
824
825                         },
826                          error: function(XMLHttpRequest, textStatus, errorThrown) {
827                                                 
828                                                    vm.server_rtn.warning_block=true;
829                                                vm.server_rtn.info_block=false; 
830                                                vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
831                               
832                          }
833                     });
834
835               
836                            }
837                         },
838                         $savecustomRoute : function() {
839
840                                 customsuccess.hide();
841                                 customerror.hide();
842                                 if (customform.valid() == false) {
843                                         return false;
844                                 }
845
846                                 if(vm.customRouteInfo.servers.length==0){
847                                         vm.server_rtn.warning_block=true;
848                                         vm.server_rtn.info_block=false; 
849                                         vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_host_leastone');
850                                         return;
851                                 }
852
853                                 vm.server_rtn.warning_block=false;
854                                 vm.server_rtn.info_block=true;
855
856                                 vm.customRouteInfo.serviceName=$.trim(vm.customRouteInfo.serviceName);
857                                 
858                                 var servers=[];
859                                 for(var i=0;i<vm.customRouteInfo.servers.length;i++){
860                                         var server={ip:vm.customRouteInfo.servers[i].ip,port:vm.customRouteInfo.servers[i].port,weight: 0};
861                                         servers.push(server);
862                                 }
863
864                                 var customRouteUrl=vm.customRouteInfo.url=="/"?"":vm.customRouteInfo.url;
865                                 var data= JSON.stringify({
866                                                          "serviceName": vm.customRouteInfo.serviceName,
867                                                           "url": customRouteUrl,
868                                                           "control":vm.customRouteInfo.control,
869                                                           "status":vm.customRouteInfo.status,
870                                                           "servers": servers
871                                                 });
872
873                                 if(vm.routeDlgInfo.saveType=="add")
874                                 {
875
876                                         //Determine whether to repeat
877                                         for(var i=0;i<vm.customRouteArray.length;i++){
878                                         
879                                                         if(vm.customRouteArray[i].serviceName==vm.customRouteInfo.serviceName)
880                                                         {
881                                                                 vm.server_rtn.warning_block=true;
882                                                             vm.server_rtn.info_block=false; 
883                                                             vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_repeat',[vm.customRouteInfo.serviceName]);
884                                                                 return;
885                                                         }
886                                                 
887                                         }
888
889                  //save 
890                  
891               
892                    $.ajax({
893                         "type": 'POST',
894                         "url":  vm.$customRouteInstanceUrl,
895                         "data" : data,
896                         "dataType": "json",
897                         "contentType":"application/json",
898                         success: function (resp) {  
899                                 
900                                                 vm.customRouteArray.push(JSON.parse(data)); 
901                                                 routeUtil.groupRoute(vm.customRouteArray);
902
903
904                                                 routeUtil.refreshRoute();       
905                                                 $('#customrouteDlg').modal('hide');                                                     
906                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_service_save'),"success");                       
907                         },
908                          error: function(XMLHttpRequest, textStatus, errorThrown) {
909                                                 
910                                                    vm.server_rtn.warning_block=true;
911                                                vm.server_rtn.info_block=false; 
912                                                vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
913                               
914                          }
915                     });
916                }
917                else{  //update
918
919                     //Determine whether to repeat
920                   if(vm.customRouteInfo.serviceName!=vm.customRouteInfo.oldServiceName)  //Has been modified service name
921                   {
922                                         for(var i=0;i<vm.customRouteArray.length;i++){
923                                         
924                                                         if(vm.customRouteArray[i].serviceName==vm.customRouteInfo.serviceName)
925                                                         {
926                                                                 vm.server_rtn.warning_block=true;
927                                                             vm.server_rtn.info_block=false; 
928                                                             vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_repeat',[vm.customRouteInfo.serviceName]);
929                                                                 return;
930                                                         }
931                                                 
932                                         }
933                                 }
934
935                          var url= vm.$customRouteInstanceUrl+"?serviceName="+vm.customRouteInfo.oldServiceName;
936                
937                 $.ajax({
938                         "type": 'PUT',
939                         "url": url,
940                          "data" :data,
941                         "dataType": "json",
942                         "contentType":"application/json",
943                         success: function (resp) {  
944                      
945                                                         for(var i=0;i<vm.customRouteArray.length;i++){
946                                             if(vm.customRouteArray[i].serviceName == vm.customRouteInfo.oldServiceName)
947                                             {
948                                                 vm.customRouteArray[i].serviceName=vm.customRouteInfo.serviceName;                                            
949                                                 vm.customRouteArray[i].url=customRouteUrl;
950                                                 vm.customRouteArray[i].servers=vm.customRouteInfo.servers;
951                                                 break;
952                                             }
953                                          }
954                                                 
955                                                 routeUtil.groupRoute(vm.customRouteArray);
956                               
957
958
959                                                 $('#customrouteDlg').modal('hide');                                                     
960                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_service_update'),"success"); 
961                                                 
962
963                         },
964                          error: function(XMLHttpRequest, textStatus, errorThrown) {
965                                                 
966                                                    vm.server_rtn.warning_block=true;
967                                                vm.server_rtn.info_block=false; 
968                                                vm.server_rtn.rtn_info=$.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
969                               
970                          }
971                     });
972
973               
974                            }
975                         },
976                         $saveApiRoute : function() {
977
978                                 success.hide();
979                                 error.hide();
980                                 if (form.valid() == false) {
981                                         return false;
982                                 }
983
984                                 if(vm.apiRouteInfo.servers.length==0){
985                                         vm.server_rtn.warning_block=true;
986                                         vm.server_rtn.info_block=false; 
987                                         vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_host_leastone');
988                                         return;
989                                 }
990
991                                 vm.server_rtn.warning_block=false;
992                                 vm.server_rtn.info_block=true;
993
994                                 
995                                 var apiRouteUrl=vm.apiRouteInfo.url=="/"?"":vm.apiRouteInfo.url;
996                                 var apiJson=vm.apiRouteInfo.apiJsonType=="1"?vm.apiJson.custom:vm.apiJson.local;        
997
998                                 var servers=[];
999                                 for(var i=0;i<vm.apiRouteInfo.servers.length;i++){
1000                                         var server={ip:vm.apiRouteInfo.servers[i].ip,port:vm.apiRouteInfo.servers[i].port,weight: 0};
1001                                         servers.push(server);
1002                                 }
1003
1004
1005                                 var data= JSON.stringify({
1006                                                          "serviceName": vm.apiRouteInfo.serviceName,
1007                                                           "version": vm.apiRouteInfo.version,
1008                                                           "url": apiRouteUrl,
1009                                                           "metricsUrl":vm.apiRouteInfo.metricsUrl,
1010                                                           "apiJson": apiJson,
1011                                                           "apiJsonType":vm.apiRouteInfo.apiJsonType,
1012                                                           "control":vm.apiRouteInfo.control,
1013                                                           "status":vm.apiRouteInfo.status,
1014                                                           "servers": servers
1015                                                 
1016                                                 });
1017
1018                                 if(vm.routeDlgInfo.saveType=="add")
1019                                 {
1020
1021                                          //Determine whether to repeat
1022                                         for(var i=0;i<vm.apiRouteArray.length;i++){
1023                                         
1024                                                         if(vm.apiRouteArray[i].serviceName==vm.apiRouteInfo.serviceName 
1025                                                                 && vm.apiRouteArray[i].version==vm.apiRouteInfo.version )
1026                                                         {
1027                                                                 vm.server_rtn.warning_block=true;
1028                                                             vm.server_rtn.info_block=false; 
1029                                                             vm.server_rtn.rtn_info=$.i18n.prop('org_openo_msb_route_err_api_repeat',[vm.apiRouteInfo.serviceName],[vm.apiRouteInfo.version]);
1030                                                                 return;
1031                                                         }
1032                                                 
1033                                         }
1034
1035                  //save
1036                  
1037               
1038                    $.ajax({
1039                         "type": 'POST',
1040                         "url":  vm.$apiRouteUrl,
1041                         "data" : data,
1042                         "dataType": "json",
1043                         "contentType":"application/json",
1044                         success: function (resp) {  
1045                                 
1046                                                 vm.apiRouteArray.push(JSON.parse(data)); 
1047                                                 vm.apiRouteArray.sort(function(a,b){return a.serviceName>b.serviceName?1:-1}); 
1048
1049                                                 routeUtil.refreshRoute();       
1050                                                 $('#routeDlg').modal('hide');                                                   
1051                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_service_save'),"success");                  
1052                         },
1053                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1054                                                 
1055                                                    vm.server_rtn.warning_block=true;
1056                                                vm.server_rtn.info_block=false; 
1057                                                vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
1058                               
1059                          }
1060                     });
1061                }
1062                else{  //update
1063                         
1064
1065                 //Determine whether to repeat
1066                   if(vm.apiRouteInfo.serviceName!=vm.apiRouteInfo.oldServiceName || 
1067                   vm.apiRouteInfo.version!=vm.apiRouteInfo.oldVersion)  //Has been modified service name
1068                   {
1069                                         for(var i=0;i<vm.apiRouteArray.length;i++){
1070                                         
1071                                                         if(vm.apiRouteArray[i].serviceName==vm.apiRouteInfo.serviceName 
1072                                                                 && vm.apiRouteArray[i].version==vm.apiRouteInfo.version )
1073                                                         {
1074                                                                 vm.server_rtn.warning_block=true;
1075                                                             vm.server_rtn.info_block=false; 
1076                                                             vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_api_repeat',[vm.apiRouteInfo.serviceName],[vm.apiRouteInfo.version]);
1077                                                                 return;
1078                                                         }
1079                                                 
1080                                         }
1081                                 }
1082
1083                                  var url= vm.$apiRouteInstanceUrl;
1084                          var version=vm.apiRouteInfo.oldVersion==""?"null":vm.apiRouteInfo.oldVersion;
1085                         url=url.replace("{serviceName}",vm.apiRouteInfo.oldServiceName).replace("{version}",version);
1086
1087
1088                          $.ajax({
1089                         "type": 'PUT',
1090                         "url": url,
1091                          "data" :data,
1092                         "dataType": "json",
1093                         "contentType":"application/json",
1094                         success: function (resp) {  
1095                           
1096                                                         for(var i=0;i<vm.apiRouteArray.length;i++){
1097                                             if(vm.apiRouteArray[i].serviceName == vm.apiRouteInfo.oldServiceName && 
1098                                                 vm.apiRouteArray[i].version == vm.apiRouteInfo.oldVersion)
1099                                             {
1100                                                 //vm.apiRouteArray[i] = JSON.parse(data);
1101                                                                 vm.apiRouteArray[i].serviceName=vm.apiRouteInfo.serviceName;
1102                                                                         vm.apiRouteArray[i].version= vm.apiRouteInfo.version;
1103                                                                         vm.apiRouteArray[i].url=apiRouteUrl;
1104                                                                         vm.apiRouteArray[i].metricsUrl=vm.apiRouteInfo.metricsUrl;
1105                                                                         vm.apiRouteArray[i].apiJson=apiJson;
1106                                                                         vm.apiRouteArray[i].apiJsonType=vm.apiRouteInfo.apiJsonType;
1107
1108                                                                         vm.apiRouteArray[i].servers=vm.apiRouteInfo.servers;
1109
1110                                                                         
1111                                                 break;
1112                                             }
1113                                          }
1114                               
1115
1116
1117                                                 $('#routeDlg').modal('hide');                                                   
1118                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_service_update'),"success"); 
1119                                                 
1120
1121                         },
1122                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1123                                                 
1124                                                    vm.server_rtn.warning_block=true;
1125                                                vm.server_rtn.info_block=false; 
1126                                                vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+textStatus+":"+errorThrown;                
1127                               
1128                          }
1129                     });
1130
1131               
1132                            }
1133                         },
1134                         $savemsbRoute : function() {
1135
1136                                 msbsuccess.hide();
1137                                 msberror.hide();
1138                                 if (msbform.valid() == false) {
1139                                         return false;
1140                                 }
1141
1142                                 if(vm.msbRouteInfo.nodes.length==0){
1143                                         vm.server_rtn.warning_block=true;
1144                                         vm.server_rtn.info_block=false; 
1145                                         vm.server_rtn.rtn_info=$.i18n.prop('org_openo_msb_route_err_host_leastone');
1146                                         return;
1147                                 }
1148
1149                                 if(vm.msbRouteInfo.visualRangeArray.length==0){
1150                                         vm.server_rtn.warning_block=true;
1151                                         vm.server_rtn.info_block=false; 
1152                                         vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_visualrange_empty');
1153                                         return;
1154                                 }
1155
1156                                 vm.server_rtn.warning_block=false;
1157                                 vm.server_rtn.info_block=true;
1158
1159                                 var msbUrl=vm.msbRouteInfo.url=="/"?"":vm.msbRouteInfo.url;
1160                 
1161
1162                                 var nodes=[];
1163                                 for(var i=0;i<vm.msbRouteInfo.nodes.length;i++){
1164                                         var node={ip:vm.msbRouteInfo.nodes[i].ip,port:vm.msbRouteInfo.nodes[i].port,ttl: vm.msbRouteInfo.nodes[i].ttl};
1165                                         nodes.push(node);
1166                                 }
1167
1168                                 var data= JSON.stringify({
1169                                                          "serviceName": vm.msbRouteInfo.serviceName,
1170                                                           "version": vm.msbRouteInfo.version,
1171                                                           "url": msbUrl,                                                         
1172                                                           "nodes": nodes,
1173                                                           "protocol":vm.msbRouteInfo.protocol,
1174                                                           "visualRange":vm.msbRouteInfo.visualRangeArray.join("|")
1175                                                 });
1176
1177                                 if(vm.routeDlgInfo.saveType=="add")
1178                                 {
1179
1180                                         //Determine whether to repeat
1181                                         for(var i=0;i<vm.msbRouteArray.length;i++){
1182                                         
1183                                                         if(vm.msbRouteArray[i].serviceName==vm.msbRouteInfo.serviceName 
1184                                                                 && vm.msbRouteArray[i].version==vm.msbRouteInfo.version )
1185                                                         {
1186                                                                 vm.server_rtn.warning_block=true;
1187                                                             vm.server_rtn.info_block=false; 
1188                                                             vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_api_repeat',[vm.msbRouteInfo.serviceName],[vm.msbRouteInfo.version]);
1189                                                         }
1190                                                 
1191                                         }
1192
1193                  //save
1194                  
1195               
1196                    $.ajax({
1197                         "type": 'POST',
1198                         "url":  vm.$msbRouteUrl,
1199                         "data" : data,
1200                         "dataType": "json",
1201                         "contentType":"application/json",
1202                         success: function (resp) {  
1203                            
1204                                                  // vm.msbRouteArray.push(JSON.parse(data)); 
1205                                                   table.destroy();
1206                                                   vm.initMSBRoute();
1207
1208                                           //       table=$('#msbTable').DataTable({
1209                                                      
1210                                                         //   "oLanguage": vm.$dataTableLanguage,
1211                                                         //   columnDefs: [ {
1212                                                         //            targets: [ 7 ],
1213                                                         //            "searchable": false,
1214                                                         //            "bSortable": false,
1215                                                         //          }]
1216                                                         // });
1217         
1218                                                 $('#msbrouteDlg').modal('hide');                                                        
1219                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_msb'),$.i18n.prop('org_openo_msb_route_service_save'),"success");                  
1220                         },
1221                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1222                                                 
1223                                                    vm.server_rtn.warning_block=true;
1224                                                vm.server_rtn.info_block=false; 
1225                                                vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+XMLHttpRequest.responseText;                
1226                               
1227                          }
1228                     });
1229                }
1230                else{  //update
1231                         
1232
1233                 //Determine whether to repeat
1234                   if(vm.msbRouteInfo.serviceName!=vm.msbRouteInfo.oldServiceName || 
1235                   vm.msbRouteInfo.version!=vm.msbRouteInfo.oldVersion)  //Has been modified service name or version
1236                   {
1237                                         for(var i=0;i<vm.msbRouteArray.length;i++){
1238                                         
1239                                                         if(vm.msbRouteArray[i].serviceName==vm.msbRouteInfo.serviceName 
1240                                                                 && vm.msbRouteArray[i].version==vm.msbRouteInfo.version )
1241                                                         {
1242                                                                 vm.server_rtn.warning_block=true;
1243                                                             vm.server_rtn.info_block=false; 
1244                                                             vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_api_repeat',[vm.msbRouteInfo.serviceName],[vm.msbRouteInfo.version]);
1245                                                                 return;
1246                                                         }
1247                                                 
1248                                         }
1249                                 }
1250
1251                                  var url= vm.$msbRouteInstanceUrl;
1252                          var version=vm.msbRouteInfo.oldVersion==""?"null":vm.msbRouteInfo.oldVersion;
1253                          var serviceName2= vm.msbRouteInfo.oldServiceName.replace(/\//g,"*");
1254                         url=url.replace("{serviceName}",serviceName2).replace("{version}",version);
1255
1256
1257                          $.ajax({
1258                         "type": 'PUT',
1259                         "url": url,
1260                          "data" :data,
1261                         "dataType": "json",
1262                         "contentType":"application/json",
1263                         success: function (resp) {  
1264                      
1265                                                         for(var i=0;i<vm.msbRouteArray.length;i++){
1266                                             if(vm.msbRouteArray[i].serviceName == vm.msbRouteInfo.oldServiceName && 
1267                                                 vm.msbRouteArray[i].version == vm.msbRouteInfo.oldVersion)
1268                                             {
1269                                                 //vm.apiRouteArray[i] = JSON.parse(data);
1270                                                                 vm.msbRouteArray[i].serviceName=vm.msbRouteInfo.serviceName;
1271                                                                         vm.msbRouteArray[i].version= vm.msbRouteInfo.version;
1272                                                                         vm.msbRouteArray[i].url=msbUrl;
1273                                                                         vm.msbRouteArray[i].protocol=vm.msbRouteInfo.protocol;
1274                                                                         vm.msbRouteArray[i].visualRange=vm.msbRouteInfo.visualRange;
1275                                                                         vm.msbRouteArray[i].visualRangeArray=vm.msbRouteInfo.visualRangeArray;
1276                                                                         vm.msbRouteArray[i].nodes=nodes;
1277                                                                                                              
1278                                                 break;
1279                                             }
1280                                          }
1281                               
1282
1283
1284                                                 $('#msbrouteDlg').modal('hide');                                                        
1285                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_msb'),$.i18n.prop('org_openo_msb_route_service_update'),"success"); 
1286                                                 
1287
1288                         },
1289                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1290                                                 
1291                                                    vm.server_rtn.warning_block=true;
1292                                                vm.server_rtn.info_block=false; 
1293                                                vm.server_rtn.rtn_info= $.i18n.prop('org_openo_msb_route_err_service_save')+XMLHttpRequest.responseText;                
1294                               
1295                          }
1296                     });
1297
1298               
1299                            }
1300                         },
1301
1302                         updateApiRouteStatus:function(serviceName,version,status){
1303
1304                                 var url= vm.$apiRouteStatusUrl;
1305                                     var version2=version==""?"null":version;
1306                         url=url.replace("{serviceName}",serviceName).replace("{version}",version2).replace("{status}",status);
1307         
1308                                          $.ajax({
1309                         "type": 'PUT',
1310                         "url": url,
1311                         "dataType": "json",
1312                         success: function (resp) {  
1313                                 
1314                               
1315                                                          for(var i=0;i<vm.apiRouteArray.length;i++){
1316                                                if(vm.apiRouteArray[i].serviceName == serviceName && 
1317                                                 vm.apiRouteArray[i].version == version){
1318                                                     vm.apiRouteArray[i].status=status;
1319                                                     break;
1320                                                 }
1321                                             }   
1322
1323                                           if(status=='1')   
1324                                           {
1325                                             routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_status_enable'),"success");
1326                                           }
1327                                           else{
1328                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_status_disable'),"success");
1329                                           }
1330                                         
1331
1332                 
1333                         },
1334                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1335                                                 
1336                                                 bootbox.alert($.i18n.prop('org_openo_msb_route_err_status')+textStatus+":"+errorThrown);                
1337                               
1338                          }
1339                     });
1340
1341                         },
1342                         updateiuiRouteStatus:function(serviceName,status){
1343
1344                                 var url= vm.$iuiRouteStatusUrl;
1345                                 
1346                      url=url.replace("{serviceName}",serviceName).replace("{status}",status);
1347         
1348                                          $.ajax({
1349                         "type": 'PUT',
1350                         "url": url,
1351                         "dataType": "json",
1352                         success: function (resp) {  
1353                                 
1354                                
1355                                                          for(var i=0;i<vm.iuiRouteArray.length;i++){
1356                                                if(vm.iuiRouteArray[i].serviceName == serviceName){
1357                                                     vm.iuiRouteArray[i].status=status;
1358                                                     break;
1359                                                 }
1360                                             }   
1361
1362                                           if(status=='1')   
1363                                           {
1364                                             routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_status_enable'),"success");
1365                                           }
1366                                           else{
1367                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_status_disable'),"success");
1368                                           }
1369                                         
1370                 
1371                         },
1372                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1373                                                 
1374                                                 bootbox.alert($.i18n.prop('org_openo_msb_route_err_status')+textStatus+":"+errorThrown);                
1375                               
1376                          }
1377                     });
1378
1379                         },
1380                         updatecustomRouteStatus:function(serviceName,status){
1381
1382                                 
1383               var url= vm.$customRouteStatusUrl+"?serviceName="+serviceName+"&status="+status;
1384
1385         
1386                                          $.ajax({
1387                         "type": 'PUT',
1388                         "url": url,
1389                         "dataType": "json",
1390                         success: function (resp) {  
1391                                 
1392                           
1393                                                          for(var i=0;i<vm.customRouteArray.length;i++){
1394                                                if(vm.customRouteArray[i].serviceName == serviceName){
1395                                                     vm.customRouteArray[i].status=status;
1396                                                     break;
1397                                                 }
1398                                             }   
1399
1400
1401                                     routeUtil.groupRoute(vm.customRouteArray);
1402
1403                                           if(status=='1')   
1404                                           {
1405                                             routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_status_enable'),"success");
1406                                           }
1407                                           else{
1408                                                 routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_status_disable'),"success");
1409                                           }
1410                                         
1411
1412                 
1413                         },
1414                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1415                                                 
1416                                                 bootbox.alert($.i18n.prop('org_openo_msb_route_err_status')+textStatus+":"+errorThrown);                
1417                               
1418                          }
1419                     });
1420
1421                         },
1422                         updateApiRoute:function(apiRouteInfo,type){
1423                         
1424
1425                         
1426
1427                                 $('#metricsFullurl').collapse('hide');
1428                                 $('#apiJsonFullurl').collapse('hide');
1429                                 $('#apiTab a:first').tab('show');
1430                                 
1431                                 vm.apiRouteInfo.serviceName=apiRouteInfo.serviceName;
1432                                 vm.apiRouteInfo.oldServiceName=apiRouteInfo.serviceName;
1433                                 vm.apiRouteInfo.version= apiRouteInfo.version;
1434                                 vm.apiRouteInfo.oldVersion=apiRouteInfo.version;
1435                                 vm.apiRouteInfo.url=apiRouteInfo.url==""?"/":apiRouteInfo.url;
1436                                 vm.apiRouteInfo.metricsUrl=apiRouteInfo.metricsUrl;
1437                                 vm.apiRouteInfo.apiJson=apiRouteInfo.apiJson;
1438                                 vm.apiRouteInfo.apiJsonType=apiRouteInfo.apiJsonType;
1439                                 vm.apiRouteInfo.control=apiRouteInfo.control;
1440                                 vm.apiRouteInfo.status= apiRouteInfo.status;
1441
1442                                 if(vm.apiRouteInfo.apiJsonType=="1"){
1443                                         vm.apiJson.custom=apiRouteInfo.apiJson;
1444                                 }
1445                                 else{
1446                                         vm.apiJson.local=apiRouteInfo.apiJson;
1447                                         vm.apiJson.custom="/swagger.json";
1448                                          $("#apiJsonSelect").val(apiRouteInfo.apiJson);
1449                                 }
1450
1451                                 vm.apiRouteInfo.server="";
1452                                 vm.apiRouteInfo.servers=[];
1453                                 vm.apiRouteInfo.servers=apiRouteInfo.servers;
1454
1455                                 
1456
1457
1458                                 // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);
1459                 
1460                                 vm.routeDlgInfo.saveType = type;
1461                                 if(type=='update'){
1462                                         vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_edit_api');    
1463                                 }
1464                                 else if(type=='view'){
1465                                         vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_view_api');    
1466                                 }
1467                                 
1468                                 vm.server_rtn.warning_block=false;
1469                                 vm.server_rtn.info_block=false;
1470
1471
1472                                 $(".form-group").each(function () {
1473                                                 $(this).removeClass('has-success');
1474                                                 $(this).removeClass('has-error');
1475                                                 $(this).find(".help-block[id]").remove();
1476                                                 $(this).find(".item-tip").addClass("item-tip-focus");
1477                                                 $(this).find(".form-tip").removeClass('form-input-focus');
1478                                         });
1479
1480                                 $("#routeDlg").modal("show");
1481                         },
1482                         updateiuiRoute:function(iuiRouteInfo,type){
1483                                 
1484                                 
1485                                 vm.iuiRouteInfo.serviceName=iuiRouteInfo.serviceName;
1486                                 vm.iuiRouteInfo.oldServiceName=iuiRouteInfo.serviceName;
1487                                 vm.iuiRouteInfo.url=iuiRouteInfo.url==""?"/":iuiRouteInfo.url;
1488                                 vm.iuiRouteInfo.server="";
1489                                 vm.iuiRouteInfo.servers=[];
1490                                 vm.iuiRouteInfo.servers=iuiRouteInfo.servers;
1491                                 vm.iuiRouteInfo.control=iuiRouteInfo.control;
1492                                 vm.iuiRouteInfo.status=iuiRouteInfo.status;
1493
1494
1495                                 // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);
1496                 
1497                                 
1498                                 vm.routeDlgInfo.saveType = type;
1499                                 if(type=='update'){
1500                                         vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_edit_iui');    
1501                                 }
1502                                 else if(type=='view'){
1503                                         vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_view_iui');    
1504                                 }
1505
1506                                 vm.server_rtn.warning_block=false;
1507                                 vm.server_rtn.info_block=false;
1508
1509
1510                                 $(".form-group").each(function () {
1511                                                 $(this).removeClass('has-success');
1512                                                 $(this).removeClass('has-error');
1513                                                 $(this).find(".help-block[id]").remove();
1514                                                 $(this).find(".item-tip").addClass("item-tip-focus");
1515                                                 $(this).find(".form-tip").removeClass('form-input-focus');
1516                                         });
1517
1518                                 $("#iuirouteDlg").modal("show");
1519                         },
1520                         updatecustomRoute:function(customRouteInfo,type){
1521                                 
1522                                 
1523                                 vm.customRouteInfo.serviceName=customRouteInfo.serviceName;
1524                                 vm.customRouteInfo.oldServiceName=customRouteInfo.serviceName;
1525                                 
1526                                 vm.customRouteInfo.url=customRouteInfo.url==""?"/":customRouteInfo.url;
1527                                 vm.customRouteInfo.server="";
1528                                 vm.customRouteInfo.servers=[];
1529                                 vm.customRouteInfo.servers=customRouteInfo.servers;
1530                                 vm.customRouteInfo.control=customRouteInfo.control;
1531                                 vm.customRouteInfo.status=customRouteInfo.status;
1532
1533                                 // vm.apiRouteInfo= jQuery.extend({},apiRouteInfo);
1534                 
1535                                 vm.routeDlgInfo.saveType = type;
1536                                 if(type=='update'){
1537                                         vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_edit_custom');
1538                                 }
1539                                 else if(type=='view'){
1540                                         vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_view_custom');
1541                                 }
1542                                 vm.server_rtn.warning_block=false;
1543                                 vm.server_rtn.info_block=false;
1544
1545
1546                                 $(".form-group").each(function () {
1547                                                 $(this).removeClass('has-success');
1548                                                 $(this).removeClass('has-error');
1549                                                 $(this).find(".help-block[id]").remove();
1550                                                 $(this).find(".item-tip").addClass("item-tip-focus");
1551                                                 $(this).find(".form-tip").removeClass('form-input-focus');
1552                                         });
1553
1554                                 $("#customrouteDlg").modal("show");
1555                         },
1556                         updatemsbRoute:function(msbRouteInfo){
1557                         
1558                                         vm.msbRouteInfo.serviceName=msbRouteInfo.serviceName;
1559                                         vm.msbRouteInfo.oldServiceName=msbRouteInfo.serviceName;
1560                                         vm.msbRouteInfo.version= msbRouteInfo.version;
1561                                         vm.msbRouteInfo.oldVersion= msbRouteInfo.version
1562                                         vm.msbRouteInfo.url=msbRouteInfo.url==""?"/":msbRouteInfo.url;
1563                                         vm.msbRouteInfo.protocol=msbRouteInfo.protocol;
1564                                         vm.msbRouteInfo.visualRange=msbRouteInfo.visualRange;
1565                                         vm.msbRouteInfo.visualRangeArray=msbRouteInfo.visualRange.split("|");
1566                                         vm.msbRouteInfo.nodes=msbRouteInfo.nodes;
1567                                         vm.msbRouteInfo.newHost="";
1568                                         vm.msbRouteInfo.newttl="";
1569                         
1570                                 routeUtil.changeTargetServiceUrl();
1571                 
1572                                 vm.routeDlgInfo.saveType = "update";
1573                                 vm.routeDlgInfo.titleName=$.i18n.prop('org_openo_msb_route_title_edit_msb');
1574                                 vm.server_rtn.warning_block=false;
1575                                 vm.server_rtn.info_block=false;
1576
1577
1578                                 $(".form-group").each(function () {
1579                                                 $(this).removeClass('has-success');
1580                                                 $(this).removeClass('has-error');
1581                                                 $(this).find(".help-block[id]").remove();
1582                                                 $(this).find(".item-tip").addClass("item-tip-focus");
1583                                                 $(this).find(".form-tip").removeClass('form-input-focus');
1584                                         });
1585
1586                                 $("#msbrouteDlg").modal("show");
1587                         },
1588                         delApiRoute:function(serviceName,version){
1589                                 bootbox.confirm($.i18n.prop('org_openo_msb_route_err_service_del_ask',[serviceName],[version]),function(result){
1590                                 if(result){
1591                                         var url= vm.$apiRouteInstanceUrl;
1592                                     var version2=version==""?"null":version;
1593                         url=url.replace("{serviceName}",serviceName).replace("{version}",version2);
1594         
1595                                          $.ajax({
1596                         "type": 'DELETE',
1597                         "url": url,
1598                         "dataType": "json",
1599                         success: function (resp) {  
1600                                 
1601                                                          for(var i=0;i<vm.apiRouteArray.length;i++){
1602                                                if(vm.apiRouteArray[i].serviceName == serviceName && 
1603                                                 vm.apiRouteArray[i].version == version){
1604                                                     vm.apiRouteArray.splice(i, 1);
1605                                                     break;
1606                                                 }
1607                                             }   
1608
1609                                          routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_api'),$.i18n.prop('org_openo_msb_route_service_del_success'),"success");
1610                                         
1611                         },
1612                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1613                                                 
1614                                                 bootbox.alert($.i18n.prop('org_openo_msb_route_service_del_fail')+textStatus+":"+errorThrown);                
1615                               
1616                          }
1617                     });
1618
1619
1620                                }
1621         
1622                                 });
1623                                 
1624                         },
1625                         deliuiRoute:function(serviceName){
1626                                 bootbox.confirm($.i18n.prop('org_openo_msb_route_err_service2_del_ask',[serviceName]),function(result){
1627                                 if(result){
1628                                         var url= vm.$iuiRouteInstanceUrl;
1629                                  
1630                         url=url.replace("{serviceName}",serviceName);
1631         
1632                                          $.ajax({
1633                         "type": 'DELETE',
1634                         "url": url,
1635                         "dataType": "json",
1636                         success: function (resp) {  
1637                                 
1638                                                          for(var i=0;i<vm.iuiRouteArray.length;i++){
1639                                                if(vm.iuiRouteArray[i].serviceName == serviceName){
1640                                                     vm.iuiRouteArray.splice(i, 1);
1641                                                     break;
1642                                                 }
1643                                             }   
1644
1645                                          routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_iui'),$.i18n.prop('org_openo_msb_route_service_del_success'),"success");
1646                                         
1647                 
1648                         },
1649                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1650                                                 
1651                                                 bootbox.alert($.i18n.prop('org_openo_msb_route_service_del_fail')+textStatus+":"+errorThrown);                
1652                               
1653                          }
1654                     });
1655
1656
1657                                }
1658         
1659                                 });
1660                                 
1661                         },
1662                         delcustomRoute:function(serviceName){
1663                                 bootbox.confirm($.i18n.prop('org_openo_msb_route_err_service2_del_ask',[serviceName]),function(result){
1664                                 if(result){
1665                                         var url= vm.$customRouteInstanceUrl+"?serviceName="+serviceName;
1666         
1667                                          $.ajax({
1668                         "type": 'DELETE',
1669                         "url": url,
1670                         "dataType": "json",
1671                         success: function (resp) {  
1672                                 
1673                                                          for(var i=0;i<vm.customRouteArray.length;i++){
1674                                                if(vm.customRouteArray[i].serviceName == serviceName){
1675                                                     vm.customRouteArray.splice(i, 1);
1676                                                     break;
1677                                                 }
1678                                                                 }
1679
1680                                              routeUtil.groupRoute(vm.customRouteArray);
1681                                                 
1682
1683                                          routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_custom'),$.i18n.prop('org_openo_msb_route_service_del_success'),"success");
1684                                         
1685                         },
1686                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1687                                                 
1688                                                 bootbox.alert($.i18n.prop('org_openo_msb_route_service_del_fail')+textStatus+":"+errorThrown);                
1689                               
1690                          }
1691                     });
1692
1693
1694                                }
1695         
1696                                 });
1697                                 
1698                         },
1699                         delmsbRoute:function(serviceName,version,obj){
1700                                 bootbox.confirm($.i18n.prop('org_openo_msb_route_err_service_del_ask',[serviceName],[version]),function(result){
1701                                 if(result){
1702                                         var url= vm.$msbRouteInstanceUrl;
1703                                     var version2=version==""?"null":version;
1704                                     var serviceName2= serviceName.replace(/\//g,"*");
1705                         url=url.replace("{serviceName}",serviceName2).replace("{version}",version2);
1706         
1707                                          $.ajax({
1708                         "type": 'DELETE',
1709                         "url": url,
1710                         "dataType": "json",
1711                         success: function (resp) {  
1712                                 $(obj).parent().parent().addClass('selected');
1713                                 
1714                                 for(var i=0;i<vm.msbRouteArray.length;i++){
1715                                                if(vm.msbRouteArray[i].serviceName == serviceName &&
1716                                                         vm.msbRouteArray[i].version==version ){
1717                                                     vm.msbRouteArray.splice(i, 1);
1718                                                     break;
1719                                                 }
1720                                                                 }
1721
1722                                                          table.row('.selected').remove().draw( false );
1723
1724                                          routeUtil.growl($.i18n.prop('org_openo_msb_route_tab_msb'),$.i18n.prop('org_openo_msb_route_service_del_success'),"success");
1725                                         
1726                 
1727                         },
1728                          error: function(XMLHttpRequest, textStatus, errorThrown) {
1729                                                 
1730                                                 bootbox.alert($.i18n.prop('org_openo_msb_route_service_del_fail')+XMLHttpRequest.responseText);                
1731                               
1732                          }
1733                          
1734                              
1735                     });
1736
1737
1738                                }
1739         
1740                                 });
1741                                 
1742                         },
1743                         exportServices:function(){
1744                                 var url=apiBasePath+"/apiRoute/export";
1745                                 window.open(url); 
1746
1747                         },
1748                         gotoTarget:function(route,type){
1749                                 vm.selectedRoute=route;
1750                                 vm.selectedRouteType=type;
1751
1752                                 if(type=="api")
1753                                 {
1754                                   vm.gotoRestDoc(); 
1755                                 }
1756                                 else if(type=="iui"){
1757                                   vm.gotoIUI(); 
1758                                 }
1759                                 
1760                         },
1761                         gotoRestDoc:function(){
1762                                 vm.routeTargetTitle=vm.selectedRoute.serviceName+"-"+$.i18n.prop("org_openo_msb_route_content_title");  
1763
1764                                 var version=vm.selectedRoute.version==""?"":"/"+vm.selectedRoute.version;       
1765
1766                                     if(vm.selectedRoute.apiJsonType=="1")
1767                                     {                   
1768                                      
1769                                      var sourceUrl= "/apijson/"+vm.selectedRoute.serviceName+version;
1770                                         }
1771                                         else{
1772                                          var sourceUrl= iuiBasePath+"/ext/initSwaggerJson/"+vm.selectedRoute.apiJson;   
1773                                         }
1774                                         //Local json data read from the real API service service address parameter
1775                                         var url=iuiBasePath+"/api-doc/index.html?url="+sourceUrl+"&api=/api/"+vm.selectedRoute.serviceName+version;
1776
1777                                  $('#msbSubPage').attr("src",url);  
1778                                  vm.apiIframeUrl=url; 
1779                         },
1780                         gotoJVM:function(){
1781                                 vm.routeTargetTitle=vm.selectedRoute.serviceName+"-"+$.i18n.prop('org_openo_msb_route_metric_content_title');   
1782                         
1783                                 var version=vm.selectedRoute.version==""?"":"/"+vm.selectedRoute.version;       
1784
1785                                 var sourceUrl= "/admin/"+vm.selectedRoute.serviceName+version;
1786                          
1787                                 
1788                                 var url=iuiBasePath+"/metrics/index.html?url="+sourceUrl;
1789
1790                                  $('#msbSubPage').attr("src",url);   
1791                         },
1792                         gotoIUI:function(){
1793                                 vm.routeTargetTitle=vm.selectedRoute.serviceName+"-"+$.i18n.prop('org_openo_msb_route_iui_content_title');                              
1794                                 var url= "/iui/"+vm.selectedRoute.serviceName+"/";
1795                                  $('#msbSubPage').attr("src",url);   
1796                                   vm.iuiIframeUrl=url; 
1797                         },
1798                         initIUIfori18n:function(){
1799                                 vm.routeTargetTitle=$.i18n.prop("org_openo_msb_route_content_title");   
1800                                 vm.showAPITypeName=[$.i18n.prop("org_openo_msb_route_swagger_type_predefined"),$.i18n.prop("org_openo_msb_route_swagger_type_custominput")];
1801                                 vm.dataTableLanguage={
1802                 "sProcessing": "<img src='../img/loading-spinner-grey.gif'/><span>&nbsp;&nbsp;Loadding...</span>",   
1803                 "sLengthMenu": $.i18n.prop("org_openo_msb_route-table-sLengthMenu"),
1804                 "sZeroRecords": $.i18n.prop("org_openo_msb_route-table-sZeroRecords"),
1805                 "sInfo": "<span class='seperator'>  </span>" + $.i18n.prop("org_openo_msb_route-table-sInfo"),
1806                 "sInfoEmpty": $.i18n.prop("org_openo_msb_route-table-sInfoEmpty"),
1807                 "sGroupActions": $.i18n.prop("org_openo_msb_route-table-sGroupActions"),
1808                 "sAjaxRequestGeneralError": $.i18n.prop("org_openo_msb_route-table-sAjaxRequestGeneralError"),
1809                 "sEmptyTable": $.i18n.prop("org_openo_msb_route-table-sEmptyTable"),
1810                 "oPaginate": {
1811                     "sPrevious": $.i18n.prop("org_openo_msb_route-table-sPrevious"),
1812                     "sNext": $.i18n.prop("org_openo_msb_route-table-sNext"),
1813                     "sPage": $.i18n.prop("org_openo_msb_route-table-sPage"),
1814                     "sPageOf": $.i18n.prop("org_openo_msb_route-table-sPageOf")
1815                 },
1816                 "sSearch": $.i18n.prop("org_openo_msb_route-table-search"),
1817                 "sInfoFiltered": $.i18n.prop("org_openo_msb_route-table-infofilter") 
1818             };  
1819
1820                         }
1821                         
1822                 
1823
1824         });
1825
1826