44 lines
2.0 KiB
JavaScript
44 lines
2.0 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('myitsmApp')
|
|
.service('fieldValidationModel', ['configurationModel', function (configurationModel) {
|
|
this.isFieldRequired = function (ticketType, status, timing, field) {
|
|
switch (ticketType) {
|
|
case EntityVO.TYPE_CHANGE:
|
|
var requiredFieldsForClass = configurationModel.get('requiredFields.change')[timing];
|
|
return requiredFieldsForClass
|
|
&& requiredFieldsForClass[status]
|
|
&& requiredFieldsForClass[status].indexOf(field) !== -1;
|
|
case EntityVO.TYPE_RELEASE:
|
|
case EntityVO.TYPE_TASK:
|
|
case EntityVO.TYPE_INCIDENT:
|
|
case EntityVO.TYPE_PROBLEM:
|
|
var requiredFields = configurationModel.get('requiredFields.' + ticketType);
|
|
return requiredFields
|
|
&& requiredFields[status]
|
|
&& requiredFields[status].indexOf(field) !== -1;
|
|
default:
|
|
return false;
|
|
}
|
|
};
|
|
this.isFieldDisabled = function (ticketType, status, timing, field) {
|
|
switch (ticketType) {
|
|
case EntityVO.TYPE_CHANGE:
|
|
var disabledFieldsForClass = configurationModel.get('disabledFields.change')[timing];
|
|
return disabledFieldsForClass
|
|
&& disabledFieldsForClass[status]
|
|
&& disabledFieldsForClass[status].indexOf(field) !== -1;
|
|
default:
|
|
return false;
|
|
}
|
|
};
|
|
this.isFutureDateTime = function (dateTime) {
|
|
return dateTime ? getTimestamp(dateTime) > new Date().getTime() : true;
|
|
};
|
|
function getTimestamp(date) {
|
|
return moment(date).format('X') * 1000;
|
|
}
|
|
}]);
|
|
}());
|