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