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