1 <div ng-controller="decisionPolicyController">
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" />
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" />
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>
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>
34 <option>Rainy_Day</option>
35 <option>GUARD_YAML</option>
36 <option>GUARD_BL_YAML<option>
41 <div ng-if="temp.policy.ruleProvider == 'Rainy_Day'">
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>
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" />
53 <div class="form-group col-sm-1">
54 <label>VNF Type:<sup><b>*</b></sup></label>
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" />
61 <div class="form-group col-sm-1">
62 <label>Building Block ID:<sup><b>*</b></sup></label>
64 <div class="form-group col-sm-2">
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>
73 <div class="form-group col-sm-1">
74 <label>Work Step:<sup><b>*</b></sup></label>
76 <div class="form-group col-sm-2">
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>
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>
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>
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" />
108 <div class="form-group col-sm-1">
109 <label>Desired Treatment:<sup><b>*</b></sup></label>
111 <div class="form-group col-sm-3">
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>
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>
133 <div ng-if="temp.policy.ruleProvider == 'GUARD_BL_YAML'">
135 <div class="form-group row">
136 <div class="form-group col-sm-1">
137 <label>Guard BlackList YAML Attributes:</label><br>
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>
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" />
151 <div class="form-group row" style="margin-left: 2%">
152 <div class="form-group col-sm-3">
153 <label> recipe: </label>
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" />
161 <div class="form-group row" style="margin-left: 2%">
162 <div class="form-group col-sm-3">
163 <label> CLName: </label>
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" />
171 <div class="form-group row" style="margin-left: 2%">
172 <div class="form-group col-sm-3">
173 <label> guardActiveStart: </label>
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" />
181 <div class="form-group row" style="margin-left: 2%">
182 <div class="form-group col-sm-3">
183 <label> guardActiveEnd: </label>
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" />
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>
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" />
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>
221 <div ng-if="temp.policy.ruleProvider == 'GUARD_YAML'">
223 <div class="form-group row">
224 <div class="form-group col-sm-1">
225 <label>Guard YAML Attributes:</label><br>
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>
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" />
239 <div class="form-group row" style="margin-left: 2%">
240 <div class="form-group col-sm-3">
241 <label> recipe: </label>
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" />
249 <div class="form-group row" style="margin-left: 2%">
250 <div class="form-group col-sm-3">
251 <label> CLName: </label>
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" />
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>
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" />
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>
285 <div class="form-group row" style="margin-left: 2%">
286 <div class="form-group col-sm-3">
287 <label> limit: </label>
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" />
295 <div class="form-group row" style="margin-left: 2%">
296 <div class="form-group col-sm-3">
297 <label> timeWindow: </label>
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" />
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>
310 <option>week</option>
311 <option>month</option>
312 <option>year</option>
316 <div class="form-group row" style="margin-left: 2%">
317 <div class="form-group col-sm-3">
318 <label> guardActiveStart: </label>
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" />
326 <div class="form-group row" style="margin-left: 2%">
327 <div class="form-group col-sm-3">
328 <label> guardActiveEnd: </label>
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" />
341 <div ng-if="temp.policy.ruleProvider == 'Custom'">
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>
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>
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" />
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>
379 <div ng-if="temp.policy.ruleProvider == 'Custom'">
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>
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>
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" />
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>
419 <div ng-if="temp.policy.ruleProvider == 'Custom'">
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>
431 <div class="form-group row">
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">
437 ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmLabels"
438 name="dynamicRuleAlgorithmLabels">{{ruleAlgorithmschoice.id}}</label>
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>
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>
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" />
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>
475 <div id="validate" style="width: 70%"></div>
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>