diff options
Diffstat (limited to 'src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js')
-rw-r--r-- | src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js | 122 |
1 files changed, 87 insertions, 35 deletions
diff --git a/src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js b/src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js index 0cf4c2e3..806cfea9 100644 --- a/src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js +++ b/src/main/resources/META-INF/resources/designer/scripts/OperationalPolicyCtrl.js @@ -39,6 +39,8 @@ app $scope.number = 0; $scope.clname = ""; $scope.guard_ids = []; + $scope.duplicated = false; + function getAllFormId() { return Array.from(document.getElementsByClassName("formId")); @@ -179,7 +181,6 @@ app console.log("load properties to op policy"); // Set the header $.each($('#operationalPolicyHeaderForm').find('.form-control'), function() { - $(this).val(allPolicies['operational_policy']['controlLoop'][this.id]); }); // Set the sub-policies @@ -191,11 +192,15 @@ app $("#formId" + formNum + " .policyProperties").find("#" + opPolicyPropValue.id).val( allPolicies['operational_policy']['policies'][opPolicyElemIndex][opPolicyPropValue.id]); }); + + // Initial TargetResourceId options + initTargetResourceIdOptions(allPolicies['operational_policy']['policies'][opPolicyElemIndex]['target']['type'], formNum); $.each($('.policyTarget').find('.form-control'), function(opPolicyTargetPropIndex, opPolicyTargetPropValue) { $("#formId" + formNum + " .policyTarget").find("#" + opPolicyTargetPropValue.id).val( allPolicies['operational_policy']['policies'][opPolicyElemIndex]['target'][opPolicyTargetPropValue.id]); }); + // update the current tab label $("#go_properties_tab" + formNum).text( allPolicies['operational_policy']['policies'][opPolicyElemIndex]['id']); @@ -211,60 +216,99 @@ app $("#formId" + formNum + " .guardProperties").find("#" + guardPropElemValue.id).val( guardElemValue[guardPropElemValue.id]); }); + iniGuardPolicyType(guardElemId, formNum); // And finally enable the flag $("#formId" + formNum + " #enableGuardPolicy").prop("checked", true); } }); }); } - $scope.initTargetResourceId = function(event) { - var formNum = $(event.target).closest('.formId').attr('id').substring(6); - - var type = $(event.target).val(); - var recipe = $("#formId" + formNum + "#recipe").val(); - $("#formId" + formNum + " #modelName").val(""); - $("#formId" + formNum + " #modelInvariantId").val(""); - $("#formId" + formNum + " #modelVersionId").val(""); - $("#formId" + formNum + " #modelVersion").val(""); - $("#formId" + formNum + " #modelCustomizationId").val(""); - $("#formId" + formNum + " #resourceId").empty(); - $("#formId" + formNum + " #resourceId").append($('<option></option>').val("").html("-- choose an option --")); - if (type == "VM" || type == "" || type == "VNF") { - $("#formId" + formNum + " #metadata *").prop('disabled', true); + function iniGuardPolicyType (guardPolicyId, formNum) { + if(guardPolicyId.indexOf('guard.minmax.') !== -1) { + $("#formId" + formNum + " #minMaxGuardPolicyDiv").show(); + $("#formId" + formNum + " #frequencyLimiterGuardPolicyDiv").hide(); + $("#formId" + formNum + " #guardPolicyType").val("GUARD_MIN_MAX"); + } else if (guardPolicyId.indexOf('guard.frequency.') !== -1) { + $("#formId" + formNum + " #minMaxGuardPolicyDiv").hide(); + $("#formId" + formNum + " #frequencyLimiterGuardPolicyDiv").show(); + $("#formId" + formNum + " #guardPolicyType").val("GUARD_YAML"); } + } + function initTargetResourceIdOptions (targetType, formNum) { + var recipe = $("#formId" + formNum + "#recipe").val(); + $("#formId" + formNum + " #resourceID").empty(); + $("#formId" + formNum + " #resourceID").append($('<option></option>').val("").html("-- choose an option --")); + var resourceVnf = getResourceDetailsVfProperty(); - if (type == "VNF" && (null !== resourceVnf || undefined !== resourceVnf)) { + if (targetType == "VNF" && (null !== resourceVnf || undefined !== resourceVnf)) { for ( var prop in resourceVnf) { var name = resourceVnf[prop]["name"]; - $("#formId" + formNum + " #resourceId").append($('<option></option>').val(name).html(name)); + $("#formId" + formNum + " #resourceID").append($('<option></option>').val(name).html(name)); } } var resourceVFModule = getResourceDetailsVfModuleProperty(); - if (type == "VFModule" && (null !== resourceVFModule || undefined !== resourceVFModule)) { + if (targetType == "VFMODULE" && (null !== resourceVFModule || undefined !== resourceVFModule)) { if (recipe == 'VF Module Create' || recipe == 'VF Module Delete') { for ( var prop in resourceVFModule) { if (resourceVFModule[prop]["isBase"] == false) { - $("#formId" + formNum + " #resourceId").append($('<option></option>').val(resourceVFModule[prop]["vfModuleModelName"]).html(resourceVFModule[prop]["vfModuleModelName"])); + $("#formId" + formNum + " #resourceID").append($('<option></option>').val(resourceVFModule[prop]["vfModuleModelName"]).html(resourceVFModule[prop]["vfModuleModelName"])); } } } else { for ( var prop in resourceVFModule) { - $("#formId" + formNum + " #resourceId").append($('<option></option>').val(resourceVFModule[prop]["vfModuleModelName"]).html(resourceVFModule[prop]["vfModuleModelName"])); + $("#formId" + formNum + " #resourceID").append($('<option></option>').val(resourceVFModule[prop]["vfModuleModelName"]).html(resourceVFModule[prop]["vfModuleModelName"])); } } } } + + function initTargetModelAttributes (formNum) { + $("#formId" + formNum + " #modelName").val(""); + $("#formId" + formNum + " #modelInvariantId").val(""); + $("#formId" + formNum + " #modelVersionId").val(""); + $("#formId" + formNum + " #modelVersion").val(""); + $("#formId" + formNum + " #modelCustomizationId").val(""); + } + + $scope.initTargetResourceId = function(event) { + var formNum = $(event.target).closest('.formId').attr('id').substring(6); + initTargetModelAttributes(formNum); + var type = $(event.target).val(); + initTargetResourceIdOptions(type, formNum); + } + + $scope.changeGuardId = function(formItemActive) { + if (formItemActive === undefined) { + formItemActive = searchActiveFormId(); + if (formItemActive === undefined) { + return; + } + } + var oldValue = $("#" + formItemActive.id + " .guardProperties #id").val(); + // remove old prefix + if(oldValue.indexOf('guard.minmax.') !== -1) { + oldValue = oldValue.substr(oldValue.indexOf('guard.minmax.') + 13); + } else if (oldValue.indexOf('guard.frequency.') !== -1) { + oldValue = oldValue.substr(oldValue.indexOf('guard.frequency.') + 16); + } + + var prefix = "guard."; + if ($("#" + formItemActive.id + " #guardPolicyType").val() === "GUARD_MIN_MAX") { + prefix = prefix + "minmax."; + } else if ($("#" + formItemActive.id + " #guardPolicyType").val() === "GUARD_YAML") { + prefix = prefix + "frequency."; + } + $("#" + formItemActive.id + " .guardProperties #id").val(prefix+oldValue); + } + $scope.changeTargetResourceId = function(event) { var formNum = $(event.target).closest('.formId').attr('id').substring(6); - $("#formId" + formNum +" #modelName").val(""); - $("#formId" + formNum +" #modelInvariantId").val(""); - $("#formId" + formNum +" #modelVersionId").val(""); - $("#formId" + formNum +" #modelVersion").val(""); - $("#formId" + formNum +" #modelCustomizationId").val(""); + initTargetModelAttributes(formNum); + var resourceVFModule = getResourceDetailsVfModuleProperty(); var type = $("#formId" + formNum +" #type").val(); var recipe = $("#formId" + formNum +" #recipe").val(); - if (type == "VFModule" && (null !== resourceVFModule || undefined !== resourceVFModule) + if (type == "VFMODULE" && (null !== resourceVFModule || undefined !== resourceVFModule) && (recipe == 'VF Module Create' || recipe == 'VF Module Delete')) { for ( var prop in resourceVFModule) { if (prop == $(event.target).val()) { @@ -292,6 +336,7 @@ app $("#" + formItemActive.id + " #minMaxGuardPolicyDiv").hide(); $("#" + formItemActive.id + " #frequencyLimiterGuardPolicyDiv").show(); } + $scope.changeGuardId(formItemActive); } $scope.initPolicySelect = function() { @@ -357,15 +402,22 @@ app $($("#formId" + formNum + " #actor")[1]).val($(event.target).val()); } // When we change the name of a policy - $scope.updateTabLabel = function(event) { - - // update policy id structure - var formNum = $(event.target).closest('.formId').attr('id').substring(6); - $scope.policy_ids.splice($scope.policy_ids.indexOf($("#formId" + formNum + " #id").val()), 1); - $scope.policy_ids.push($(event.target).val()); - // Update the tab now - $("#go_properties_tab" + formNum).text($(event.target).val()); - } + $scope.updateTabLabel = function (event) { + + // update policy id structure + var formNum = $(event.target).closest('.formId').attr('id').substring(6); + var policyId = $(event.target).val(); + if ($scope.policy_ids.includes(policyId)) { + console.log("Duplicated ID, cannot proceed"); + $scope.duplicated = true; + } else { + $scope.duplicated = false; + $scope.policy_ids.splice($scope.policy_ids.indexOf($("#formId" + formNum + " #id").val()), 1); + $scope.policy_ids.push($(event.target).val()); + // Update the tab now + $("#go_properties_tab" + formNum).text($(event.target).val()); + } + }; $scope.close = function() { console.log("close"); |