98 lines
3.8 KiB
JavaScript
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();
|
|
}
|
|
]);
|
|
})();
|