Refactor to provide Common Policy Validation
[policy/engine.git] / POLICY-SDK-APP / src / main / webapp / app / policyApp / policy-models / Editor / PolicyTemplates / BRMSRawPolicyTemplate.html
1 <div ng-controller="brmsRawPolicyController">
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-3">
20                                         <label>Risk Type:<sup><b>*</b></sup></label> <select
21                                                 class="form-control" ng-disabled="temp.policy.readOnly"
22                                                 ng-model="temp.policy.riskType"
23                                                 ng-options="option for option in riskTypeDictionaryDatas track by option"
24                                                 required pattern="\S+" title="RiskType is required"></select>
25                                 </div>
26                                 <div class="form-group col-sm-3">
27                                         <label>Risk Level:<sup><b>*</b></sup></label> <select
28                                                 class="form-control" ng-disabled="temp.policy.readOnly"
29                                                 ng-model="temp.policy.riskLevel"
30                                                 required pattern="\S+" title="RiskLevel is required">
31                                                 <option>1</option>
32                                                 <option>2</option>
33                                                 <option>3</option>
34                                                 <option>4</option>
35                                                 <option>5</option></select>
36                                 </div>
37                                 <div class="form-group col-sm-3">
38                                         <label>Guard:<sup><b>*</b></sup></label> <select
39                                                 class="form-control" ng-disabled="temp.policy.readOnly"
40                                                 ng-model="temp.policy.guard"
41                                                 required pattern="\S+" title="Guard is required">
42                                                 <option>True</option>
43                                                 <option>False</option></select>
44                                 </div>
45                         </div>
46                         <div class="form-group row">
47                                 <div class="form-group col-sm-3">
48                                         <label>Time to Live Date:</label> <input type="text" id="ttlDate"
49                                                 class="form-control" name="ttlDate" ng-disabled="temp.policy.readOnly"
50                                                 ng-model="temp.policy.ttlDate" />
51                                 </div>
52                                 <div class="form-group col-sm-3">
53                                         <label>Controller:<sup></sup></label> <select
54                                                 class="form-control" ng-disabled="temp.policy.readOnly"
55                                                 ng-model="temp.policy.brmsController"
56                                                 ng-options="option for option in brmsControllerDatas track by option"></select>
57                                 </div>
58                                 <div class="form-group col-sm-3">
59                                         <label>Dependencies:<sup></sup></label> <select
60                                                 class="form-control" multiple ng-disabled="temp.policy.readOnly"
61                                                 ng-model="temp.policy.brmsDependency"
62                                                 ng-options="option for option in brmsDependencyDatas track by option"></select>
63                                 </div>
64                         </div>
65                 </div>
66                 <div class="well">
67                         <div class="form-group row">
68                                 <div class="form-group col-sm-2">
69                                         <label>Rule Attributes:<sup></sup></label>
70                                         <button type="button" class="btn btn-default"
71                                                 ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
72                                                 <i class="fa fa-plus"></i>
73                                         </button>
74                                 </div>
75                         </div>
76                         <div class="form-group row">
77                                 <div data-ng-repeat="choice in temp.policy.attributes">
78                                         <div class="form-group row" style="margin-left: 2%">
79                                                 <div class="form-group col-sm-3">
80                                                         <input type="text" class="form-control"
81                                                                 ng-disabled="temp.policy.readOnly" ng-model="choice.key"
82                                                                 placeholder="Attribute Key" />
83                                                 </div>
84                                                 <div class="form-group col-sm-3">
85                                                         <input type="text" class="form-control"
86                                                                 ng-disabled="temp.policy.readOnly" ng-model="choice.value"
87                                                                 placeholder="Attribute Value" />
88                                                 </div>
89                                                 <div class="form-group col-sm-1">
90                                                         <button type="button" class="btn btn-default" ng-show="$last"
91                                                                 ng-disabled="temp.policy.readOnly" ng-click="removeChoice()">
92                                                                 <i class="fa fa-minus"></i>
93                                                         </button>
94                                                 </div>
95                                         </div>
96                                 </div>
97                         </div>
98                 </div>
99                 <div class="well">
100                         <div class="form-group row">
101                                 <div class="form-group col-sm-12">
102                                         <label>Raw Rule:<sup><b>*</b></sup></label>
103                                         <textarea class="form-control"
104                                                 ng-model="temp.policy.configBodyData"
105                                                 ng-disabled="temp.policy.readOnly" style="height: 400px;" required></textarea>
106                                 </div>
107                         </div>
108                 </div>
109                 <div id="validate" style="width: 70%"></div>
110                 <br>
111                 <div class="modal-footer">
112                         <div>
113                                 <button class="btn btn-primary" herf="javascript:void(0)"
114                                         ng-disabled="temp.policy.readOnly"
115                                         ng-click="validatePolicy(temp.policy);">Validate</button>
116                                 <button class="btn btn-success" herf="javascript:void(0)"
117                                         ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
118                                         ng-click="saveBrmsRawPolicy(temp);">Save</button>
119                                 <button type="button" class="btn btn-default" ng-click="refresh();">Close</button>
120                         </div>
121                 </div>
122         </form>
123 </div>