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