a98dbff1d3e8010829cfab6108437c2b1569c3ff
[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>Ecomp Name:<sup><b>*</b></sup></label> <select
21                                                 class="form-control" ng-disabled="temp.policy.readOnly"
22                                                 ng-model="temp.policy.ecompName"
23                                                 ng-options="option for option in ecompNameDictionaryDatas track by option"
24                                                 required pattern="\S+" title="EcompName 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>GUARD_YAML</option>
35                                         </select>
36                                 </div>
37                         </div>
38                 </div>
39                 
40                 <div ng-if="temp.policy.ruleProvider == 'GUARD_YAML'">
41                         <div class="well">
42                                 <div class="form-group row">
43                                         <div class="form-group col-sm-1">
44                                                 <label>Guard YAML Attributes:</label><br>
45                                         </div>
46                                 </div>
47                                 <div class="form-group row">
48                                                 <div class="form-group row" style="margin-left: 2%">
49                                                         <div class="form-group col-sm-3">
50                                                                 <label> actor: </label>
51                                                         </div>
52                                                         <div class="form-group col-sm-3">
53                                                                 <input type="text" class="form-control"
54                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.actor"
55                                                                         placeholder="Actor" />
56                                                         </div>
57                                                 </div>
58                                                 <div class="form-group row" style="margin-left: 2%">
59                                                         <div class="form-group col-sm-3">
60                                                                 <label> recipe: </label>
61                                                         </div>
62                                                         <div class="form-group col-sm-3">
63                                                                 <input type="text" class="form-control"
64                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.recipe"
65                                                                         placeholder="Recipe" />
66                                                         </div>
67                                                 </div>
68                                                 <div class="form-group row" style="margin-left: 2%">
69                                                         <div class="form-group col-sm-3">
70                                                                 <label> limit: </label>
71                                                         </div>
72                                                         <div class="form-group col-sm-3">
73                                                                 <input type="text" class="form-control"
74                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.limit"
75                                                                         placeholder="Limit" />
76                                                         </div>
77                                                 </div>
78                                                 <div class="form-group row" style="margin-left: 2%">
79                                                         <div class="form-group col-sm-3">
80                                                                 <label> timeWindow: </label>
81                                                         </div>
82                                                         <div class="form-group col-sm-3">
83                                                                 <select class="form-control" ng-disabled="temp.policy.readOnly" 
84                                                                 ng-model="temp.policy.yamlparams.timeWindow">
85                                                                 <option>tw5min</option>
86                                                                 <option>tw10min</option>
87                                                                 <option>tw30min</option>
88                                                                 <option>tw1h</option>
89                                                                 <option>tw12h</option>
90                                                                 <option>tw1d</option>
91                                                                 <option>tw5d</option>
92                                                                 <option>tw1w</option>
93                                                                 <option>tw1mon</option>
94                                                                 </select>
95                                                         </div>
96                                                 </div>
97                                                 <div class="form-group row" style="margin-left: 2%">
98                                                         <div class="form-group col-sm-3">
99                                                                 <label> guardActiveStart: </label>
100                                                         </div>
101                                                         <div class="form-group col-sm-3">
102                                                                 <input type="text" class="form-control"
103                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveStart"
104                                                                         placeholder="00:00:00-05:00" />
105                                                         </div>
106                                                 </div>
107                                                 <div class="form-group row" style="margin-left: 2%">
108                                                         <div class="form-group col-sm-3">
109                                                                 <label> guardActiveEnd: </label>
110                                                         </div>
111                                                         <div class="form-group col-sm-3">
112                                                                 <input type="text" class="form-control"
113                                                                         ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveEnd"
114                                                                         placeholder="00:00:00-05:00" />
115                                                         </div>
116                                                 </div>
117                                 </div>
118                         </div>
119                 </div>
120
121
122                 <div ng-if="temp.policy.ruleProvider == 'Custom'">
123                         <div class="well">
124                                 <div class="form-group row">
125                                         <div class="form-group col-sm-1">
126                                                 <label>Component Attributes:</label><br>
127                                                 <button type="button" class="btn btn-default"
128                                                         ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
129                                                         <i class="fa fa-plus"></i>
130                                                 </button>
131                                         </div>
132                                 </div>
133                                 <div class="form-group row">
134                                         <div data-ng-repeat="choice in temp.policy.attributes">
135                                                 <div class="form-group row" style="margin-left: 2%">
136                                                         <div class="form-group col-sm-3">
137                                                                 <select class="form-control" ng-disabled="temp.policy.readOnly"
138                                                                         ng-model="choice.key"
139                                                                         ng-options="option for option in attributeDictionaryDatas track by option">
140                                                                         <option value="">{{choice.key}}</option>
141                                                                 </select>
142                                                         </div>
143                                                         <div class="form-group col-sm-3">
144                                                                 <input type="text" class="form-control"
145                                                                         ng-disabled="temp.policy.readOnly" ng-model="choice.value"
146                                                                         placeholder="Attribute Value" />
147                                                         </div>
148                                                         <div class="form-group col-sm-1">
149                                                                 <button type="button" class="btn btn-default" ng-show="$last"
150                                                                         ng-disabled="temp.policy.readOnly" ng-click="removeChoice()">
151                                                                         <i class="fa fa-minus"></i>
152                                                                 </button>
153                                                         </div>
154                                                 </div>
155                                         </div>
156                                 </div>
157                         </div>
158                 </div>
159
160                 <div ng-if="temp.policy.ruleProvider == 'Custom'">
161                         <div class="well">
162                                 <div class="form-group row">
163                                         <div class="form-group col-sm-1">
164                                                 <label>Settings Attributes:</label><br>
165                                                 <button type="button" class="btn btn-default"
166                                                         ng-disabled="temp.policy.readOnly"
167                                                         ng-click="addNewSettingsChoice()">
168                                                         <i class="fa fa-plus"></i>
169                                                 </button>
170                                         </div>
171                                 </div>
172                                 <div class="form-group row">
173                                         <div data-ng-repeat="settingschoice in temp.policy.settings">
174                                                 <div class="form-group row" style="margin-left: 2%">
175                                                         <div class="form-group col-sm-3">
176                                                                 <select class="form-control" ng-disabled="temp.policy.readOnly"
177                                                                         ng-model="settingschoice.key"
178                                                                         ng-options="option for option in settingsDictionaryDatas track by option">
179                                                                         <option value="">{{settingschoice.key}}</option>
180                                                                 </select>
181                                                         </div>
182                                                         <div class="form-group col-sm-3">
183                                                                 <input type="text" class="form-control"
184                                                                         ng-disabled="temp.policy.readOnly"
185                                                                         ng-model="settingschoice.value" placeholder="Settings Value" />
186                                                         </div>
187                                                         <div class="form-group col-sm-1">
188                                                                 <button type="button" class="btn btn-default" ng-show="$last"
189                                                                         ng-disabled="temp.policy.readOnly"
190                                                                         ng-click="removeSettingsChoice()">
191                                                                         <i class="fa fa-minus"></i>
192                                                                 </button>
193                                                         </div>
194                                                 </div>
195                                         </div>
196                                 </div>
197                         </div>
198                 </div>
199
200                 <div ng-if="temp.policy.ruleProvider == 'Custom'">
201                         <div class="well">
202                                 <label>Decision Rule Algorithms:<sup><b>*</b></sup></label><br>
203                                 <div class="form-group row">
204                                         <div class="form-group col-sm-1">
205                                                 <button type="button" class="btn btn-default"
206                                                         ng-disabled="temp.policy.readOnly"
207                                                         ng-click="addNewRuleAlgorithm()">
208                                                         <i class="fa fa-plus"></i>
209                                                 </button>
210                                         </div>
211                                 </div>
212                                 <div class="form-group row">
213                                         <div
214                                                 data-ng-repeat="ruleAlgorithmschoice in temp.policy.ruleAlgorithmschoices">
215                                                 <div class="form-group row" style="margin-left: 2%">
216                                                         <div class="form-group col-sm-1">
217                                                                 <label
218                                                                         ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmLabels"
219                                                                         name="dynamicRuleAlgorithmLabels">{{ruleAlgorithmschoice.id}}</label>
220                                                         </div>
221                                                         <div class="form-group col-sm-3">
222                                                                 <select class="form-control" id="mySelect"
223                                                                         ng-disabled="temp.policy.readOnly"
224                                                                         ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField1"
225                                                                         ng-options="option for option in attributeDictionaryDatas track by option"
226                                                                         name="dynamicRuleAlgorithmField1">
227                                                                         <option value="">{{ruleAlgorithmschoice.dynamicRuleAlgorithmField1}}</option>
228                                                                 </select>
229                                                         </div>
230                                                         <div class="form-group col-sm-3">
231                                                                 <select type="text" class="form-control"
232                                                                         ng-disabled="temp.policy.readOnly"
233                                                                         ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmCombo"
234                                                                         ng-options="option for option in functionDefinitionDatas track by option"
235                                                                         name="dynamicRuleAlgorithmCombo"></select>
236                                                         </div>
237                                                         <div class="form-group col-sm-3">
238                                                                 <input type="text" class="form-control"
239                                                                         ng-disabled="temp.policy.readOnly"
240                                                                         ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField2"
241                                                                         name="dynamicRuleAlgorithmField2" />
242                                                         </div>
243                                                         <div class="form-group col-sm-1">
244                                                                 <button type="button" class="btn btn-default"
245                                                                         ng-disabled="temp.policy.readOnly"
246                                                                         ng-click="removeRuleAlgorithm()">
247                                                                         <i class="fa fa-minus"></i>
248                                                                 </button>
249                                                         </div>
250                                                 </div>
251                                         </div>
252                                 </div>
253                         </div>
254                 </div>
255                 <br>
256                 <div id="validate" style="width: 70%"></div>
257                 <br>
258                 <div class="modal-footer">
259                         <button class="btn btn-primary" herf="javascript:void(0)"
260                                 ng-disabled="temp.policy.readOnly"
261                                 ng-click="validatePolicy(temp.policy);">Validate</button>
262                         <button class="btn btn-success" herf="javascript:void(0)"
263                                 ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
264                                 ng-click="saveDecisionPolicy(temp);">Save</button>
265                         <button type="button" class="btn btn-default" ng-click="refresh();">Close</button>
266                 </div>
267         </form>
268 </div>