60f3e6dc1762ac60059a0c4781ceb53b45739655
[policy/engine.git] / POLICY-SDK-APP / src / main / webapp / app / policyApp / policy-models / Editor / PolicyTemplates / DecisionPolicyTemplate.html
1 <div ng-controller="decisionPolicyController">
2         <form>
3                 <div class="well">
4                         <div class="form-group row">
5                                 <div class="form-group col-sm-6">
6                                         <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
7                                                 class="form-control" ng-disabled="temp.policy.readOnly"
8                                                 ng-readonly="temp.policy.editPolicy"
9                                                 ng-model="temp.policy.policyName" required pattern="\S+"
10                                                 title="Enter the Policy Name without any spaces" />
11                                 </div>
12                                 <div class="form-group col-sm-6">
13                                         <label>Description:</label> <input type="text" class="form-control"
14                                                 ng-disabled="temp.policy.readOnly"
15                                                 ng-model="temp.policy.policyDescription" />
16                                 </div>
17                         </div>
18                         <div class="form-group row">
19                                 <div class="form-group col-sm-6">
20                                         <label>Onap Name:<sup><b>*</b></sup></label> <select
21                                                 class="form-control" ng-disabled="temp.policy.readOnly"
22                                                 ng-model="temp.policy.onapName"
23                                                 ng-options="option for option in onapNameDictionaryDatas track by option"
24                                                 required pattern="\S+" title="OnapName is required"></select>
25                                 </div>
26                                 <div class="form-group col-sm-6">
27                                         <label>Rule Provider:<sup><b>*</b></sup></label><select
28                                                 class="form-control" ng-disabled="temp.policy.readOnly"
29                                                 ng-model="temp.policy.ruleProvider"
30                                                 ng-init="providerListener(temp.policy.ruleProvider);"
31                                                 ng-click="providerListener(temp.policy.ruleProvider);">
32                                                 <option>Custom</option>
33                                                 <option>AAF</option>
34                                                 <option>Rainy_Day</option>
35                                                 <option>GUARD_YAML</option>
36                                                 <option>GUARD_BL_YAML<option>
37                                         </select>
38                                 </div>
39                         </div>
40                 </div>
41                 <div ng-if="temp.policy.ruleProvider == 'Rainy_Day'">
42                         <div class="well">
43                                 <div class="form-group row">
44                                         <div class="form-group row">
45                                                 <div class="form-group col-sm-1">
46                                                         <label>Service Type:<sup><b>*</b></sup></label>
47                                                 </div>
48                                                 <div class="form-group col-sm-2">
49                                                         <input type="text" class="form-control"
50                                                                 ng-disabled="temp.policy.readOnly" ng-model="temp.policy.rainyday.serviceType"
51                                                                 placeholder="Service Type" />
52                                                 </div>
53                                                 <div class="form-group col-sm-1">
54                                                         <label>VNF Type:<sup><b>*</b></sup></label>
55                                                 </div>
56                                                 <div class="form-group col-sm-2">
57                                                         <input type="text" class="form-control"
58                                                                 ng-disabled="temp.policy.readOnly" ng-model="temp.policy.rainyday.vnfType"
59                                                                 placeholder="VNF Type" />
60                                                 </div>
61                                                 <div class="form-group col-sm-1">
62                                                         <label>Building Block ID:<sup><b>*</b></sup></label>
63                                                 </div>
64                                                 <div class="form-group col-sm-2">
65                                                                 <select
66                                                                         class="form-control" ng-disabled="temp.policy.readOnly"
67                                                                         ng-model="temp.policy.rainyday.bbid"
68                                                                         ng-options="option for option in rainyDayDictionaryDatas track by option"
69                                                                         ng-change="getWorkstepValues(temp.policy.rainyday.bbid)">
70                                                                         <option value="">{{temp.policy.rainyday.bbid}}</option>
71                                                                 </select>
72                                                 </div>
73                                                 <div class="form-group col-sm-1">
74                                                         <label>Work Step:<sup><b>*</b></sup></label>
75                                                 </div>
76                                                 <div class="form-group col-sm-2">
77                                                         <select
78                                                                         class="form-control" ng-disabled="temp.policy.readOnly"
79                                                                         ng-model="temp.policy.rainyday.workstep"
80                                                                         ng-options="option for option in workstepDictionaryDatas track by option"
81                                                                         ng-change="getTreatmentValues(temp.policy.rainyday.bbid, temp.policy.rainyday.workstep)">
82                                                                         <option value="">{{temp.policy.rainyday.workstep}}</option>
83                                                         </select>
84                                                 </div>
85                                         </div>
86                                         <div class="form-group row">
87                                                 <div class="form-group col-sm-3">
88                                                         <label>Desired Automated Treatments:</label>
89                                                         <button type="button" class="btn btn-default"
90                                                                 ng-disabled="temp.policy.readOnly"
91                                                                 ng-click="addNewTreatment()">
92                                                                 <i class="fa fa-plus"></i>
93                                                         </button>
94                                                 </div>
95                                         </div>
96                                         <div class="form-group row">
97                                         <div data-ng-repeat="treatmentTableChoice in temp.policy.rainyday.treatmentTableChoices">
98                                                 <div class="form-group row" style="margin-left: 2%">
99                                                         <div class="form-group col-sm-1">
100                                                                 <label>Error Code:<sup><b>*</b></sup></label>
101                                                         </div>
102                                                         <div class="form-group col-sm-3">
103                                                                 <input type="text" class="form-control"
104                                                                         ng-disabled="temp.policy.readOnly"
105                                                                         ng-model="treatmentTableChoice.errorcode"
106                                                                         placeholder="Error Code" />
107                                                         </div>
108                                                         <div class="form-group col-sm-1">
109                                                                 <label>Desired Treatment:<sup><b>*</b></sup></label>
110                                                         </div>          
111                                                         <div class="form-group col-sm-3">
112                                                                 <select
113                                                                         class="form-control" 
114                                                                         ng-disabled="temp.policy.readOnly"
115                                                                         ng-model="treatmentTableChoice.treatment"
116                                                                         ng-options="option for option in allowedTreatmentsDatas track by option">
117                                                                         <option value="">{{treatmentTableChoice.treatment}}</option>
118                                                                 </select>                                               
119                                                         </div>
120                                                         <div class="form-group col-sm-1">
121                                                                 <button type="button" class="btn btn-default"
122                                                                         ng-disabled="temp.policy.readOnly"
123                                                                         ng-click="removeTreatment()">
124                                                                         <i class="fa fa-minus"></i>
125                                                                 </button>
126                                                         </div>
127                                                 </div>
128                                         </div>
129                                         </div>
130                                 </div>
131                         </div>
132                 </div>
133                 <div ng-if="temp.policy.ruleProvider == 'GUARD_BL_YAML'">
134                         <div class="well">
135                                 <div class="form-group row">
136                                         <div class="form-group col-sm-1">
137                                                 <label>Guard BlackList YAML Attributes:</label><br>
138                                         </div>
139                                 </div>
140                                 <div class="form-group row">
141                                                 <div class="form-group row" style="margin-left: 2%">
142                                                         <div class="form-group col-sm-3">
143                                                                 <label> actor: </label>
144                                                         </div>
145                                                         <div class="form-group col-sm-3">
146                                                                 <input type="text" class="form-control"
147                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.actor"
148                                                                         placeholder="Actor" />
149                                                         </div>
150                                                 </div>
151                                                 <div class="form-group row" style="margin-left: 2%">
152                                                         <div class="form-group col-sm-3">
153                                                                 <label> recipe: </label>
154                                                         </div>
155                                                         <div class="form-group col-sm-3">
156                                                                 <input type="text" class="form-control"
157                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.recipe"
158                                                                         placeholder="Recipe" />
159                                                         </div>
160                                                 </div>
161                                                 <div class="form-group row" style="margin-left: 2%">
162                                                         <div class="form-group col-sm-3">
163                                                                 <label> CLName: </label>
164                                                         </div>
165                                                         <div class="form-group col-sm-3">
166                                                                 <input type="text" class="form-control"
167                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.clname"
168                                                                         placeholder="CLName" />
169                                                         </div>
170                                                 </div>
171                                                 <div class="form-group row" style="margin-left: 2%">
172                                                         <div class="form-group col-sm-3">
173                                                                 <label> guardActiveStart: </label>
174                                                         </div>
175                                                         <div class="form-group col-sm-3">
176                                                                 <input type="text" class="form-control"
177                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveStart"
178                                                                         placeholder="00:00:00-05:00" />
179                                                         </div>
180                                                 </div>
181                                                 <div class="form-group row" style="margin-left: 2%">
182                                                         <div class="form-group col-sm-3">
183                                                                 <label> guardActiveEnd: </label>
184                                                         </div>
185                                                         <div class="form-group col-sm-3">
186                                                                 <input type="text" class="form-control"
187                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveEnd"
188                                                                         placeholder="00:00:00-05:00" />
189                                                         </div>
190                                                 </div>
191                                                 <div class="form-group row" style="margin-left: 2%">
192                                                         <div class="form-group col-sm-3">
193                                                                 <label> BlackList: </label>
194                                                                 <button type="button" class="btn btn-default"
195                                                                         ng-disabled="temp.policy.readOnly" ng-click="addNewBL()">
196                                                                         <i class="fa fa-plus"></i>
197                                                                 </button>
198                                                         </div>
199                                                         <div class="form-group col-sm-4">
200                                                                 <div data-ng-repeat="choice in temp.policy.yamlparams.blackList track by $index">
201                                                                         <div class="form-group row">
202                                                                         <div class="form-group col-sm-9">
203                                                                                 <input type="text" class="form-control"
204                                                                                 ng-disabled="temp.policy.readOnly"
205                                                                                 ng-model="temp.policy.yamlparams.blackList[$index]" placeholder="BlackList" />
206                                                                         </div>
207                                                                         <div class="form-group col-sm-1">
208                                                                                 <button type="button" class="btn btn-default" ng-show="$last"
209                                                                                 ng-disabled="temp.policy.readOnly" ng-click="removeBL()">
210                                                                                 <i class="fa fa-minus"></i>
211                                                                                 </button>
212                                                                         </div>
213                                                                         </div>
214                                                                 </div>
215                                                         </div>
216                                                 </div>
217                                 </div>
218                         </div>
219                 </div>
220                 
221                 <div ng-if="temp.policy.ruleProvider == 'GUARD_YAML'">
222                         <div class="well">
223                                 <div class="form-group row">
224                                         <div class="form-group col-sm-1">
225                                                 <label>Guard YAML Attributes:</label><br>
226                                         </div>
227                                 </div>
228                                 <div class="form-group row">
229                                                 <div class="form-group row" style="margin-left: 2%">
230                                                         <div class="form-group col-sm-3">
231                                                                 <label> actor: </label>
232                                                         </div>
233                                                         <div class="form-group col-sm-3">
234                                                                 <input type="text" class="form-control"
235                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.actor"
236                                                                         placeholder="Actor" />
237                                                         </div>
238                                                 </div>
239                                                 <div class="form-group row" style="margin-left: 2%">
240                                                         <div class="form-group col-sm-3">
241                                                                 <label> recipe: </label>
242                                                         </div>
243                                                         <div class="form-group col-sm-3">
244                                                                 <input type="text" class="form-control"
245                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.recipe"
246                                                                         placeholder="Recipe" />
247                                                         </div>
248                                                 </div>
249                                                 <div class="form-group row" style="margin-left: 2%">
250                                                         <div class="form-group col-sm-3">
251                                                                 <label> CLName: </label>
252                                                         </div>
253                                                         <div class="form-group col-sm-3">
254                                                                 <input type="text" class="form-control"
255                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.clname"
256                                                                         placeholder="CLName" />
257                                                         </div>
258                                                 </div>
259                                                 <div class="form-group row" style="margin-left: 2%">
260                                                         <div class="form-group col-sm-3">
261                                                                 <label> Targets: </label>
262                                                                 <button type="button" class="btn btn-default"
263                                                                         ng-disabled="temp.policy.readOnly" ng-click="addNewTarget()">
264                                                                         <i class="fa fa-plus"></i>
265                                                                 </button>
266                                                         </div>
267                                                         <div class="form-group col-sm-4">
268                                                                 <div data-ng-repeat="choice in temp.policy.yamlparams.targets track by $index">
269                                                                         <div class="form-group row">
270                                                                         <div class="form-group col-sm-9">
271                                                                                 <input type="text" class="form-control"
272                                                                                 ng-disabled="temp.policy.readOnly"
273                                                                                 ng-model="temp.policy.yamlparams.targets[$index]" placeholder="Target" />
274                                                                         </div>
275                                                                         <div class="form-group col-sm-1">
276                                                                                 <button type="button" class="btn btn-default" ng-show="$last"
277                                                                                 ng-disabled="temp.policy.readOnly" ng-click="removeTarget()">
278                                                                                 <i class="fa fa-minus"></i>
279                                                                                 </button>
280                                                                         </div>
281                                                                         </div>
282                                                                 </div>
283                                                         </div>
284                                                 </div>
285                                                 <div class="form-group row" style="margin-left: 2%">
286                                                         <div class="form-group col-sm-3">
287                                                                 <label> limit: </label>
288                                                         </div>
289                                                         <div class="form-group col-sm-3">
290                                                                 <input type="text" class="form-control"
291                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.limit"
292                                                                         placeholder="Limit" />
293                                                         </div>
294                                                 </div>
295                                                 <div class="form-group row" style="margin-left: 2%">
296                                                         <div class="form-group col-sm-3">
297                                                                 <label> timeWindow: </label>
298                                                         </div>
299                                                         <div class="form-group col-sm-2">
300                                                                 <input type="text" class="form-control"
301                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.timeWindow"
302                                                                         placeholder="Time Window" />
303                                                         </div>
304                                                         <div class="form-group col-sm-1">
305                                                                 <select class="form-control" ng-disabled="temp.policy.readOnly" 
306                                                                 ng-model="temp.policy.yamlparams.timeUnits">
307                                                                 <option>minute</option>
308                                                                 <option>hour</option>
309                                                                 <option>day</option>
310                                                                 <option>week</option>
311                                                                 <option>month</option>
312                                                                 <option>year</option>
313                                                                 </select>
314                                                         </div>
315                                                 </div>
316                                                 <div class="form-group row" style="margin-left: 2%">
317                                                         <div class="form-group col-sm-3">
318                                                                 <label> guardActiveStart: </label>
319                                                         </div>
320                                                         <div class="form-group col-sm-3">
321                                                                 <input type="text" class="form-control"
322                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveStart"
323                                                                         placeholder="00:00:00-05:00" />
324                                                         </div>
325                                                 </div>
326                                                 <div class="form-group row" style="margin-left: 2%">
327                                                         <div class="form-group col-sm-3">
328                                                                 <label> guardActiveEnd: </label>
329                                                         </div>
330                                                         <div class="form-group col-sm-3">
331                                                                 <input type="text" class="form-control"
332                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveEnd"
333                                                                         placeholder="00:00:00-05:00" />
334                                                         </div>
335                                                 </div>
336                                 </div>
337                         </div>
338                 </div>
339
340
341                 <div ng-if="temp.policy.ruleProvider == 'Custom'">
342                         <div class="well">
343                                 <div class="form-group row">
344                                         <div class="form-group col-sm-1">
345                                                 <label>Component Attributes:</label><br>
346                                                 <button type="button" class="btn btn-default"
347                                                         ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
348                                                         <i class="fa fa-plus"></i>
349                                                 </button>
350                                         </div>
351                                 </div>
352                                 <div class="form-group row">
353                                         <div data-ng-repeat="choice in temp.policy.attributes">
354                                                 <div class="form-group row" style="margin-left: 2%">
355                                                         <div class="form-group col-sm-3">
356                                                                 <select class="form-control" ng-disabled="temp.policy.readOnly"
357                                                                         ng-model="choice.key"
358                                                                         ng-options="option for option in attributeDictionaryDatas track by option">
359                                                                         <option value="">{{choice.key}}</option>
360                                                                 </select>
361                                                         </div>
362                                                         <div class="form-group col-sm-3">
363                                                                 <input type="text" class="form-control"
364                                                                         ng-disabled="temp.policy.readOnly" ng-model="choice.value"
365                                                                         placeholder="Attribute Value" />
366                                                         </div>
367                                                         <div class="form-group col-sm-1">
368                                                                 <button type="button" class="btn btn-default" ng-show="$last"
369                                                                         ng-disabled="temp.policy.readOnly" ng-click="removeChoice()">
370                                                                         <i class="fa fa-minus"></i>
371                                                                 </button>
372                                                         </div>
373                                                 </div>
374                                         </div>
375                                 </div>
376                         </div>
377                 </div>
378
379                 <div ng-if="temp.policy.ruleProvider == 'Custom'">
380                         <div class="well">
381                                 <div class="form-group row">
382                                         <div class="form-group col-sm-1">
383                                                 <label>Settings Attributes:</label><br>
384                                                 <button type="button" class="btn btn-default"
385                                                         ng-disabled="temp.policy.readOnly"
386                                                         ng-click="addNewSettingsChoice()">
387                                                         <i class="fa fa-plus"></i>
388                                                 </button>
389                                         </div>
390                                 </div>
391                                 <div class="form-group row">
392                                         <div data-ng-repeat="settingschoice in temp.policy.settings">
393                                                 <div class="form-group row" style="margin-left: 2%">
394                                                         <div class="form-group col-sm-3">
395                                                                 <select class="form-control" ng-disabled="temp.policy.readOnly"
396                                                                         ng-model="settingschoice.key"
397                                                                         ng-options="option for option in settingsDictionaryDatas track by option">
398                                                                         <option value="">{{settingschoice.key}}</option>
399                                                                 </select>
400                                                         </div>
401                                                         <div class="form-group col-sm-3">
402                                                                 <input type="text" class="form-control"
403                                                                         ng-disabled="temp.policy.readOnly"
404                                                                         ng-model="settingschoice.value" placeholder="Settings Value" />
405                                                         </div>
406                                                         <div class="form-group col-sm-1">
407                                                                 <button type="button" class="btn btn-default" ng-show="$last"
408                                                                         ng-disabled="temp.policy.readOnly"
409                                                                         ng-click="removeSettingsChoice()">
410                                                                         <i class="fa fa-minus"></i>
411                                                                 </button>
412                                                         </div>
413                                                 </div>
414                                         </div>
415                                 </div>
416                         </div>
417                 </div>
418
419                 <div ng-if="temp.policy.ruleProvider == 'Custom'">
420                         <div class="well">
421                                 <label>Decision Rule Algorithms:<sup><b></b></sup></label><br>
422                                 <div class="form-group row">
423                                         <div class="form-group col-sm-1">
424                                                 <button type="button" class="btn btn-default"
425                                                         ng-disabled="temp.policy.readOnly"
426                                                         ng-click="addNewRuleAlgorithm()">
427                                                         <i class="fa fa-plus"></i>
428                                                 </button>
429                                         </div>
430                                 </div>
431                                 <div class="form-group row">
432                                         <div
433                                                 data-ng-repeat="ruleAlgorithmschoice in temp.policy.ruleAlgorithmschoices">
434                                                 <div class="form-group row" style="margin-left: 2%">
435                                                         <div class="form-group col-sm-1">
436                                                                 <label
437                                                                         ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmLabels"
438                                                                         name="dynamicRuleAlgorithmLabels">{{ruleAlgorithmschoice.id}}</label>
439                                                         </div>
440                                                         <div class="form-group col-sm-3">
441                                                                 <select class="form-control" id="mySelect"
442                                                                         ng-disabled="temp.policy.readOnly"
443                                                                         ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField1"
444                                                                         ng-options="option for option in attributeDictionaryDatas track by option"
445                                                                         name="dynamicRuleAlgorithmField1">
446                                                                         <option value="">{{ruleAlgorithmschoice.dynamicRuleAlgorithmField1}}</option>
447                                                                 </select>
448                                                         </div>
449                                                         <div class="form-group col-sm-3">
450                                                                 <select type="text" class="form-control"
451                                                                         ng-disabled="temp.policy.readOnly"
452                                                                         ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmCombo"
453                                                                         ng-options="option for option in functionDefinitionDatas track by option"
454                                                                         name="dynamicRuleAlgorithmCombo"></select>
455                                                         </div>
456                                                         <div class="form-group col-sm-3">
457                                                                 <input type="text" class="form-control"
458                                                                         ng-disabled="temp.policy.readOnly"
459                                                                         ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField2"
460                                                                         name="dynamicRuleAlgorithmField2" />
461                                                         </div>
462                                                         <div class="form-group col-sm-1">
463                                                                 <button type="button" class="btn btn-default"
464                                                                         ng-disabled="temp.policy.readOnly"
465                                                                         ng-click="removeRuleAlgorithm()">
466                                                                         <i class="fa fa-minus"></i>
467                                                                 </button>
468                                                         </div>
469                                                 </div>
470                                         </div>
471                                 </div>
472                         </div>
473                 </div>
474                 <br>
475                 <div id="validate" style="width: 70%"></div>
476                 <br>
477                 <div class="modal-footer">
478                         <button class="btn btn-primary" herf="javascript:void(0)"
479                                 ng-disabled="temp.policy.readOnly"
480                                 ng-click="validatePolicy(temp.policy);">Validate</button>
481                         <button class="btn btn-success" herf="javascript:void(0)"
482                                 ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
483                                 ng-click="saveDecisionPolicy(temp);">Save</button>
484                         <button type="button" class="btn btn-default" ng-click="refresh();">Close</button>
485                 </div>
486         </form>
487 </div>