Included Policy GUI Enhancements and validations
[policy/engine.git] / POLICY-SDK-APP / src / main / webapp / app / policyApp / policy-models / Editor / PolicyTemplates / DecisionPolicyTemplate.html
index d386770..95bf689 100644 (file)
@@ -7,21 +7,22 @@
                                                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" />
+                                               title="Enter Policy Name without any spaces and special characters and will accept _." />
                                </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" />
+                                               ng-model="temp.policy.policyDescription" 
+                                               title="Description field will accept any type of data."/>
                                </div>
                        </div>
                        <div class="form-group row">
                                <div class="form-group col-sm-6">
-                                       <label>Ecomp Name:<sup><b>*</b></sup></label> <select
+                                       <label>Onap 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>
+                                               ng-model="temp.policy.onapName"
+                                               ng-options="option for option in onapNameDictionaryDatas track by option"
+                                               required pattern="\S+" title="Select the dropdown value driven from OnapName (common)Dictionary."></select>
                                </div>
                                <div class="form-group col-sm-6">
                                        <label>Rule Provider:<sup><b>*</b></sup></label><select
                                                ng-click="providerListener(temp.policy.ruleProvider);">
                                                <option>Custom</option>
                                                <option>AAF</option>
+                                               <option>Rainy_Day</option>
+                                               <option>GUARD_YAML</option>
+                                               <option>GUARD_BL_YAML<option>
                                        </select>
                                </div>
                        </div>
                </div>
