summaryrefslogtreecommitdiffstats
path: root/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates
diff options
context:
space:
mode:
Diffstat (limited to 'POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates')
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html142
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html146
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html126
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSShowParamRuleModal.html18
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html139
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html500
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html158
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html134
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html187
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html30
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html24
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html119
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html84
13 files changed, 1807 insertions, 0 deletions
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html
new file mode 100644
index 000000000..3b60c9b19
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html
@@ -0,0 +1,142 @@
+<div ng-controller="actionPolicyController">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-2">
+ <label>Component Attributes:</label><br>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div data-ng-repeat="choice in temp.policy.attributes">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <select class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.key"
+ ng-options="option for option in attributeDictionaryDatas track by option">
+ <option value="">{{choice.key}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.value"
+ placeholder="Attribute Value" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default" ng-show="$last"
+ ng-disabled="temp.policy.readOnly" ng-click="removeChoice()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <label>Rule Algorithms:<sup><b>*</b></sup></label><br>
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="addNewRuleAlgorithm()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div
+ data-ng-repeat="ruleAlgorithmschoice in temp.policy.ruleAlgorithmschoices">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-1">
+ <label ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmLabels"
+ ng-disabled="temp.policy.readOnly"
+ name="dynamicRuleAlgorithmLabels">{{ruleAlgorithmschoice.id}}</label>
+ </div>
+ <div class="form-group col-sm-3">
+ <select type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField1"
+ ng-options="option for option in attributeDictionaryDatas track by option"
+ name="dynamicRuleAlgorithmField1">
+ <option value="">{{ruleAlgorithmschoice.dynamicRuleAlgorithmField1}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-3">
+ <select type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmCombo"
+ ng-options="option for option in functionDefinitionDatas"
+ name="dynamicRuleAlgorithmCombo">
+ <option value="">{{ruleAlgorithmschoice.dynamicRuleAlgorithmCombo}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField2"
+ name="dynamicRuleAlgorithmField2" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default" ng-show="$last"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeRuleAlgorithm()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Action Performer:<sup><b>*</b></sup></label><BR> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.actionPerformer">
+ <option>PEP</option>
+ <option>PDP</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Action Attribute:<sup><b>*</b></sup></label><br> <select
+ class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.actionAttributeValue"
+ ng-options="option for option in actionPolicyDictionaryDatas track by option"></select>
+ </div>
+ </div>
+ </div>
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <button class="btn btn-primary" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-success" ng-disabled="savebutton"
+ herf="javascript:void(0)" ng-disabled="temp.policy.readOnly"
+ ng-click="saveActionPolicy(temp);">Save</button>
+ <button class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess" ng-model="finalPath"
+ ng-controller="FileManagerCtrl"
+ ng-click="closefunction(finalPath);">Close</button>
+ </div>
+ </form>
+</div>
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html
new file mode 100644
index 000000000..6989a8509
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html
@@ -0,0 +1,146 @@
+<div ng-controller="brmsParamPolicyController"
+ ng-init="addDataToFields(temp.policy.ruleName);">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Risk Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskType"
+ ng-options="option for option in riskTypeDictionaryDatas track by option"
+ required pattern="\S+" title="RiskType is required"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Risk Level:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskLevel"
+ required pattern="\S+" title="RiskLevel is required">
+ <option>1</option>
+ <option>2</option>
+ <option>3</option>
+ <option>4</option>
+ <option>5</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Guard:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.guard"
+ required pattern="\S+" title="Guard is required">
+ <option>True</option>
+ <option>False</option></select>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Time to Live Date:</label> <input type="date"
+ class="form-control" name="ttlDate" class="date"
+ ng-model="temp.policy.ttlDate" />
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Controller:<sup></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.brmsController"
+ ng-options="option for option in brmsControllerDatas track by option"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Dependencies:<sup></sup></label> <select
+ class="form-control" multiple ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.brmsDependency"
+ ng-options="option for option in brmsDependencyDatas track by option"></select>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-2">
+ <label>Rule Attributes:<sup><b></b></sup></label>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div data-ng-repeat="choice in temp.policy.attributes">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.key"
+ placeholder="Attribute Key" />
+ </div>
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.value"
+ placeholder="Attribute Value" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default" ng-show="$last"
+ ng-disabled="temp.policy.readOnly" ng-click="removeChoice()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>BRMS Template:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.ruleName"
+ ng-options="option for option in brmsParamDictionaryDatas track by option"
+ ng-click="addDataToFields(temp.policy.ruleName);">
+ <option value="">{{temp.policy.ruleName}}</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group row">
+ <div ng-repeat="(key, data) in temp.policy.dynamicLayoutMap">
+ <div class="form-group row" style="margin-left: 2%">
+ <label class="control-label col-md-3">{{key}}:</label>
+ <div class="form-group col-sm-6">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.ruleData[key]" />
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <div>
+ <button class="btn btn-primary" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-default" herf="javascript:void(0)"
+ ng-disabled="validateSuccess" ng-click="ShowRule(temp);">Show
+ Rule</button>
+ <button class="btn btn-success" herf="javascript:void(0)"
+ ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
+ ng-click="saveBrmsParamPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal"
+ ng-model="finalPath"
+ ng-controller="FileManagerCtrl"
+ ng-click="closefunction(finalPath);">Close</button>
+ </div>
+ </div>
+ </form>
+</div> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html
new file mode 100644
index 000000000..75b8c3ba2
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html
@@ -0,0 +1,126 @@
+<div ng-controller="brmsRawPolicyController">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Risk Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskType"
+ ng-options="option for option in riskTypeDictionaryDatas track by option"
+ required pattern="\S+" title="RiskType is required"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Risk Level:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskLevel"
+ required pattern="\S+" title="RiskLevel is required">
+ <option>1</option>
+ <option>2</option>
+ <option>3</option>
+ <option>4</option>
+ <option>5</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Guard:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.guard"
+ required pattern="\S+" title="Guard is required">
+ <option>True</option>
+ <option>False</option></select>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Time to Live Date:</label> <input type="date"
+ class="form-control" name="ttlDate" class="date"
+ ng-model="temp.policy.ttlDate" />
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Controller:<sup></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.brmsController"
+ ng-options="option for option in brmsControllerDatas track by option"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Dependencies:<sup></sup></label> <select
+ class="form-control" multiple ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.brmsDependency"
+ ng-options="option for option in brmsDependencyDatas track by option"></select>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-2">
+ <label>Rule Attributes:<sup><b>*</b></sup></label>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div data-ng-repeat="choice in temp.policy.attributes">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.key"
+ placeholder="Attribute Key" />
+ </div>
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.value"
+ placeholder="Attribute Value" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default" ng-show="$last"
+ ng-disabled="temp.policy.readOnly" ng-click="removeChoice()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-12">
+ <label>Raw Rule:<sup><b>*</b></sup></label>
+ <textarea class="form-control"
+ ng-model="temp.policy.configBodyData"
+ ng-disabled="temp.policy.readOnly" style="height: 400px;" required></textarea>
+ </div>
+ </div>
+ </div>
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <div>
+ <button class="btn btn-primary" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-success" herf="javascript:void(0)"
+ ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
+ ng-click="saveBrmsRawPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess" ng-model="finalPath"
+ ng-controller="FileManagerCtrl"
+ ng-click="closefunction(finalPath);">Close</button>
+ </div>
+ </div>
+ </form>
+</div> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSShowParamRuleModal.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSShowParamRuleModal.html
new file mode 100644
index 000000000..45e482454
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSShowParamRuleModal.html
@@ -0,0 +1,18 @@
+<script type="text/ng-template" id="brmsshowrule">
+<div>
+<div class="modal-dialog modal-lg">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h2 class="font-showcase-font-name"> Rule Preview: </h2>
+ </div>
+ <div class="divider-container"><hr> </div>
+ <div>
+ <textarea type="text" style="width: 800px; height: 800px;" ng-bind="datarule" ng-disabled="true"></textarea>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-default" herf="javascript:void(0)" ng-click="close()">Close</button>
+ </div>
+ </div>
+</div>
+</div>
+</script> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html
new file mode 100644
index 000000000..16b8cad9a
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html
@@ -0,0 +1,139 @@
+<div ng-controller="baseConfigController">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Ecomp Name:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.ecompName"
+ ng-options="option for option in ecompNameDictionaryDatas track by option"
+ required pattern="\S+" title="EcompName is required"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Config Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.configName" required pattern="\S+"
+ title="Enter the Config Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Time to Live Date:</label> <input type="date"
+ class="form-control" name="ttlDate" class="date"
+ ng-model="temp.policy.ttlDate" />
+ </div>
+ </div>
+
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Risk Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskType"
+ ng-options="option for option in riskTypeDictionaryDatas track by option"
+ required pattern="\S+" title="RiskType is required"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Risk Level:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskLevel"
+ required pattern="\S+" title="RiskLevel is required">
+ <option>1</option>
+ <option>2</option>
+ <option>3</option>
+ <option>4</option>
+ <option>5</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Guard:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.guard"
+ required pattern="\S+" title="Guard is required">
+ <option>True</option>
+ <option>False</option></select>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <label>Attributes:</label>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div ng-repeat="choice in temp.policy.attributes">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <select class="form-control" required
+ ng-disabled="temp.policy.readOnly" ng-model="choice.key"
+ ng-options="option for option in attributeDictionaryDatas track by option"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.value"
+ placeholder="Attribute Value" required pattern="\S+"
+ title="Enter the Attribute Value without any spaces" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-show="$last"
+ ng-click="removeChoice()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Config Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.configType" required pattern="\S+"
+ title="ConfigType is required">
+ <option>JSON</option>
+ <option>XML</option>
+ <option>PROPERTIES</option>
+ <option>OTHER</option>
+ </select>
+ </div>
+ <!-- <p><span ng-show="validateConfigType" style="color:red">Config Type Field shouldn't be Empty</span></p> -->
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-12">
+ <label>Body:<sup><b>*</b></sup></label>
+ <textarea class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.configBodyData" style="height: 400px;"
+ required title="ConfigBody is required"></textarea>
+ </div>
+ </div>
+ </div>
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <div>
+ <button class="btn btn-primary" ng-disabled="temp.policy.readOnly"
+ herf="javascript:void(0)" ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-success" ng-disabled="savebutton"
+ herf="javascript:void(0)" ng-click="savePolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+ </div>
+ </div>
+ </form>
+</div> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html
new file mode 100644
index 000000000..6590d2690
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html
@@ -0,0 +1,500 @@
+<div ng-controller="clFaultController">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Risk Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskType"
+ ng-options="option for option in riskTypeDictionaryDatas track by option"
+ required pattern="\S+" title="RiskType is required"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Risk Level:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskLevel"
+ required pattern="\S+" title="RiskLevel is required">
+ <option>1</option>
+ <option>2</option>
+ <option>3</option>
+ <option>4</option>
+ <option>5</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Guard:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.guard"
+ required pattern="\S+" title="Guard is required">
+ <option>True</option>
+ <option>False</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Ecomp Name:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.ecompName"
+ ng-options="option for option in ecompNameDictionaryDatas track by option"
+ required pattern="\S+" title="EcompName is required"></select>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Vnf Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.vnfType"
+ ng-options="option for option in vnfTypeDictionaryDatas track by option">
+ <option value="">{{temp.policy.jsonBodyData.vnfType}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Policy Status:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-init="init(temp.policy.jsonBodyData);"
+ ng-model="temp.policy.jsonBodyData.closedLoopPolicyStatus">
+ <option value="Active">Active</option>
+ <option>InActive</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-6">
+ <label>D2/Virtualized Services(s):<sup><b>*</b></sup></label><br>
+ <input type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.trinity"> Hosted Voice
+ (Trinity)</input> <input type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.vUSP"> vUSP</input> <input
+ type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.mcr"> MCR</input> <input
+ type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.gamma"> Gamma</input> <input
+ type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.vDNS"> vDNS</input>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div>
+ <label>Trigger Signature:</label><br>
+ <form>
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-click="addTriggerButton()">
+ <i class="fa fa-plus"></i>
+ </button>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeTriggerButton()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div data-ng-repeat="choice in temp.policy.traptriggerSignatures">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <label ng-model="choice.label" name="label">{{choice.id}}</label>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="addTrapTriggerButton(choice.id)">
+ <i class="fa fa-plus"></i>
+ </button>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeTrapTriggerButton(choice.id)">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div
+ data-ng-repeat="choice in temp.policy.triggerTrapSignatures[choice.id]">
+ <div class="form-group row" style="margin-left: 4%">
+ <div class="form-group col-sm-1">
+ <label ng-model="choice.label" name="label">{{choice.id}}</label>
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.notBox"
+ name="notBox"><option>NOT</option></select>
+ </div>
+ <div class="form-group col-sm-4">
+ <select class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="choice.trigger1"
+ ng-options="option for option in varbindDictionaryDatas track by option">
+ <option value="">{{choice.trigger1}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="choice.operatorBox" name="operatorBox"><option>AND</option>
+ <option>OR</option></select>
+ </div>
+ <div class="form-group col-sm-4">
+ <select class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="choice.trigger2"
+ ng-options="option for option in varbindDictionaryDatas track by option">
+ <option value="">{{choice.trigger2}}</option>
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ </br>
+ <div>
+ <label>Connect Traps:</label><br>
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="addTriggerConnectButton()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div
+ data-ng-repeat="choice in temp.policy.connecttriggerSignatures">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-1">
+ <label ng-model="choice.label" name="label">{{choice.id}}</label>
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.notBox" name="notBox"><option>NOT</option></select>
+ </div>
+ <div class="form-group col-sm-1">
+ <select ng-disabled="temp.policy.readOnly"
+ ng-model="choice.connectTrap1" class="form-control"
+ ng-options="option for option in connectTriggerTrapsList track by option">
+ <option value="">{{choice.connectTrap1}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-1">
+ <input type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.trapCount1" name="trapCount1"
+ class="form-control" />
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.operatorBox" name="operatorBox"><option>AND</option>
+ <option>OR</option></select>
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.connectTrap2"
+ ng-options="option for option in connectTriggerTrapsList track by option">
+ <option value="">{{choice.connectTrap2}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-1">
+ <input type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.trapCount2" name="trapCount1"
+ class="form-control" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default" ng-show="$last"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeTriggerConnectButton()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-2">
+ <label>Clear TimeOut:<sup><b>*</b></sup>
+ </label><br> <input type="text" ng-disabled="triggerdisabled"
+ ng-model="temp.policy.clearTimeOut" class="form-control" required />
+ </div>
+ <div class="form-group col-sm-2">
+ <label>Trap Max Age:<sup><b>*</b></sup></label><br> <input
+ type="text" ng-disabled="triggerdisabled"
+ ng-model="temp.policy.trapMaxAge" class="form-control"
+ ng-init="temp.policy.jsonBodyData.trapMaxAge='300'" value="300"
+ required />
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <label>VSCL Action:<sup><b>*</b></sup></label><br>
+ <div class="form-group col-sm-4">
+ <label>vPRO Actions:<sup><b>*</b></sup></label><br> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.actions"
+ ng-options="option for option in vsclActionDictionaryDatas track by option">
+ <option value="">{{temp.policy.jsonBodyData.actions}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-2">
+ <label>Time Interval:<sup><b>*</b></sup>
+ </label><br> <input type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.timeInterval"
+ class="form-control" required />
+ </div>
+ <div class="form-group col-sm-2">
+ <label>App-C TimeOut:<sup><b>*</b></sup></label><br> <input
+ type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.timeOutvPRO"
+ class="form-control" required />
+ </div>
+ <div class="form-group col-sm-2">
+ <label>TimeOut for Ruby:<sup><b>*</b></sup></label><br> <input
+ type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.timeOutRuby"
+ class="form-control" required />
+ </div>
+ <div class="form-group col-sm-2">
+ <label>Number of Retries:<sup><b>*</b></sup></label><br> <input
+ type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.retrys" class="form-control"
+ required />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-4">
+ <label>Aging Window:<sup><b>*</b></sup>
+ </label><br> <input type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.agingWindow"
+ class="form-control" required />
+ </div>
+ <div class="form-group col-sm-4">
+ <label>Text to Include in UEB messages for AOTS ticket and
+ Geo Link:</label><br> <input type="text"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.geoLink" class="form-control"
+ required />
+ </div>
+ <div class="form-group col-sm-4">
+ <label>Email Address:</label><br> <input type="text"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.emailAddress"
+ class="form-control" required />
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <label>PEP:<sup><b>*</b></sup></label><br>
+ <div class="form-group col-sm-3">
+ <label>PEP Options:<sup><b></b></sup></label><br> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.pepName"
+ ng-options="option for option in pepOptionsDictionaryDatas track by option"
+ ng-change="getPepActionValues(temp.policy.jsonBodyData.pepName)">
+ <option value="">{{temp.policy.jsonBodyData.pepName}}</option>
+ </select></select></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Actions:<sup><b></b></sup></label><br> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.pepAction"
+ ng-options="option for option in pepActionDictionaryDatas track by option">
+ <option value="">{{temp.policy.jsonBodyData.pepAction}}</option>
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div>
+ <label>Verification Signature:</label><br>
+ <form>
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="addVerFaultButton()">
+ <i class="fa fa-plus"></i>
+ </button>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeVerFaultButton()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div data-ng-repeat="choice in temp.policy.faulttriggerSignatures">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <label ng-model="choice.label" name="label">{{choice.id}}</label>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="addVerTriggerButton(choice.id)">
+ <i class="fa fa-plus"></i>
+ </button>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeVerTriggerButton(choice.id)">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div
+ data-ng-repeat="choice in temp.policy.triggerfaultSignatures[choice.id]">
+ <div class="form-group row" style="margin-left: 4%">
+ <div class="form-group col-sm-1">
+ <label ng-model="choice.label" name="label">{{choice.id}}</label>
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.notBox"
+ name="notBox"><option>NOT</option></select>
+ </div>
+ <div class="form-group col-sm-4">
+ <select class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="choice.trigger1"
+ ng-options="option for option in varbindDictionaryDatas track by option">
+ <option value="">{{choice.trigger1}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="choice.operatorBox" name="operatorBox"><option>AND</option>
+ <option>OR</option></select>
+ </div>
+ <div class="form-group col-sm-4">
+ <select class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="choice.trigger2"
+ ng-options="option for option in varbindDictionaryDatas track by option">
+ <option value="">{{choice.trigger2}}</option>
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ </br>
+ <div>
+ <label>Connect All Faults:</label><br>
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="addFaultConnectButton()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div
+ data-ng-repeat="choice in temp.policy.connectVerificationSignatures">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-1">
+ <label ng-model="choice.label" name="label">{{choice.id}}</label>
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.notBox" name="notBox"><option>NOT</option></select>
+ </div>
+ <div class="form-group col-sm-1">
+ <select ng-disabled="temp.policy.readOnly"
+ ng-model="choice.connectTrap1" class="form-control"
+ ng-options="option for option in connectTriggerFaultsList track by option">
+ <option value="">{{choice.connectTrap1}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-1">
+ <input type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.trapCount1" name="trapCount1"
+ class="form-control" />
+ </div>
+ <div class="form-group col-sm-1">
+ <select class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.operatorBox" name="operatorBox"><option>AND</option>
+ <option>OR</option></select>
+ </div>
+ <div class="form-group col-sm-1">
+ <select ng-disabled="temp.policy.readOnly"
+ ng-model="choice.connectTrap2" class="form-control"
+ ng-options="option for option in connectTriggerFaultsList track by option">
+ <option value="">{{choice.connectTrap2}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-1">
+ <input type="text" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.trapCount2" name="trapCount1"
+ class="form-control" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default" ng-show="$last"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeFaultConnectButton()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-2">
+ <label>Clear TimeOut:<sup><b>*</b></sup></label><br> <input
+ type="text" ng-disabled="verificationdisabled"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.verificationclearTimeOut"
+ class="form-control" required />
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div>
+ <label>Additional Conditions: If current VM status in A&AI
+ is in Maintenance then the Control Loop will not execute the Action
+ and shall<sup><b>*</b></sup>
+ </label><br>
+ <p>
+ <input type="radio" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.conditions" name="radSize"
+ id="sizeSmall" value="SEND" checked="checked" /><label
+ for="sizeSmall">DCAE should send event notification</label> <input
+ type="radio" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.conditions" name="radSize"
+ id="sizeMed" value="NOTSEND" /><label for="sizeMed">DCAE
+ should not send event notification</label>
+ </p>
+ </div>
+ </div>
+ <br />
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <button class="btn btn-primary" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-success" herf="javascript:void(0)"
+ ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
+ ng-click="saveFaultPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess" ng-model="finalPath"
+ ng-controller="FileManagerCtrl" ng-click="closefunction(finalPath);">Close</button>
+ </div>
+ </form>
+</div> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html
new file mode 100644
index 000000000..e22070308
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html
@@ -0,0 +1,158 @@
+<div ng-controller="clPMController">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Ecomp Name:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.ecompName"
+ ng-options="option for option in ecompNameDictionaryDatas track by option"
+ required pattern="\S+" title="EcompName is required"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Time to Live Date:</label> <input type="date"
+ class="form-control" name="ttlDate" class="date"
+ ng-model="temp.policy.ttlDate" />
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Guard:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.guard"
+ required pattern="\S+" title="Guard is required">
+ <option>True</option>
+ <option>False</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Risk Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskType"
+ ng-options="option for option in riskTypeDictionaryDatas track by option"
+ required pattern="\S+" title="RiskType is required"></select>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Risk Level:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskLevel"
+ required pattern="\S+" title="RiskLevel is required">
+ <option>1</option>
+ <option>2</option>
+ <option>3</option>
+ <option>4</option>
+ <option>5</option></select>
+ </div>
+ <div class="form-group col-sm-5">
+ <label>D2/Virtualized Services(s):<sup><b>*</b></sup></label><br>
+ <input type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.trinity"> Hosted Voice
+ (Trinity)</input> <input type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.vUSP"> vUSP</input> <input
+ type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.mcr"> MCR</input> <input
+ type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.gamma"> Gamma</input> <input
+ type="checkbox" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.vDNS"> vDNS</input>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Service Type PolicyName:<sup><b>*</b></sup></label><br>
+ <select style="width: 400px;" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.serviceTypePolicyName" class="form-control"
+ ng-options="option.serviceTypePolicyName for option in PMData track by option.serviceTypePolicyName"
+ ng-click="addDataToFields(temp.policy.serviceTypePolicyName);"></select>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <label>Vertica Metrics:<sup><b>*</b></sup></label>
+ <div>
+ <textarea class="form-control"
+ ng-model="temp.policy.verticaMetrics.verticaMetrics"
+ ng-disabled="true" style="height: 150px;"></textarea>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <label>Attributes:<sup><b>*</b></sup></label>
+ <div
+ ng-repeat="(key, data) in temp.policy.attributeFields.attributes">
+ <div class="well">
+ <div class="form-group row" style="margin-left: 2%">
+ <label class="control-label col-md-3">{{key}}</label>
+ <div ng-repeat="(key, data) in data">
+ <div class="form-group col-sm-3">
+ <label>{{key}}</label><br /> <input type="text"
+ class="form-control" title={{data}}
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.attributes[key]" />
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="form-group row">
+ <label>Policy Description:<sup><b>*</b></sup></label>
+ <div>
+ <textarea class="form-control" ng-disabled="true"
+ ng-model="temp.policy.description.policyDescription"
+ style="height: 150px;"></textarea>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Text to Include in UEB messages for AOTS ticket and
+ Geo Link:</label>
+ <div>
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.geoLink" />
+ </div>
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Email Address:</label>
+ <div>
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.jsonBodyData.emailAddress" />
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <div>
+ <button class="btn btn-primary" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-success" herf="javascript:void(0)"
+ ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
+ ng-click="saveCLPMPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess" ng-model="finalPath"
+ ng-controller="FileManagerCtrl"
+ ng-click="closefunction(finalPath);">Close</button>
+ </div>
+ </div>
+ </form>
+</div> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html
new file mode 100644
index 000000000..945e8655a
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html
@@ -0,0 +1,134 @@
+<div ng-controller="dcaeMicroServiceController">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Ecomp Name:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.ecompName"
+ ng-options="option for option in ecompNameDictionaryDatas track by option"
+ required pattern="\S+" title="EcompName is required"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Time to Live Date:</label> <input type="date"
+ class="form-control" name="ttlDate" class="date"
+ ng-model="temp.policy.ttlDate" />
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Guard:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.guard"
+ required pattern="\S+" title="Guard is required">
+ <option>True</option>
+ <option>False</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Risk Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskType"
+ ng-options="option for option in riskTypeDictionaryDatas track by option"
+ required pattern="\S+" title="RiskType is required"></select>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Risk Level:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskLevel"
+ required pattern="\S+" title="RiskLevel is required">
+ <option>1</option>
+ <option>2</option>
+ <option>3</option>
+ <option>4</option>
+ <option>5</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Priority:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.priority"
+ ng-options="option for option in priorityDatas track by option">
+ <option value="">{{temp.policy.priority}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Micro Service:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.serviceType"
+ ng-options="option for option in microServiceModelsDictionaryDatas track by option"
+ ng-init="pullVersion(temp.policy.serviceType);"
+ ng-click="pullVersion(temp.policy.serviceType);"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Micro Service Version:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.version"
+ ng-options="option for option in microServiceModelsDictionaryVersionDatas track by option"
+ ng-init="addDataToFields(temp.policy.serviceType, temp.policy.version);"
+ ng-click="addDataToFields(temp.policy.serviceType, temp.policy.version);"></select>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group col-sm-3" id="DynamicTemplate">
+ <label>Micro Service Attributes:<sup><b>*</b></sup></label><br>
+ </div>
+ </br>
+ <div class="form-group row">
+ <div class="form-group col-sm-3" ng-show="isCheck">
+ <label>Configuration Name:<sup><b>*!</b></sup></label><br> <select
+ class="form-control" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.configName"
+ ng-options="option for option in microServiceCongigNameDictionaryDatas track by option"></select>
+ </div>
+ <div class="form-group col-sm-3" ng-show="isCheck">
+ <label>Location:<sup><b>*!</b></sup></label><br> <select
+ class="form-control" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="temp.policy.location"
+ ng-options="option for option in microServiceLocationDictionaryDatas track by option"></select>
+ </div>
+ <div class="form-group col-sm-3" ng-show="isCheck">
+ <label>UUID:<sup><b>*!</b></sup></label><br> <select
+ class="form-control" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="temp.policy.uuid"
+ ng-options="option for option in dcaeUUIDDictionaryDatas track by option"></select>
+ </div>
+ <div class="form-group col-sm-3" ng-show="isCheck">
+ <label>Policy Scope:<sup><b>*</b></sup></label><br> <select
+ class="form-control" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyScope"
+ ng-options="option for option in groupPolicyScopeListDatas track by option"></select>
+ </div>
+ </div>
+ </div>
+ <br />
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <button class="btn btn-primary" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-success" herf="javascript:void(0)"
+ ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
+ ng-click="savePolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess" ng-model="finalPath"
+ ng-controller="FileManagerCtrl" ng-click="closefunction(finalPath);">Close</button>
+ </div>
+ </form>
+</div>
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html
new file mode 100644
index 000000000..d386770b9
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html
@@ -0,0 +1,187 @@
+<div ng-controller="decisionPolicyController">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Ecomp Name:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.ecompName"
+ ng-options="option for option in ecompNameDictionaryDatas track by option"
+ required pattern="\S+" title="EcompName is required"></select>
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Rule Provider:<sup><b>*</b></sup></label><select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.ruleProvider"
+ ng-init="providerListener(temp.policy.ruleProvider);"
+ ng-click="providerListener(temp.policy.ruleProvider);">
+ <option>Custom</option>
+ <option>AAF</option>
+ </select>
+ </div>
+ </div>
+ </div>
+
+ <div ng-if="temp.policy.ruleProvider == 'Custom'">
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <label>Component Attributes:</label><br>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div data-ng-repeat="choice in temp.policy.attributes">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <select class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="choice.key"
+ ng-options="option for option in attributeDictionaryDatas track by option">
+ <option value="">{{choice.key}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly" ng-model="choice.value"
+ placeholder="Attribute Value" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default" ng-show="$last"
+ ng-disabled="temp.policy.readOnly" ng-click="removeChoice()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div ng-if="temp.policy.ruleProvider == 'Custom'">
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <label>Settings Attributes:</label><br>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="addNewSettingsChoice()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div data-ng-repeat="settingschoice in temp.policy.settings">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <select class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="settingschoice.key"
+ ng-options="option for option in settingsDictionaryDatas track by option">
+ <option value="">{{settingschoice.key}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="settingschoice.value" placeholder="Settings Value" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default" ng-show="$last"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeSettingsChoice()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div ng-if="temp.policy.ruleProvider == 'Custom'">
+ <div class="well">
+ <label>Decision Rule Algorithms:<sup><b>*</b></sup></label><br>
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="addNewRuleAlgorithm()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div
+ data-ng-repeat="ruleAlgorithmschoice in temp.policy.ruleAlgorithmschoices">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-1">
+ <label
+ ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmLabels"
+ name="dynamicRuleAlgorithmLabels">{{ruleAlgorithmschoice.id}}</label>
+ </div>
+ <div class="form-group col-sm-3">
+ <select class="form-control" id="mySelect"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField1"
+ ng-options="option for option in attributeDictionaryDatas track by option"
+ name="dynamicRuleAlgorithmField1">
+ <option value="">{{ruleAlgorithmschoice.dynamicRuleAlgorithmField1}}</option>
+ </select>
+ </div>
+ <div class="form-group col-sm-3">
+ <select type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmCombo"
+ ng-options="option for option in functionDefinitionDatas track by option"
+ name="dynamicRuleAlgorithmCombo"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField2"
+ name="dynamicRuleAlgorithmField2" />
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="removeRuleAlgorithm()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <br>
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <button class="btn btn-primary" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-success" herf="javascript:void(0)"
+ ng-disabled="savebutton" ng-disabled="temp.policy.readOnly"
+ ng-click="saveDecisionPolicy(temp);">Save</button>
+ <button class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess" ng-model="finalPath"
+ ng-controller="FileManagerCtrl" ng-click="closefunction(finalPath);">Close</button>
+ </div>
+ </form>
+</div>
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html
new file mode 100644
index 000000000..d3a6d439f
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html
@@ -0,0 +1,30 @@
+<div class="modal fadeIn" id="describePolicy"
+ style="margin-bottom: 20px; width: 100%" data-toggle="modal"
+ data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog-lg">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ </button>
+ <h2 class="modal-title" style="color: #157bb2">Describe Policy</h2>
+ </div>
+ <div class="well">
+ <form>
+ <div class="form-group" style="margin-right: 2%; margin-left: 2%">
+ <div ng-bind-html="temp.tempModel.content"></div>
+ <div>
+ <span class="label label-warning" ng-show="temp.inprocess">{{'loading'
+ | translate}} ...</span>
+ <div ng-show="!temp.inprocess" autofocus="autofocus"></div>
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess">{{'close' | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html
new file mode 100644
index 000000000..5e9fdbd6c
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html
@@ -0,0 +1,24 @@
+<div class="modal fadeIn" id="exportPolicy"
+ ng-controller="exportPolicyController" data-toggle="modal"
+ data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog modal-lg">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h2 style="text-align: left; color: #157bb2">Export Policies</h2>
+ </div>
+ <div class="divider-container">
+ <hr>
+ </div>
+ <div>
+ <div id="grid1" style="width: 100%; height: 500px;" ui-grid="gridOptions"
+ ui-grid-pagination ui-grid-selection ui-grid-resize-columns class="grid"></div>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-success" herf="javascript:void(0)"
+ ng-click="download();">Download</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess">Close</button>
+ </div>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html
new file mode 100644
index 000000000..85ffbf7ab
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html
@@ -0,0 +1,119 @@
+<div ng-controller="fwPolicyController">
+ <form>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-6">
+ <label>Policy Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-readonly="temp.policy.editPolicy"
+ ng-model="temp.policy.policyName" required pattern="\S+"
+ title="Enter the Policy Name without any spaces" />
+ </div>
+ <div class="form-group col-sm-6">
+ <label>Description:</label> <input type="text" class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.policyDescription" />
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Risk Type:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskType"
+ ng-options="option for option in riskTypeDictionaryDatas track by option"
+ required pattern="\S+" title="RiskType is required"></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Risk Level:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.riskLevel"
+ required pattern="\S+" title="RiskLevel is required">
+ <option>1</option>
+ <option>2</option>
+ <option>3</option>
+ <option>4</option>
+ <option>5</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Guard:<sup><b>*</b></sup></label> <select
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.guard"
+ required pattern="\S+" title="Guard is required">
+ <option>True</option>
+ <option>False</option></select>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div class="form-group col-sm-3">
+ <label>Config Name:<sup><b>*</b></sup></label> <input type="text"
+ class="form-control" ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.configName" required />
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Time to Live Date:</label> <input type="date"
+ class="form-control" name="ttlDate" class="date"
+ ng-model="temp.policy.ttlDate" />
+ </div>
+ <div class="form-group col-sm-3">
+ <label>Security Zone:</label> <select class="form-control"
+ ng-disabled="temp.policy.readOnly"
+ ng-model="temp.policy.securityZone"
+ ng-options="option for option in securityZoneDictionaryDatas track by option"></select>
+ </div>
+ </div>
+ </div>
+ <div class="well">
+ <div class="form-group row">
+ <div class="form-group col-sm-1">
+ <label>Rule Setup:</label><br>
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()">
+ <i class="fa fa-plus"></i>
+ </button>
+ </div>
+ </div>
+ <div class="form-group row">
+ <div data-ng-repeat="choice in temp.policy.attributes">
+ <div class="form-group row" style="margin-left: 2%">
+ <div class="form-group col-sm-3">
+ <select class="form-control" ng-model="choice.key"
+ ng-disabled="temp.policy.readOnly"
+ ng-options="option for option in termListDictionaryDatas track by option"><option
+ value="">{{choice.key}}</option></select>
+ </div>
+ <div class="form-group col-sm-3">
+ <select class="form-control" ng-model="choice.value"
+ ng-disabled="temp.policy.readOnly"
+ ng-options="option for option in fwTagPickerDictionaryDatas track by option"><option
+ value="">{{choice.value}}</option></select>
+ </div>
+ <div class="form-group col-sm-1">
+ <button type="button" class="btn btn-default"
+ ng-disabled="temp.policy.readOnly" ng-show="$last"
+ ng-click="removeChoice()">
+ <i class="fa fa-minus"></i>
+ </button>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ <div id="validate" style="width: 70%"></div>
+ <br>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default"
+ herf="javascript:void(0)" ng-click="viewFWRule(temp.policy);">Rule
+ Preview</button>
+ <button class="btn btn-primary" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly"
+ ng-click="validatePolicy(temp.policy);">Validate</button>
+ <button class="btn btn-success" herf="javascript:void(0)"
+ ng-disabled="temp.policy.readOnly" ng-disabled="savebutton"
+ ng-click="saveFWPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal"
+ ng-disabled="temp.inprocess" ng-model="finalPath"
+ ng-controller="FileManagerCtrl" ng-click="closefunction(finalPath);">Close</button>
+ </div>
+ </form>
+</div> \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html
new file mode 100644
index 000000000..568387827
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html
@@ -0,0 +1,84 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<div class="modal" id="createNewPolicy"
+ style="margin-bottom: 20px; width: 100%" data-backdrop="static"
+ data-keyboard="false">
+ <div class="modal-dialog-lg">
+ <!-- Modal content-->
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span> <span class="sr-only">{{"close"
+ | translate}}</span>
+ </button>
+ <form>
+ <div class="form-group" style="width: 300px">
+ <label>Policy Type:</label>
+ <div>
+ <select class="form-control" ng-model="temp.policy.policyType"
+ ng-disabled="temp.policy.readOnly || temp.policy.editPolicy">
+ <option>Action</option>
+ <option>Config</option>
+ <option>Decision</option>
+ </select>
+ </div>
+ </div>
+ <div ng-if="temp.policy.policyType == 'Action'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html'"></div>
+ <div ng-if="temp.policy.policyType == 'Decision'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html'"></div>
+ <div ng-if="temp.policy.policyType == 'Config'">
+ <div class="form-group" style="width: 300px">
+ <label>Config Policy Type:</label>
+ <div>
+ <select class="form-control"
+ ng-model="temp.policy.configPolicyType"
+ ng-disabled="temp.policy.readOnly || temp.policy.editPolicy">
+ <option>Base</option>
+ <option>BRMS_Param</option>
+ <option>BRMS_Raw</option>
+ <option>ClosedLoop_Fault</option>
+ <option>ClosedLoop_PM</option>
+ <option>Micro Service</option>
+ <option>Firewall Config</option>
+ </select>
+ </div>
+ </div>
+ <div ng-if="temp.policy.configPolicyType == 'Base'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html'"></div>
+ <div ng-if="temp.policy.configPolicyType == 'BRMS_Param'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html'"></div>
+ <div ng-if="temp.policy.configPolicyType == 'BRMS_Raw'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html'"></div>
+ <div ng-if="temp.policy.configPolicyType == 'ClosedLoop_Fault'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html'"></div>
+ <div ng-if="temp.policy.configPolicyType == 'ClosedLoop_PM'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html'"></div>
+ <div ng-if="temp.policy.configPolicyType == 'Micro Service'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html'"></div>
+ <div ng-if="temp.policy.configPolicyType == 'Firewall Config'"
+ ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html'"></div>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+</div>