"use strict"; /** * Created by prenge on 06-09-2018. */ (function () { 'use strict'; angular.module('createTicketModule') .controller('CopyChangeController', ['$scope', '$modalInstance', 'systemAlertService', '$filter', 'ticket', 'ticketService', '$state', 'relationModel', function ($scope, $modalInstance, systemAlertService, $filter, ticket, ticketService, $state, relationModel) { var state = { processing: false }, selectAll = false; $scope.dataSaving = false; $scope.state = state; $scope.isCheckedAll = false; $scope.copyOptions = { copyRequestForCustomer: 'No', copyCI: 'No', copyImpactedAreas: 'No', copyRelatedChange: 'No', copyDocument: 'No', copyTaskAutomatic: 'Yes', copyTaskManual: 'Yes', copyTaskCancelled: 'No', copyTaskFailed: 'No' }; $scope.init = function () { $scope.ticket = _.cloneDeep(ticket); $scope.state.processing = false; }; $scope.copyChange = function () { $scope.dataSaving = true; var req = {}; for (var key in $scope.copyOptions) { if ($scope.copyOptions[key] == "Yes") { req[key] = "Yes"; } } ticketService.copyChange($scope.ticket.id, req).then(function (response) { var hasRelatedCI = parentTicketHasCI(response); $state.go('draftChange', { id: response.id, editMode: true, isCopyChange: true, copyChangeId: $scope.ticket.id, ticket: response, hasRelatedCis: hasRelatedCI }); }).finally(function () { $scope.dataSaving = false; }); }; $scope.close = function () { $modalInstance.dismiss(); }; $scope.toggleSelectAll = function () { if (!selectAll) { selectAll = true; for (var key in $scope.copyOptions) { $scope.copyOptions[key] = "Yes"; } } else { selectAll = false; for (var key in $scope.copyOptions) { $scope.copyOptions[key] = "No"; } } }; $scope.disableTaskType = function () { if ($scope.copyOptions.copyTaskAutomatic == 'No' && $scope.copyOptions.copyTaskManual == 'No') { $scope.copyOptions.copyTaskCancelled = 'No'; $scope.copyOptions.copyTaskFailed = 'No'; } return !($scope.copyOptions.copyTaskAutomatic == 'Yes' || $scope.copyOptions.copyTaskManual == 'Yes'); }; $scope.$watch('copyOptions', function (newVal, oldVal) { for (var _i = 0, _a = Object.keys(newVal); _i < _a.length; _i++) { var key = _a[_i]; if (newVal[key] == 'No') { $scope.isCheckedAll = false; selectAll = false; } } }, true); function parentTicketHasCI(response) { var relatedCi = relationModel.cache[$scope.ticket.id]; if ($scope.copyOptions.copyCI == 'Yes' && relatedCi.length) { return true; } return false; } $scope.init(); } ]); })();