+               <div ng-if="temp.policy.ruleProvider == 'Rainy_Day'">
+                       <div class="well">
+                               <div class="form-group row">
+                                       <div class="form-group row">
+                                               <div class="form-group col-sm-1">
+                                                       <label>Service Type:<sup><b>*</b></sup></label>
+                                               </div>
+                                               <div class="form-group col-sm-2">
+                                                       <input type="text" class="form-control"
+                                                               ng-disabled="temp.policy.readOnly" ng-model="temp.policy.rainyday.serviceType"
+                                                               placeholder="Service Type" title="Enter Service Type value."/>
+                                               </div>
+                                               <div class="form-group col-sm-1">
+                                                       <label>VNF Type:<sup><b>*</b></sup></label>
+                                               </div>
+                                               <div class="form-group col-sm-2">
+                                                       <input type="text" class="form-control"
+                                                               ng-disabled="temp.policy.readOnly" ng-model="temp.policy.rainyday.vnfType"
+                                                               placeholder="VNF Type" title="Enter VNF Type value."/>
+                                               </div>
+                                               <div class="form-group col-sm-1">
+                                                       <label>Building Block ID:<sup><b>*</b></sup></label>
+                                               </div>
+                                               <div class="form-group col-sm-2">
+                                                               <select
+                                                                       class="form-control" ng-disabled="temp.policy.readOnly"
+                                                                       ng-model="temp.policy.rainyday.bbid"
+                                                                       ng-options="option for option in rainyDayDictionaryDatas track by option"
+                                                                       ng-change="getWorkstepValues(temp.policy.rainyday.bbid)" title="Select the dropdown value driven from Rainday Allowed Treatments (Decision)Dictionary.">
+                                                                       <option value="">{{temp.policy.rainyday.bbid}}</option>
+                                                               </select>
+                                               </div>
+                                               <div class="form-group col-sm-1">
+                                                       <label>Work Step:<sup><b>*</b></sup></label>
+                                               </div>
+                                               <div class="form-group col-sm-2">
+                                                       <select
+                                                                       class="form-control" ng-disabled="temp.policy.readOnly"
+                                                                       ng-model="temp.policy.rainyday.workstep"
+                                                                       ng-options="option for option in workstepDictionaryDatas track by option"
+                                                                       ng-change="getTreatmentValues(temp.policy.rainyday.bbid, temp.policy.rainyday.workstep)">
+                                                                       <option value="">{{temp.policy.rainyday.workstep}}</option>
+                                                       </select>
+                                               </div>
+                                       </div>
+                                       <div class="form-group row">
+                                               <div class="form-group col-sm-3">
+                                                       <label>Desired Automated Treatments:</label>
+                                                       <button type="button" class="btn btn-default"
+                                                               ng-disabled="temp.policy.readOnly"
+                                                               ng-click="addNewTreatment()">
+                                                               <i class="fa fa-plus"></i>
+                                                       </button>
+                                               </div>
+                                       </div>
+                                       <div class="form-group row">
+                                       <div data-ng-repeat="treatmentTableChoice in temp.policy.rainyday.treatmentTableChoices">
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-1">
+                                                               <label>Error Code:<sup><b>*</b></sup></label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly"
+                                                                       ng-model="treatmentTableChoice.errorcode"
+                                                                       placeholder="Error Code" />
+                                                       </div>
+                                                       <div class="form-group col-sm-1">
+                                                               <label>Desired Treatment:<sup><b>*</b></sup></label>
+                                                       </div>          
+                                                       <div class="form-group col-sm-3">
+                                                               <select
+                                                                       class="form-control" 
+                                                                       ng-disabled="temp.policy.readOnly"
+                                                                       ng-model="treatmentTableChoice.treatment"
+                                                                       ng-options="option for option in allowedTreatmentsDatas track by option">
+                                                                       <option value="">{{treatmentTableChoice.treatment}}</option>
+                                                               </select>                                               
+                                                       </div>
+                                                       <div class="form-group col-sm-1">
+                                                               <button type="button" class="btn btn-default"
+                                                                       ng-disabled="temp.policy.readOnly"
+                                                                       ng-click="removeTreatment()">
+                                                                       <i class="fa fa-minus"></i>
+                                                               </button>
+                                                       </div>
+                                               </div>
+                                       </div>
+                                       </div>
+                               </div>
+                       </div>
+               </div>
+               <div ng-if="temp.policy.ruleProvider == 'GUARD_BL_YAML'">
+                       <div class="well">
+                               <div class="form-group row">
+                                       <div class="form-group col-sm-1">
+                                               <label>Guard BlackList YAML Attributes:</label><br>
+                                       </div>
+                               </div>
+                               <div class="form-group row">
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> actor: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.actor"
+                                                                       placeholder="Actor" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> recipe: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.recipe"
+                                                                       placeholder="Recipe" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> CLName: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.clname"
+                                                                       placeholder="CLName" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> guardActiveStart: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveStart"
+                                                                       placeholder="00:00:00-05:00" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> guardActiveEnd: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveEnd"
+                                                                       placeholder="00:00:00-05:00" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> BlackList: </label>
+                                                               <button type="button" class="btn btn-default"
+                                                                       ng-disabled="temp.policy.readOnly" ng-click="addNewBL()">
+                                                                       <i class="fa fa-plus"></i>
+                                                               </button>
+                                                       </div>
+                                                       <div class="form-group col-sm-4">
+                                                               <div data-ng-repeat="choice in temp.policy.yamlparams.blackList track by $index">
+                                                                       <div class="form-group row">
+                                                                       <div class="form-group col-sm-9">
+                                                                               <input type="text" class="form-control"
+                                                                               ng-disabled="temp.policy.readOnly"
+                                                                               ng-model="temp.policy.yamlparams.blackList[$index]" placeholder="BlackList" />
+                                                                       </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="removeBL()">
+                                                                               <i class="fa fa-minus"></i>
+                                                                               </button>
+                                                                       </div>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
+                                               </div>
+                               </div>
+                       </div>
+               </div>
+               
+               <div ng-if="temp.policy.ruleProvider == 'GUARD_YAML'">
+                       <div class="well">
+                               <div class="form-group row">
+                                       <div class="form-group col-sm-1">
+                                               <label>Guard YAML Attributes:</label><br>
+                                       </div>
+                               </div>
+                               <div class="form-group row">
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> actor: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.actor"
+                                                                       placeholder="Actor" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> recipe: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.recipe"
+                                                                       placeholder="Recipe" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> CLName: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.clname"
+                                                                       placeholder="CLName" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> Targets: </label>
+                                                               <button type="button" class="btn btn-default"
+                                                                       ng-disabled="temp.policy.readOnly" ng-click="addNewTarget()">
+                                                                       <i class="fa fa-plus"></i>
+                                                               </button>
+                                                       </div>
+                                                       <div class="form-group col-sm-4">
+                                                               <div data-ng-repeat="choice in temp.policy.yamlparams.targets track by $index">
+                                                                       <div class="form-group row">
+                                                                       <div class="form-group col-sm-9">
+                                                                               <input type="text" class="form-control"
+                                                                               ng-disabled="temp.policy.readOnly"
+                                                                               ng-model="temp.policy.yamlparams.targets[$index]" placeholder="Target" />
+                                                                       </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="removeTarget()">
+                                                                               <i class="fa fa-minus"></i>
+                                                                               </button>
+                                                                       </div>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> limit: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.limit"
+                                                                       placeholder="Limit" title="Enter time limit value."/>
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> timeWindow: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-2">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.timeWindow"
+                                                                       placeholder="Time Window" title="Enter time window value."/>
+                                                       </div>
+                                                       <div class="form-group col-sm-1">
+                                                               <select class="form-control" ng-disabled="temp.policy.readOnly" 
+                                                               ng-model="temp.policy.yamlparams.timeUnits" title="Select the Time Units value from dropdown options.">
+                                                               <option>minute</option>
+                                                               <option>hour</option>
+                                                               <option>day</option>
+                                                               <option>week</option>
+                                                               <option>month</option>
+                                                               <option>year</option>
+                                                               </select>
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> guardActiveStart: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveStart" title="Enter Guard Active Start value in following patren '00:00:00-05:00'."
+                                                                       placeholder="00:00:00-05:00" />
+                                                       </div>
+                                               </div>
+                                               <div class="form-group row" style="margin-left: 2%">
+                                                       <div class="form-group col-sm-3">
+                                                               <label> guardActiveEnd: </label>
+                                                       </div>
+                                                       <div class="form-group col-sm-3">
+                                                               <input type="text" class="form-control"
+                                                                       ng-disabled="temp.policy.readOnly" ng-model="temp.policy.yamlparams.guardActiveEnd" title="Enter Guard Active End value in following patren '00:00:00-05:00'."
+                                                                       placeholder="00:00:00-05:00" />
+                                                       </div>
+                                               </div>
+                               </div>
+                       </div>
+               </div>
+
 
                <div ng-if="temp.policy.ruleProvider == 'Custom'">
                        <div class="well">
                                        <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()">
