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