SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/common/edit-ticket-dates-service.js

134 lines
8.7 KiB
JavaScript

"use strict";
(function () {
'use strict';
angular.module('myitsmApp')
.service('editTicketDatesService', ['fieldValidationModel', function (fieldValidationModel) {
this.updateDateTime = function (form, ticket, type) {
if (ticket[type + 'StartDate'] == null && ticket[type + 'EndDate'] == null) {
if (form[type + 'EndDate']) {
form[type + 'EndDate'].$setValidity('validScheduledEndDateTime', true);
}
}
if (!ticket[type + 'StartDate'] && ticket[type + 'EndDate']) {
if (form[type + 'StartDate']) {
form[type + 'StartDate'].$setValidity('validScheduledStartDateTime', false);
}
}
else {
if (form[type + 'StartDate']) {
form[type + 'StartDate'].$setValidity('validScheduledStartDateTime', true);
}
}
if (ticket[type + 'StartDate'] && ticket[type + 'EndDate']) {
var startDateTime = ticket[type + 'StartDate'], endDateTime = ticket[type + 'EndDate'];
if (endDateTime < startDateTime) {
if (form[type + 'EndDate']) {
form[type + 'EndDate'].$setValidity('validScheduledEndDateTime', false);
}
}
else {
if (form[type + 'EndDate']) {
form[type + 'EndDate'].$setValidity('validScheduledEndDateTime', true);
}
}
}
};
this.updateTargetDateTime = function (form, ticket) {
if (form.targetDate && ticket.targetDate !== null) {
form.targetDate.$setValidity('validTargetDateTime', fieldValidationModel.isFutureDateTime(new Date(ticket.targetDate)));
}
};
this.scheduledStartDateDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? ticket.useTargetDate || isFieldDisabled(ticket, 'scheduledStartDate') || (ticket.actualStartDate || ticket.actualEndDate)
: ticket.type === 'change' && (!ticket.accessMappings.scheduleddateEditAllowed || isFieldDisabled(ticket, 'scheduledStartDate')) && !ignoreAccessMapping && ticket.isClosed();
};
this.scheduledStartTimeDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? !ticket.scheduledStartDate || ticket.useTargetDate || isFieldDisabled(ticket, 'scheduledStartDate')
: !ticket.scheduledStartDate || (ticket.type === 'change' && !ignoreAccessMapping && ticket.isClosed() && (!ticket.accessMappings.scheduleddateEditAllowed || isFieldDisabled(ticket, 'scheduledStartDate')));
};
this.scheduledEndDateDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? ticket.useTargetDate || isFieldDisabled(ticket, 'scheduledEndDate') || (ticket.actualStartDate || ticket.actualEndDate)
: ticket.type === 'change' && (!ticket.accessMappings.scheduleddateEditAllowed || isFieldDisabled(ticket, 'scheduledEndDate')) && !ignoreAccessMapping && ticket.isClosed();
};
this.scheduledEndTimeDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? !ticket.scheduledEndDate || ticket.useTargetDate || isFieldDisabled(ticket, 'scheduledEndDate')
: !ticket.scheduledEndDate || (ticket.type === 'change' && !ignoreAccessMapping && ticket.isClosed() && (!ticket.accessMappings.scheduleddateEditAllowed || isFieldDisabled(ticket, 'scheduledEndDate')));
};
this.actualStartDateDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? ticket.useTargetDate || (ticket.scheduledStartDate || ticket.scheduledEndDate)
: ticket.type === 'change' && (!ticket.accessMappings.actualdateEditAllowed) && !ignoreAccessMapping && ticket.isClosed();
};
this.actualStartTimeDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? !ticket.actualStartDate || ticket.useTargetDate
: !ticket.actualStartDate || (ticket.type === 'change' && !ignoreAccessMapping && ticket.isClosed() && !ticket.accessMappings.actualdateEditAllowed);
};
this.actualEndDateDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? ticket.useTargetDate || (ticket.scheduledStartDate || ticket.scheduledEndDate)
: ticket.type === 'change' && (!ticket.accessMappings.actualdateEditAllowed) && !ignoreAccessMapping && ticket.isClosed();
};
this.actualEndTimeDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? !ticket.actualEndDate || ticket.useTargetDate
: !ticket.actualEndDate || (ticket.type === 'change' && !ignoreAccessMapping && ticket.isClosed() && !ticket.accessMappings.actualdateEditAllowed);
};
this.deploymentStartDateDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? isFieldDisabled(ticket, 'deploymentStartDate')
: ticket.type === 'release' && (!ticket.accessMappings.deploymentdateEditAllowed || isFieldDisabled(ticket, 'deploymentStartDate')) && !ignoreAccessMapping && ticket.isClosed();
};
this.deploymentStartTimeDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? !ticket.deploymentStartDate || ticket.useTargetDate || isFieldDisabled(ticket, 'deploymentStartDate')
: !ticket.deploymentStartDate || (ticket.type === 'release' && !ignoreAccessMapping && ticket.isClosed() && (!ticket.accessMappings.deploymentdateEditAllowed || isFieldDisabled(ticket, 'deploymentStartDate')));
};
this.deploymentEndDateDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? isFieldDisabled(ticket, 'deploymentEndDate')
: ticket.type === 'release' && (!ticket.accessMappings.deploymentdateEditAllowed || isFieldDisabled(ticket, 'deploymentEndDate')) && !ignoreAccessMapping && ticket.isClosed();
};
this.deploymentEndTimeDisabled = function (ticket, editMode, ignoreAccessMapping) {
ticket = ticket || {};
return !editMode
? !ticket.deploymentEndDate || ticket.useTargetDate || isFieldDisabled(ticket, 'deploymentEndDate')
: !ticket.deploymentEndDate || (ticket.type === 'release' && !ignoreAccessMapping && ticket.isClosed() && (!ticket.accessMappings.deploymentdateEditAllowed || isFieldDisabled(ticket, 'deploymentEndDate')));
};
this.targetDateDisabled = function (ticket, editMode) {
ticket = ticket || {};
return !editMode
? !ticket.useTargetDate
: !ticket.accessMappings.targetdateEditAllowed || isFieldDisabled(ticket, 'targetDate');
};
this.targetTimeDisabled = function (ticket, editMode) {
ticket = ticket || {};
return !editMode
? !ticket.targetDate || !ticket.useTargetDate
: !ticket.targetDate || !ticket.accessMappings.targetdateEditAllowed || isFieldDisabled(ticket, 'targetDate');
};
function isFieldDisabled(ticket, field) {
var fieldDisabled = false;
if (ticket && ticket.timing) {
fieldDisabled = fieldValidationModel.isFieldDisabled(ticket.type ? ticket.type : EntityVO.TYPE_CHANGE, ticket.status && ticket.status.value ? ticket.status.value : 'Draft', ticket.timing.name ? ticket.timing.name : ticket.timing, field);
}
return fieldDisabled;
}
}]);
}());