+                                                       ng-disabled="temp.policy.readOnly" ng-click="addNewChoice()" title="onClick Component Attribute row is added.">
                                                        <i class="fa fa-plus"></i>
                                                </button>
                                        </div>
                                                        <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">
+                                                                       ng-options="option for option in attributeDictionaryDatas track by option" title="Select the dropdown value driven from Attribute (common)Dictionary.">
                                                                        <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" />
+                                                                       placeholder="Attribute Value" title="Enter the Attribute Value without any spaces and special characters"/>
                                                        </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()">
+                                                                       ng-disabled="temp.policy.readOnly" ng-click="removeChoice()" title="onClick will remove the last row">
                                                                        <i class="fa fa-minus"></i>
                                                                </button>
                                                        </div>
                                                <label>Settings Attributes:</label><br>
                                                <button type="button" class="btn btn-default"
                                                        ng-disabled="temp.policy.readOnly"
-                                                       ng-click="addNewSettingsChoice()">
+                                                       ng-click="addNewSettingsChoice()" title="onClick Settings Attribute row is added.">
                                                        <i class="fa fa-plus"></i>
                                                </button>
                                        </div>
                                                        <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">
+                                                                       ng-options="option for option in settingsDictionaryDatas track by option" title="Select the dropdown value driven from Settings (Decision)Dictionary.">
                                                                        <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" />
+                                                                       ng-model="settingschoice.value" placeholder="Settings Value" title="Enter the Settings Attribute Value without any spaces and special characters"/>
                                                        </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()">
+                                                                       ng-click="removeSettingsChoice()" title="onClick will remove the last row">
                                                                        <i class="fa fa-minus"></i>
                                                                </button>
                                                        </div>
 
                <div ng-if="temp.policy.ruleProvider == 'Custom'">
                        <div class="well">
-                               <label>Decision Rule Algorithms:<sup><b>*</b></sup></label><br>
+                               <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()">
+                                                       ng-click="addNewRuleAlgorithm()" title="onClick Rule Algorithms row is added.">
                                                        <i class="fa fa-plus"></i>
                                                </button>
                                        </div>
                                                                        ng-disabled="temp.policy.readOnly"
                                                                        ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmField1"
                                                                        ng-options="option for option in attributeDictionaryDatas track by option"
-                                                                       name="dynamicRuleAlgorithmField1">
+                                                                       name="dynamicRuleAlgorithmField1" title="Select the dropdown value driven from Attribute (common)Dictionary or Settings (Decision)Dictionary.">
                                                                        <option value="">{{ruleAlgorithmschoice.dynamicRuleAlgorithmField1}}</option>
                                                                </select>
                                                        </div>
                                                                        ng-disabled="temp.policy.readOnly"
                                                                        ng-model="ruleAlgorithmschoice.dynamicRuleAlgorithmCombo"
                                                                        ng-options="option for option in functionDefinitionDatas track by option"
-                                                                       name="dynamicRuleAlgorithmCombo"></select>
+                                                                       name="dynamicRuleAlgorithmCombo" title="Select the dropdown value driven from FunctionDataType."></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" />
+                                                                       name="dynamicRuleAlgorithmField2" title="Enter the Value without any spaces and special characters and for rule formation use A1, A2,..etc., based on above Rules."/>
                                                        </div>
                                                        <div class="form-group col-sm-1">
                                                                <button type="button" class="btn btn-default"
                                                                        ng-disabled="temp.policy.readOnly"
-                                                                       ng-click="removeRuleAlgorithm()">
+                                                                       ng-click="removeRuleAlgorithm()" title="onClick will remove the last row">
                                                                        <i class="fa fa-minus"></i>
                                                                </button>
                                                        </div>
                <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>
+                               ng-click="validatePolicy(temp.policy);" title="Validate the data entered in the Policy fields.">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>
+                               ng-click="saveDecisionPolicy(temp);" title="Save the Policy with validated data.">Save</button>
+                       <button type="button" class="btn btn-default" ng-click="refresh();" title="Close the template.">Close</button>
                </div>
        </form>
-</div>
+</div>
\ No newline at end of file