Upgrade sonar plugin
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / creationService.js
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * VID\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 "use strict";\r
22 \r
23 /*\r
24  * "CreationService" isolates the "component-specific" logic required by the\r
25  * "CreationDialog" controller.\r
26  *\r
27  * "Components" are defined as the 5 element types managed by the dialogs: A)\r
28  * Service B) VNF C) VF Module D) Volume Group and E) Network.\r
29  * \r
30  */\r
31 \r
32 var CreationService = function($log, AaiService, AsdcService, DataService,VIDCONFIGURATION,\r
33                 ComponentService, COMPONENT, FIELD, PARAMETER, UtilityService) {\r
34 \r
35         var _this = this;\r
36 \r
37         var getAsyncOperationList = function() {\r
38                 if (DataService.getLoggedInUserId() == null)\r
39                         getLoggedInUserID();\r
40                 switch (_this.componentId) {\r
41                 case COMPONENT.SERVICE:\r
42                         return [ getSubscribers, getServices,getAicZones ];\r
43                 case COMPONENT.NETWORK:\r
44                         return [ getLcpCloudRegionTenantList ];\r
45                 case COMPONENT.VNF:\r
46                         return [ getLcpCloudRegionTenantList ];\r
47                 case COMPONENT.VF_MODULE:\r
48                         return [ getLcpCloudRegionTenantList ];\r
49                 case COMPONENT.VOLUME_GROUP:\r
50                         return [ getLcpCloudRegionTenantList ];\r
51                 }\r
52         };\r
53 \r
54         /*\r
55          * "getSummaryList" and "getUserProvidedList" return parameters that should\r
56          * be displayed in the summary and user provided sections, respectively. The\r
57          * functions are expected to return lists that are in the format needed by\r
58          * the parameter-block directive.\r
59          */\r
60 \r
61         var getSummaryList = function() {\r
62 \r
63                 /*\r
64                  * These placeholders should be removed and their usage in\r
65                  * "getSummaryList" should be replaced by appropriate code as the\r
66                  * requirements and interfaces firm up.\r
67                  */\r
68 \r
69                 var PLACEHOLDER_RESOURCE_DESCRIPTION = "Resource Description (PLACEHOLDER)";\r
70                 var PLACEHOLDER_SERVICE_CATEGORY = "Service Category (PLACEHOLDER)";\r
71                 var PLACEHOLDER_VF_MODULE_DESCRIPTION = "VF Module Description (PLACEHOLDER)";\r
72                 var PLACEHOLDER_VF_MODULE_LABEL = "VF Module Label (PLACEHOLDER)";\r
73                 var PLACEHOLDER_VF_MODULE_TYPE = "VF Module Type (PLACEHOLDER)";\r
74 \r
75                 _this.parameterList = new Array();\r
76 \r
77                 /*\r
78                  * Common fields displayed at the top of all create instance screens.\r
79                  */\r
80                 if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]==null \r
81                                 || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==undefined\r
82                                 || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==''){\r
83                         addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());\r
84                 }\r
85 \r
86                 switch (_this.componentId) {\r
87                 case COMPONENT.SERVICE:\r
88                         if ( !DataService.getALaCarte() ) {\r
89                                 // for macro instantiation need to add the resource names under the node template list\r
90                                 // this field is called modelCustomizationName in the asdc client code\r
91                                 var p;\r
92                                 var rlist = DataService.getResources();\r
93                                 var res;\r
94                                 if ( rlist != null ) { \r
95                                         for (var i = 0; i < rlist.length; i++) {\r
96                                                 res = rlist[i];\r
97                                         \r
98                                                 p = FIELD.NAME.RESOURCE_NAME.concat(" " + (i+1));\r
99                                                 addToList(p, res.name );\r
100                                                 p = FIELD.NAME.RESOURCE_DESCRIPTION.concat(" " + (i+1));\r
101                                                 addToList(p, res.description );\r
102                                         }\r
103                                 }\r
104                         }\r
105                         if(DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=null && DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=''){\r
106                                 addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
107                                                 .getModelInfo(_this.componentId)["createSubscriberName"]);\r
108                         }\r
109                         if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=null && DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=''){\r
110                                 addToList(FIELD.NAME.SERVICE_TYPE, DataService\r
111                                                 .getModelInfo(_this.componentId)["serviceTypeName"]);\r
112                                 addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());\r
113                         }\r
114                         addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService\r
115                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
116                         addToList(FIELD.NAME.SERVICE_VERSION, DataService\r
117                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
118                         addToList(FIELD.NAME.SERVICE_UUID, DataService\r
119                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
120                         addToList(FIELD.NAME.SERVICE_DESCRIPTION, DataService\r
121                                         .getModelInfo(_this.componentId)[FIELD.ID.DESCRIPTION]);\r
122                         addToList(FIELD.NAME.SERVICE_CATEGORY, DataService\r
123                                         .getModelInfo(_this.componentId)[FIELD.ID.CATEGORY]);\r
124                         if (DataService.getModelInfo(_this.componentId)[FIELD.ID.SERVICE_TYPE] != "null") {\r
125                                 addToList(FIELD.NAME.SERVICE_TYPE, DataService\r
126                                         .getModelInfo(_this.componentId)[FIELD.ID.SERVICE_TYPE]);\r
127                                 addToList(FIELD.NAME.SERVICE_ROLE, DataService\r
128                                         .getModelInfo(_this.componentId)[FIELD.ID.SERVICE_ROLE]);\r
129                         }\r
130 \r
131                         break;\r
132                 case COMPONENT.VF_MODULE:\r
133                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
134                                         .getSubscriberName());\r
135                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
136                                         .getServiceInstanceName());\r
137                         addToList(FIELD.NAME.MODEL_NAME, DataService\r
138                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
139                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
140                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
141                         addToList(FIELD.NAME.MODEL_VERSION, DataService\r
142                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
143                         addToList(FIELD.NAME.MODEL_UUID, DataService\r
144                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
145                         addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
146                                         .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
147                         break;\r
148                 case COMPONENT.VNF:\r
149                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
150                                         .getSubscriberName());\r
151                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
152                                         .getServiceInstanceName());\r
153                         addToList(FIELD.NAME.MODEL_NAME, DataService\r
154                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
155                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
156                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
157                         addToList(FIELD.NAME.MODEL_VERSION, DataService\r
158                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
159                         addToList(FIELD.NAME.MODEL_UUID, DataService\r
160                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
161                         addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
162                                         .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
163                         addToList(FIELD.NAME.MODEL_CUSTOMIZATION_NAME, DataService\r
164                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_CUSTOMIZATION_NAME]);\r
165                         addToList(FIELD.NAME.MODEL_VNF_TYPE, DataService\r
166                                         .getModelInfo(_this.componentId)[COMPONENT.VNF_TYPE]);\r
167                         addToList(FIELD.NAME.MODEL_VNF_ROLE, DataService\r
168                                         .getModelInfo(_this.componentId)[COMPONENT.VNF_ROLE]);\r
169                         addToList(FIELD.NAME.MODEL_VNF_FUNCTION, DataService\r
170                                         .getModelInfo(_this.componentId)[COMPONENT.VNF_FUNCTION]);\r
171                         addToList(FIELD.NAME.MODEL_VNF_CODE, DataService\r
172                                         .getModelInfo(_this.componentId)[COMPONENT.VNF_CODE]);\r
173                         break;\r
174                 case COMPONENT.NETWORK:\r
175                 case COMPONENT.VOLUME_GROUP:\r
176                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
177                                         .getSubscriberName());\r
178                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
179                                         .getServiceInstanceName());\r
180                         addToList(FIELD.NAME.MODEL_NAME, DataService\r
181                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
182                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
183                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
184                         addToList(FIELD.NAME.MODEL_VERSION, DataService\r
185                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
186                         addToList(FIELD.NAME.MODEL_UUID, DataService\r
187                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
188                         addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
189                                         .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
190                         break;\r
191                 }\r
192 \r
193                 return _this.parameterList;\r
194         };\r
195 \r
196         var getUserProvidedList = function() {\r
197                 var parameterList = [];\r
198                 var isUserProvidedNaming = false;\r
199                 if ( (DataService.getModelInfo(_this.componentId).serviceEcompNaming != null) \r
200                                 && (DataService.getModelInfo(_this.componentId).serviceEcompNaming === "false") ) {\r
201                         isUserProvidedNaming = true;\r
202                 }\r
203                 \r
204                 var isInTop = DataService.getHideServiceFields() || false;\r
205                 if (_this.componentId === COMPONENT.SERVICE) {  \r
206                         if ( DataService.getALaCarte() ) {\r
207                                 parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
208                                 if(!isInTop){\r
209                                         parameterList = parameterList.concat([ getSubscribersParameter(),\r
210                                                 FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);\r
211                                 }\r
212                         }\r
213                         else {\r
214                                 // macro\r
215                                 \r
216                                 if(!isInTop){\r
217                                         if (isUserProvidedNaming) {\r
218                                                 parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
219 \r
220                                         }\r
221                                         parameterList = parameterList.concat([ getSubscribersParameter() ]);\r
222                                         parameterList = parameterList.concat([ getServiceId(),\r
223                                                 FIELD.PARAMETER.SERVICE_TYPE,\r
224                                                 FIELD.PARAMETER.LCP_REGION,\r
225                                                 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
226                                                 FIELD.PARAMETER.TENANT_DISABLED,\r
227                                                 ]);\r
228                                         parameterList = parameterList.concat([ getAICZones() ]);\r
229 \r
230 \r
231                                 }else{\r
232                                         parameterList = parameterList.concat([ getServiceId(),\r
233                                                 FIELD.PARAMETER.LCP_REGION,\r
234                                                 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
235                                                 FIELD.PARAMETER.TENANT_DISABLED ]);\r
236                                 }\r
237                         }\r
238                 }\r
239                 else {\r
240                         parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
241                         switch (_this.componentId) {\r
242                         case COMPONENT.NETWORK:\r
243                         case COMPONENT.VNF:\r
244                                 parameterList = parameterList.concat([ getServiceId(),\r
245                                                 getLcpRegion(), FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
246                                                 FIELD.PARAMETER.TENANT_DISABLED ]);\r
247                                 break;\r
248                         case COMPONENT.VF_MODULE:\r
249                                 parameterList = parameterList.concat([\r
250                                         getLcpRegion(),\r
251                                                 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
252                                                 FIELD.PARAMETER.TENANT_DISABLED\r
253                                 ]);\r
254                                 \r
255                                 var availableVolumeGroupList = DataService.getAvailableVolumeGroupList();\r
256                                 \r
257                                 if (availableVolumeGroupList && availableVolumeGroupList.length > 0) {\r
258                                         var availableVolumeGroupNames = [FIELD.STATUS.NONE];\r
259         \r
260                                         for (var i = 0; i < availableVolumeGroupList.length; i++) {\r
261                                                 availableVolumeGroupNames.push(availableVolumeGroupList[i].instance.name);\r
262                                         }\r
263                                         \r
264                                         parameterList.push(addOptionList(\r
265                                                         FIELD.PARAMETER.AVAILABLE_VOLUME_GROUP,\r
266                                                         availableVolumeGroupNames));\r
267                                 }\r
268                                 break;\r
269                         case COMPONENT.VOLUME_GROUP:\r
270                                 parameterList = parameterList.concat([ getLcpRegion(),\r
271                                                 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
272                                                 FIELD.PARAMETER.TENANT_DISABLED ]);\r
273                         }\r
274                 }\r
275                 parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);\r
276                 if(_this.componentId === COMPONENT.VF_MODULE ){\r
277                         parameterList.push({name: FIELD.NAME.SDN_C_PRELOAD,\r
278                                 id: FIELD.ID.SDN_C_PRELOAD,\r
279                                 type: "checkbox",\r
280                                 isEnabled: true,\r
281                                 isRequired: false,\r
282                                 hideFieldAndLabel: true\r
283                                 }\r
284                         );\r
285                         parameterList.push({name: FIELD.NAME.UPLOAD_SUPPLEMENTORY_DATA_FILE,\r
286                                 id: FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE,\r
287                                 type: "checkbox",\r
288                                 isEnabled: true,\r
289                                 isRequired: false,\r
290                                 value:false\r
291                                 }\r
292                         );\r
293                         \r
294                         parameterList.push({name: FIELD.NAME.SUPPLEMENTORY_DATA_FILE,\r
295                                 id: FIELD.ID.SUPPLEMENTORY_DATA_FILE,\r
296                                 type: "file",\r
297                                 isRequired: false,\r
298                                 isVisiblity: false\r
299                                 }\r
300                         );\r
301                 }\r
302                 \r
303                 if( VIDCONFIGURATION.UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED  && _this.componentId === COMPONENT.VOLUME_GROUP){\r
304                         parameterList.push({name: FIELD.NAME.UPLOAD_SUPPLEMENTORY_DATA_FILE,\r
305                                 id: FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE,\r
306                                         type: "checkbox",\r
307                                         isEnabled: true,\r
308                                         isRequired: false\r
309                                         }\r
310                                 );\r
311                                 \r
312                         parameterList.push({name: FIELD.NAME.SUPPLEMENTORY_DATA_FILE,\r
313                                 id: FIELD.ID.SUPPLEMENTORY_DATA_FILE,\r
314                                         type: "file",\r
315                                         isRequired: false,\r
316                                         isVisiblity: false\r
317                                         }\r
318                                 );\r
319                         }\r
320 \r
321                 addArbitraryParameters(parameterList);\r
322 \r
323                 return parameterList;\r
324         };\r
325 \r
326         var addArbitraryParameters = function(parameterList) {\r
327                 if ( DataService.getModelInfo(_this.componentId).displayInputs != null ) {\r
328                         var inputs = DataService.getModelInfo(_this.componentId).displayInputs;  \r
329                         for ( var key in inputs) {\r
330                                 var parameter = {\r
331                                                 id : key,\r
332                                                 type : PARAMETER.STRING,\r
333                                                 name : ComponentService.getFieldDisplayName(key),\r
334                                                 value : inputs[key][PARAMETER.DEFAULT],\r
335                                                 isRequired : inputs[key][PARAMETER.REQUIRED],\r
336                                                 description : inputs[key][PARAMETER.DESCRIPTION]\r
337                                 };\r
338                                 if ( DataService.getALaCarte() ) {\r
339                                         parameter.name = ComponentService.getFieldDisplayName(inputs[key][PARAMETER.DISPLAY_NAME]);\r
340                                 }\r
341                                 switch (inputs[key][PARAMETER.TYPE]) {\r
342                                         case PARAMETER.INTEGER:\r
343                                                 parameter.type = PARAMETER.NUMBER;\r
344                                                 break;\r
345                                         case PARAMETER.BOOLEAN:\r
346                                                 parameter.type = PARAMETER.BOOLEAN;\r
347                                                 break;\r
348                                         case PARAMETER.RANGE:\r
349                                                 break;\r
350                                         case PARAMETER.LIST:\r
351                                                 parameter.type = PARAMETER.LIST;\r
352                                                 break;\r
353                                         case PARAMETER.MAP:\r
354                                                 parameter.type = PARAMETER.MAP;\r
355                                                 break;\r
356                                 }\r
357                         \r
358                                 if ( UtilityService.hasContents(inputs[key][PARAMETER.CONSTRAINTS]) \r
359                                                 && ( inputs[key][PARAMETER.CONSTRAINTS].length > 0 ) ) {\r
360                                         var constraintsArray = inputs[key][PARAMETER.CONSTRAINTS];\r
361                                         //console.log ("Calling addConstraintParameters for input name=" + key);\r
362                                         addConstraintParameters (parameterList, constraintsArray, key, inputs, parameter);\r
363                                 }\r
364                                 else {\r
365                                         \r
366                                         parameterList.push(parameter);\r
367                                 }\r
368                         }\r
369                         DataService.setArbitraryParameters (parameterList);\r
370                 }\r
371         };\r
372 \r
373         var addConstraintParameters = function(parameterList, constraintsArray, key, inputs, parameter) {\r
374                 // If there are constraints and the operator is "valid_values",\r
375                 // use a select parameter type. \r
376                 var i = constraintsArray.length;\r
377                 var parameterPushed = false;\r
378                 if ( i > 0 ) {\r
379                         while ( (i--) && (!parameterPushed) ) {\r
380                                 var keys = Object.keys(constraintsArray[i]);\r
381                                 //var keys_len = keys.length;\r
382                                 for ( var operator in keys ) {\r
383                                         //console.log ("keys[operator]=" + keys[operator]);\r
384                                         switch (keys[operator]) {\r
385                                         case PARAMETER.VALID_VALUES:\r
386                                                 var j = constraintsArray[i][PARAMETER.VALID_VALUES].length;\r
387                                                 if ( j > 0 ) {\r
388                                                         var oList = [];\r
389                                                         var option;\r
390                                                         while (j--) {\r
391                                                                 option = {\r
392                                                                                 name: constraintsArray[i][PARAMETER.VALID_VALUES][j],\r
393                                                                                 isDefault: false\r
394                                                                 } \r
395                                                                 if ( ( UtilityService.hasContents (inputs[key][PARAMETER.DEFAULT]) ) \r
396                                                                                 && (inputs[key][PARAMETER.DEFAULT] === constraintsArray[i][PARAMETER.VALID_VALUES][j] ) ) {\r
397                                                                         option = {\r
398                                                                                         name: constraintsArray[i][PARAMETER.VALID_VALUES][j],\r
399                                                                                         isDefault: true\r
400                                                                         } \r
401                                                                 }\r
402                                                                 oList.push(option);\r
403                                                         }\r
404                                                         parameter.type = PARAMETER.SELECT;\r
405                                                         parameter.optionList = oList;\r
406                                                         parameterList.push(parameter);\r
407                                                         parameterPushed = true;\r
408                                                         //console.log ("pushed param for valid values");\r
409                                                 }\r
410                                         break; \r
411                                         \r
412                                         case PARAMETER.EQUAL: \r
413                                                 if ( constraintsArray[i][PARAMETER.EQUAL] != null ) {\r
414                                                         //override parameter type\r
415                                                         parameter.type = PARAMETER.STRING;\r
416                                                         parameter.isReadOnly = true;\r
417                                                         parameter.value = constraintsArray[i][PARAMETER.EQUAL];\r
418                                                         parameterList.push(parameter);\r
419                                                         parameterPushed = true;\r
420                                                         //console.log ("pushed param for equal");\r
421                                                 }\r
422                                         break;\r
423                                                 \r
424                                         case PARAMETER.LENGTH: \r
425                                                 if ( constraintsArray[i][PARAMETER.LENGTH] != null ) {\r
426                                                         parameter.minLength = constraintsArray[i][PARAMETER.LENGTH];\r
427                                                         parameter.maxLength = constraintsArray[i][PARAMETER.LENGTH];\r
428                                                         parameterList.push(parameter);\r
429                                                         parameterPushed = true;\r
430                                                         //console.log ("pushed param for length: ");\r
431                                                         //console.log (JSON.stringify (parameter, null, 4));\r
432                                                 }\r
433                                         break;\r
434                                         case PARAMETER.MAX_LENGTH: \r
435                                                 if ( constraintsArray[i][PARAMETER.MAX_LENGTH] != null ) {\r
436                                                         parameter.maxLength = constraintsArray[i][PARAMETER.MAX_LENGTH];\r
437                                                         parameterList.push(parameter);\r
438                                                         parameterPushed = true;\r
439                                                         //console.log ("pushed param for max length: ");\r
440                                                         //console.log (JSON.stringify (parameter, null, 4));\r
441                                                 }\r
442                                         break;\r
443                                         case PARAMETER.MIN_LENGTH: \r
444                                                 if ( constraintsArray[i][PARAMETER.MIN_LENGTH] != null ) {\r
445                                                         parameter.minLength = constraintsArray[i][PARAMETER.MIN_LENGTH];\r
446                                                         parameterList.push(parameter);\r
447                                                         parameterPushed = true;\r
448                                                         //console.log ("pushed param for min length: ");\r
449                                                         //console.log (JSON.stringify (parameter, null, 4));\r
450                                                 }\r
451                                         break;\r
452                                         case PARAMETER.IN_RANGE:\r
453                                                 if ( constraintsArray[i][PARAMETER.IN_RANGE] != null ) {\r
454                                                         if (constraintsArray[i][PARAMETER.IN_RANGE].length > 1 ) {\r
455                                                                 parameter.min = constraintsArray[i][PARAMETER.IN_RANGE][0];\r
456                                                                 parameter.max = constraintsArray[i][PARAMETER.IN_RANGE][1];\r
457                                                                 parameter.type = PARAMETER.NUMBER;\r
458                                                                 parameter.value = inputs[key][PARAMETER.DEFAULT]\r
459                                                                 parameterList.push(parameter);\r
460                                                                 parameterPushed = true;\r
461                                                                 //console.log ("pushed param for in_range");\r
462                                                         }\r
463                                                 }\r
464                                         break; \r
465                                         case PARAMETER.GREATER_THAN:\r
466                                                 if ( constraintsArray[i][PARAMETER.GREATER_THAN] != null ) {\r
467                                                                 parameter.type = PARAMETER.NUMBER;\r
468                                                                 parameter.min = constraintsArray[i][PARAMETER.GREATER_THAN];\r
469                                                                 parameter.value = inputs[key][PARAMETER.DEFAULT]\r
470                                                                 parameterList.push(parameter);\r
471                                                                 parameterPushed = true;\r
472                                                                 //console.log ("pushed param for greater_than");\r
473                                                         \r
474                                                 }\r
475                                         break;\r
476                                         }//switch\r
477                                 }//for\r
478                                 \r
479                         }//while\r
480                 }//if\r
481         };\r
482         var addToList = function(name, value) {\r
483                 _this.parameterList.push({\r
484                         name : name,\r
485                         value : value\r
486                 });\r
487         };\r
488 \r
489         /*\r
490          * The "*Mso*" functions return URL and request details that can be passed\r
491          * to the MSO controller. The request details defines the info passed as\r
492          * part of the POST body.\r
493          */\r
494 \r
495         var getMsoUrl = function() {\r
496                 switch (_this.componentId) {\r
497                 case COMPONENT.NETWORK:\r
498                         return "mso_create_nw_instance/"\r
499                                         + DataService.getServiceInstanceId();\r
500                 case COMPONENT.SERVICE:\r
501                         return "mso_create_svc_instance";\r
502                 case COMPONENT.VNF:\r
503                         return "mso_create_vnf_instance/"\r
504                                         + DataService.getServiceInstanceId();\r
505                 case COMPONENT.VF_MODULE:\r
506                         return "mso_create_vfmodule_instance/"\r
507                                         + DataService.getServiceInstanceId() + "/vnfs/"\r
508                                         + DataService.getVnfInstanceId();\r
509                 case COMPONENT.VOLUME_GROUP:\r
510                         return "mso_create_volumegroup_instance/"\r
511                                         + DataService.getServiceInstanceId() + "/vnfs/"\r
512                                         + DataService.getVnfInstanceId();\r
513                 }\r
514         };\r
515 \r
516         var getMsoRequestDetails = function(parameterList) {\r
517                 console.log("getMsoRequestDetails invoked, parameterList="); console.log(JSON.stringify(parameterList,null,4));\r
518                 //console.log("getMsoRequestDetails invoked, DataService.getArbitraryParameters()="); \r
519                 //console.log(JSON.stringify(DataService.getArbitraryParameters(),null,4));\r
520                 \r
521                 var modelInfo = DataService.getModelInfo(_this.componentId);\r
522                 var requestorloggedInId = DataService.getLoggedInUserId();\r
523                 if (requestorloggedInId ==  null)\r
524                         requestorloggedInId = "";\r
525                 var isSupRollback = false;\r
526                 if (getValueFromList(FIELD.ID.SUPPRESS_ROLLBACK,parameterList) === "true") {\r
527                         isSupRollback = true;\r
528                 }\r
529                 var requestDetails = {\r
530                         requestInfo : {\r
531                                 instanceName : getValueFromList(FIELD.ID.INSTANCE_NAME,\r
532                                                 parameterList),\r
533                                 source : FIELD.ID.VID,\r
534                                 suppressRollback : isSupRollback,\r
535                                 requestorId: requestorloggedInId\r
536                         },\r
537                         modelInfo : {\r
538                                 modelType : _this.componentId,\r
539                                 modelInvariantId : modelInfo.modelInvariantId,\r
540                                 modelVersionId : modelInfo.modelNameVersionId,\r
541                                 modelName : modelInfo.modelName,\r
542                                 modelVersion : modelInfo.modelVersion,\r
543                                 modelCustomizationId: modelInfo.customizationUuid,\r
544                                 modelCustomizationName : modelInfo.modelCustomizationName\r
545                         },\r
546                         requestParameters : {\r
547                                 userParams : getArbitraryParameters(parameterList)\r
548                         }\r
549                 };\r
550                 if ( (_this.componentId != COMPONENT.SERVICE) || ( !DataService.getALaCarte() ) ) {\r
551                         // include cloud region for everything but service create alacarte\r
552                         var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);\r
553                         if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {\r
554                                 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,\r
555                                                 parameterList);\r
556                         }\r
557                         requestDetails.cloudConfiguration = {\r
558                                         lcpCloudRegionId : lcpRegion,\r
559                                         tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)\r
560                         };      \r
561                 }\r
562                 switch (_this.componentId) {\r
563                 case COMPONENT.SERVICE:\r
564                         requestDetails.subscriberInfo = {\r
565                                 globalSubscriberId : DataService.getGlobalCustomerId(),\r
566                                 subscriberName : DataService.getSubscriberName()\r
567                         };\r
568                         var isInTop = DataService.getHideServiceFields() || false;\r
569                         if(isInTop){\r
570                                 requestDetails.requestParameters.subscriptionServiceType = DataService.getModelInfo(_this.componentId)["serviceTypeName"];\r
571                         }else{\r
572                         requestDetails.requestParameters.subscriptionServiceType = getValueFromList(\r
573                                         FIELD.ID.SERVICE_TYPE, parameterList);\r
574                         }\r
575                         requestDetails.requestParameters.aLaCarte = DataService.getALaCarte();\r
576                         if ( !DataService.getALaCarte() ) {\r
577                                 requestDetails.requestInfo.productFamilyId = getValueFromList(\r
578                                         FIELD.ID.PRODUCT_FAMILY, parameterList);\r
579                         }\r
580                         var svcModelInfo = {\r
581                                         modelType : _this.componentId,\r
582                                         modelInvariantId : modelInfo.modelInvariantId,\r
583                                         modelVersionId : modelInfo.modelNameVersionId,\r
584                                         modelName : modelInfo.modelName,\r
585                                         modelVersion : modelInfo.modelVersion\r
586                                 };\r
587                                 requestDetails.modelInfo = svcModelInfo;\r
588                         break;\r
589                 case COMPONENT.VNF:\r
590                         \r
591                         requestDetails.requestInfo.productFamilyId = getValueFromList(\r
592                                         FIELD.ID.PRODUCT_FAMILY, parameterList);\r
593                         break;\r
594                 case COMPONENT.NETWORK:\r
595                         requestDetails.requestInfo.productFamilyId = getValueFromList(\r
596                                         FIELD.ID.PRODUCT_FAMILY, parameterList);\r
597                         \r
598                         break;\r
599                 case COMPONENT.VF_MODULE:\r
600                 requestDetails.requestParameters.usePreload = getValueFromList(\r
601                                         FIELD.ID.SDN_C_PRELOAD, parameterList);\r
602                         if(_this.componentId == COMPONENT.VF_MODULE &&(requestDetails.requestParameters.usePreload== null || requestDetails.requestParameters.usePreload === '')){\r
603                                 requestDetails.requestParameters.usePreload = false;\r
604                         }\r
605                         break;\r
606                 case COMPONENT.VOLUME_GROUP:\r
607                         break;\r
608                 }\r
609 \r
610                 var relatedInstanceList = getRelatedInstanceList(parameterList);\r
611 \r
612                 if (relatedInstanceList !== undefined) {\r
613                         requestDetails.relatedInstanceList = relatedInstanceList;\r
614                 }\r
615 \r
616                 return requestDetails;\r
617         };\r
618 \r
619         var getRelatedInstanceList = function(parameterList) {\r
620                 var relatedInstanceList = new Array();\r
621                 switch (_this.componentId) {\r
622                 case COMPONENT.SERVICE:\r
623                         return undefined;\r
624                 case COMPONENT.NETWORK:\r
625                 case COMPONENT.VNF:\r
626                         addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
627                                         DataService.getServiceInstanceId());\r
628                         break;\r
629                 case COMPONENT.VF_MODULE:\r
630                         addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
631                                         DataService.getServiceInstanceId());\r
632                         addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService\r
633                                         .getVnfInstanceId());\r
634 \r
635                         var availableVolumeGroup = getValueFromList(\r
636                                         FIELD.ID.AVAILABLE_VOLUME_GROUP, parameterList);\r
637                         \r
638                         if (UtilityService.hasContents(availableVolumeGroup) && availableVolumeGroup !== "None") {\r
639                                 var availableVolumeGroups = DataService.getAvailableVolumeGroupList();\r
640                                 \r
641                                 for (var i = 0; i < availableVolumeGroups.length; i++) {\r
642                                         if (availableVolumeGroups[i].instance.name == availableVolumeGroup) {\r
643                                                 DataService.setModelInfo(COMPONENT.VOLUME_GROUP, DataService.getModelInfo(COMPONENT.VF_MODULE));\r
644                                                 DataService.setVolumeGroupInstanceId(availableVolumeGroups[i].instance.object["volume-group-id"]);\r
645                                                 break;\r
646                                         }\r
647                                 }\r
648                                 \r
649                                 addRelatedInstance(relatedInstanceList, COMPONENT.VOLUME_GROUP,\r
650                                                 DataService.getVolumeGroupInstanceId());\r
651                         }\r
652                         break;\r
653                 case COMPONENT.VOLUME_GROUP:\r
654                         addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
655                                         DataService.getServiceInstanceId());\r
656                         addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService\r
657                                         .getVnfInstanceId());\r
658                         break;\r
659                 }\r
660 \r
661                 return relatedInstanceList;\r
662         };\r
663 \r
664         var addRelatedInstance = function(relatedInstanceList, componentId,\r
665                         instanceId) {\r
666                 var modelInfo = DataService.getModelInfo(componentId);\r
667                 var relatedInstance;\r
668                 if (modelInfo !== undefined) {\r
669                         if (componentId === COMPONENT.SERVICE) {\r
670                                 relatedInstance = {\r
671                                         "instanceId" : instanceId,\r
672                                         "modelInfo" : {\r
673                                                 "modelType" : componentId,\r
674                                                 "modelName" : modelInfo.modelName,\r
675                                                 "modelInvariantId" : modelInfo.modelInvariantId,\r
676                                                 "modelVersion" : modelInfo.modelVersion,\r
677                                                 "modelVersionId" : modelInfo.modelNameVersionId,\r
678                                                 \r
679                                         }\r
680                                 };\r
681                         }\r
682                         else {\r
683                                 relatedInstance = {\r
684                                                 "instanceId" : instanceId,\r
685                                                 "modelInfo" : {\r
686                                                         "modelType" : componentId,\r
687                                                         "modelName" : modelInfo.modelName,\r
688                                                         "modelInvariantId" : modelInfo.modelInvariantId,\r
689                                                         "modelVersion" : modelInfo.modelVersion,\r
690                                                         "modelVersionId" : modelInfo.modelNameVersionId,\r
691                                                         "modelCustomizationId": modelInfo.customizationUuid,\r
692                                                         "modelCustomizationName": modelInfo.modelCustomizationName\r
693                                                 }\r
694                                 }\r
695                         }\r
696                         relatedInstanceList.push({\r
697                                 relatedInstance : relatedInstance\r
698                         });\r
699                 }\r
700         };\r
701 \r
702         /*\r
703          * var getArbitraryParameters = function(parameterList) { var\r
704          * arbitraryParameters = new Object(); for (var i = 0; i <\r
705          * parameterList.length; i++) { var parameter = parameterList[i]; switch\r
706          * (parameter.id) { case FIELD.ID.INSTANCE_NAME: case\r
707          * FIELD.ID.PRODUCT_FAMILY: case FIELD.ID.LCP_REGION: case\r
708          * FIELD.ID.LCP_REGION_TEXT: case FIELD.ID.SERVICE_TYPE: case\r
709          * FIELD.ID.TENANT: case FIELD.ID.SUPPRESS_ROLLBACK: break; default:\r
710          * arbitraryParameters[parameter.id] = parameter.value; } } return\r
711          * arbitraryParameters; }\r
712          */\r
713         var getArbitraryParameters = function(parameterList) {\r
714                 var arbitraryParameters = new Object();\r
715                 var arbitraryArray = new Array();\r
716                 for (var i = 0; i < parameterList.length; i++) {\r
717                         var parameter = parameterList[i];\r
718                         switch (parameter.id) {\r
719                         case FIELD.ID.AVAILABLE_VOLUME_GROUP:\r
720                                 break;\r
721                         case FIELD.ID.INSTANCE_NAME:\r
722                                 break;\r
723                         case FIELD.ID.PRODUCT_FAMILY:\r
724                                 break;\r
725                         case FIELD.ID.LCP_REGION:\r
726                                 break;\r
727                         case FIELD.ID.LCP_REGION_TEXT:\r
728                                 break;\r
729                         case FIELD.ID.SERVICE_TYPE:\r
730                                 break;\r
731                         case FIELD.ID.TENANT:\r
732                                 break;\r
733                         case FIELD.ID.SUPPRESS_ROLLBACK:\r
734                                 break;\r
735                         case FIELD.ID.SUBSCRIBER_NAME:\r
736                                 break;\r
737                         case FIELD.ID.SDN_C_PRELOAD:\r
738                                 break;\r
739                         case FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE:\r
740                                 break;\r
741                         case FIELD.ID.SUPPLEMENTORY_DATA_FILE:\r
742                                 arbitraryParameters =  FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE['value'];\r
743                                 arbitraryArray=arbitraryParameters;\r
744                                 FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE['value']=[];\r
745                                 break;\r
746 \r
747                         default:\r
748                                 if (parameter.value != '') {\r
749                                         arbitraryParameters = {\r
750                                                 name: parameter.id,\r
751                                                 value: parameter.value\r
752                                         }\r
753                                         arbitraryArray.push(arbitraryParameters);\r
754                                 }\r
755                         }\r
756                 }\r
757                 return (arbitraryArray);\r
758         }\r
759 \r
760         var getModel = function() {\r
761                 AsdcService.getModel(DataService.getModelId(), function(response) {\r
762                         DataService.setModelInfo(_this.componentId, {\r
763                                 modelInvariantId : response.data.invariantUUID,\r
764                                 modelNameVersionId : response.data.uuid,\r
765                                 modelName : response.data.name,\r
766                                 modelVersion : response.data.version,\r
767                                 inputs : response.data.inputs\r
768                         });\r
769                         UtilityService.startNextAsyncOperation();\r
770                 });\r
771         };\r
772 \r
773         var getSubscriptionServiceTypeList = function() {\r
774                 AaiService.getSubscriptionServiceTypeList(DataService\r
775                                 .getGlobalCustomerId(), function(response) {\r
776                         DataService.setSubscriptionServiceTypeList(response);\r
777                         UtilityService.startNextAsyncOperation();\r
778                 });\r
779         };\r
780 \r
781         var getLoggedInUserID = function() {\r
782                 AaiService.getLoggedInUserID(function(response) {\r
783                         DataService.setLoggedInUserId(response.data);\r
784                         UtilityService.startNextAsyncOperation();\r
785                 });\r
786         };\r
787         \r
788         var getSubscribers = function() {\r
789                 AaiService.getSubscribers(function(response) {\r
790                         DataService.setSubscribers(response);\r
791                         UtilityService.startNextAsyncOperation();\r
792                 });\r
793         };\r
794         var getServices = function() {\r
795                 AaiService.getServices(function(response) {\r
796                         var serviceIdList = [];\r
797                         angular.forEach(response.data, function(value, key) {\r
798                                 angular.forEach(value, function(subVal, key) {\r
799                                         var newVal = {\r
800                                                 "id" : subVal[FIELD.ID.SERVICE_ID],\r
801                                                 "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION],\r
802                                                 "isPermitted" : subVal[FIELD.ID.IS_PERMITTED],\r
803                                         };\r
804                                         serviceIdList.push(newVal);\r
805                                         DataService.setServiceIdList(serviceIdList);\r
806                                 });\r
807                         });\r
808 \r
809                         UtilityService.startNextAsyncOperation();\r
810                 });\r
811         };\r
812         var getAicZones = function() {\r
813                 AaiService.getAicZones(function(response) {\r
814                         var serviceIdList = [];\r
815                         angular.forEach(response.data, function(value, key) {\r
816                                 angular.forEach(value, function(subVal, key) {\r
817                                         var newVal = {\r
818                                                 "id" : subVal[FIELD.ID.ZONE_ID],\r
819                                                 "name" : subVal[FIELD.ID.ZONE_NAME],\r
820                                         };\r
821                                         serviceIdList.push(newVal);\r
822                                         DataService.setAicZones(serviceIdList);\r
823                                 });\r
824                         });\r
825 \r
826                         UtilityService.startNextAsyncOperation();\r
827                 });\r
828 \r
829         };\r
830 \r
831 \r
832 \r
833         var getLcpCloudRegionTenantList = function() {\r
834                 AaiService.getLcpCloudRegionTenantList(DataService\r
835                                 .getGlobalCustomerId(), DataService.getServiceType(), function(\r
836                                 response) {\r
837                         DataService.setCloudRegionTenantList(response);\r
838                         UtilityService.startNextAsyncOperation();\r
839                 });\r
840         };\r
841 \r
842         var internalGetParametersHandler = function() {\r
843                 if (angular.isFunction(_this.getParametersHandler)) {\r
844                         _this.getParametersHandler({\r
845                                 summaryList : getSummaryList(),\r
846                                 userProvidedList : getUserProvidedList()\r
847                         });\r
848                 }\r
849         };\r
850 \r
851         var getSubscribersParameter = function() {\r
852                 var subscribers = DataService.getSubscribers();\r
853                 var parameter = FIELD.PARAMETER.SUBSCRIBER_NAME;\r
854                 if ( UtilityService.hasContents(subscribers)) {\r
855                         parameter.optionList = [];\r
856         \r
857                         for (var i = 0; i < subscribers.length; i++) {\r
858                                 parameter.optionList.push({\r
859                                         id : subscribers[i][FIELD.ID.GLOBAL_CUSTOMER_ID],\r
860                                         name : subscribers[i][FIELD.ID.SUBNAME],\r
861                                         isPermitted : subscribers[i][FIELD.ID.IS_PERMITTED]\r
862                                 })\r
863                         }\r
864                 }\r
865                 return parameter;\r
866         };\r
867 \r
868         var getServiceId = function() {\r
869                 var serviceIdList = DataService.getServiceIdList();\r
870                 //var serviceTypeList = DataService.getSubscriptionServiceTypeList();\r
871                 var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;\r
872                 parameter.optionList = new Array();\r
873                 if ( UtilityService.hasContents(serviceIdList) ) {\r
874                         // load them all\r
875                         for (var i = 0; i < serviceIdList.length; i++) {\r
876                                 parameter.optionList.push({\r
877                                         id : serviceIdList[i].id,\r
878                                         name : serviceIdList[i].description,\r
879                                         isPermitted : serviceIdList[i].isPermitted\r
880                                 });\r
881                         }\r
882                 }\r
883 \r
884                 return parameter;\r
885         };\r
886 \r
887         var getAICZones = function() {\r
888                 var aicList = DataService.getAicZones();\r
889                 var parameter = FIELD.PARAMETER.AIC_ZONES;\r
890                 parameter.optionList = new Array();\r
891                 if ( UtilityService.hasContents(aicList) ) {\r
892                         // load them all\r
893                         for (var i = 0; i < aicList.length; i++) {\r
894                                 parameter.optionList.push({\r
895                                         id : aicList[i].id,\r
896                                         name : aicList[i].name,\r
897                                         isPermitted : true\r
898 \r
899                                 });\r
900                         }\r
901                 }\r
902 \r
903                 return parameter;\r
904         };\r
905 \r
906 \r
907         var getLcpRegion = function() {\r
908                 var cloudRegionTenantList = DataService.getCloudRegionTenantList();\r
909                 console.log ( "cloudRegionTenantList=");\r
910                 console.log ( JSON.stringify (cloudRegionTenantList, null, 4 ));\r
911 \r
912                 var parameter = FIELD.PARAMETER.LCP_REGION;\r
913                 if ( UtilityService.hasContents (cloudRegionTenantList) ) {\r
914                         parameter.optionList = new Array();\r
915                         for (var i = 0; i < cloudRegionTenantList.length; i++) {\r
916                                 for (var j = 0; j < parameter.optionList.length; j++) {\r
917                                         if (parameter.optionList[j].id === cloudRegionTenantList[i].cloudRegionId) {\r
918                         parameter.optionList[j].isPermitted =\r
919                                                         parameter.optionList[j].isPermitted || cloudRegionTenantList[i].isPermitted;\r
920                         break;\r
921                     }\r
922                                 }\r
923                                 if (j < parameter.optionList.length) {\r
924                                         continue;\r
925                                 }\r
926                                 parameter.optionList.push({\r
927                                         id : cloudRegionTenantList[i].cloudRegionId,\r
928                                         isPermitted : cloudRegionTenantList[i].isPermitted\r
929                                 });\r
930                         }\r
931                 }\r
932                 return parameter;\r
933         };\r
934 \r
935         var getTenantList = function(cloudRegionId) {\r
936                 var cloudRegionTenantList = DataService.getCloudRegionTenantList();\r
937                 var parameter = "";\r
938                 if ( UtilityService.hasContents (cloudRegionTenantList) ) {\r
939                         parameter = FIELD.PARAMETER.TENANT_ENABLED;\r
940                         parameter.optionList = new Array();\r
941                         for (var i = 0; i < cloudRegionTenantList.length; i++) {\r
942                                 if (cloudRegionTenantList[i].cloudRegionId === cloudRegionId) {\r
943                                         parameter.optionList.push({\r
944                                                 id : cloudRegionTenantList[i].tenantId,\r
945                                                 name : cloudRegionTenantList[i].tenantName,\r
946                         isPermitted : cloudRegionTenantList[i].isPermitted\r
947 \r
948                     });\r
949                                 }\r
950                         }\r
951                 }\r
952                 return parameter;\r
953 \r
954         };\r
955 \r
956         var addOptionList = function(parameter, optionSimpleArray) {\r
957                 var optionList = new Array();\r
958                 if (!angular.isArray(optionSimpleArray)) {\r
959                         return optionList;\r
960                 }\r
961                 for (var i = 0; i < optionSimpleArray.length; i++) {\r
962                         optionList.push({\r
963                                 name : optionSimpleArray[i],\r
964                 isPermitted :true,\r
965                         });\r
966                 }\r
967                 parameter.optionList = optionList;\r
968                 return parameter;\r
969         };\r
970 \r
971         var getValueFromList = function(id, parameterList) {\r
972                 for (var i = 0; i < parameterList.length; i++) {\r
973                         if (parameterList[i].id === id) {\r
974                                 return parameterList[i].value;\r
975                         }\r
976                 }\r
977         };\r
978         var updateUserParameterList = function(updatedId, parameterListControl) {\r
979                 console.log ("updateUserParameterList() updatedId=" + updatedId);\r
980                 if (updatedId === FIELD.ID.PRODUCT_FAMILY && DataService.getHideServiceFields()) {\r
981                         var cloudRegionTenantList = new Array();\r
982                         AaiService.getLcpCloudRegionTenantList(DataService.getGlobalCustomerId(), DataService.getServiceType(), function(cloudRegionTenantList) {\r
983                                 DataService.setCloudRegionTenantList(cloudRegionTenantList);\r
984                                 parameterListControl.updateList([ getLcpRegion() ]);\r
985                         });\r
986                 }else if (updatedId === FIELD.ID.SDN_C_PRELOAD) {\r
987                         var list = parameterListControl.getList(updatedId);\r
988                         if($('input[parameter-id="'+updatedId+'"]').is(':checked')){\r
989                                 FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED.value=true;\r
990                                 parameterListControl\r
991                                 .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED ]);\r
992                         }else{\r
993                                 parameterListControl\r
994                                 .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_UNCHECKED ]);\r
995                         }\r
996                 }else if (updatedId === FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE) {\r
997                         if($('input[parameter-id="'+updatedId+'"]').is(':checked')){\r
998                                 $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').show();\r
999                                  FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED.value=true;\r
1000                                 parameterListControl\r
1001                                 .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED ]);\r
1002                         }else{\r
1003                                 $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').hide();\r
1004                                 FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED.value=false;\r
1005                                 parameterListControl\r
1006                                 .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_UNCHECKED ]);\r
1007                         }\r
1008                 } else if (updatedId === FIELD.ID.SUPPLEMENTORY_DATA_FILE) {\r
1009                         var filePath =  $('input[parameter-id="'+updatedId+'"]').val();\r
1010                         var arr =filePath.split('.');\r
1011                         var fileExt  = arr[arr.length-1];\r
1012                         if(fileExt!='' && fileExt.toLowerCase()!='json'){\r
1013                                  $('input[parameter-id="'+updatedId+'"]').val('');\r
1014                                 alert("Invalid file format. Please select *.json format file.");\r
1015                                 return false;\r
1016                         }\r
1017                 } else  if (updatedId === FIELD.ID.LCP_REGION) {\r
1018                         var list = parameterListControl.getList(updatedId);\r
1019                         if (list[0].selectedIndex >= 0) {\r
1020                                 parameterListControl\r
1021                                                 .updateList([ getTenantList(list[0].value) ]);\r
1022                         } else {\r
1023                                 parameterListControl\r
1024                                                 .updateList([ FIELD.PARAMETER.TENANT_DISABLED ]);\r
1025                         }\r
1026                         if (list[0].value === FIELD.KEY.LCP_REGION_TEXT) {\r
1027                                 parameterListControl\r
1028                                                 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_VISIBLE ]);\r
1029                         } else {\r
1030                                 parameterListControl\r
1031                                                 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN ]);\r
1032                         }\r
1033                 } else if (updatedId === FIELD.ID.SUBSCRIBER_NAME) {\r
1034                         var list = parameterListControl.getList(updatedId);\r
1035                         if (list[0].selectedIndex >= 0) {\r
1036                                 DataService.setGlobalCustomerId(list[0].value);\r
1037 \r
1038                                 AaiService.getSubscriptionServiceTypeList(DataService\r
1039                                                 .getGlobalCustomerId(), function(response) {\r
1040                                         DataService.setSubscriptionServiceTypeList(response);\r
1041                                         var serviceTypeParameters = FIELD.PARAMETER.SERVICE_TYPE;\r
1042                                         serviceTypeParameters.optionList = [];\r
1043 \r
1044                                         for (var i = 0; i < response.length; i++) {\r
1045                                                 serviceTypeParameters.optionList.push({\r
1046                                                         "id" : response[i].name,\r
1047                                                         "name" : response[i].name,\r
1048                             "isPermitted" :response[i].isPermitted\r
1049 \r
1050                         });\r
1051                                         }\r
1052                                         console.log ( "updateUserParameterList: service type parameters " ); \r
1053                                         console.log ( JSON.stringify (serviceTypeParameters, null, 4));\r
1054                                         parameterListControl.updateList([ serviceTypeParameters ]);\r
1055                                 });\r
1056 \r
1057                         } \r
1058                 } else if ( updatedId === FIELD.ID.SERVICE_TYPE ) {\r
1059                         var list = parameterListControl.getList(updatedId);\r
1060                         if (list[0].selectedIndex >= 0) {\r
1061 \r
1062                                 DataService.setServiceType(list[0].value);\r
1063                                 var cloudRegionTenantList = new Array();\r
1064                                 AaiService.getLcpCloudRegionTenantList(DataService.getGlobalCustomerId(), DataService.getServiceType(), function(cloudRegionTenantList) {\r
1065                                         DataService.setCloudRegionTenantList(cloudRegionTenantList);\r
1066                                         parameterListControl.updateList([ getLcpRegion() ]);\r
1067                                 }); \r
1068                         } else {\r
1069                                 parameterListControl\r
1070                                 .updateList([ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);\r
1071                         }\r
1072                 }\r
1073 \r
1074         };\r
1075 \r
1076         return {\r
1077                 initializeComponent : function(componentId) {\r
1078                         _this.componentId = ComponentService.initialize(componentId);\r
1079                 },\r
1080                 setHttpErrorHandler : function(httpErrorHandler) {\r
1081                         _this.httpErrorHandler = httpErrorHandler;\r
1082                 },\r
1083                 getComponentDisplayName : ComponentService.getComponentDisplayName,\r
1084                 getParameters : function(getParametersHandler) {\r
1085                         _this.getParametersHandler = getParametersHandler;\r
1086                         UtilityService.setHttpErrorHandler(_this.httpErrorHandler);\r
1087                         UtilityService.startAsyncOperations(getAsyncOperationList(),\r
1088                                         internalGetParametersHandler);\r
1089                 },\r
1090                 updateUserParameterList : updateUserParameterList,\r
1091                 getMsoRequestDetails : getMsoRequestDetails,\r
1092                 getMsoUrl : getMsoUrl\r
1093         }\r
1094 }\r
1095 \r
1096 appDS2.factory("CreationService", [ "$log", "AaiService", "AsdcService",\r
1097                 "DataService","VIDCONFIGURATION", "ComponentService", "COMPONENT", "FIELD", "PARAMETER",\r
1098                 "UtilityService", CreationService ]);\r