From 9a2cd4170c33326dc6a0829675fa4cef231efdd9 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Sun, 22 Sep 2019 20:04:28 +0300 Subject: Change-management: provide and use scheduler's fields through vm.scheduleWorkflow() In addition, show error message when no Portal-frame. Use the dumped data to revive ChangeManagementTest tests by capturing the error's payload. Issue-ID: VID-397 Change-Id: I978bf537c43b0e3933e82c761c60cd067ab2cf27 Signed-off-by: Ittay Stern --- .../new-change-management.controller.js | 46 ++++++++++++++++------ 1 file changed, 34 insertions(+), 12 deletions(-) (limited to 'vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js') diff --git a/vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js b/vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js index 28b3eea5d..f70d6250e 100644 --- a/vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js +++ b/vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js @@ -225,7 +225,7 @@ $uibModalInstance.close(); }; - vm.uploadConfigFile = function (file) { + vm.uploadConfigFile = function (file, item) { var defer = $q.defer(); Upload.upload({ url: "change-management/uploadConfigUpdateFile", @@ -235,7 +235,7 @@ }] }) .then(function (configUpdateResponse) { - vm.getInternalWorkFlowParameter("VNF Config Update", "FILE", "Attach configuration file").value = configUpdateResponse && JSON.parse(configUpdateResponse.data).payload; + item.value = configUpdateResponse && JSON.parse(configUpdateResponse.data).payload; defer.resolve(true); }) .catch(function (error) { @@ -443,6 +443,19 @@ } }; + vm.collectWorkflowFieldsValues = function () { + /** + * Transforms items with name and value properties, to associative map, e.g the array + * [{name: foo, value: bar}, {name: baz, value: fiz}] will become the object {foo: bar, baz: fiz} + */ + return vm.getAllInternalWorkFlowParameters( + vm.changeManagement.workflow + ).reduce(function (result, item) { + result[item.name] = item.value; + return result; + }, {}); + }; + vm.scheduleWorkflow = function () { $scope.widgetParameter = ""; // needed by the scheduler? @@ -456,11 +469,18 @@ } var data = { widgetName: 'Portal-Common-Scheduler', - widgetData: vm.changeManagement, + widgetData: Object.assign({}, vm.changeManagement, vm.collectWorkflowFieldsValues()), widgetParameter: $scope.widgetParameter }; - window.parent.postMessage(data, VIDCONFIGURATION.SCHEDULER_PORTAL_URL); + console.log("vm.scheduleWorkflow data:", data); + + if (window.parent !== window.self) { + window.parent.postMessage(data, VIDCONFIGURATION.SCHEDULER_PORTAL_URL); + } else { + vm.errorMsg = {message: "Portal not found. Cannot send: " + JSON.stringify(data)}; + throw vm.errorMsg; // prevent popup closure + } }; vm.executeWorkflow = function () { @@ -856,21 +876,23 @@ return form[itemName].$error.validateAsyncFn; }; - vm.getIdFor = function (type, id, name) { - return "internal-workflow-parameter-" + type + "-" + id + "-" + (name ? name.split(' ').join('-').toLowerCase() : ""); + vm.getIdFor = function (type, item) { + return "internal-workflow-parameter-" + type + "-" + item.id + "-" + (item.displayName ? item.displayName.split(' ').join('-').toLowerCase() : ""); }; - vm.getInternalWorkFlowParameters = function (workflow, type) { - if (workflow && vm.localWorkflowsParameters.has(workflow) && vm.localWorkflowsParameters.get(workflow).filter(parameter => parameter.type == type) != []) { - return vm.localWorkflowsParameters.get(workflow).filter(parameter => parameter.type == type); + vm.getAllInternalWorkFlowParameters = function (workflow) { + if (workflow && vm.localWorkflowsParameters.has(workflow) && vm.localWorkflowsParameters.get(workflow)) { + return vm.localWorkflowsParameters.get(workflow); } return []; }; + vm.getInternalWorkFlowParameters = function (workflow, type) { + return vm.getAllInternalWorkFlowParameters(workflow).filter(parameter => parameter.type === type); + }; + vm.getInternalWorkFlowParameter = function (workflow, type, parameterName) { - if (workflow && vm.localWorkflowsParameters.has(workflow) && vm.localWorkflowsParameters.get(workflow).filter(parameter => parameter.type == type) != []) { - return vm.localWorkflowsParameters.get(workflow).filter(parameter => parameter.type == type).filter(parameter => parameter.name === parameterName)[0] - } + return vm.getInternalWorkFlowParameters(workflow, type).filter(parameter => parameter.displayName === parameterName)[0]; }; vm.getRemoteWorkflowSource = (workflow) => { -- cgit 1.2.3-korg