SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/common/field-validation-model.js

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