aboutsummaryrefslogtreecommitdiffstats
path: root/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates')
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html103
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html112
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html99
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html126
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html350
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html141
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html108
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html130
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html50
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html35
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html116
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html79
12 files changed, 1449 insertions, 0 deletions
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html
new file mode 100644
index 000000000..30bf9fa2c
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ActionPolicyTemplate.html
@@ -0,0 +1,103 @@
+<!--
+ ============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 ng-app= "abs" ng-controller= "actionPolicyController" >
+<div class="modal__content">
+ <div>
+ <label>Policy Name:<sup><b>*</b></sup></label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;"/>
+ </div>
+ <br/>
+ <div>
+ <label>Description:</label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" >
+ <label>Component Attributes:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-1">
+ <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 data-ng-repeat="choice in temp.policy.attributes" class="form-horizontal" >
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.option" ng-options="option for option in attributeDictionaryDatas track by option" ></select>
+ </div>
+ <div class="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "choice.number" placeholder="Attribute Value" />
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" >
+ <label>Rule Algorithms:<sup><b>*</b></sup></label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-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 data-ng-repeat="ruleAlgorithmschoice in temp.policy.ruleAlgorithmschoices" class="form-horizontal" >
+ <div class="fn-ebz-container ">
+ <label ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmLabels" ng-disabled ="temp.policy.readOnly" name="dynamicRuleAlgorithmLabels" >{{ruleAlgorithmschoice.id}}</label>
+ </div>
+ <div class="fn-ebz-container">
+ <select type="text" class="form-field" 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="fn-ebz-container ">
+ <select type="text" class="form-field" 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="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "ruleAlgorithmschoice.dynamicRuleAlgorithmField2" name="dynamicRuleAlgorithmField2"/>
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ <br/>
+ <div class="fn-ebz-container">
+ <label>Action Performer:<sup><b>*</b></sup></label><BR>
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.actionPerformer">
+ <option>PEP</option>
+ <option>PDP</option>
+ </select>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Action Attribute:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.actionAttributeValue" ng-options="option for option in actionPolicyDictionaryDatas track by option"></select>
+ </div>
+ </div>
+ <div class="modal__footer">
+ <button class="button button--primary button--small" 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-click="saveActionPolicy(temp);">Save</button>
+ <button class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">Close</button>
+ </div>
+</div>
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html
new file mode 100644
index 000000000..a2bd4162f
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSParamPolicyTemplate.html
@@ -0,0 +1,112 @@
+<!--
+ ============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 ng-app= "abs" ng-controller= "brmsParamPolicyController" ng-init="addDataToFields(temp.policy.ruleName);">
+<div class="modal__content">
+ <form class="form-horizontal" role="form" name="myform">
+ <div class="form-group">
+ <label>Policy Name:<sup><b>*</b></sup></label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;" required pattern="\S+" title="Enter the Policy Name without any spaces">
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Description:</label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Type:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskType" ng-options="option for option in riskTypeDictionaryDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskType" style="color:red">Risk Type Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Level:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskLevel" ng-options="option for option in riskLevelDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskLevel" style="color:red">Risk Level Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Guard:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.guard" ng-options="option for option in guardDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateGuard" style="color:red">Guard Field shouldn't be Empty</span></p>
+ </div>
+ <div class ="fn-ebz-container">
+ <label>Time to Live Date:<sup><b>*</b></sup></label>
+ <div>
+ <input type="date" name="ttlDate" class="date" ng-model="temp.policy.ttlDate"/>
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Rule Attributes:<sup><b>*</b></sup></label>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-1">
+ <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 data-ng-repeat="choice in temp.policy.attributes" class="form-horizontal" >
+ <div class="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "choice.key" placeholder="Attribute Key" />
+ </div>
+ <div class="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "choice.value" placeholder="Attribute Value" />
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ <div class ="form-group">
+ <label>BRMS Template:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:400px;" 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">
+ <div ng-repeat="(key, data) in temp.policy.dynamicLayoutMap" >
+ <div class ="form-group">
+ <label class="control-label col-md-4">{{key}}:</label>
+ <div class="col-md-8">
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.ruleData[key]" style="width:500px;"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="form-group">
+ <div>
+ <button class="button button--primary button--small" 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 ="temp.policy.readOnly" ng-click="saveBrmsParamPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">Close</button>
+ </div>
+ </div>
+ </form>
+ </div>
+</div>
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html
new file mode 100644
index 000000000..a32971463
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BRMSRawPolicyTemplate.html
@@ -0,0 +1,99 @@
+<!--
+ ============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 ng-app= "abs" ng-controller= "brmsRawPolicyController">
+<div class="modal__content">
+ <form class="form-horizontal" role="form" name="myform">
+ <div class="form-group">
+ <label>Policy Name:<sup><b>*</b></sup></label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;" required pattern="\S+" title="Enter the Policy Name without any spaces">
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Description:</label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Type:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskType" ng-options="option for option in riskTypeDictionaryDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskType" style="color:red">Risk Type Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Level:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskLevel" ng-options="option for option in riskLevelDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskLevel" style="color:red">Risk Level Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Guard:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.guard" ng-options="option for option in guardDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateGuard" style="color:red">Guard Field shouldn't be Empty</span></p>
+ </div>
+ <div class ="fn-ebz-container">
+ <label>Time to Live Date:<sup><b>*</b></sup></label>
+ <div>
+ <input type="date" name="ttlDate" class="date" ng-model="temp.policy.ttlDate"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label>Rule Attributes:</label>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-1">
+ <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 data-ng-repeat="choice in temp.policy.attributes" class="form-horizontal" >
+ <div class="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "choice.key" placeholder="Attribute Key" />
+ </div>
+ <div class="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "choice.value" placeholder="Attribute Value" />
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ <div class="form-group">
+ <label>Raw Rule:<sup><b>*</b></sup></label>
+ <div>
+ <textarea class="form-control" ng-model="temp.policy.configBodyData" ng-disabled ="temp.policy.readOnly" style="height :400px; width:400px;" ></textarea>
+ </div>
+ </div>
+ <div class="form-group">
+ <div>
+ <button class="button button--primary button--small" 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-click="saveBrmsRawPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">Close</button>
+ </div>
+ </div>
+ </form>
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html
new file mode 100644
index 000000000..b73092fd8
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/BasePolicyTemplate.html
@@ -0,0 +1,126 @@
+<!--
+ ============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 ng-app ng-controller= "baseConfigController">
+<div class="modal__content">
+<form class="form-horizontal" role="form" name="myform">
+ <div class="form-group">
+ <label>Policy Name:<sup><b>*</b></sup></label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;" required pattern="\S+" title="Enter the Policy Name without any spaces">
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Description:</label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Ecomp Name:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-control" style="width:800px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.ecompName" ng-options="option for option in ecompNameDictionaryDatas track by option"></select>
+ </div>
+ <!-- <p><span ng-show="validateEcompName" style="color:red">Ecomp Name Field shouldn't be Empty</span></p> -->
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Type:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskType" ng-options="option for option in riskTypeDictionaryDatas track by option"></select>
+ </div>
+ <!-- <p><span ng-show="validateRiskType" style="color:red">Risk Type Field shouldn't be Empty</span></p> -->
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Level:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskLevel" ng-options="option for option in riskLevelDatas track by option"></select>
+ </div>
+ <!-- <p><span ng-show="validateRiskLevel" style="color:red">Risk Level Field shouldn't be Empty</span></p> -->
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Guard:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.guard" ng-options="option for option in guardDatas track by option"></select>
+ </div>
+ <!-- <p><span ng-show="validateGuard" style="color:red">Guard Field shouldn't be Empty</span></p> -->
+ </div>
+ <div class ="fn-ebz-container">
+ <label>Time to Live Date:<sup><b>*</b></sup></label>
+ <div>
+ <input type="date" name="ttlDate" class="date" ng-model="temp.policy.ttlDate"/>
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Config Name:<sup><b>*</b></sup></label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.configName" style="width:800px;" required pattern="\S+" title="Enter the Config Name without any spaces"/>
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Attributes:</label>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-1">
+ <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 ng-repeat="choice in temp.policy.attributes">
+ <div class="fn-ebz-container">
+ <select class="form-field" required ng-disabled ="temp.policy.readOnly" ng-model="choice.option" ng-options="option for option in attributeDictionaryDatas track by option" ></select>
+ </div>
+ <div class="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "choice.number" placeholder="Attribute Value" required pattern="\S+" title="Enter the Attribute Value without any spaces"/>
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ <div class ="form-group">
+ <label>Config Type:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.configType">
+ <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">
+ <label>Body:<sup><b>*</b></sup></label>
+ <div>
+ <textarea class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.configBodyData" style="height :400px; width:400px;" ></textarea>
+ <!-- <p><span ng-show="validateConfigTypeNull" style="color:red">Config Type Field shouldn't be Empty</span></p>
+ <p><span ng-show="validateConfigTypeBody" style="color:red">{{errorMessage}}</span></p> -->
+ </div>
+ </div>
+ <div class="form-group">
+ <div>
+ <button class="button button--primary button--small" 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" ng-click = "close();">Close</button>
+ </div>
+ </div>
+</form>
+</div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html
new file mode 100644
index 000000000..8f44fab98
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopFaultPolicyTemplate.html
@@ -0,0 +1,350 @@
+<!--
+ ============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 ng-app= "abs" ng-controller= "clFaultController">
+<div class="modal__content">
+ <div class ="form-group">
+ <label>Policy Name:<sup><b>*</b></sup> </label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;"/>
+ </div>
+ <div class ="form-group">
+ <label>Description:</label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ <div class ="form-group">
+ <label>Ecomp Name:<sup><b>*</b></sup></label><br>
+ <select class="form-control" style="width:800px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.ecompName" ng-options="option for option in ecompNameDictionaryDatas track by option"></select>
+ </div>
+ </br>
+ <div class="fn-ebz-container" >
+ <label>Risk Type:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskType" ng-options="option for option in riskTypeDictionaryDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskType" style="color:red">Risk Type Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Level:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskLevel" ng-options="option for option in riskLevelDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskLevel" style="color:red">Risk Level Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Guard:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.guard" ng-options="option for option in guardDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateGuard" style="color:red">Guard Field shouldn't be Empty</span></p>
+ </div>
+ <div class ="fn-ebz-container">
+ <label>Time to Live Date:<sup><b>*</b></sup></label>
+ <div>
+ <input type="date" name="ttlDate" class="date" ng-model="temp.policy.ttlDate"/>
+ </div>
+ </div>
+ <div>
+ <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>
+ <br/>
+ <div class="fn-ebz-container" >
+ <label>Vnf Type:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" 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="fn-ebz-container" >
+ <label>Policy Status:<sup><b>*</b></sup></label><BR>
+ <select class="form-field" 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>
+ <br/>
+ <fieldset style="width:140%;">
+ <div class="fn-ebz-container" >
+ <label>Trigger Signature:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="fn-ebz-container">
+ <button type="button" class="btn btn-default" ng-disabled ="temp.policy.readOnly" ng-click="addTriggerButton()"><i class="fa fa-plus"></i></button>
+ </div>
+ <div class="fn-ebz-container">
+ <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 data-ng-repeat="choice in temp.policy.traptriggerSignatures" class="form-horizontal" >
+ <div class="fn-ebz-container ">
+ <label ng-model="choice.label" name="label" >{{choice.id}}</label>
+ </div>
+ <div class="fn-ebz-container">
+ <button type="button" class="btn btn-default" ng-disabled ="temp.policy.readOnly" ng-click="addTrapTriggerButton(choice.id)"><i class="fa fa-plus"></i></button>
+ </div>
+ <div class="fn-ebz-container">
+ <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 data-ng-repeat="choice in temp.policy.triggerTrapSignatures[choice.id]" class="form-horizontal" >
+ <div class="fn-ebz-container ">
+ <label ng-model="choice.label" name="label" >{{choice.id}}</label>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.notBox" name="notBox" ><option>NOT</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" 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="fn-ebz-container ">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.operatorBox" name="operatorBox"><option>AND</option><option>OR</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" 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>
+ </form>
+ </div>
+ </br>
+ <div class="fn-ebz-container" >
+ <label>Connect Traps:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-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 data-ng-repeat="choice in temp.policy.connecttriggerSignatures" class="form-horizontal" >
+ <div class="fn-ebz-container ">
+ <label ng-model="choice.label" name="label" >{{choice.id}}</label>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.notBox" name="notBox" ><option>NOT</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <select ng-disabled ="temp.policy.readOnly" ng-model="choice.connectTrap1" ng-options="option for option in connectTriggerTrapsList track by option">
+ <option value="">{{choice.connectTrap1}}</option></select>
+ </div>
+ <div class="fn-ebz-container ">
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="choice.trapCount1" name="trapCount1"/>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.operatorBox" name="operatorBox"><option>AND</option><option>OR</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <select 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="fn-ebz-container ">
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="choice.trapCount2" name="trapCount1"/>
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ </br>
+ <div class="fn-ebz-container" >
+ <label>Clear TimeOut:<sup><b>*</b></sup> </label><br>
+ <input type="text" ng-disabled="triggerdisabled" ng-model="temp.policy.clearTimeOut" style="width:200px;"/>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Trap Max Age:<sup><b>*</b></sup></label><br>
+ <input type="text" ng-disabled="triggerdisabled" ng-model="temp.policy.trapMaxAge" ng-init="temp.policy.jsonBodyData.trapMaxAge='300'" value="300" style="width:200px;"/>
+ </div>
+ </fieldset>
+ <br/>
+ <form>
+ <fieldset style="width:140%;">
+ <div>
+ <label>VSCL Action:<sup><b>*</b></sup></label><br>
+ <div class="fn-ebz-container" >
+ <label>vPRO Actions:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" 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></select>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Time Interval:<sup><b>*</b></sup> </label><br>
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.jsonBodyData.timeInterval" style="width:200px;"/>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>App-C TimeOut:<sup><b>*</b></sup></label><br>
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.jsonBodyData.timeOutvPRO" style="width:200px;"/>
+ </div>
+ </br>
+ <div class="fn-ebz-container" >
+ <label>TimeOut for Ruby:<sup><b>*</b></sup></label><br>
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.jsonBodyData.timeOutRuby" style="width:200px;"/>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Number of Retries:<sup><b>*</b></sup></label><br>
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.jsonBodyData.retrys" style="width:200px;"/>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Aging Window:<sup><b>*</b></sup> </label><br>
+ <input type="text" class="fn-ebz-text" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.jsonBodyData.agingWindow" style="width:200px;"/>
+ </div>
+ </br>
+ <div>
+ <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" style="width:500px;"/>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Email Address:</label><br>
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.jsonBodyData.emailAddress" style="width:500px;"/>
+ </div>
+ </div>
+ </fieldset>
+ </form>
+ <br/>
+ <form>
+ <fieldset style="width:140%;">
+ <div>
+ <label>PEP:<sup><b>*</b></sup></label><br>
+ <div class="fn-ebz-container" >
+ <label>PEP Options:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" 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="fn-ebz-container" >
+ <label>Actions:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" 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></select></select>
+ </div>
+ </div>
+ </fieldset>
+ </form>
+ <br/>
+ <form>
+ <fieldset style="width:140%;">
+ <div class="fn-ebz-container" >
+ <label><sup><b></b></sup>Verification Signature:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="fn-ebz-container">
+ <button type="button" class="btn btn-default" ng-disabled ="temp.policy.readOnly" ng-click="addVerFaultButton()"><i class="fa fa-plus"></i></button>
+ </div>
+ <div class="fn-ebz-container">
+ <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 data-ng-repeat="choice in temp.policy.faulttriggerSignatures" class="form-horizontal" >
+ <div class="fn-ebz-container ">
+ <label ng-model="choice.label" name="label" >{{choice.id}}</label>
+ </div>
+ <div class="fn-ebz-container">
+ <button type="button" class="btn btn-default" ng-disabled ="temp.policy.readOnly" ng-click="addVerTriggerButton(choice.id)"><i class="fa fa-plus"></i></button>
+ </div>
+ <div class="fn-ebz-container">
+ <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 data-ng-repeat="choice in temp.policy.triggerfaultSignatures[choice.id]" class="form-horizontal" >
+ <div class="fn-ebz-container ">
+ <label ng-model="choice.label" name="label" >{{choice.id}}</label>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.notBox" name="notBox" ><option>NOT</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" 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="fn-ebz-container ">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.operatorBox" name="operatorBox"><option>AND</option><option>OR</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" 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>
+ </form>
+ </div>
+ </br>
+ <div class="fn-ebz-container" >
+ <label>Connect All Faults:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-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 data-ng-repeat="choice in temp.policy.connectVerificationSignatures" class="form-horizontal" >
+ <div class="fn-ebz-container ">
+ <label ng-model="choice.label" name="label" >{{choice.id}}</label>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.notBox" name="notBox" ><option>NOT</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <select ng-disabled ="temp.policy.readOnly" ng-model="choice.connectTrap1" ng-options="option for option in connectTriggerFaultsList track by option">
+ <option value="">{{choice.connectTrap1}}</option></select>
+ </div>
+ <div class="fn-ebz-container ">
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="choice.trapCount1" name="trapCount1"/>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.operatorBox" name="operatorBox"><option>AND</option><option>OR</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <select ng-disabled ="temp.policy.readOnly" ng-model="choice.connectTrap2" ng-options="option for option in connectTriggerFaultsList track by option">
+ <option value="">{{choice.connectTrap2}}</option></select>
+ </div>
+ <div class="fn-ebz-container ">
+ <input type="text" ng-disabled ="temp.policy.readOnly" ng-model="choice.trapCount2" name="trapCount1"/>
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ </br>
+ <div class="fn-ebz-container" >
+ <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" style="width:200px;"/>
+ </div>
+ </fieldset>
+ </form>
+ <br/>
+ <form>
+ <fieldset style="width:140%;">
+ <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>
+ </fieldset>
+ </form>
+ <br/>
+ </div>
+ <div class="modal__footer">
+ <button class="button button--primary button--small" 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-click="saveFaultPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">Close</button>
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html
new file mode 100644
index 000000000..c9a384656
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ClosedLoopPMPolicyTemplate.html
@@ -0,0 +1,141 @@
+<!--
+ ============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 ng-controller= "clPMController">
+<div class="modal__content">
+ <form class="form-horizontal" role="form" name="myform">
+ <div class="form-group">
+ <label>Policy Name:<sup><b>*</b></sup></label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;" required pattern="\S+" title="Enter the Policy Name without any spaces">
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Description:</label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Ecomp Name:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:500px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.ecompName" ng-options="option for option in ecompNameDictionaryDatas track by option"></select>
+ </div>
+ <!-- <p><span ng-show="validateEcompName" style="color:red">Ecomp Name Field shouldn't be Empty</span></p> -->
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Type:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskType" ng-options="option for option in riskTypeDictionaryDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskType" style="color:red">Risk Type Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Level:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskLevel" ng-options="option for option in riskLevelDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskLevel" style="color:red">Risk Level Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Guard:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.guard" ng-options="option for option in guardDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateGuard" style="color:red">Guard Field shouldn't be Empty</span></p>
+ </div>
+ <div class ="fn-ebz-container">
+ <label>Time to Live Date:<sup><b>*</b></sup></label>
+ <div>
+ <input type="date" name="ttlDate" class="date" ng-model="temp.policy.ttlDate"/>
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>D2/Virtualized Services(s):<sup><b>*</b></sup></label>
+ <div>
+ <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 class ="form-group">
+ <label>Service Type PolicyName:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" id="MyButtonTest" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.serviceTypePolicyName"
+ ng-options="option.serviceTypePolicyName for option in PMData track by option.serviceTypePolicyName" ng-init="addDataToFields(temp.policy.serviceTypePolicyName);"
+ ng-click="addDataToFields(temp.policy.serviceTypePolicyName);"></select>
+ </div>
+ </div>
+ <fieldset>
+ <div class ="form-group">
+ <label>Vertica Metrics:<sup><b>*</b></sup></label>
+ <div>
+ <textarea class="form-control" ng-model="temp.policy.verticaMetrics.verticaMetrics" ng-disabled ="temp.policy.readOnly" style="height :150px; width:500px;" ></textarea>
+ </div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <div class ="form-group">
+ <label>Attributes:<sup><b>*</b></sup></label>
+ <div>
+ <div ng-repeat="(key, data) in temp.policy.attributeFields.attributes" >
+ <label >{{key}}</label>
+ <div ng-repeat="(key, data) in data" >
+ <label >{{key}}</label><br/>
+ <input type="text" class="form-control" title = {{data}} ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.jsonBodyData.attributes[key]" style="width:500px;"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <div class ="form-group">
+ <label>Policy Description:<sup><b>*</b></sup></label>
+ <div>
+ <textarea class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.description.policyDescription" style="height :150px; width:500px;" ></textarea>
+ </div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <div class ="form-group">
+ <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" style="width:500px;"/>
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Email Address:</label>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.jsonBodyData.emailAddress" style="width:500px;"/>
+ </div>
+ </div>
+ </fieldset>
+ <div class ="form-group">
+ <div>
+ <button class="button button--primary button--small" 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-click="saveCLPMPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">Close</button>
+ </div>
+ </div>
+ </form>
+</div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html
new file mode 100644
index 000000000..183489816
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html
@@ -0,0 +1,108 @@
+<!--
+ ============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 ng-app = "abs" ng-controller="dcaeMicroServiceController" style="margin-bottom: 20px; width: 100%">
+ <div class="modal__content">
+ <div class ="form-group">
+ <label>Policy Name:<sup><b>*</b></sup></label><br>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;"/>
+ </div>
+ </div>
+ <div class ="form-group">
+ <label>Description:</label><br>
+ <div>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ </div>
+ <div class ="form-group" >
+ <label>Ecomp Name:<sup><b>*</b></sup></label><br>
+ <div>
+ <select class="form-control" style="width:800px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.ecompName" ng-options="option for option in ecompNameDictionaryDatas track by option"></select>
+ </div>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" >
+ <label>Risk Type:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskType" ng-options="option for option in riskTypeDictionaryDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskType" style="color:red">Risk Type Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Level:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskLevel" ng-options="option for option in riskLevelDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskLevel" style="color:red">Risk Level Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Guard:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.guard" ng-options="option for option in guardDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateGuard" style="color:red">Guard Field shouldn't be Empty</span></p>
+ </div>
+ </br>
+ <div class ="fn-ebz-container">
+ <label>Time to Live Date:<sup><b>*</b></sup></label>
+ <div>
+ <input type="date" name="ttlDate" class="date" ng-model="temp.policy.ttlDate"/>
+ </div>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Configuration Name:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.configName" ng-options="option for option in microServiceCongigNameDictionaryDatas track by option"></select>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Location:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.location" ng-options="option for option in microServiceLocationDictionaryDatas track by option"></select>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" >
+ <label>UUID:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.uuid" ng-options="option for option in dcaeUUIDDictionaryDatas track by option"></select>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Priority:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" 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="fn-ebz-container" >
+ <label>Policy Scope:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyScope" ng-options="option for option in groupPolicyScopeListDatas track by option"></select>
+ </div>
+ <br/>
+ <div >
+ <label>Micro Service:<sup><b>*</b></sup></label><br>
+ <select style="width:800px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.serviceType" ng-options="option for option in microServiceModelsDictionaryDatas track by option"
+ ng-init="addDataToFields(temp.policy.serviceType);" ng-click="addDataToFields(temp.policy.serviceType);"></select>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" id="DynamicTemplate">
+ <label>Micro Service Attributes:<sup><b>*</b></sup></label><br>
+ </div>
+ </div>
+ <div class="modal__footer">
+ <button class="button button--primary button--small" 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-click="savePolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">Close</button>
+ </div>
+</div>
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html
new file mode 100644
index 000000000..a79a193c7
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DecisionPolicyTemplate.html
@@ -0,0 +1,130 @@
+<!--
+ ============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 ng-app= "abs" ng-controller= "decisionPolicyController" >
+<div class="modal__content">
+ <div>
+ <label>Policy Name:<sup><b>*</b></sup></label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;"/>
+ </div>
+ <br/>
+ <div>
+ <label>Description:</label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" >
+ <label>Ecomp Name:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.ecompName" ng-options="option for option in ecompNameDictionaryDatas track by option"></select>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" >
+ <label>Rule Provider:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" 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>
+ <br/>
+ <div ng-if="temp.policy.ruleProvider == 'Custom'" class="fn-ebz-container" >
+ <label>Component Attributes:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-1">
+ <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 data-ng-repeat="choice in temp.policy.attributes" class="form-horizontal" >
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="choice.option" ng-options="option for option in attributeDictionaryDatas track by option" >
+ <option value="">{{choice.option}}</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "choice.number" placeholder="Attribute Value" />
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ <br/>
+ <div ng-if="temp.policy.ruleProvider == 'Custom'" class="fn-ebz-container" >
+ <label>Settings Attributes:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-1">
+ <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 data-ng-repeat="settingschoice in temp.policy.settings" class="form-horizontal" >
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-disabled ="temp.policy.readOnly" ng-model="settingschoice.option" ng-options="option for option in settingsDictionaryDatas track by option" >
+ <option value="">{{settingschoice.option}}</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "settingschoice.number" placeholder="Settings Value" />
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ <br/>
+ <div ng-if="temp.policy.ruleProvider == 'Custom'" class="fn-ebz-container" >
+ <label>Decision Rule Algorithms:<sup><b>*</b></sup></label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-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 data-ng-repeat="ruleAlgorithmschoice in temp.policy.ruleAlgorithmschoices" class="form-horizontal" >
+ <div class="fn-ebz-container ">
+ <label ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmLabels" name="dynamicRuleAlgorithmLabels" >{{ruleAlgorithmschoice.id}}</label>
+ </div>
+ <div class="fn-ebz-container">
+ <select class="form-field" 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="fn-ebz-container ">
+ <select type="text" class="form-field" 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="fn-ebz-container">
+ <input type="text" class="form-field" ng-disabled ="temp.policy.readOnly" ng-model= "ruleAlgorithmschoice.dynamicRuleAlgorithmField2" name="dynamicRuleAlgorithmField2"/>
+ </div>
+ <div class="fn-ebz-container">
+ <button type="button" class="btn btn-default" ng-disabled ="temp.policy.readOnly" ng-click="removeRuleAlgorithm()"><i class="fa fa-minus"></i></button>
+ </div>
+ </div>
+ </form>
+ </div>
+ <br/>
+ <br/>
+ </div>
+ <div class="modal__footer">
+ <button class="button button--primary button--small" 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-click="saveDecisionPolicy(temp);">Save</button>
+ <button class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">Close</button>
+ </div>
+</div>
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html
new file mode 100644
index 000000000..7fadd9438
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html
@@ -0,0 +1,50 @@
+<!--
+ ============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 animated fadeIn" id="describePolicy" ng-app = "abs" style="margin-bottom: 20px; width: 100%" ng-class="{'modal-fullscreen': fullscreen}" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal__informative font-showcase" style="width:80%;">
+ <div class="modal-content">
+ <form>
+ <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>
+ <button type="button" class="close mr5" ng-click="fullscreen=!fullscreen">
+ <span>&loz;</span>
+ <span class="sr-only">{{'toggle_fullscreen' | translate}}</span>
+ </button>
+ <h4 class="modal-title">Describe Policy</h4>
+ </div>
+ <div class="modal-body">
+ <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> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html
new file mode 100644
index 000000000..0a3013381
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html
@@ -0,0 +1,35 @@
+<!--
+ ============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 animated fadeIn" id = "exportPolicy" ng-controller="exportPolicyController" ng-app = "abs" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+<div class="modal__informative font-showcase" style="width:80%;">
+ <div class="modal__header">
+ <h2 class="font-showcase-font-name">Export the Policies</h2>
+ </div>
+ <div class="divider-container"><hr> </div>
+ <div class="modal__content">
+ <div id="grid1" ui-grid="gridOptions" ui-grid-tree-view ui-grid-pagination ui-grid-selection 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> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html
new file mode 100644
index 000000000..a143fbd52
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html
@@ -0,0 +1,116 @@
+<!--
+ ============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 ng-app= "abs" ng-controller= "fwPolicyController">
+<div class="modal__content">
+ <div>
+ <label>Policy Name:<sup><b>*</b></sup> </label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-readonly="temp.policy.editPolicy" ng-model="temp.policy.policyName" style="width:800px;"/>
+ </div>
+ <div>
+ <label>Description:</label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.policyDescription" style="width:800px;"/>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Type:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskType" ng-options="option for option in riskTypeDictionaryDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskType" style="color:red">Risk Type Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Risk Level:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.riskLevel" ng-options="option for option in riskLevelDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateRiskLevel" style="color:red">Risk Level Field shouldn't be Empty</span></p>
+ </div>
+ <div class="fn-ebz-container" >
+ <label>Guard:<sup><b>*</b></sup></label>
+ <div>
+ <select class="form-field" style="width:450px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.guard" ng-options="option for option in guardDatas track by option"></select>
+ </div>
+ <p><span ng-show="validateGuard" style="color:red">Guard Field shouldn't be Empty</span></p>
+ </div>
+ <div class ="fn-ebz-container">
+ <label>Time to Live Date:<sup><b>*</b></sup></label>
+ <div>
+ <input type="date" name="ttlDate" class="date" ng-model="temp.policy.ttlDate"/>
+ </div>
+ </div>
+ <div>
+ <label>Config Name:<sup><b>*</b></sup></label><br>
+ <input type="text" class="form-control" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.configName" style="width:800px;"/>
+ </div>
+ <div>
+ <label>Security Zone:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.securityZone" ng-options="option for option in securityZoneDictionaryDatas track by option"></select>
+ </div>
+ <div ng-if ="temp.policy.fwPolicyType == 'Child Policy'">
+ <label>Select the Parent to assosciate:<sup><b>*</b></sup></label><br>
+ <select class="form-field" style="width:400px;" ng-disabled ="temp.policy.readOnly" ng-model="temp.policy.parentForChild" ng-options="option for option in fwParentListDictionaryDatas track by option"></select>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" ng-if ="temp.policy.fwPolicyType == 'Parent Policy'">
+ <label>Parent Dictionary Setup:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-1">
+ <button type="button" class="btn btn-default" ng-disabled ="temp.policy.readOnly" ng-click="addNewFWDictList()"><i class="fa fa-plus"></i></button>
+ </div>
+ </div>
+ <div data-ng-repeat="choice in temp.policy.fwattributes" class="form-horizontal" >
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-model="choice.option" ng-disabled ="temp.policy.readOnly" ng-options="option for option in fwDictListDictionaryDatas track by option" ></select>
+ </div>
+ <div class="fn-ebz-container">
+ <button type="button" class="btn btn-default" ng-disabled ="temp.policy.readOnly" ng-show="$last" ng-click="removefwDictChoice()"><i class="fa fa-minus"></i></button>
+ </div>
+ </div>
+ </form>
+ </div>
+ <br/>
+ <div class="fn-ebz-container" >
+ <label>Rule Setup:</label><br>
+ <form method="post" class="form-horizontal" >
+ <div class="form-group">
+ <div class="col-xs-1">
+
+ <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 data-ng-repeat="choice in temp.policy.attributes" class="form-horizontal" >
+ <div class="fn-ebz-container">
+ <select class="form-field" ng-model="choice.option" ng-disabled ="temp.policy.readOnly" ng-options="option for option in termListDictionaryDatas track by option" ><option value="">{{choice.option}}</option></select>
+ </div>
+ <div class="fn-ebz-container">
+ <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>
+ </form>
+ </div>
+ </div>
+ <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="button button--primary button--small" 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-click="saveFWPolicy(temp);">Save</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">Close</button>
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html
new file mode 100644
index 000000000..80fe80ee7
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html
@@ -0,0 +1,79 @@
+<!--
+ ============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 animated fadeIn" id="createNewPolicy" style="margin-bottom: 20px; width: 100%" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal__informative font-showcase" style="width:95%;">
+ <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 class="form-horizontal" role="form">
+ <div class="form-group">
+ <label >Policy Type:</label>
+ <div>
+ <select class="form-field" 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">
+ <label>Config Policy Type:</label>
+ <div>
+ <select class="form-field" 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>DCAE 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 == 'DCAE Micro Service'" ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/DCAEMicroServicePolicyTemplate.html'"></div>
+ <div ng-if ="temp.policy.configPolicyType == 'Firewall Config'">
+ <div class="form-group">
+ <label>Firewall Policy Type:</label>
+ <div>
+ <select class="form-field" ng-model="temp.policy.fwPolicyType" ng-disabled ="temp.policy.readOnly || temp.policy.editPolicy">
+ <option>Parent Policy</option>
+ <option>Child Policy</option>
+ </select>
+ </div>
+ <div ng-if ="temp.policy.fwPolicyType == 'Parent Policy'" ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html'"></div>
+ <div ng-if ="temp.policy.fwPolicyType == 'Child Policy'" ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/FirewallPolicyTemplate.html'"></div>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>