SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/ticket/copy-change-controller.js

98 lines
3.8 KiB
JavaScript

"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();
}
]);
})();