{"version":3,"file":"../../js/Roster/qmc.roster.min.js","sources":["qmc.roster.min.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n(function () {\n angular.module('QMC.Roster', []).config(routes);\n routes.$inject = ['$locationProvider', '$stateProvider', 'qmcBase'];\n function routes($locationProvider, $stateProvider, qmcBase) {\n $locationProvider.html5Mode({\n enabled: false,\n requireBase: false\n });\n $stateProvider\n .state('Roster', {\n url: '/roster?:startDay',\n templateUrl: qmcBase + '/roster',\n controller: 'RosterController',\n controllerAs: 'vm',\n resolve: {\n data: [function () {\n console.log('Current State: Roster');\n }]\n },\n params: {\n startDay: {\n dynamic: true\n }\n }\n });\n }\n})();\nvar QMC;\n(function (QMC) {\n var Roster;\n (function (Roster) {\n var Constants = /** @class */ (function () {\n function Constants() {\n }\n Constants.SERVICE = \"2db0eb84-7e2c-45c0-bde7-89d3fc7ba86b\";\n Constants.SUBTYPE_PLANNED = \"20f4990c-f722-4358-9a53-01e4c013a691\";\n Constants.SUBTYPE_DOCUMENTED = \"8762a244-16c8-412e-93b6-1e21f3c25222\";\n Constants.MISCELLANIOUS_TEMPLATE = '5d70cf86-cb00-4524-8ebd-02d43c754abf';\n Constants.SERVICE_WV_HOLIDAY = '370c3177-db5b-4673-bc9f-b49bc9e242c7';\n Constants.SERVICE_TYPE_HOLIDAY = '8bdf6a27-a881-4b4b-8abf-3bedb5156df2';\n Constants.SERVICE_SUBTYPE_HOLIDAY_HOLIDAY = 'be395209-7121-48f7-af6c-cb66563a1841';\n Constants.SERVICE_SUBTYPE_HOLIDAY_SPECIAL = '105fcc3c-ed8f-405a-bc60-c32fd75bf14f';\n Constants.SERVICE_SUBTYPE_HOLIDAY_TRAINING = 'a7da1703-ef0d-4384-a868-c73e25683adb';\n Constants.SERVICE_WV_DISEASE = '122cef0e-ba67-4a69-aa5a-98aec16fb4f0';\n Constants.SERVICE_TYPE_DISEASE = 'dac03d14-8a88-4030-91db-ad65998986c2';\n Constants.SERVICE_SUBTYPE_DISEASE_STANDARD = '66783b01-9502-43db-a1af-9bbbcf48a1cf';\n Constants.SERVICE_SUBTYPE_DISEASE_ACCIDENT = '642bf8b1-f3a0-4755-9c66-b757f67f9d78';\n Constants.SERVICE_TYPE_EXEMPTION = '281aa8c1-340d-4ee3-979c-b8dc218a1a28';\n Constants.SERVICE_WV_EXEMPTION = 'e8feeb37-20cb-4a72-9b04-49f92fbd0dd4';\n Constants.SERVICE_SICKNOTETYPE_INITIALDOCUMENT = '37dd9194-a5b7-4055-a152-4aa0da30543b';\n return Constants;\n }());\n Roster.Constants = Constants;\n })(Roster = QMC.Roster || (QMC.Roster = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Roster;\n (function (Roster) {\n var RosterService = /** @class */ (function (_super) {\n __extends(RosterService, _super);\n function RosterService($http, $q) {\n var _this = _super.call(this, $http, $q) || this;\n _this.$http = $http;\n _this.$q = $q;\n _this.modulePath = '/Roster';\n ////////////////////////// SERVICE PLANNING //////////////////////////\n _this.servicePlanningPath = \"/Service\";\n ////////////////////////// SICKLEAVE //////////////////////////\n _this.sickLeavePath = \"/SickLeave\";\n _this.sickNotePath = \"/SickNote\";\n ////////////////////////// Exemption //////////////////////////\n _this.exemptionPath = \"/Exemption\";\n return _this;\n }\n RosterService.prototype.getTemplates = function () {\n return _super.prototype.get.call(this, this.modulePath + \"/Template\", {}, function (data) {\n return data;\n });\n };\n RosterService.prototype.getRosterWv = function () {\n return _super.prototype.getItem.call(this, this.modulePath + '/WvModel', {}, function (data) {\n return data;\n });\n };\n RosterService.prototype.getReferences = function (objectType) {\n return _super.prototype.get.call(this, this.modulePath + '/Reference', { objectType: objectType }, function (data) {\n return data;\n });\n };\n RosterService.prototype.getRosterData = function (referenceIds, referenceType, dateFrom, dateTo, predefinedView, includeSub, loadWorkingEventsData) {\n if (includeSub === void 0) { includeSub = false; }\n if (loadWorkingEventsData === void 0) { loadWorkingEventsData = true; }\n return _super.prototype.getItem.call(this, this.modulePath, { referenceIds: referenceIds, referenceObjectType: referenceType, dateFrom: dateFrom, dateTo: dateTo, predefinedViewId: predefinedView, includeSub: includeSub, loadWorkingEventsData: loadWorkingEventsData }, function (data) {\n return data;\n });\n };\n RosterService.prototype.getAwayData = function (dateFrom, dateTo) {\n return _super.prototype.get.call(this, this.modulePath + '/Away', { dateFrom: dateFrom, dateTo: dateTo }, function (data) {\n return data;\n });\n };\n RosterService.prototype.postServicePlanning = function (data) {\n return _super.prototype.post.call(this, this.modulePath + this.servicePlanningPath, data).then(function (d) {\n return d;\n });\n };\n RosterService.prototype.postServiceDocu = function (id, data) {\n return _super.prototype.post.call(this, this.modulePath + this.servicePlanningPath + \"/\" + id, data).then(function (d) {\n return d;\n });\n };\n RosterService.prototype.putService = function (id, data) {\n return _super.prototype.put.call(this, this.modulePath + this.servicePlanningPath + \"/\" + id, data).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.getService = function (id) {\n return _super.prototype.getItem.call(this, this.modulePath + this.servicePlanningPath + \"/\" + id, {}, function (d) {\n return d;\n });\n };\n RosterService.prototype.deleteService = function (id) {\n return _super.prototype.delete.call(this, this.modulePath + this.servicePlanningPath + '/' + id).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.checkForConflictErrors = function (data) {\n return _super.prototype.post.call(this, this.modulePath + this.servicePlanningPath + '/Validation/', data).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.validateNonService = function (data) {\n return _super.prototype.post.call(this, this.modulePath + this.servicePlanningPath + '/Validation/NewNonService', data).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.calculateDayValues = function (dateFrom, dateTo, referenceId) {\n return _super.prototype.post.call(this, this.modulePath + this.servicePlanningPath + \"/CalculateDayValues\", { dateFrom: dateFrom, dateTo: dateTo, referenceId: referenceId }).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.postSickLeave = function (data) {\n return _super.prototype.post.call(this, this.modulePath + this.sickLeavePath, data).then(function (d) {\n return d;\n });\n };\n RosterService.prototype.putSickLeave = function (id, data) {\n return _super.prototype.put.call(this, this.modulePath + this.sickLeavePath + \"/\" + id, data).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.getSickLeave = function (id) {\n return _super.prototype.getItem.call(this, this.modulePath + this.sickLeavePath + \"/\" + id, {}, function (d) {\n return d;\n });\n };\n RosterService.prototype.deleteSickLeave = function (id) {\n return _super.prototype.delete.call(this, this.modulePath + this.sickLeavePath + '/' + id).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.getSickLeaveWv = function () {\n return _super.prototype.getItem.call(this, this.modulePath + this.sickLeavePath + '/WvModel', {}, function (data) {\n return data;\n });\n };\n RosterService.prototype.postSickNote = function (sickLeaveId, data) {\n return _super.prototype.post.call(this, \"\" + this.modulePath + this.sickLeavePath + \"/\" + sickLeaveId + this.sickNotePath, data).then(function (d) {\n return d;\n });\n };\n RosterService.prototype.putSickNote = function (sickLeaveId, sickNoteId, data) {\n return _super.prototype.put.call(this, \"\" + this.modulePath + this.sickLeavePath + \"/\" + sickLeaveId + this.sickNotePath + \"/\" + sickNoteId, data).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.getSickNote = function (sickLeaveId, sickNoteId) {\n return _super.prototype.getItem.call(this, \"\" + this.modulePath + this.sickLeavePath + \"/\" + sickLeaveId + this.sickNotePath + \"/\" + sickNoteId, {}, function (d) {\n return d;\n });\n };\n RosterService.prototype.getSickNoteList = function (sickLeaveId) {\n return _super.prototype.getItem.call(this, \"\" + this.modulePath + this.sickLeavePath + \"/\" + sickLeaveId + this.sickNotePath, {}, function (d) {\n return d;\n });\n };\n RosterService.prototype.deleteSickNote = function (sickLeaveId, sickNoteId) {\n return _super.prototype.delete.call(this, \"\" + this.modulePath + this.sickLeavePath + \"/\" + sickLeaveId + this.sickNotePath + \"/\" + sickNoteId).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.postExemption = function (data) {\n return _super.prototype.post.call(this, this.modulePath + this.exemptionPath, data).then(function (d) {\n return d;\n });\n };\n RosterService.prototype.putExemption = function (id, data) {\n return _super.prototype.put.call(this, this.modulePath + this.exemptionPath + \"/\" + id, data).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.getExemption = function (id) {\n return _super.prototype.getItem.call(this, this.modulePath + this.exemptionPath + \"/\" + id, {}, function (d) {\n return d;\n });\n };\n RosterService.prototype.deleteExemption = function (id) {\n return _super.prototype.delete.call(this, this.modulePath + this.exemptionPath + '/' + id).then(function (data) {\n return data;\n });\n };\n RosterService.prototype.getExemptionWv = function () {\n return _super.prototype.getItem.call(this, this.modulePath + this.exemptionPath + '/WvModel', {}, function (data) {\n return data;\n });\n };\n RosterService = __decorate([\n QMC.Service('QMC.Roster', 'RosterService'),\n QMC.Inject('$http', '$q')\n ], RosterService);\n return RosterService;\n }(QMC.Common.BaseService));\n Roster.RosterService = RosterService;\n })(Roster = QMC.Roster || (QMC.Roster = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Roster;\n (function (Roster) {\n var RosterController = /** @class */ (function () {\n /////////////////////////// CONSTRUCTOR //////////////////////////\n function RosterController($location, rosterService, $qui, $scope, $stateParams, $state, lng, permissionService, clientService, userService, $compile, $timeout) {\n var _this_1 = this;\n this.$location = $location;\n this.rosterService = rosterService;\n this.$qui = $qui;\n this.$scope = $scope;\n this.$stateParams = $stateParams;\n this.$state = $state;\n this.lng = lng;\n this.permissionService = permissionService;\n this.clientService = clientService;\n this.userService = userService;\n this.$compile = $compile;\n this.$timeout = $timeout;\n //////////////////////////// VARIABLES ///////////////////////////\n this.supportMiscTemplates = [Roster.Constants.SERVICE_TYPE_HOLIDAY, Roster.Constants.SERVICE_TYPE_EXEMPTION, Roster.Constants.SERVICE_TYPE_DISEASE];\n this.localStorageItemName = \"RosterSettings\";\n this.isMobile = false;\n this.scrollPosition = 0;\n this.debounceCheckShowWeekends = false;\n this.debounceCheckHighlightWeekends = false;\n this.debounceCheckShowWorkingEventsInfo = false;\n this.debounceCheck = false;\n this.calendarCreated = false;\n this.showValidationBox = false;\n this.calendarNoReload = false; //when removing a reference, no need to call the api for new data, just delete the reference from the calendar resources\n this.askDroppedService = QMC.Common.UserSettingConstantsAndDefaults.ASKDROPPEDSERVICE;\n this.institutes = [];\n this.employees = [];\n this.serviceAdditionals = [];\n this.referenceTypes = [];\n this.references = [];\n this.predefinedViews = [];\n this.employeesList = [];\n this.rosterResources = [];\n this.rosterData = [];\n this.rosterEvents = [];\n this.isNegativeTimePeriodLock = false;\n this.resourceViewMobileCreated = false;\n this.loading = {\n template: false, calendar: false, institute: false, employee: true, wv: false, referenceTypes: false, references: false, detail: false, permission: false,\n allLoaded: function () {\n return !(_this_1.loading.template || _this_1.loading.institute || _this_1.loading.employee || _this_1.loading.wv || _this_1.loading.referenceTypes\n || _this_1.loading.references || _this_1.loading.detail || _this_1.loading.permission);\n },\n };\n this.permission = {\n view: false,\n service: {\n new: false,\n modify: false,\n delete: false\n },\n serviceDocumenteted: {\n new: false,\n modify: false,\n delete: false,\n openFile: false\n }\n };\n this.servicePermission = {\n view: false,\n new: false,\n modify: false,\n delete: false\n };\n this.rosterSettings = {\n showWeekends: true,\n showWorkingEventsInfo: true,\n viewDate: new Date(),\n dataFrom: new Date(),\n dataTo: new Date(),\n references: [],\n predefinedView: QMC.Common.Constants.GUID_EMPTY,\n referenceType: 120000,\n defaultSchedulerView: 'timelineMonth',\n highlightWeekends: true,\n includeSub: false,\n showOnlyActiveReferences: true\n };\n this.dblClick = null;\n this.clickTimer = null;\n this.isDragging = false;\n this.formState = 'new';\n ///////// Holiday\n this.holidayPermissions = { standard: undefined, special: undefined, approved: undefined, document: undefined, documentSpecial: undefined };\n this.holidayCallbacks = { onNew: function () { return _this_1.getRosterData(true); }, onEdit: function () { return _this_1.getRosterData(true); }, onDelete: function () { return _this_1.getRosterData(true); } };\n this.exemptionCallbacks = { onNew: function () { return _this_1.getRosterData(true); }, onEdit: function () { return _this_1.getRosterData(true); }, onDelete: function () { return _this_1.getRosterData(true); } };\n ///////// SickLeave\n this.sickLeavePermissions = { standard: undefined, accident: undefined, document: undefined };\n this.sickLeaveCallbacks = { onNew: function () { return _this_1.getRosterData(true); }, onEdit: function () { return _this_1.getRosterData(true); }, onDelete: function () { return _this_1.getRosterData(true); } };\n this.keepData = false;\n $qui.init($qui.getSectionColor($location.path()), function () {\n $qui.anonAvatar();\n $qui.bindEvents();\n $qui.navToggle();\n });\n this.selectedReferences = [];\n var localStorageItem = localStorage.getItem(this.localStorageItemName);\n if (localStorageItem !== null && localStorageItem !== \"\") {\n console.log(JSON.parse(localStorageItem).dataFrom);\n this.rosterSettings = JSON.parse(localStorageItem);\n this.rosterSettings.dataFrom = new Date();\n this.rosterSettings.dataTo = new Date();\n this.selectedReferences = this.rosterSettings.referenceType === 120000 ? this.rosterSettings.references : [];\n this.selectedReference = this.rosterSettings.referenceType !== 120000 ? this.rosterSettings.references[0] : QMC.Common.Constants.GUID_EMPTY;\n }\n else\n this.rosterSettings.references = [$('#session').data().personId];\n if (this.$stateParams.startDay) {\n this.rosterSettings.dataFrom = moment(this.$stateParams.startDay).toDate();\n this.rosterSettings.dataTo = moment(this.$stateParams.startDay).toDate();\n }\n else {\n this.$stateParams.startDay = new Date();\n }\n this.validation = {\n errors: [],\n warnings: [],\n isLoading: false\n };\n if (QMC.Common.Constants.IS_MOBILE) {\n this.isMobile = true;\n this.rosterSettings.showWorkingEventsInfo = true;\n }\n var _this = this;\n this.events();\n this.init();\n // get Permissions\n this.loading.permission = true;\n permissionService.getPermissionsByObjectTypes([410000, 411001, 120031, 120030, 411003, 411005, 120024, 411004, 411006, 411008, 411007, 411015, 411016, 411017]).then(function (data) {\n _this_1.permission.view = data[0].view && data[0].moduleAccess;\n _this_1.loading.permission = false;\n if (!_this_1.permission.view)\n return;\n _this_1.servicePermission = $.grep(data, function (e) { return e.objectType === 411001; })[0];\n //chek if the user has permission for documentating events / istzeit erfassen\n _this_1.permission.serviceDocumenteted.openFile = data[2].openFile;\n _this_1.permission.service = {\n new: _this_1.servicePermission.new,\n modify: _this_1.servicePermission.modify,\n delete: _this_1.servicePermission.delete\n };\n _this_1.wtOverviewPermission = $.grep(data, function (e) { return e.objectType === 120030; })[0];\n _this_1.holidayPermissions.standard = $.grep(data, function (e) { return e.objectType === 411003; })[0];\n _this_1.holidayPermissions.special = $.grep(data, function (e) { return e.objectType === 411005; })[0];\n _this_1.holidayPermissions.approved = $.grep(data, function (e) { return e.objectType === 120024; })[0];\n _this_1.holidayPermissions.document = $.grep(data, function (e) { return e.objectType === 411016; })[0];\n _this_1.holidayPermissions.documentSpecial = $.grep(data, function (e) { return e.objectType === 411017; })[0];\n _this_1.sickLeavePermissions.standard = $.grep(data, function (e) { return e.objectType === 411003; })[0];\n _this_1.sickLeavePermissions.accident = $.grep(data, function (e) { return e.objectType === 411006; })[0];\n _this_1.sickLeavePermissions.document = $.grep(data, function (e) { return e.objectType === 411008; })[0];\n _this_1.exemptionPermissions = {\n standard: $.grep(data, function (e) { return e.objectType === 411007; })[0],\n approved: $.grep(data, function (e) { return e.objectType === 120024; })[0],\n document: $.grep(data, function (e) { return e.objectType === 411015; })[0]\n };\n // load settings\n _this_1.userService.getUserSettings(['ROSTER.ASKDROPPEDSERVICE']).then(function (data) {\n _this_1.askDroppedService = data[0].value === '' ? QMC.Common.UserSettingConstantsAndDefaults.ASKDROPPEDSERVICE : data[0].value.toLowerCase() === 'true';\n });\n //setup the calendar\n _this_1.setupCalendar();\n // load data\n _this_1.getTemplates();\n _this_1.getInstitutes();\n _this_1.getEmployees();\n _this_1.getWvList();\n });\n this.resetCalendar();\n }\n ////////////////////////// DISPLAYLOGIC //////////////////////////\n ///// BEGIN Handler for selectNewServiceModal /////\n RosterController.prototype.openNewServiceSelect = function () {\n var _this_1 = this;\n var _a;\n if (!this.loading.allLoaded())\n return;\n this.selectedNewReference = $('#session').data().personId;\n if (!this.employees.some(function (x) { return x.value === _this_1.selectedNewReference; }))\n this.selectedNewReference = (_a = this.employees[0]) === null || _a === void 0 ? void 0 : _a.value;\n $('#selectNewServiceModal').modal('show');\n };\n // Button click handler for a template item\n RosterController.prototype.newServiceSelected = function (template) {\n var _this_1 = this;\n var reference = this.employees.filter(function (x) { return x.value === _this_1.selectedNewReference; })[0];\n this.eventReference = {\n id: reference.value,\n instituteId: reference.instituteId,\n name: reference.text\n };\n var wantedRosterType = { rosterTypeId: Roster.Constants.SERVICE, rosterSubTypeId: Roster.Constants.SUBTYPE_PLANNED };\n this.handleTemplateDrop(template, moment().startOf('day').toDate(), wantedRosterType);\n };\n // Button click handler if general \"Soll-Dienst\" was clicked\n RosterController.prototype.newServiceSelectedGeneralPlanning = function () {\n var _this_1 = this;\n var reference = this.employees.filter(function (x) { return x.value === _this_1.selectedNewReference; })[0];\n this.initNewForm();\n $('#new-service-modal').modal('show');\n this.serviceForm.referenceIds = [reference.value];\n };\n ///// END Handler for selectNewServiceModal /////\n // Handle drop of a template on a cell\n RosterController.prototype.handleTemplateDrop = function (template, date, droppedOnRosterType) {\n if (template.instituteId !== Roster.Constants.MISCELLANIOUS_TEMPLATE) {\n this.handleRosterDrop(template, date, droppedOnRosterType);\n }\n else if (template.serviceTypeId == Roster.Constants.SERVICE_TYPE_HOLIDAY) {\n this.handleHolidayDrop(template, date);\n }\n else if (template.serviceTypeId == Roster.Constants.SERVICE_TYPE_DISEASE) {\n this.handleDiseaseDrop(template, date);\n }\n else if (template.serviceTypeId == Roster.Constants.SERVICE_TYPE_EXEMPTION) {\n this.handleExemptionDrop(template, date);\n }\n else {\n this.$qui.notify({\n title: \"Sorry\",\n message: \"Not yet implemented\",\n icon: 'qm-icon-error',\n status: 'default',\n timer: 3000,\n delay: 1500\n });\n }\n this.$qui.scopeApply(this.$scope);\n };\n // Handle a roster template drop\n RosterController.prototype.handleRosterDrop = function (template, date, droppedOnRosterType) {\n var _a, _b;\n var wantedRosterType = (_a = droppedOnRosterType === null || droppedOnRosterType === void 0 ? void 0 : droppedOnRosterType.rosterTypeId) !== null && _a !== void 0 ? _a : Roster.Constants.SERVICE;\n var wantedSubType = (_b = droppedOnRosterType === null || droppedOnRosterType === void 0 ? void 0 : droppedOnRosterType.rosterSubTypeId) !== null && _b !== void 0 ? _b : Roster.Constants.SUBTYPE_PLANNED;\n var wantToCreateIsTime = wantedRosterType === Roster.Constants.SERVICE && wantedSubType === Roster.Constants.SUBTYPE_DOCUMENTED;\n var dateTo = this.calculateDateTo(date, template);\n this.validation.errors = [];\n this.validation.isLoading = false;\n var calendarInfo = {\n date: date,\n timeFrom: null,\n timeTo: null,\n referenceRessource: this.eventReference.id,\n referenceInstituteId: template.instituteId\n };\n this.initNewForm(template, calendarInfo);\n this.serviceForm.dateFrom = date;\n this.serviceForm.dateTo = dateTo;\n // This will create an Is-Time\n if (wantToCreateIsTime) {\n this.serviceForm.parentId = QMC.Common.Constants.GUID_EMPTY;\n }\n var mustOpenModal = this.askDroppedService || ((!wantToCreateIsTime) && this.isDateLockedForType(this.serviceForm.referenceIds, Roster.Constants.SUBTYPE_PLANNED, this.serviceForm.dateFrom, dateTo));\n if (mustOpenModal)\n this.openNewServiceModal();\n else\n this.saveNewService(this.serviceForm, false, wantToCreateIsTime);\n };\n RosterController.prototype.handleHolidayDrop = function (template, date) {\n var _a, _b;\n if (template.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_HOLIDAY_HOLIDAY && this.holidayPermissions.standard.new || template.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_HOLIDAY_SPECIAL && this.holidayPermissions.special.new) {\n this.holidayCalls.new({\n comment: \"\",\n dateFrom: moment(date).startOf('day').toDate(),\n dateTo: moment(date).endOf('day').toDate(),\n holidayTypeId: null,\n isSpecialHoliday: template.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_HOLIDAY_SPECIAL,\n color: template.color,\n amountOfDays: 1,\n amountOfHours: 0,\n accountingTypeFlag: 0,\n isManualDays: true,\n isManualHours: false,\n creditWorkAsHoliday: false,\n permissionApproved: (_a = this.holidayPermissions.approved) === null || _a === void 0 ? void 0 : _a.openFile,\n approvedId: ((_b = this.holidayPermissions.approved) === null || _b === void 0 ? void 0 : _b.openFile) ? QMC.Common.Constants.APPROVAL_APRROVED_ID : QMC.Common.Constants.APPROVAL_PENDING_ID\n });\n }\n else {\n this.$qui.notify({\n title: template.caption,\n message: this.lng.translate(20025005, 'Ihnen fehlt die Berechtigung'),\n icon: 'qm-icon-error',\n status: 'default',\n timer: 3000,\n delay: 1500\n });\n }\n };\n RosterController.prototype.handleDiseaseDrop = function (template, date) {\n var _a, _b, _c, _e;\n if (template.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_DISEASE_STANDARD && this.sickLeavePermissions.standard.new || template.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_DISEASE_ACCIDENT && this.sickLeavePermissions.accident.new) {\n this.sickLeaveCalls.new({\n id: null,\n objectId: null,\n comment: '',\n dateFrom: moment(date).startOf('day').toDate(),\n dateTo: moment(date).endOf('day').toDate(),\n color: template.color,\n amountOfDays: 0,\n amountOfHours: 0,\n accountingTypeFlag: 0,\n caption: template.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_DISEASE_ACCIDENT ? this.lng.translate(0, 'Arbeitsunfall') : this.lng.translate(0, 'Krankheit'),\n captionShort: (template.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_DISEASE_ACCIDENT ? this.lng.translate(0, 'Arbeitsunfall') : this.lng.translate(0, 'Krankheit')).substring(0, 1).toUpperCase(),\n diseaseKindId: null,\n referenceId: (_b = (_a = this.eventReference) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : $('#session').data().personId,\n instituteId: (_e = (_c = this.eventReference) === null || _c === void 0 ? void 0 : _c.instituteId) !== null && _e !== void 0 ? _e : null,\n serviceSubTypeId: template.serviceSubTypeId\n });\n }\n else {\n this.$qui.notify({\n title: template.caption,\n message: this.lng.translate(20025005, 'Ihnen fehlt die Berechtigung'),\n icon: 'qm-icon-error',\n status: 'default',\n timer: 3000,\n delay: 1500\n });\n }\n };\n RosterController.prototype.handleExemptionDrop = function (template, date) {\n var _a, _b, _c, _e, _f;\n if (this.exemptionPermissions.standard.new) {\n this.exemptionCalls.new({\n comment: '',\n dateFrom: moment(date).startOf('day').toDate(),\n dateTo: moment(date).endOf('day').toDate(),\n color: template.color,\n caption: this.lng.translate(20028042, 'Freistellung'),\n captionShort: this.lng.translate(20028042, 'Freistellung').substring(0, 1).toUpperCase(),\n exemptionKindId: null,\n referenceId: (_b = (_a = this.eventReference) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : $('#session').data().personId,\n instituteId: (_e = (_c = this.eventReference) === null || _c === void 0 ? void 0 : _c.instituteId) !== null && _e !== void 0 ? _e : null,\n serviceSubTypeId: template.serviceSubTypeId,\n permissionApproved: (_f = this.exemptionPermissions.approved) === null || _f === void 0 ? void 0 : _f.openFile,\n approvedId: QMC.Common.Constants.APPROVAL_PENDING_ID\n });\n }\n else {\n this.$qui.notify({\n title: template.caption,\n message: this.lng.translate(20025005, 'Ihnen fehlt die Berechtigung'),\n icon: 'qm-icon-error',\n status: 'default',\n timer: 3000,\n delay: 1500\n });\n }\n };\n RosterController.prototype.calculateDateTo = function (date, template) {\n //kill time component of drop date and create new moment\n var dropDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n var dropDateMoment = moment(dropDate);\n //get time component parts from dateFrom\n var momentTimeFrom = moment(template.timeFrom);\n var minutes = momentTimeFrom.minutes();\n var hours = momentTimeFrom.hours();\n //add hours and minutes to drop date\n var modDropDateMomentHours = dropDateMoment.clone().add(hours, 'hour');\n var modDropDateMomentMinutes = modDropDateMomentHours.clone().add(minutes, 'minute');\n //calculate timespan between the two dates in template\n var momentFrom = moment(template.timeFrom);\n var momentTo = moment(template.timeTo);\n var timespan = moment.duration(momentTo.diff(momentFrom));\n //add timespan to drop date and return dateTo\n return moment(modDropDateMomentMinutes).add(timespan).toDate();\n };\n RosterController.prototype.openExistingService = function (id) {\n this.formState = 'edit';\n $('#show-planning-modal').modal('hide');\n this.openNewServiceModal();\n this.getService(id);\n };\n RosterController.prototype.openExistingPlannedService = function (id) {\n $('#new-service-modal').modal('hide');\n $('#show-planning-modal').modal('show');\n this.getService(id);\n };\n RosterController.prototype.openModifyModal = function () {\n $('#show-planning-modal').modal('hide');\n this.openNewServiceModal();\n this.formState = 'edit';\n };\n RosterController.prototype.getTempaltesById = function (id) {\n if (this.templateList && this.templateList.filter(function (item) { return item.value === id; }).length > 0)\n return this.templateList.filter(function (item) { return item.value === id; })[0].items;\n return null;\n };\n RosterController.prototype.resetCalendar = function (keepData) {\n var _this_1 = this;\n if (keepData === void 0) { keepData = false; }\n if (keepData)\n this.keepData = true;\n $('#rosterCalendar').fullCalendar('destroy');\n this.setupCalendar(undefined);\n setTimeout(function () { return _this_1.keepData = false; }, 25);\n };\n RosterController.prototype.prepareForValidation = function (serviceForm, validationFormList, proposedConflictCheckAction) {\n if (proposedConflictCheckAction === void 0) { proposedConflictCheckAction = 0; }\n var _loop_1 = function (referenceItem) {\n var formToValidate = angular.copy(serviceForm);\n formToValidate.dateFrom = this_1.$qui.addTimeToDate(serviceForm.dateFrom, serviceForm.timeFrom);\n formToValidate.dateTo = this_1.$qui.addTimeToDate(serviceForm.dateTo, serviceForm.timeTo);\n formToValidate.reference = this_1.employeesList.filter(function (x) { return x.id === referenceItem; })[0].displayTitle;\n formToValidate.referenceId = referenceItem;\n formToValidate.institute = (serviceForm.instituteId !== null && serviceForm.instituteId !== undefined && serviceForm.instituteId !== QMC.Common.Constants.GUID_EMPTY) ? this_1.institutes.filter(function (x) { return x.value === serviceForm.instituteId; })[0].text : QMC.Common.Constants.GUID_EMPTY;\n formToValidate.conflictProposedAction = proposedConflictCheckAction;\n validationFormList.push(formToValidate);\n };\n var this_1 = this;\n for (var _i = 0, _a = serviceForm.referenceIds; _i < _a.length; _i++) {\n var referenceItem = _a[_i];\n _loop_1(referenceItem);\n }\n };\n RosterController.prototype.validate = function (form) {\n var _this_1 = this;\n if (form === void 0) { form = null; }\n if (!this.validationChanged())\n return;\n this.validation.errors = [];\n this.validation.warnings = [];\n var listToCheck = [];\n this.prepareForValidation(form !== null && form !== void 0 ? form : this.serviceForm, listToCheck);\n this.lastValidation = JSON.stringify(listToCheck);\n this.validation.isLoading = true;\n this.rosterService.checkForConflictErrors(listToCheck).then(function (conflictsResult) {\n _this_1.validation.errors = conflictsResult.errors;\n _this_1.validation.warnings = conflictsResult.warnings;\n _this_1.validation.isLoading = false;\n _this_1.showValidationBox = true;\n });\n };\n RosterController.prototype.validationChanged = function (form) {\n if (form === void 0) { form = null; }\n if (!this.lastValidation)\n return true;\n var listToCheck = [];\n this.prepareForValidation(form !== null && form !== void 0 ? form : this.serviceForm, listToCheck);\n listToCheck.forEach(function (x) { return delete x.conflictProposedAction; });\n var oldV = JSON.parse(this.lastValidation);\n oldV.forEach(function (x) { return delete x.conflictProposedAction; });\n return JSON.stringify(listToCheck) !== JSON.stringify(oldV);\n };\n RosterController.prototype.saveNewService = function (form, ignoreWarnings, postAsIsTime) {\n var _this_1 = this;\n if (ignoreWarnings === void 0) { ignoreWarnings = false; }\n if (postAsIsTime === void 0) { postAsIsTime = false; }\n this.validation.errors = [];\n this.validation.warnings = [];\n var listToCheck = [];\n this.prepareForValidation(form, listToCheck);\n this.lastValidation = JSON.stringify(listToCheck);\n //before saving check for conflicts\n form.dateFrom = this.$qui.addTimeToDate(form.dateFrom, form.timeFrom);\n form.dateTo = this.$qui.addTimeToDate(form.dateTo, form.timeTo);\n this.validation.isLoading = true;\n this.rosterService.checkForConflictErrors(listToCheck).then(function (conflictsResult) {\n if (conflictsResult.errors.length > 0 || (conflictsResult.warnings.length > 0 && !ignoreWarnings)) {\n _this_1.validation.errors = conflictsResult.errors;\n _this_1.validation.warnings = conflictsResult.warnings;\n _this_1.showValidationBox = true;\n }\n else {\n if (!postAsIsTime)\n _this_1.postPlanningOrIsTime(form);\n else\n _this_1.postIsTime(form);\n $('#new-service-modal').modal('hide');\n }\n }).finally(function () {\n _this_1.validation.isLoading = false;\n });\n };\n RosterController.prototype.getAdditionalString = function (ids) {\n var result = \"\";\n var _loop_2 = function (i) {\n result += $.grep(this_2.serviceAdditionals, function (e) { return e.value === ids[i]; })[0].text;\n if (i < ids.length - 1)\n result += \", \";\n };\n var this_2 = this;\n for (var i = 0; i < ids.length; i++) {\n _loop_2(i);\n }\n return result;\n };\n RosterController.prototype.createNewServiceFromPlanning = function () {\n this.serviceForm.parentId = this.serviceForm.objectId;\n this.isLocked = this.isDateLockedForType(this.serviceForm.referenceIds, !this.serviceForm.parentId ? Roster.Constants.SUBTYPE_PLANNED : Roster.Constants.SUBTYPE_DOCUMENTED, this.serviceForm.dateFrom, this.serviceForm.dateTo);\n this.validation.errors = this.isLocked ? [this.lng.translate(20028012, 'Im ausgewählten Zeitraum existiert für mindestens einen ausgewählten Mitarbeiter eine Anlagesperre.')] : [];\n this.serviceForm.id = null;\n this.serviceForm.objectId = null;\n this.formState = 'new';\n $('#show-planning-modal').modal('hide');\n this.openNewServiceModal();\n };\n RosterController.prototype.openNewServiceModal = function () {\n $('#new-service-modal').modal('show');\n };\n RosterController.prototype.getTextColor = function (color) {\n var r = parseInt('0x' + color.substr(1, 2));\n var g = parseInt('0x' + color.substr(3, 2));\n var b = parseInt('0x' + color.substr(5, 2));\n var hsp = (r * 299 + g * 587 + b * 114) / 1000;\n // Using the HSP value, determine whether the color is light or dark\n if (hsp > 123) {\n //light color, return black\n return '#000000';\n }\n else {\n //dark color return white\n return '#FFFFFF';\n }\n };\n RosterController.prototype.isDateLockedForType = function (referenceIds, type, dateFrom, dateTo) {\n if (!referenceIds || !this.locks)\n return false;\n var _loop_3 = function (referenceId) {\n var referenceLocks = this_3.locks.filter(function (item) { return item.id === referenceId; });\n if (referenceLocks.length === 0)\n return { value: false };\n var actualLocks = referenceLocks[0].locks.filter(function (item) { return item.subTypeId === type; });\n for (var _i = 0, actualLocks_1 = actualLocks; _i < actualLocks_1.length; _i++) {\n var actualLock = actualLocks_1[_i];\n var lockRange = moment.range(moment(actualLock.dateFrom).startOf('day'), moment(actualLock.dateTo).endOf('day'));\n var eventRange = moment.range(dateFrom, moment(dateTo).endOf('day'));\n if (lockRange.overlaps(eventRange))\n return { value: true };\n }\n };\n var this_3 = this;\n for (var _i = 0, referenceIds_1 = referenceIds; _i < referenceIds_1.length; _i++) {\n var referenceId = referenceIds_1[_i];\n var state_1 = _loop_3(referenceId);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return false;\n };\n RosterController.prototype.showLocks = function (id) {\n this.selectedPerson = this.rosterData.filter(function (item) { return item.id === id; })[0] ? { name: this.rosterData.filter(function (item) { return item.id === id; })[0].caption, locks: this.rosterData.filter(function (item) { return item.id === id; })[0].locks } : { name: '', locks: [] };\n for (var _i = 0, _a = this.selectedPerson.locks; _i < _a.length; _i++) {\n var lock = _a[_i];\n lock.lockedTypeNames = [];\n if (lock.subTypeId === Roster.Constants.SUBTYPE_PLANNED)\n lock.lockedTypeNames.push(this.lng.translate(20028004, 'Soll-Dienst'));\n if (lock.subTypeId === Roster.Constants.SUBTYPE_DOCUMENTED)\n lock.lockedTypeNames.push(this.lng.translate(20028003, 'Ist-Dienst'));\n }\n $('#show-lock-modal').modal('show');\n };\n RosterController.prototype.showTemplates = function () {\n $('#templateDiv').show();\n };\n RosterController.prototype.hideTemplates = function () {\n if (!this.isDragging) {\n $('#templateDiv').hide();\n this.$compile(angular.element($('.lockBtn')).contents())(this.$scope);\n }\n };\n RosterController.prototype.showSettings = function () {\n $('#settingDiv').show();\n };\n RosterController.prototype.hideSettings = function () {\n $('#settingDiv').hide();\n };\n RosterController.prototype.showInfos = function () {\n this.setupCalendar(true);\n $('#rosterCalendarRessourcesDialog').modal('show');\n };\n ////////////////////////// SERVICECALLS //////////////////////////\n RosterController.prototype.getTemplates = function () {\n var _this_1 = this;\n this.loading.template = true;\n this.rosterService.getTemplates().then(function (data) {\n _this_1.templateList = [];\n //remove not supported misc. templates\n data = data.filter(function (x) { return x.instituteId !== Roster.Constants.MISCELLANIOUS_TEMPLATE || _this_1.supportMiscTemplates.some(function (y) { return y === x.serviceTypeId; }); });\n var _loop_4 = function (element) {\n var template = element;\n if (!_this_1.permission.service.new && template.instituteId !== Roster.Constants.MISCELLANIOUS_TEMPLATE)\n return \"continue\";\n var instituteContainer = _this_1.templateList.filter(function (item) { return item.value === template.instituteId; })[0];\n if (instituteContainer)\n instituteContainer.items.push(template);\n else\n _this_1.templateList.push({\n text: template.institute,\n value: template.instituteId,\n items: [template]\n });\n };\n // sort list elements by their institute\n for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {\n var element = data_1[_i];\n _loop_4(element);\n }\n if (_this_1.templateList.length > 0)\n _this_1.selectedTemplateContainer = _this_1.templateList[0].value;\n if (_this_1.templateList.filter(function (x) { return x.value === Roster.Constants.MISCELLANIOUS_TEMPLATE; }))\n _this_1.selectedTemplateContainer = Roster.Constants.MISCELLANIOUS_TEMPLATE;\n _this_1.loading.template = false;\n _this_1.setupDndEvents();\n });\n };\n RosterController.prototype.getInstitutes = function () {\n var _this_1 = this;\n this.loading.institute = true;\n this.rosterService.getInstituteList(null, true).then(function (data) {\n _this_1.institutes = data.map(function (x) { return ({ value: x.objectId, text: x.caption }); });\n _this_1.loading.institute = false;\n });\n };\n RosterController.prototype.getEmployees = function () {\n var _this_1 = this;\n this.loading.employee = true;\n this.clientService.getEmployeeList(\"\", this.rosterSettings.showOnlyActiveReferences ? QMC.Common.Constants.SHOW_ONLY_ACTIVE_EMPLOYEES_PREDEFINED_SEARCH_ID : QMC.Common.Constants.SHOW_ALL_EMPLOYEES_PREDEFINED_SEARCH_ID).then(function (data) {\n var _a;\n _this_1.employeesList = data;\n _this_1.employees = data.map(function (x) { return ({ value: x.id, text: _this_1.$qui.createPersonDisplay(x.name, x.forename, x.shortCaption, x.employeeNr), group: x.institute, instituteId: x.instituteId }); });\n _this_1.employees.sort(function (a, b) { return (a.text.toLocaleLowerCase() > b.text.toLocaleLowerCase()) ? 1 : ((b.text.toLocaleLowerCase() > a.text.toLocaleLowerCase()) ? -1 : 0); });\n _this_1.employees.sort(function (a, b) { return (a.group.toLocaleLowerCase() > b.group.toLocaleLowerCase()) ? 1 : ((b.group.toLocaleLowerCase() > a.group.toLocaleLowerCase()) ? -1 : 0); });\n _this_1.loading.employee = false;\n _this_1.selectedNewReference = $('#session').data().personId;\n if (!_this_1.employees.some(function (x) { return x.value === _this_1.selectedNewReference; }))\n _this_1.selectedNewReference = (_a = _this_1.employees[0]) === null || _a === void 0 ? void 0 : _a.value;\n });\n };\n RosterController.prototype.getWvList = function () {\n var _this_1 = this;\n this.loading.wv = true;\n this.rosterService.getRosterWv().then(function (data) {\n var _a;\n _this_1.serviceAdditionals = data.additionalWvList.map(function (x) { return ({ value: x.objectId, text: x.name }); });\n _this_1.predefinedViews = data.predefinedSearchesWvList.map(function (x) { return ({ value: x.objectId, text: x.name }); });\n _this_1.selectedPredefinedView = (_a = _this_1.rosterSettings.predefinedView) !== null && _a !== void 0 ? _a : _this_1.predefinedViews[0].value;\n _this_1.getReferenceTypes();\n _this_1.loading.wv = false;\n });\n };\n RosterController.prototype.getReferenceTypes = function () {\n var _this_1 = this;\n this.loading.referenceTypes = true;\n this.referenceTypes = [\n { value: 120000, text: this.lng.translate(20000235, \"Mitarbeiter\") },\n { value: 130000, text: this.lng.translate(20000236, \"Einrichtung\") },\n { value: 190000, text: this.lng.translate(20000237, \"Personenliste\") },\n ];\n this.selectedReferenceType = this.rosterSettings.referenceType;\n this.selectedReferenceTypeName = this.referenceTypes.filter(function (x) { return x.value === _this_1.selectedReferenceType; })[0].text;\n this.loading.referenceTypes = false;\n };\n RosterController.prototype.getReferences = function (referenceType, reloadCalendar) {\n var _this_1 = this;\n if (referenceType === void 0) { referenceType = this.selectedReferenceType; }\n if (reloadCalendar === void 0) { reloadCalendar = true; }\n this.loading.references = true;\n var referencesMapped = null;\n this.references = [];\n if (referenceType === 120000) {\n this.clientService.getEmployeeList(\"\", this.rosterSettings.showOnlyActiveReferences ? QMC.Common.Constants.SHOW_ONLY_ACTIVE_EMPLOYEES_PREDEFINED_SEARCH_ID : QMC.Common.Constants.SHOW_ALL_EMPLOYEES_PREDEFINED_SEARCH_ID).then(function (data) {\n var _a;\n if (_this_1.selectedReferences.length === 0) {\n _this_1.selectedReferences.push((data.filter(function (item) { return item.id === $('#session').data().personId; }).length > 0 ? $('#session').data().personId : data[0].id));\n }\n referencesMapped = data.map(function (x) { return ({ value: x.id, text: _this_1.$qui.createPersonDisplay(x.name, x.forename, x.shortCaption, x.employeeNr), group: x.institute }); });\n referencesMapped.sort(function (a, b) { return (a.text.toLocaleLowerCase() > b.text.toLocaleLowerCase()) ? 1 : ((b.text.toLocaleLowerCase() > a.text.toLocaleLowerCase()) ? -1 : 0); });\n referencesMapped.sort(function (a, b) { return (a.group.toLocaleLowerCase() > b.group.toLocaleLowerCase()) ? 1 : ((b.group.toLocaleLowerCase() > a.group.toLocaleLowerCase()) ? -1 : 0); });\n _this_1.references = referencesMapped;\n _this_1.selectedReferenceName = (_a = referencesMapped.filter(function (x) { return x.value === _this_1.selectedReferences[0]; })[0]) === null || _a === void 0 ? void 0 : _a.text;\n _this_1.getRosterData(reloadCalendar);\n _this_1.loading.references = false;\n });\n }\n else {\n this.rosterService.getReferences(referenceType).then(function (data) {\n referencesMapped = data.map(function (x) { return ({ value: x.id, text: x.name }); });\n _this_1.selectedReference = referencesMapped[0].value;\n _this_1.references = referencesMapped;\n _this_1.selectedReferenceName = referencesMapped.filter(function (x) { return x.value === _this_1.selectedReference; })[0].text;\n _this_1.getRosterData(true);\n _this_1.loading.references = false;\n });\n }\n ;\n };\n RosterController.prototype.getRosterData = function (forceReload) {\n var _this_1 = this;\n if (!this.calendarCreated &&\n this.rosterSettings.dataFrom.getDate() != moment(this.rosterSettings.viewDate).toDate().getDate() ||\n moment(this.rosterSettings.dataFrom).toDate().valueOf() === moment(this.rosterSettings.dataTo).toDate().valueOf()) {\n this.resetCalendar();\n this.calendarCreated = true;\n //force the load of the data after the calender is created\n setTimeout(function () {\n _this_1.getRosterData(false);\n }, 250);\n }\n else {\n var referencesIds = [];\n if (this.selectedReferenceType === 120000) {\n referencesIds = this.selectedReferences;\n }\n else {\n referencesIds = [this.selectedReference];\n }\n var dateFrom = this.rosterSettings.dataFrom;\n var dateTo = this.rosterSettings.dataTo;\n this.$state.go('Roster', {\n startDay: moment(this.rosterSettings.dataFrom).format('YYYY-MM-DD')\n });\n if (referencesIds.length) {\n var requestId_1 = this.$qui.generateGuid();\n var referenceType = this.selectedReferenceType;\n var references = this.selectedReferenceType === 120000 ? this.selectedReferences : [this.selectedReference];\n var request = {\n references: references,\n referenceType: referenceType,\n dateFrom: dateFrom,\n dateTo: dateTo,\n selectedPredefinedView: this.selectedPredefinedView,\n includeSub: this.rosterSettings.includeSub\n };\n if (JSON.stringify(request) === JSON.stringify(this.lastRequest) && !forceReload)\n return;\n this.lastRequestId = requestId_1;\n this.lastRequest = request;\n this.rosterSettings.references = this.selectedReferences;\n this.rosterSettings.predefinedView = this.selectedPredefinedView;\n this.loading.calendar = true;\n this.rosterEvents = [];\n this.rosterData = [];\n this.rosterResources = [];\n this.rosterService.getRosterData(referencesIds, referenceType, dateFrom, dateTo, this.selectedPredefinedView, this.rosterSettings.includeSub, this.rosterSettings.showWorkingEventsInfo).then(function (rosterResultData) {\n if (_this_1.lastRequestId !== requestId_1)\n return;\n _this_1.locks = [];\n rosterResultData.forEach(function (reference) {\n if (_this_1.rosterData.length === 0 || _this_1.selectedReferenceType !== 120000 || forceReload) {\n _this_1.rosterData = reference.data;\n }\n else {\n _this_1.rosterData.push(reference.data[0]);\n }\n for (var _i = 0, _a = _this_1.rosterData; _i < _a.length; _i++) {\n var element = _a[_i];\n var item = element;\n for (var _b = 0, _c = item.services; _b < _c.length; _b++) {\n var element_1 = _c[_b];\n var service = element_1;\n var serviceTypeCaption = '';\n var addEvent = true;\n if (service.serviceTypeId === QMC.Common.Constants.GUID_EMPTY || service.serviceTypeId === null) {\n addEvent = !_this_1.isMobile || _this_1.selectedPredefinedView === '07eb5dfd-7c50-4d43-98ba-491f9d6839b2'; //07eb5dfd-7c50-4d43-98ba-491f9d6839b2 -> summary View\n serviceTypeCaption = (_this_1.isMobile && (_this_1.selectedReferenceType === 130000 || _this_1.selectedReferenceType === 190000)) /*Organisation, Person Lists*/ ? item.caption + ': ' + service.caption : service.caption;\n }\n else {\n serviceTypeCaption = service.caption + (\" (\" + service.captionSub + \")\");\n }\n _this_1.rosterResources.push({\n id: service.id,\n referenceId: item.id,\n referenceInstituteId: item.instituteId,\n caption: item.caption,\n serviceType: serviceTypeCaption,\n serviceTypeId: service.serviceTypeId,\n currentValue: service.currentValue,\n plannedValue: service.plannedValue,\n targetValue: service.targetValue,\n totalValue: service.totalValue,\n restHolidaysValue: service.restHolidaysValue\n });\n for (var _e = 0, _f = service.items; _e < _f.length; _e++) {\n var element_2 = _f[_e];\n var serviceItem = element_2;\n //07eb5dfd-7c50-4d43-98ba-491f9d6839b2 -> summary View\n if (addEvent) {\n _this_1.rosterEvents.push({\n id: serviceItem.id,\n objectId: serviceItem.objectId,\n referenceId: item.id,\n resourceId: service.id,\n serviceTypeId: serviceItem.serviceTypeId,\n serviceSubTypeId: serviceItem.serviceSubTypeId,\n title: _this_1.isMobile ?\n serviceItem.captionShort + ' (' + serviceTypeCaption + ') ' + '-' + ' (' + item.caption + ')' :\n serviceItem.captionShort,\n start: serviceItem.dateFrom,\n end: serviceItem.dateTo,\n color: serviceItem.color,\n captionEventType: serviceItem.captionEventType,\n editable: false,\n fullTitle: serviceItem.caption,\n textColor: _this_1.getTextColor(serviceItem.color)\n });\n }\n }\n for (var _g = 0, _h = item.locks; _g < _h.length; _g++) {\n var element_3 = _h[_g];\n _this_1.locks.push({ id: item.id, locks: item.locks });\n for (var _j = 0, _k = item.locks; _j < _k.length; _j++) {\n var lock = _k[_j];\n _this_1.rosterEvents.push({\n title: '',\n fullTitle: lock.lockDescription,\n start: lock.dateFrom,\n end: lock.dateTo,\n rendering: 'background',\n resourceId: service.id,\n editable: false,\n noPopover: false\n });\n }\n }\n }\n }\n });\n var viewDate = _this_1.rosterSettings.viewDate;\n if (!_this_1.calendarCreated) {\n _this_1.resetCalendar();\n _this_1.calendarCreated = true;\n }\n else {\n $('#rosterCalendar').fullCalendar('option', 'resources', _this_1.rosterResources);\n $('#rosterCalendar').fullCalendar('refetchResources');\n $('#rosterCalendar').fullCalendar('removeEvents');\n $('#rosterCalendar').fullCalendar('addEventSource', _this_1.rosterEvents);\n // change also for mobile ressource view\n if (_this_1.resourceViewMobileCreated) {\n $('#rosterCalendarRessources').fullCalendar('option', 'resources', _this_1.rosterResources);\n $('#rosterCalendarRessources').fullCalendar('refetchResources');\n $('#rosterCalendarRessources').fullCalendar('removeEvents');\n $('#rosterCalendarRessources').fullCalendar('addEventSource', _this_1.rosterEvents);\n }\n }\n $('#rosterCalendar').fullCalendar('gotoDate', viewDate);\n if (_this_1.resourceViewMobileCreated) {\n $('#rosterCalendarRessources').fullCalendar('gotoDate', viewDate);\n }\n _this_1.loading.calendar = false;\n });\n }\n }\n };\n // Posts an Is or Planned Time\n RosterController.prototype.postPlanningOrIsTime = function (form) {\n if (form === void 0) { form = this.serviceForm; }\n this.scrollPosition = $('tbody .fc-time-area .fc-scroller').scrollTop();\n this.loading.calendar = true;\n this.lastRequest = undefined;\n // When form.parentId is given, it will be an Is-Time. Else a planned time.\n if (!form.parentId || form.parentId === QMC.Common.Constants.GUID_EMPTY) {\n this.postPlannedTime(form);\n }\n else if (!form.objectId || form.objectId === QMC.Common.Constants.GUID_EMPTY) {\n this.postIsTime(form);\n }\n };\n // Posts a planned time\n RosterController.prototype.postPlannedTime = function (form) {\n var _this_1 = this;\n if (!form.referenceIds || !form.referenceIds.length)\n form.referenceIds = [form.referenceId];\n this.rosterService.postServicePlanning(form).then(function () {\n _this_1.$qui.notify(_this_1.$qui.successNote);\n _this_1.getRosterData(true);\n _this_1.lastValidation = undefined;\n _this_1.validation.errors = [];\n _this_1.validation.warnings = [];\n });\n };\n // Posts an Is-Time\n RosterController.prototype.postIsTime = function (form) {\n var _this_1 = this;\n this.rosterService.postServiceDocu(form.parentId, form).then(function () {\n _this_1.$qui.notify(_this_1.$qui.successNote);\n _this_1.getRosterData(true);\n _this_1.lastValidation = undefined;\n _this_1.validation.errors = [];\n _this_1.validation.warnings = [];\n });\n };\n RosterController.prototype.putService = function (form, ignoreWarnings) {\n var _this_1 = this;\n if (form === void 0) { form = this.serviceForm; }\n if (ignoreWarnings === void 0) { ignoreWarnings = false; }\n this.validation.errors = [];\n this.validation.warnings = [];\n var listToCheck = [];\n this.prepareForValidation(form, listToCheck, 1);\n this.lastValidation = JSON.stringify(listToCheck);\n this.validation.isLoading = true;\n form.dateFrom = this.$qui.addTimeToDate(form.dateFrom, form.timeFrom);\n form.dateTo = this.$qui.addTimeToDate(form.dateTo, form.timeTo);\n form.referenceId = form.referenceIds[0];\n this.rosterService.checkForConflictErrors(listToCheck).then(function (conflictsResult) {\n if (conflictsResult.errors.length > 0 || (conflictsResult.warnings.length > 0 && !ignoreWarnings)) {\n _this_1.validation.errors = conflictsResult.errors;\n _this_1.validation.warnings = conflictsResult.warnings;\n _this_1.showValidationBox = true;\n }\n else {\n _this_1.scrollPosition = $('tbody .fc-time-area .fc-scroller').scrollTop();\n _this_1.loading.calendar = true;\n _this_1.lastRequest = undefined;\n _this_1.rosterService.putService(form.objectId, form).then(function () {\n _this_1.$qui.notify(_this_1.$qui.successNote);\n }).finally(function () {\n _this_1.getRosterData(true);\n _this_1.lastValidation = undefined;\n _this_1.validation.errors = [];\n _this_1.validation.warnings = [];\n });\n $('#new-service-modal').modal('hide');\n }\n }).finally(function () {\n _this_1.validation.isLoading = false;\n });\n ;\n };\n RosterController.prototype.deleteService = function (form) {\n var _this_1 = this;\n if (form === void 0) { form = this.serviceForm; }\n this.validation.errors = [];\n //before saving check for conflicts\n var listToCheck = [];\n this.prepareForValidation(form, listToCheck, 2);\n this.validation.isLoading = true;\n this.rosterService.checkForConflictErrors(listToCheck).then(function (conflictsResult) {\n if (conflictsResult.errors.length > 0) {\n _this_1.validation.errors = conflictsResult.errors;\n _this_1.validation.isLoading = false;\n _this_1.showValidationBox = true;\n }\n else {\n _this_1.scrollPosition = $('tbody .fc-time-area .fc-scroller').scrollTop();\n _this_1.loading.calendar = true;\n _this_1.lastRequest = undefined;\n _this_1.rosterService.deleteService(form.objectId).then(function () {\n _this_1.$qui.notify(_this_1.$qui.deleteNote);\n _this_1.getRosterData(true);\n });\n _this_1.validation.isLoading = false;\n $('#new-service-modal').modal('hide');\n }\n });\n };\n RosterController.prototype.getService = function (id, event) {\n var _this_1 = this;\n if (event === void 0) { event = null; }\n //event - use this for when dragging and dropping an event\n this.loading.detail = true;\n if (event === null || event === void 0 ? void 0 : event.start) { // open detail modal right away when detail is modified\n $('#new-service-modal').modal('show');\n }\n this.rosterService.getService(id).then(function (dataService) {\n _this_1.serviceForm = dataService;\n _this_1.serviceForm.dateFrom = _this_1.$qui.createDateFromString(dataService.dateFrom);\n _this_1.serviceForm.dateTo = _this_1.$qui.createDateFromString(dataService.dateTo);\n _this_1.serviceForm.timeFrom = _this_1.$qui.createDateFromString(dataService.dateFrom);\n _this_1.serviceForm.timeTo = _this_1.$qui.createDateFromString(dataService.dateTo);\n _this_1.serviceForm.referenceIds = [dataService.referenceId];\n _this_1.isLocked = _this_1.isDateLockedForType(_this_1.serviceForm.referenceIds, !_this_1.serviceForm.parentId ? Roster.Constants.SUBTYPE_PLANNED : Roster.Constants.SUBTYPE_DOCUMENTED, _this_1.serviceForm.dateFrom, _this_1.serviceForm.dateTo);\n _this_1.validation.errors = _this_1.isLocked ? [_this_1.lng.translate(20028012, 'Im ausgewählten Zeitraum existiert für mindestens einen ausgewählten Mitarbeiter eine Anlagesperre.')] : [];\n _this_1.$qui.scopeApply(_this_1.$scope);\n _this_1.permissionService.getPermissionsForDataset(id, 411001).then(function (dataPerm) {\n var _a, _b;\n _this_1.permission.service = {\n delete: dataPerm[0].delete,\n modify: dataPerm[0].modify,\n new: _this_1.servicePermission.new\n };\n if (event === null || event === void 0 ? void 0 : event.start) {\n var dateTo = event.end;\n if (!dateTo) {\n dateTo = event.start;\n var diff = moment.duration(moment(_this_1.serviceForm.timeTo).diff(moment(_this_1.serviceForm.timeFrom))).asHours();\n dateTo.add(diff, 'hours');\n }\n _this_1.serviceForm.dateFrom = event.start.toDate();\n _this_1.serviceForm.dateTo = dateTo.toDate();\n _this_1.serviceForm.timeFrom = moment(event.start).toDate();\n _this_1.serviceForm.timeTo = dateTo.toDate();\n }\n if (event === null || event === void 0 ? void 0 : event.resourceId) {\n _this_1.serviceForm.referenceIds = [(_b = (_a = _this_1.rosterResources.filter(function (x) { return x.id === event.resourceId; })[0]) === null || _a === void 0 ? void 0 : _a.referenceId) !== null && _b !== void 0 ? _b : dataService.referenceId];\n }\n _this_1.loading.detail = false;\n document.getElementById('serviceModalBody').scrollTop = 0;\n });\n });\n };\n ///////////////////////////// SETUP //////////////////////////////\n RosterController.prototype.init = function () {\n var _this_1 = this;\n this.$qui.waitForEl('#newModalButton', function () {\n $('#newModalButton').click(function () {\n _this_1.initNewForm();\n setTimeout(function () {\n document.getElementById('serviceModalBody').scrollTop = 0;\n }, 250);\n });\n });\n this.initNewForm();\n };\n RosterController.prototype.initNewForm = function (template, calendarInfo) {\n var _a;\n if (template === void 0) { template = null; }\n if (calendarInfo === void 0) { calendarInfo = null; }\n this.validation.errors = [];\n this.validation.warnings = [];\n this.lastValidation = undefined;\n this.validation.isLoading = false;\n this.showValidationBox = false;\n var reference = calendarInfo !== null ? calendarInfo.referenceRessource : $('#session').data().personId;\n if (this.employees.length === 0) {\n this.getEmployees();\n }\n var instituteId = calendarInfo !== null ? calendarInfo.referenceInstituteId : null;\n if (this.employeesList.length > 0) {\n instituteId = this.employeesList.filter(function (x) { return x.id === reference; })[0].instituteId;\n }\n this.serviceForm = {\n id: null,\n objectId: null,\n additionalWvIds: [],\n break: template !== null ? template.break : 0,\n caption: template !== null ? template.caption : \"\",\n captionShort: template !== null ? template.captionShort : \"\",\n color: template !== null ? template.color : \"#FF0000\",\n dateFrom: calendarInfo !== null ? calendarInfo.date : new Date(),\n dateTo: calendarInfo !== null ? calendarInfo.date : new Date(),\n instituteId: ((_a = this.institutes) === null || _a === void 0 ? void 0 : _a.length) > 0 ? calendarInfo !== null ? calendarInfo.referenceInstituteId : instituteId : null,\n institute: null,\n referenceIds: [reference],\n referenceId: reference,\n reference: null,\n templateId: template !== null ? template.objectId : null,\n timeFrom: template !== null ? this.$qui.createDateFromString(template.timeFrom) : moment().minutes(0).toDate(),\n timeTo: template !== null ? this.$qui.createDateFromString(template.timeTo) : moment().minutes(0).toDate(),\n comment: \"\",\n conflictProposedAction: 0\n };\n if (calendarInfo !== null && (!template || (template === null || template === void 0 ? void 0 : template.serviceSubTypeId))) {\n this.serviceForm.timeFrom.setHours(calendarInfo.timeFrom !== null ? calendarInfo.timeFrom.getHours() : this.serviceForm.timeFrom.getHours() - 1);\n this.serviceForm.timeTo.setHours(calendarInfo.timeFrom !== null ? calendarInfo.timeTo.getHours() + 1 : this.serviceForm.timeTo.getHours());\n }\n this.$qui.scopeApply(this.$scope);\n this.formState = 'new';\n };\n RosterController.prototype.events = function () {\n var _this_1 = this;\n this.$scope.$watch('vm.selectedTemplateContainer', function () {\n _this_1.setupDndEvents();\n });\n this.$scope.$watch('vm.selectedReferenceType', function (newVal, oldVal) {\n var _a, _b;\n if (newVal !== oldVal && newVal !== (null || undefined || QMC.Common.Constants.GUID_EMPTY)) {\n _this_1.selectedReferenceTypeName = (_b = (_a = _this_1.referenceTypes.filter(function (x) { return x.value === _this_1.selectedReferenceType; })[0]) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : '';\n _this_1.selectedReferences = [];\n _this_1.rosterSettings.referenceType = _this_1.selectedReferenceType;\n _this_1.getReferences(_this_1.selectedReferenceType);\n }\n });\n this.$scope.$watch('vm.selectedReference', function (newVal, oldVal) {\n if (newVal !== oldVal && newVal !== (null || undefined || QMC.Common.Constants.GUID_EMPTY)) {\n _this_1.permissionService.getPermissionsForGivenUserAndObjectType(_this_1.selectedReference, 411001).then(function (data) {\n _this_1.permission.service.new = data && _this_1.servicePermission.new;\n });\n _this_1.selectedReferences = [_this_1.selectedReference];\n _this_1.getRosterData(true);\n _this_1.rosterSettings.references = [_this_1.selectedReference];\n _this_1.scrollPosition = 0;\n }\n });\n this.$scope.$watch('vm.selectedReferences', function (newVal, oldVal) {\n if ((newVal !== oldVal && newVal !== (null || undefined)) && (newVal.length < oldVal.length)) {\n _this_1.calendarNoReload = true;\n var _loop_5 = function (i) {\n var resourceItem = _this_1.rosterResources[i];\n var roosterReference = _this_1.selectedReferences.filter(function (x) { return x === resourceItem.referenceId; });\n if (roosterReference === null || roosterReference.length === 0) {\n $('#rosterCalendar').fullCalendar('removeResource', resourceItem.referenceId);\n _this_1.rosterResources.splice(i);\n }\n };\n //remove ressources that are not anymore present in the references list\n for (var i = 0; i < _this_1.rosterResources.length; i++) {\n _loop_5(i);\n }\n $('#rosterCalendar').fullCalendar('option', 'resources', _this_1.rosterResources);\n $('#rosterCalendar').fullCalendar('refetchResources');\n $('#rosterCalendar').fullCalendar('removeEvents');\n $('#rosterCalendar').fullCalendar('addEventSource', _this_1.rosterEvents);\n // change also for mobile ressource view\n if (_this_1.resourceViewMobileCreated) {\n $('#rosterCalendarRessources').fullCalendar('option', 'resources', _this_1.rosterResources);\n $('#rosterCalendarRessources').fullCalendar('refetchResources');\n $('#rosterCalendarRessources').fullCalendar('removeEvents');\n $('#rosterCalendarRessources').fullCalendar('addEventSource', _this_1.rosterEvents);\n }\n }\n else if (newVal !== oldVal && newVal !== (null || undefined)) {\n _this_1.calendarNoReload = false;\n //call the server methods for filling the roster data only for the last inserted item\n _this_1.getRosterData(true);\n }\n _this_1.rosterSettings.references = _this_1.selectedReferences;\n _this_1.scrollPosition = 0;\n });\n this.$scope.$watch('vm.rosterSettings.includeSub', function (newVal, oldVal) {\n if (newVal !== oldVal && newVal !== (null || undefined || QMC.Common.Constants.GUID_EMPTY)) {\n _this_1.getRosterData(true);\n _this_1.rosterSettings.references = [_this_1.selectedReference];\n _this_1.scrollPosition = 0;\n }\n });\n this.$scope.$watch('vm.rosterSettings.showOnlyActiveReferences', function (newVal, oldVal) {\n if (newVal !== oldVal && newVal !== (null || undefined)) {\n _this_1.getReferences(_this_1.selectedReferenceType, false);\n }\n });\n this.$scope.$watch('vm.selectedPredefinedView', function (newVal, oldVal) {\n if (_this_1.selectedReferences.length === 0 && _this_1.selectedReference !== (null || undefined || QMC.Common.Constants.GUID_EMPTY)) {\n _this_1.selectedReferences = [_this_1.selectedReference];\n }\n if (newVal !== oldVal && newVal !== (null || undefined || QMC.Common.Constants.GUID_EMPTY) && (_this_1.selectedReferences.length > 0 || _this_1.selectedReference !== (null || undefined || QMC.Common.Constants.GUID_EMPTY))) {\n _this_1.getRosterData(true);\n _this_1.rosterSettings.predefinedView = _this_1.selectedPredefinedView;\n _this_1.scrollPosition = 0;\n }\n });\n this.$scope.$watch('vm.rosterSettings', function () {\n if (!_this_1.debounceCheck) {\n _this_1.debounceCheck = true;\n localStorage.setItem(_this_1.localStorageItemName, JSON.stringify(_this_1.rosterSettings));\n console.log(\"rosterSettings have been changed...\", _this_1.rosterSettings);\n setTimeout(function () {\n _this_1.debounceCheck = false;\n }, 250);\n }\n }, true);\n this.$scope.$watch('vm.serviceForm.dateFrom', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n if (_this_1.serviceForm.dateTo < _this_1.serviceForm.dateFrom)\n _this_1.serviceForm.dateTo = _this_1.serviceForm.dateFrom;\n _this_1.isLocked = _this_1.isDateLockedForType(_this_1.serviceForm.referenceIds, !_this_1.serviceForm.parentId ? Roster.Constants.SUBTYPE_PLANNED : Roster.Constants.SUBTYPE_DOCUMENTED, _this_1.serviceForm.dateFrom, _this_1.serviceForm.dateTo);\n _this_1.validation.errors = _this_1.isLocked ? [_this_1.lng.translate(20028012, 'Im ausgewählten Zeitraum existiert für mindestens einen ausgewählten Mitarbeiter eine Anlagesperre.')] : [];\n _this_1.preventNegativeTimePeriods();\n });\n this.$scope.$watch('vm.serviceForm.dateTo', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n if (_this_1.serviceForm.dateTo < _this_1.serviceForm.dateFrom)\n _this_1.serviceForm.dateFrom = _this_1.serviceForm.dateTo;\n _this_1.isLocked = _this_1.isDateLockedForType(_this_1.serviceForm.referenceIds, !_this_1.serviceForm.parentId ? Roster.Constants.SUBTYPE_PLANNED : Roster.Constants.SUBTYPE_DOCUMENTED, _this_1.serviceForm.dateFrom, _this_1.serviceForm.dateTo);\n _this_1.validation.errors = _this_1.isLocked ? [_this_1.lng.translate(20028012, 'Im ausgewählten Zeitraum existiert für mindestens einen ausgewählten Mitarbeiter eine Anlagesperre.')] : [];\n _this_1.preventNegativeTimePeriods();\n });\n this.$scope.$watch('vm.serviceForm.timeFrom', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n var from = _this_1.$qui.addTimeToDate(_this_1.serviceForm.dateFrom, _this_1.serviceForm.timeFrom);\n var to = _this_1.$qui.addTimeToDate(_this_1.serviceForm.dateTo, _this_1.serviceForm.timeTo);\n if (to < from)\n _this_1.serviceForm.timeTo = _this_1.serviceForm.timeFrom;\n _this_1.preventNegativeTimePeriods();\n });\n this.$scope.$watch('vm.serviceForm.timeTo', function (newVal, oldVal) {\n if (newVal === oldVal)\n return;\n var from = _this_1.$qui.addTimeToDate(_this_1.serviceForm.dateFrom, _this_1.serviceForm.timeFrom);\n var to = _this_1.$qui.addTimeToDate(_this_1.serviceForm.dateTo, _this_1.serviceForm.timeTo);\n if (to < from)\n _this_1.serviceForm.timeFrom = _this_1.serviceForm.timeTo;\n _this_1.preventNegativeTimePeriods();\n });\n this.$scope.$watch('vm.serviceForm.referenceIds', function (newVal, oldVal) {\n if (newVal === oldVal || newVal.length === 0)\n return;\n _this_1.isLocked = _this_1.isDateLockedForType(_this_1.serviceForm.referenceIds, !_this_1.serviceForm.parentId ? Roster.Constants.SUBTYPE_PLANNED : Roster.Constants.SUBTYPE_DOCUMENTED, _this_1.serviceForm.dateFrom, _this_1.serviceForm.dateTo);\n });\n this.$scope.$watch('vm.rosterSettings.showWeekends', function (newVal, oldVal) {\n if (newVal !== oldVal && !_this_1.debounceCheckShowWeekends) {\n _this_1.debounceCheckShowWeekends = true;\n setTimeout(function () {\n _this_1.resetCalendar(true);\n _this_1.debounceCheckShowWeekends = false;\n }, 250);\n }\n });\n this.$scope.$watch('vm.rosterSettings.highlightWeekends', function (newVal, oldVal) {\n if (newVal !== oldVal && !_this_1.debounceCheckHighlightWeekends) {\n _this_1.debounceCheckHighlightWeekends = true;\n setTimeout(function () {\n _this_1.resetCalendar(true);\n _this_1.debounceCheckHighlightWeekends = false;\n }, 250);\n }\n });\n this.$scope.$watch('vm.rosterSettings.showWorkingEventsInfo', function (newVal, oldVal) {\n if (newVal !== oldVal && !_this_1.debounceCheckShowWorkingEventsInfo) {\n _this_1.debounceCheckShowWorkingEventsInfo = true;\n setTimeout(function () {\n _this_1.resetCalendar(true);\n $('#rosterCalendar').fullCalendar('option', 'resources', _this_1.rosterResources);\n $('#rosterCalendar').fullCalendar('refetchResources');\n $('#rosterCalendar').fullCalendar('removeEvents');\n $('#rosterCalendar').fullCalendar('addEventSource', _this_1.rosterEvents);\n // change also for mobile ressource view\n if (_this_1.resourceViewMobileCreated) {\n $('#rosterCalendarRessources').fullCalendar('option', 'resources', _this_1.rosterResources);\n $('#rosterCalendarRessources').fullCalendar('refetchResources');\n $('#rosterCalendarRessources').fullCalendar('removeEvents');\n $('#rosterCalendarRessources').fullCalendar('addEventSource', _this_1.rosterEvents);\n }\n _this_1.debounceCheckShowWorkingEventsInfo = false;\n }, 250);\n }\n });\n };\n RosterController.prototype.setupDndEvents = function () {\n var vm = this;\n setTimeout(function () {\n $('.fc-event.dummy').each(function () {\n $(this).data('event', {\n stick: true,\n id: $(this).data('id'),\n container: $(this).data('container'),\n template: $(this).data('template')\n });\n $(this).draggable({\n zIndex: 999,\n revert: true,\n revertDuration: 0,\n start: function (event) { return vm.onDrag(event, vm); },\n stop: function (event) { return vm.onDrag(event, vm); }\n });\n });\n }, 150);\n };\n RosterController.prototype.onDrag = function (event, vm) {\n if (event.type === 'dragstart')\n vm.isDragging = true;\n if (event.type === 'dragstop') {\n vm.isDragging = false;\n vm.hideTemplates();\n }\n };\n RosterController.prototype.getCalendarHeight = function () {\n return $(window).height() * 0.6;\n };\n RosterController.prototype.setupCalendar = function (ressourceView) {\n var _this_1 = this;\n if (ressourceView === void 0) { ressourceView = false; }\n // hide type column if there is only one (or less) resource type rows (services)\n //const hideTypeColumn = false;\n var resourceColumns = this.rosterResources.map(function (x) { return x.serviceType; }).filter(function (value, index, self) { return self.indexOf(value) === index; });\n var hideColumn = resourceColumns.length === 1 ? resourceColumns[0] : undefined;\n var scope = this;\n var nameDefaultColumnSize = this.rosterSettings.showWorkingEventsInfo ? '25%' : '35%';\n var typeDefaultColumnSize = this.rosterSettings.showWorkingEventsInfo ? '35%' : '65%';\n var currentValueDefaultColumnSize = this.rosterSettings.showWorkingEventsInfo ? '5%' : '0%';\n var plannedValueDefaultColumnSize = this.rosterSettings.showWorkingEventsInfo ? '5%' : '0%';\n var targetValueDefaultColumnSize = this.rosterSettings.showWorkingEventsInfo ? '10%' : '0%';\n var totalValueDefaultColumnSize = this.rosterSettings.showWorkingEventsInfo ? '10%' : '0%';\n var restHolidaysValueDefaultColumnSize = this.rosterSettings.showWorkingEventsInfo ? '10%' : '0%';\n var resourceAreaDefaultWidth = this.rosterSettings.showWorkingEventsInfo ? '40%' : '20%';\n this.resourceViewMobileCreated = ressourceView;\n var ressColumns = [\n {\n group: true,\n labelText: this.lng.translate(20000072, 'Name'),\n field: 'caption',\n width: ressourceView && !this.rosterSettings.showWorkingEventsInfo ? '0%' : nameDefaultColumnSize,\n render: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var parent;\n var name;\n if (hideColumn) {\n parent = args[1];\n name = args[2];\n }\n else {\n parent = args[0];\n name = args[1];\n }\n parent.css('display', 'flex');\n parent.css('align-items', 'center');\n if (!_this_1.wtOverviewPermission.moduleAccess)\n return;\n var button = $(document.createElement('i'));\n button.hover(function () { return button.addClass('text-primary'); }, function () { return button.removeClass('text-primary'); });\n button.addClass('qm-icon-trafficlight_off');\n button.attr('style', 'font-size: 2em; cursor: pointer; margin: -8px -5px; ');\n button.attr('data-toggle', 'tooltip');\n button.attr('data-placement', 'top');\n button.attr('tag', '20001042');\n button.attr('data-original-title', 'Arbeitszeitenübersicht');\n button.on('click', function () {\n _this_1.wtoData = undefined;\n var id = parent.closest('.fc-widget-content').attr('data-reference');\n $('#wtoModal').modal('show');\n _this_1.wtoData = {\n personId: id,\n name: name\n };\n _this_1.$qui.scopeApply(_this_1.$scope);\n });\n var cell = parent.find('.fc-cell-text');\n cell.css('display', 'flex');\n cell.css('alignItems', 'center');\n cell.prepend(button[0]);\n }\n },\n {\n labelText: this.lng.translate(20000025, 'Typ'),\n field: 'serviceType',\n width: ressourceView && !this.rosterSettings.showWorkingEventsInfo ? '70%' : typeDefaultColumnSize\n }\n ];\n if (hideColumn) {\n ressColumns[0].width = '100%';\n ressColumns[0].group = false;\n ressColumns.pop();\n }\n if (this.rosterSettings.showWorkingEventsInfo) {\n ressColumns = ressColumns.concat([\n {\n labelText: this.lng.translate(20028032, 'Ist'),\n field: 'currentValue',\n width: ressourceView ? '3%' : currentValueDefaultColumnSize\n },\n {\n labelText: this.lng.translate(20028033, 'Soll'),\n field: 'plannedValue',\n width: ressourceView ? '3%' : plannedValueDefaultColumnSize\n },\n {\n labelText: this.lng.translate(20028034, 'Vorgabe'),\n field: 'targetValue',\n width: ressourceView ? '8%' : targetValueDefaultColumnSize\n },\n {\n labelText: this.lng.translate(20028035, 'Gesamt'),\n field: 'totalValue',\n width: ressourceView ? '8%' : totalValueDefaultColumnSize\n },\n {\n labelText: this.lng.translate(20028036, 'Resturlaub'),\n field: 'restHolidaysValue',\n width: ressourceView ? '8%' : restHolidaysValueDefaultColumnSize\n }\n ]);\n }\n var calenderViews = this.isMobile && !ressourceView ? 'listDay, listWeek, listMonth' : 'timelineDay, timelineWeek, timelineMonth';\n var defaultCalendarView;\n if (this.isMobile && !ressourceView) {\n defaultCalendarView = this.rosterSettings.defaultSchedulerView.indexOf('list') >= 0 ? this.rosterSettings.defaultSchedulerView : 'listMonth';\n }\n else {\n defaultCalendarView = this.rosterSettings.defaultSchedulerView.indexOf('time') >= 0 ? this.rosterSettings.defaultSchedulerView : 'timelineMonth';\n }\n $(ressourceView ? '#rosterCalendarRessources' : '#rosterCalendar').fullCalendar({\n schedulerLicenseKey: QMC.Common.Constants.FULL_CALENDAR_PREMIUM_LICENSE,\n contentHeight: this.getCalendarHeight,\n defaultView: defaultCalendarView,\n defaultDate: this.rosterSettings.dataFrom,\n timezone: 'local',\n locale: 'de',\n firstDay: 1,\n weekends: this.rosterSettings.showWeekends,\n nowIndicator: true,\n monthNames: this.lng.translate(20018519, 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember').split(','),\n monthNamesShort: this.lng.translate(20018520, 'Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez').split(','),\n dayNames: this.lng.translate(20018521, 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag').split(','),\n dayNamesShort: this.lng.translate(20018522, 'So.,Mo.,Di.,Mi.,Do.,Fr.,Sa.').split(','),\n weekNumbers: true,\n weekNumberCalculation: function (date) { return moment(date).isoWeek(); },\n views: {\n month: {\n titleFormat: 'MMMM YYYY',\n },\n week: {\n titleFormat: 'dddd, D MMM YYYY',\n },\n day: {\n titleFormat: 'dddd D.MMM'\n }\n },\n columnFormat: 'ddd D.M',\n header: {\n left: ressourceView ? '' : 'prev,next today',\n center: 'title',\n right: ressourceView ? '' : calenderViews\n },\n timeFormat: 'H:mm',\n buttonText: ressourceView ? null : {\n today: this.lng.translate(20000126, 'Heute'),\n month: this.lng.translate(20000115, 'Monat'),\n week: this.lng.translate(20000114, 'Woche'),\n day: this.lng.translate(20000041, 'Tag')\n },\n events: this.rosterEvents,\n resources: this.rosterResources,\n resourceColumns: ressColumns,\n resourceAreaWidth: ressourceView ? '100%' : resourceAreaDefaultWidth,\n slotLabelFormat: [\n 'KW', 'ddd DD', 'H:mm'\n ],\n slotWidth: 48,\n editable: true,\n eventStartEditable: true,\n eventDurationEditable: true,\n eventResourceEditable: true,\n droppable: scope.permission.service.new,\n eventResize: function (event) {\n console.log(\"Event resize\", event);\n },\n eventDrop: function (event, delta, revertFunc) {\n var _a, _b, _c, _e, _f, _g, _h, _j, _k, _l, _m;\n $('.popover.in').remove();\n this.eventReference = { id: event.referenceId, name: (_b = (_a = scope.rosterData.filter(function (x) { return x.id === event.referenceId; })[0]) === null || _a === void 0 ? void 0 : _a.caption) !== null && _b !== void 0 ? _b : '' };\n if (event.serviceTypeId === Roster.Constants.SERVICE) {\n scope.formState = 'edit';\n scope.getService(event.objectId, event);\n }\n else if (event.serviceTypeId === Roster.Constants.SERVICE_WV_HOLIDAY) {\n scope.holidayCalls.edit(event.objectId, (_c = event.start) === null || _c === void 0 ? void 0 : _c.toDate(), (_f = ((_e = event.end) !== null && _e !== void 0 ? _e : event.start)) === null || _f === void 0 ? void 0 : _f.toDate());\n }\n else if (event.serviceTypeId === Roster.Constants.SERVICE_WV_DISEASE) {\n scope.sickLeaveCalls.edit(event.objectId, (_g = event.start) === null || _g === void 0 ? void 0 : _g.toDate(), (_j = ((_h = event.end) !== null && _h !== void 0 ? _h : event.start)) === null || _j === void 0 ? void 0 : _j.toDate());\n }\n else if (event.serviceTypeId === Roster.Constants.SERVICE_WV_EXEMPTION) {\n scope.exemptionCalls.edit(event.objectId, (_k = event.start) === null || _k === void 0 ? void 0 : _k.toDate(), (_m = ((_l = event.end) !== null && _l !== void 0 ? _l : event.start)) === null || _m === void 0 ? void 0 : _m.toDate());\n }\n revertFunc();\n },\n drop: function (date, jsEvent, ui, resourceId) {\n // resourceId is the subtype id on which was dropped\n // You can get the dropped on row info by: $(this).data().event.services.filter(x=> x.id === resourceId)[0]\n // In that result serviceTypeId and serviceTypeSubId are the real roster type ids\n var _a;\n var referenceId = null;\n for (var _i = 0, _b = scope.rosterData; _i < _b.length; _i++) {\n var data_2 = _b[_i];\n for (var _c = 0, _e = data_2.services; _c < _e.length; _c++) {\n var service = _e[_c];\n if (service.id === resourceId) {\n referenceId = data_2.id;\n }\n }\n }\n var data = $(this).data().event;\n var reference = scope.rosterData.filter(function (x) { return x.id === referenceId; })[0];\n scope.eventReference = { id: referenceId, name: (_a = reference === null || reference === void 0 ? void 0 : reference.caption) !== null && _a !== void 0 ? _a : '', instituteId: reference === null || reference === void 0 ? void 0 : reference.instituteId };\n var droppedRowData = reference.services.filter(function (x) { return x.id === resourceId; })[0];\n var droppedRowRosterType = { rosterTypeId: droppedRowData.serviceTypeId, rosterSubTypeId: droppedRowData.serviceSubTypeId };\n scope.handleTemplateDrop(data.template, moment(date._d).toDate(), droppedRowRosterType);\n },\n eventReceive: function (event) {\n //when any event is received, delete it right away, qmc logic will take care in drop/eventdrop\n $(ressourceView ? '#rosterCalendarRessources' : '#rosterCalendar').fullCalendar('removeEvents', event._id);\n },\n eventClick: function (event) {\n var _a;\n _this_1.validation.errors = [];\n _this_1.validation.warnings = [];\n _this_1.lastValidation = undefined;\n var reference = _this_1.rosterData.filter(function (x) { return x.id === event.referenceId; })[0];\n _this_1.eventReference = { id: event.referenceId, name: (_a = reference === null || reference === void 0 ? void 0 : reference.caption) !== null && _a !== void 0 ? _a : '', instituteId: reference === null || reference === void 0 ? void 0 : reference.instituteId };\n var serviceTypeId = event.serviceTypeId;\n var serviceSubTypeId = event.serviceSubTypeId;\n if (serviceTypeId === Roster.Constants.SERVICE) {\n if (serviceSubTypeId === Roster.Constants.SUBTYPE_DOCUMENTED)\n _this_1.openExistingService(event.objectId);\n if (serviceSubTypeId === Roster.Constants.SUBTYPE_PLANNED)\n _this_1.openExistingPlannedService(event.objectId);\n }\n if (serviceTypeId === Roster.Constants.SERVICE_WV_HOLIDAY) {\n _this_1.holidayCalls.edit(event.objectId);\n }\n if (serviceTypeId === Roster.Constants.SERVICE_WV_DISEASE) {\n _this_1.sickLeaveCalls.edit(event.objectId);\n }\n if (serviceTypeId === Roster.Constants.SERVICE_WV_EXEMPTION) {\n _this_1.exemptionCalls.edit(event.objectId);\n }\n },\n viewRender: function (view) {\n var dateToCheck = moment(view.start).startOf('day').toDate();\n //the calendar is rendered many times, just reload completely the data when changing the dates\n var needToReloadCompletely = moment(_this_1.rosterSettings.dataFrom).format('YYYY-MM-DD') !== moment(dateToCheck).format('YYYY-MM-DD');\n // remove time header row from month view\n var row = $('.fc-time-area').find('tr')[2];\n if (row !== (null || undefined) && view.name === 'timelineMonth')\n row.setAttribute('style', 'display:none');\n if (!_this_1.keepData) {\n var prev = {\n dataFrom: _this_1.rosterSettings.dataFrom,\n dataTo: _this_1.rosterSettings.dataTo\n };\n var dataFrom = moment(view.start);\n var dataTo = moment(view.end);\n //this.rosterSettings.dataFrom.setHours(0, 0, 0, 0);\n switch (view.name) {\n case 'timelineDay':\n dataTo = moment(view.start);\n break;\n case 'timelineWeek':\n dataTo = moment(view.start).endOf('week');\n break;\n case 'timelineMonth':\n default:\n dataTo = moment(view.start).endOf('month');\n break;\n }\n _this_1.rosterSettings.dataFrom = moment(dataFrom.startOf('day').format('YYYY-MM-DD HH:mm:ss')).toDate(); //make absolutely sure to get the date whithout timezone to match the server\n _this_1.rosterSettings.dataTo = moment(dataTo.endOf('day').format('YYYY-MM-DD HH:mm:ss')).toDate();\n _this_1.rosterSettings.viewDate = new Date(_this_1.rosterSettings.dataFrom);\n _this_1.rosterSettings.defaultSchedulerView = view.name;\n var fromChanged = prev.dataFrom.getTime() !== _this_1.rosterSettings.dataFrom.getTime();\n var toChanged = prev.dataTo.getTime() !== _this_1.rosterSettings.dataTo.getTime();\n if (fromChanged || toChanged)\n _this_1.getRosterData(false);\n else if (_this_1.calendarCreated && !ressourceView && !_this_1.calendarNoReload && needToReloadCompletely) {\n _this_1.getRosterData(true);\n }\n }\n if (_this_1.rosterSettings.highlightWeekends) {\n if (view.name === 'timelineMonth') {\n $('.fc-sat.fc-day').addClass('highlight-weekend');\n $('.fc-sun.fc-day').addClass('highlight-weekend');\n }\n if (view.name === 'timelineWeek' || view.name === 'timelineDay') {\n var days = document.getElementsByClassName('fc-widget-content');\n [].forEach.call(days, function (day) {\n var date = _this_1.$qui.createDateFromString(day.dataset.date);\n if (date.getDay() === 6 || date.getDay() === 0)\n day.classList.add('highlight-weekend');\n });\n }\n }\n _this_1.calendarNoReload = false;\n },\n resourceRender: function (resource, element) {\n element.closest('.fc-widget-content').attr('data-reference', resource.referenceId);\n if (resource.serviceType.includes(resource.caption)) {\n //if the view is per organisation or person lists make the cell content text bold, better view\n element[1].querySelector('.fc-cell-text').setAttribute(\"style\", \"font-weight: bold\");\n }\n },\n eventRender: function (event, element, view) {\n if (view.name === 'timelineMonth') {\n element[0].textContent = event.title;\n }\n var timeString = moment(event.start).format('HH:mm');\n if (event.end) {\n timeString += \"-\" + moment(event.end).format('HH:mm');\n if (moment(event.start).format('DD.MM') !== moment(event.end).format('DD.MM'))\n timeString = moment(event.start).format('DD.MM HH:mm') + ' - ' + moment(event.end).format('DD.MM HH:mm');\n }\n var eventTypeCaption = event.captionEventType ? \"(\" + event.captionEventType + \")\" : \"\";\n if (!event.noPopover) {\n element.popover({\n animation: true,\n html: true,\n delay: 300,\n content: event.title !== '' ? event.fullTitle + \" (\" + event.title + \") \" + eventTypeCaption + \":
\" + timeString : event.fullTitle + \"
\" + timeString,\n trigger: 'hover',\n placement: 'bottom',\n container: 'body'\n });\n }\n },\n dayClick: function (date, jsEvent, view, resourceObj) {\n $('.popover.in').remove();\n var singleClick = moment(date).toISOString();\n if (_this_1.dblClick === singleClick) {\n var calendarInfo = {\n date: singleClick,\n timeFrom: view.name === \"timelineDay\" || view.name === \"timelineWeek\" ? moment(date).minutes(0).toDate() : null,\n timeTo: view.name === \"timelineDay\" || view.name === \"timelineWeek\" ? moment(date).minutes(0).toDate() : null,\n referenceRessource: resourceObj.referenceId,\n referenceInstituteId: resourceObj.referenceInstituteId\n };\n var isLockedForDate = _this_1.isDateLockedForType(resourceObj.referenceId, Roster.Constants.SUBTYPE_DOCUMENTED, date, date);\n if (!isLockedForDate) {\n _this_1.initNewForm(null, calendarInfo);\n $('#new-service-modal').modal('show');\n }\n _this_1.dblClick = null;\n }\n else {\n _this_1.dblClick = moment(date).toISOString();\n clearInterval(_this_1.clickTimer);\n _this_1.clickTimer = setInterval(function () {\n this.dblClick = null;\n clearInterval(this.clickTimer);\n }, 500);\n }\n }\n });\n };\n RosterController.prototype.preventNegativeTimePeriods = function () {\n var dateFrom = this.$qui.addTimeToDate(this.serviceForm.dateFrom, this.serviceForm.timeFrom);\n var dateTo = this.$qui.addTimeToDate(this.serviceForm.dateTo, this.serviceForm.dateTo);\n if (dateTo < dateFrom) {\n this.isNegativeTimePeriodLock = true;\n this.validation.errors = this.isNegativeTimePeriodLock ? [this.lng.translate(20028027, 'Negative Zeiträume sind nicht zulässig.')] : [];\n }\n else {\n this.isNegativeTimePeriodLock = false;\n }\n };\n RosterController = __decorate([\n QMC.Controller('QMC.Roster', 'RosterController'),\n QMC.Inject('$location', 'RosterService', '$qui', '$scope', '$stateParams', '$state', 'QmcLanguageService', 'QmcPermissionService', 'KlientService', 'UserService', '$compile', '$timeout')\n ], RosterController);\n return RosterController;\n }());\n })(Roster = QMC.Roster || (QMC.Roster = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Roster;\n (function (Roster) {\n var SickLeaveFormDirective = /** @class */ (function () {\n function SickLeaveFormDirective(scope, rosterService, $qui, lng, $timeout) {\n var _this = this;\n this.scope = scope;\n this.rosterService = rosterService;\n this.$qui = $qui;\n this.lng = lng;\n this.$timeout = $timeout;\n this.id = 'sickLeave_' + Math.random().toString(36).substring(2, 11);\n this.formState = 'new';\n this.pauseWatchers = false;\n this.formInvalid = true;\n this.calcedValues = { days: 0, hours: 0 };\n this.validation = { errors: [], warnings: [], loading: false };\n this.promptOptions = {\n title: this.lng.translate(20028038, 'Krankheit'),\n yesNo: true,\n icon: 'qm-icon-mail_virus',\n text: this.lng.translate(20000290, 'Wollen Sie den Eintrag wirklich löschen?')\n };\n this.$postLink = function () {\n _this.calls = {\n new: function (form) {\n var _a;\n _this.initForm();\n _this.formState = 'new';\n _this.lastValidation = undefined;\n _this.validation.errors = [];\n _this.validation.warnings = [];\n if (form) {\n _this.form = __assign(__assign({}, form), { isManualDays: true, isManualHours: false, isAccountServices: false });\n //ensure every form has valid ids for it gets referenced by sickNotes\n var newId = _this.$qui.generateGuid();\n if (!_this.form.id)\n _this.form.id = (_a = _this.form.objectId) !== null && _a !== void 0 ? _a : newId;\n if (!_this.form.objectId)\n _this.form.objectId = _this.form.id;\n }\n if (!_this.form.sickNotes)\n _this.form.sickNotes = [];\n _this.calls.open();\n },\n edit: function (form, start, end) {\n var _a;\n _this.formState = 'edit';\n _this.lastValidation = undefined;\n _this.validation.errors = [];\n _this.validation.warnings = [];\n if (typeof form === 'string') {\n _this.loadSickLeave(form, start, end);\n }\n else {\n _this.pauseWatchers = true;\n _this.form = (_a = __assign(__assign({}, form), { isManualDays: true, isManualHours: false, isAccountServices: false })) !== null && _a !== void 0 ? _a : _this.form;\n if (start)\n _this.form.dateFrom = start;\n if (end)\n _this.form.dateTo = end;\n setTimeout(function () { _this.pauseWatchers = false; }, 50);\n }\n _this.calls.open();\n },\n delete: function (form) { _this.deleteSickLeave(form !== null && form !== void 0 ? form : _this.form); },\n open: function () {\n $('#' + _this.id).modal('show');\n _this.validate();\n _this.createInterface();\n setTimeout(function () { $(\"#\" + _this.id).find(\"#standardTabButton_\" + _this.id).click(); }, 50);\n _this.$qui.scopeApply(_this.scope);\n },\n close: function () { $('#' + _this.id).modal('hide'); }\n };\n };\n this.$onDestroy = function () {\n $('#' + _this.id).remove();\n $('#sickNote_' + _this.id).remove();\n };\n this.uiForm = {\n form: [\n {\n label: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\",\n },\n type: \"DateRange\",\n lngTag: {\n dateFrom: 20000047,\n dateTo: 20000054\n },\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\"\n },\n style: {\n class: \"col-xs-12\"\n },\n config: {\n displayDateTo: true,\n dateToRequired: true,\n displayTime: true,\n disableTime: false,\n disableDate: false\n }\n },\n {\n label: \"Art\",\n type: \"Select2\",\n lngTag: 20000138,\n model: \"diseaseKindId\",\n dataSource: \"getDiseaseKinds\",\n style: {\n class: \"col-md-6 col-xs-12\"\n },\n events: {\n hideExpression: \"qmForm.serviceSubTypeId !== '\" + Roster.Constants.SERVICE_SUBTYPE_DISEASE_STANDARD + \"'\"\n }\n },\n {\n label: \"Anzeigefarbe\",\n type: \"Color\",\n lngTag: 20020034,\n model: \"color\",\n disabled: true,\n style: {\n class: \"col-xs-12\",\n icon: \"qm-icon-painters_palette\"\n },\n events: {\n hideExpression: \"qmForm.serviceSubTypeId === '\" + Roster.Constants.SERVICE_SUBTYPE_DISEASE_STANDARD + \"'\"\n }\n },\n {\n label: \"Anzeigefarbe\",\n type: \"Color\",\n lngTag: 20020034,\n model: \"color\",\n disabled: true,\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"qm-icon-painters_palette\"\n },\n events: {\n hideExpression: \"qmForm.serviceSubTypeId !== '\" + Roster.Constants.SERVICE_SUBTYPE_DISEASE_STANDARD + \"'\"\n }\n },\n {\n label: \"Bezeichnung\",\n type: \"String\",\n lngTag: 20000053,\n model: \"caption\",\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Kürzel\",\n type: \"String\",\n lngTag: 20000221,\n model: \"captionShort\",\n style: {\n class: \"col-md-3 col-xs-6\"\n }\n },\n {\n label: \"Erbringungsort\",\n type: \"Select2\",\n lngTag: 20028006,\n model: \"instituteId\",\n dataSource: \"getInstitutes\",\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n type: 'hr'\n },\n {\n label: \"Anzahl Tage\",\n type: \"CheckboxInline\",\n lngTag: 20020026,\n model: \"isManualDays\",\n id: \"isManualDays\",\n style: {\n class: \"col-md-2 col-sm-3 col-xs-6\"\n }\n },\n {\n model: \"amountOfDays\",\n type: \"Number\",\n disabled: true,\n id: \"amountOfDaysDis\",\n style: {\n class: \"col-md-2 col-sm-3 col-xs-6\",\n },\n events: {\n hideExpression: \"qmForm.isManualDays\"\n }\n },\n {\n model: \"amountOfDays\",\n type: \"Number\",\n disabled: false,\n id: \"amountOfDays\",\n style: {\n class: \"col-md-2 col-sm-3 col-xs-6\",\n },\n events: {\n hideExpression: \"!qmForm.isManualDays\"\n }\n },\n {\n label: \"Anzahl Stunden\",\n type: \"CheckboxInline\",\n lngTag: 20020027,\n model: \"isManualHours\",\n id: \"isManualHours\",\n style: {\n class: \"col-md-2 col-sm-3 col-xs-6\"\n }\n },\n {\n model: \"amountOfHours\",\n type: \"Number\",\n disabled: true,\n id: \"amountOfHoursDis\",\n style: {\n class: \"col-md-2 col-sm-3 col-xs-6\"\n },\n events: {\n hideExpression: \"qmForm.isManualHours\"\n }\n },\n {\n model: \"amountOfHours\",\n type: \"Number\",\n disabled: false,\n id: \"amountOfHours\",\n style: {\n class: \"col-md-2 col-sm-3 col-xs-6\"\n },\n events: {\n hideExpression: \"!qmForm.isManualHours\"\n }\n },\n {\n label: \"Dienste anrechnen\",\n type: \"CheckboxInline\",\n lngTag: 20020024,\n model: \"isAccountServices\",\n id: \"isAccountServices\",\n style: {\n class: \"col-md-4 col-xs-12\"\n }\n },\n {\n type: 'hr'\n },\n {\n label: \"Bemerkung\",\n type: \"Summernote\",\n maxLength: -1,\n lngTag: 20000049,\n model: \"comment\",\n style: {\n class: \"col-md-12 col-xs-12\",\n },\n },\n ]\n };\n this.sickNoteLoading = false;\n this.sickNoteFormState = 'new';\n this.uiSickNoteForm = {\n form: [\n {\n label: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\",\n },\n type: \"DateRange\",\n lngTag: {\n dateFrom: 20000047,\n dateTo: 20000054\n },\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\"\n },\n style: {\n class: \"col-xs-12\"\n },\n config: {\n displayDateTo: true,\n dateToRequired: true,\n disableDate: false\n },\n required: true\n },\n {\n label: \"Art der Krankmeldung\",\n type: \"Select2\",\n lngTag: 20028044,\n model: \"typeOfSickNoteId\",\n dataSource: \"getSickNoteKinds\",\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Bezeichnung\",\n type: \"String\",\n lngTag: 20000053,\n model: \"caption\",\n style: {\n class: \"col-xs-12\"\n },\n required: true\n },\n {\n label: \"Bemerkung\",\n type: \"Textarea\",\n lngTag: 20000049,\n model: \"comment\",\n style: {\n class: \"col-xs-12\"\n }\n },\n {\n label: \"Dokumente\",\n type: \"Documents\",\n lngTag: \"21006000\",\n documentFolderStructure: {\n documentObjectType: \"documentObjectType\",\n objectType: \"objectType\",\n parentId: \"objectId\"\n },\n style: {\n class: \"col-xs-12\",\n }\n }\n ],\n actions: {\n post: 'createSickNote',\n put: 'updateSickNote',\n delete: 'deleteSickNote'\n }\n };\n this.init();\n this.events();\n }\n SickLeaveFormDirective.prototype.init = function () {\n var _this = this;\n this.rosterService.getSickLeaveWv().then(function (data) {\n _this.wvList = data;\n });\n this.rosterService.getInstituteList().then(function (data) {\n _this.institutes = data;\n });\n this.initForm();\n };\n SickLeaveFormDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.form.diseaseKindId', function (newValue, oldValue) {\n var _a;\n if (newValue === oldValue || !newValue)\n return;\n var intColor = (_a = _this.wvList.diseaseKindWvList.filter(function (x) { return x.objectId === newValue; })[0]) === null || _a === void 0 ? void 0 : _a.value;\n if (!intColor)\n return;\n _this.form.color = '#' + ('000000' + (intColor & 0xFFFFFF).toString(16)).slice(-6);\n });\n this.scope.$watch('vm.form.isManualDays', function (newValue) {\n if (_this.pauseWatchers || !newValue || !_this.form)\n return;\n _this.form.isManualHours = false;\n _this.form.isAccountServices = false;\n _this.form.accountingTypeFlag = 0;\n });\n this.scope.$watch('vm.form.isManualHours', function (newValue) {\n if (_this.pauseWatchers || !newValue || !_this.form)\n return;\n _this.form.isManualDays = false;\n _this.form.isAccountServices = false;\n _this.form.accountingTypeFlag = 1;\n });\n this.scope.$watch('vm.form.isAccountServices', function (newValue) {\n if (_this.pauseWatchers || !newValue || !_this.form)\n return;\n _this.form.isManualDays = false;\n _this.form.isManualHours = false;\n _this.form.accountingTypeFlag = 2;\n });\n this.scope.$watch('vm.form.dateFrom', function (newValue, oldValue) {\n if (!newValue)\n return;\n if (moment(newValue).format(\"L\") === moment(oldValue).format(\"L\"))\n return;\n _this.getCalcDayValues();\n });\n this.scope.$watch('vm.form.dateTo', function (newValue, oldValue) {\n if (!newValue)\n return;\n if (moment(newValue).format(\"L\") === moment(oldValue).format(\"L\"))\n return;\n _this.getCalcDayValues();\n });\n this.scope.$watch('vm.form', function () {\n _this.$timeout(function () {\n _this.formInvalid = $(\"#\" + _this.id).find(\"#baseDataTab_\" + _this.id).find('.ng-invalid').length > 0;\n });\n if (!_this.pauseWatchers) {\n _this.validate();\n }\n }, true);\n };\n SickLeaveFormDirective.prototype.initForm = function () {\n var _a, _b, _c, _d;\n var newId = this.$qui.generateGuid();\n this.form = {\n id: newId,\n objectId: newId,\n comment: '',\n dateFrom: new Date(),\n dateTo: new Date(),\n color: '#0000FF',\n amountOfDays: 0,\n amountOfHours: 0,\n accountingTypeFlag: 0,\n caption: '',\n captionShort: '',\n diseaseKindId: null,\n referenceId: (_b = (_a = this.reference) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : $('#session').data().personId,\n instituteId: (_d = (_c = this.reference) === null || _c === void 0 ? void 0 : _c.instituteId) !== null && _d !== void 0 ? _d : null,\n serviceSubTypeId: Roster.Constants.SERVICE_SUBTYPE_DISEASE_STANDARD,\n isAccountServices: false,\n isManualDays: true,\n isManualHours: false\n };\n };\n SickLeaveFormDirective.prototype.getDiseaseKinds = function () {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.wvList) === null || _a === void 0 ? void 0 : _a.diseaseKindWvList) === null || _b === void 0 ? void 0 : _b.map(function (x) { return ({ text: x.name, value: x.objectId }); })) !== null && _c !== void 0 ? _c : [];\n };\n SickLeaveFormDirective.prototype.getSickNoteKinds = function () {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.wvList) === null || _a === void 0 ? void 0 : _a.sickNoteKindWvList) === null || _b === void 0 ? void 0 : _b.map(function (x) { return ({ text: x.name, value: x.objectId }); })) !== null && _c !== void 0 ? _c : [];\n };\n SickLeaveFormDirective.prototype.getInstitutes = function () {\n var _a, _b;\n return (_b = (_a = this.institutes) === null || _a === void 0 ? void 0 : _a.map(function (x) { return ({ text: x.caption, value: x.objectId }); })) !== null && _b !== void 0 ? _b : [];\n };\n SickLeaveFormDirective.prototype.getPermission = function () {\n if (this.form && this.form.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_DISEASE_ACCIDENT)\n return this.permissions.accident;\n if (this.form && this.form.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_DISEASE_STANDARD)\n return this.permissions.standard;\n return {};\n };\n SickLeaveFormDirective.prototype.isEditAllowed = function () {\n var _a, _b, _c, _d, _e, _f, _g;\n if (this.formState === 'new')\n return (_b = (_a = this.getPermission()) === null || _a === void 0 ? void 0 : _a.new) !== null && _b !== void 0 ? _b : false;\n if (this.formState === 'edit')\n return (_g = (_e = (_d = (_c = this.form) === null || _c === void 0 ? void 0 : _c.permissions) === null || _d === void 0 ? void 0 : _d.modify) !== null && _e !== void 0 ? _e : (_f = this.getPermission()) === null || _f === void 0 ? void 0 : _f.modify) !== null && _g !== void 0 ? _g : false;\n return false;\n };\n SickLeaveFormDirective.prototype.getCalcDayValues = function () {\n var _this = this;\n if (!this.form.isManualDays)\n return;\n this.rosterService.calculateDayValues(this.form.dateFrom, this.form.dateTo, this.reference.id).then(function (data) {\n _this.form.amountOfDays = data.calcDays;\n if (!_this.form.isManualHours)\n _this.form.amountOfHours = 0;\n });\n };\n SickLeaveFormDirective.prototype.getButtonClass = function () {\n if (this.validation.errors.length > 0)\n return 'btn-danger';\n if (this.validation.warnings.length > 0)\n return 'btn-warning';\n return 'btn-primary';\n };\n SickLeaveFormDirective.prototype.loadSickLeave = function (id, start, end) {\n var _this = this;\n if (!id)\n return;\n this.loading = true;\n this.rosterService.getSickLeave(id).then(function (data) {\n _this.pauseWatchers = true;\n if (start)\n data.dateFrom = start;\n if (end)\n data.dateFrom = end;\n data.dateFrom = _this.$qui.createDateFromString(data.dateFrom);\n data.dateTo = _this.$qui.createDateFromString(data.dateTo);\n switch (data.accountingTypeFlag) {\n case 1:\n data.isManualHours = true;\n break;\n case 2:\n data.isAccountServices = true;\n break;\n default:\n data.isManualDays = true;\n break;\n }\n _this.form = data;\n _this.createInterface();\n setTimeout(function () {\n _this.pauseWatchers = false;\n $(\"#\" + _this.id).find(\"#standardTabButton_\" + _this.id).click();\n }, 50);\n }).finally(function () { return _this.loading = false; });\n };\n SickLeaveFormDirective.prototype.createInterface = function () {\n if (!this.form)\n return;\n if (!this.form.id)\n this.form.id = this.$qui.generateGuid();\n if (this.form.objectId)\n this.form.objectId = this.form.id;\n this.$qui.functionWaiter('createForm', this);\n };\n SickLeaveFormDirective.prototype.addSickLeave = function (form) {\n var _this = this;\n form = form !== null && form !== void 0 ? form : this.form;\n if (!this.getPermission().new)\n return;\n if (form.isManualDays)\n form.accountingTypeFlag = 0;\n if (form.isManualHours)\n form.accountingTypeFlag = 1;\n if (form.isAccountServices)\n form.accountingTypeFlag = 2;\n this.loading = true;\n this.rosterService.postSickLeave(form).then(function () {\n _this.calls.close();\n _this.callbacks().onNew(form);\n }).finally(function () { return _this.loading = false; });\n };\n SickLeaveFormDirective.prototype.updateSickLeave = function (form) {\n var _this = this;\n var _a;\n form = form !== null && form !== void 0 ? form : this.form;\n if (!((_a = this.form.permissions) === null || _a === void 0 ? void 0 : _a.modify))\n return;\n if (form.isManualDays)\n form.accountingTypeFlag = 0;\n if (form.isManualHours)\n form.accountingTypeFlag = 1;\n if (form.isAccountServices)\n form.accountingTypeFlag = 2;\n this.loading = true;\n this.rosterService.putSickLeave(form.objectId, form).then(function () {\n _this.calls.close();\n _this.callbacks().onEdit(form);\n }).finally(function () { return _this.loading = false; });\n };\n SickLeaveFormDirective.prototype.deleteSickLeave = function (form) {\n var _this = this;\n var _a;\n form = form !== null && form !== void 0 ? form : this.form;\n if (!((_a = this.form.permissions) === null || _a === void 0 ? void 0 : _a.delete))\n return;\n this.promptOptions.title = this.form.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_DISEASE_STANDARD ? this.lng.translate(20028038, 'Krankheit') : this.lng.translate(20028039, 'Arbeitsunfall');\n this.promptOptions.itemText = form.caption + \" (\" + moment(form.dateFrom).format('DD.MM.yyyy HH:mm') + \" - \" + moment(form.dateTo).format('DD.MM.yyyy HH:mm') + \")\";\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (!data)\n return;\n _this.loading = true;\n _this.rosterService.deleteSickLeave(form.objectId).then(function () {\n _this.calls.close();\n _this.callbacks().onDelete(form);\n }).finally(function () { return _this.loading = false; });\n }, \"#prompt_\" + this.id);\n };\n SickLeaveFormDirective.prototype.validate = function () {\n var _this = this;\n var _a, _b, _c, _d;\n if (!this.form)\n return;\n var validationForm = {\n entryId: this.form.objectId,\n referenceId: (_b = (_a = this.reference) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : $('#session').data().personId,\n reference: (_d = (_c = this.reference) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : '',\n dateFrom: this.form.dateFrom,\n dateTo: this.form.dateTo,\n serviceTypeId: Roster.Constants.SERVICE_TYPE_DISEASE,\n serviceSubTypeId: this.form.serviceSubTypeId,\n randomId: Math.random().toString(36).substring(2, 11)\n };\n if (this.lastValidation) {\n var last = angular.copy(this.lastValidation);\n var current = angular.copy(validationForm);\n delete last.randomId;\n delete current.randomId;\n if (JSON.stringify(last) === JSON.stringify(current))\n return;\n }\n this.lastValidation = validationForm;\n this.validation.loading = true;\n this.rosterService.validateNonService(validationForm).then(function (data) {\n if (_this.lastValidation.randomId === validationForm.randomId) {\n _this.validation = {\n errors: data.errors,\n warnings: data.warnings,\n loading: false\n };\n }\n }).catch(function () {\n _this.validation = {\n errors: [_this.lng.translate(20028043, 'Es konnte nicht validiert werden')],\n warnings: [],\n loading: false\n };\n });\n };\n SickLeaveFormDirective.prototype.newSickNote = function (form) {\n this.sickNoteForm = form;\n this.sickNoteFormState = 'new';\n // ensure every sickNote has valid ids, for they get referenced by the actual documents\n var newId = this.$qui.generateGuid();\n this.sickNoteForm = {\n caption: '',\n comment: '',\n dateFrom: moment(this.form.dateFrom).startOf('day').toDate(),\n dateTo: moment(this.form.dateTo).endOf('day').toDate(),\n id: newId,\n objectId: newId,\n typeOfSickNoteId: Roster.Constants.SERVICE_SICKNOTETYPE_INITIALDOCUMENT,\n typeOfSickNoteCaption: '',\n parentObjectType: this.form.serviceSubTypeId === Roster.Constants.SERVICE_SUBTYPE_DISEASE_STANDARD ? 411004 : 411006\n };\n this.openSickNoteModal();\n };\n SickLeaveFormDirective.prototype.openSickNoteModal = function () {\n this.sickNoteForm.objectType = 411008;\n this.sickNoteForm.documentObjectType = 411009;\n this.$qui.functionWaiter('createSickNoteForm', this);\n $('#sickNote_' + this.id).modal('show');\n };\n SickLeaveFormDirective.prototype.closeSickNoteModal = function () {\n $('#sickNote_' + this.id).modal('hide');\n };\n SickLeaveFormDirective.prototype.openSickNote = function (form) {\n this.sickNoteForm = form;\n this.sickNoteFormState = 'edit';\n this.openSickNoteModal();\n };\n SickLeaveFormDirective.prototype.createSickNote = function (form) {\n var _this = this;\n if (this.formState === 'new') {\n form.permissions = this.permissions.document;\n this.form.sickNotes.push(form);\n }\n else {\n this.sickNoteLoading = true;\n this.rosterService.postSickNote(this.form.objectId, form).then(function () {\n _this.closeSickNoteModal();\n _this.getSickNotes();\n }).finally(function () { return _this.sickNoteLoading = false; });\n }\n };\n SickLeaveFormDirective.prototype.updateSickNote = function (form) {\n var _this = this;\n if (this.formState === 'new') {\n this.form.sickNotes = this.form.sickNotes.filter(function (x) { return x.objectId !== form.objectId; });\n this.form.sickNotes.push(form);\n }\n else {\n this.sickNoteLoading = true;\n this.rosterService.putSickNote(this.form.objectId, form.objectId, form).then(function () {\n _this.closeSickNoteModal();\n _this.getSickNotes();\n }).finally(function () { return _this.sickNoteLoading = false; });\n }\n };\n SickLeaveFormDirective.prototype.getSickNotes = function () {\n var _this = this;\n this.sickNoteLoading = true;\n this.rosterService.getSickNoteList(this.form.objectId).then(function (data) {\n _this.form.sickNotes = data;\n }).finally(function () { return _this.sickNoteLoading = false; });\n };\n SickLeaveFormDirective.prototype.deleteSickNote = function (form) {\n var _this = this;\n var _a;\n if (!((_a = form.permissions) === null || _a === void 0 ? void 0 : _a.delete))\n return;\n this.promptOptions.itemText = form.caption + \" (\" + moment(form.dateFrom).format('DD.MM.yyyy') + \" - \" + moment(form.dateTo).format('DD.MM.yyyy') + \")\";\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (!data)\n return;\n if (_this.formState === 'new') {\n _this.form.sickNotes = _this.form.sickNotes.filter(function (x) { return x.objectId !== form.objectId; });\n }\n else {\n _this.sickNoteLoading = true;\n _this.rosterService.deleteSickNote(_this.form.objectId, form.objectId).then(function () {\n _this.closeSickNoteModal();\n _this.getSickNotes();\n }).finally(function () { return _this.sickNoteLoading = false; });\n }\n }, \"#prompt_\" + this.id);\n };\n return SickLeaveFormDirective;\n }());\n angular.module('QMC.Roster').component('qmSickLeaveForm', {\n templateUrl: './Roster/SickLeaveFormDirective',\n controller: ['$scope', 'RosterService', '$qui', 'QmcLanguageService', '$timeout', SickLeaveFormDirective],\n controllerAs: 'vm',\n bindings: {\n form: '=?',\n permissions: '=',\n calls: '=',\n callbacks: '&',\n reference: '=',\n }\n });\n })(Roster = QMC.Roster || (QMC.Roster = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Roster;\n (function (Roster) {\n var ExemptionFormDirective = /** @class */ (function () {\n function ExemptionFormDirective(scope, $qui, rosterService, lng, $timeout) {\n var _this = this;\n this.scope = scope;\n this.$qui = $qui;\n this.rosterService = rosterService;\n this.lng = lng;\n this.$timeout = $timeout;\n this.id = '_' + Math.random().toString(36).substr(2, 9);\n this.formState = 'new';\n this.pauseWatchers = false;\n this.validation = { errors: [], warnings: [], loading: false };\n this.promptOptions = {\n title: this.lng.translate(20028042, 'Freistellung'),\n yesNo: true,\n icon: 'qm-icon-mail-virus',\n text: this.lng.translate(20000290, 'Wollen Sie den Eintrag wirklich löschen?')\n };\n this.$postLink = function () {\n _this.calls = {\n new: function (form) {\n _this.initForm();\n _this.formState = 'new';\n if (form) {\n _this.form = form;\n }\n _this.calls.open();\n },\n edit: function (form, start, end) {\n _this.formState = 'edit';\n if (typeof form === 'string') {\n _this.loadExemption(form, start, end);\n }\n else {\n _this.pauseWatchers = true;\n _this.form = form;\n if (start)\n _this.form.dateFrom = start;\n if (end)\n _this.form.dateTo = end;\n setTimeout(function () { _this.pauseWatchers = false; }, 50);\n }\n _this.calls.open();\n },\n delete: function (form) { _this.deleteExemption(form !== null && form !== void 0 ? form : _this.form); },\n open: function () {\n $('#' + _this.id).modal('show');\n _this.validate();\n _this.createInterface();\n _this.$qui.scopeApply(_this.scope);\n _this.$qui.waitForEl(\"#\" + _this.id + \"_standardTabButton\", function () {\n $(\"#\" + _this.id + \"_standardTabButton\").click();\n });\n },\n close: function () { $('#' + _this.id).modal('hide'); }\n };\n };\n this.$onDestroy = function () {\n $('#' + _this.id).remove();\n };\n this.formSchema = {\n form: [\n {\n label: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\",\n },\n placeholder: {\n dateFrom: \"Datum von\",\n dateTo: \"Datum bis\"\n },\n type: \"DateRange\",\n lngTag: {\n dateFrom: 20000047,\n dateTo: 20000054\n },\n model: {\n dateFrom: \"dateFrom\",\n dateTo: \"dateTo\"\n },\n style: {\n class: \"col-xs-12\"\n },\n config: {\n displayDateTo: true,\n dateToRequired: true,\n displayTime: true,\n disableTime: false,\n disableDate: false\n }\n },\n {\n label: \"Art\",\n type: \"Select2\",\n model: \"exemptionKindId\",\n lngTag: 20000138,\n dataSource: \"getExemptionKindList\",\n style: {\n class: \"col-md-6 col-xs-12\"\n },\n },\n {\n label: \"Anzeigefarbe\",\n type: \"Color\",\n lngTag: 20020034,\n model: \"color\",\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"qm-icon-painters_palette\"\n }\n },\n {\n label: \"Bezeichnung\",\n type: \"String\",\n model: \"caption\",\n lngTag: 20000053,\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Kürzel\",\n type: \"String\",\n model: \"captionShort\",\n lngTag: 20000221,\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Erbringungsort\",\n type: \"Select2\",\n dataSource: \"getInstitutes\",\n model: \"instituteId\",\n lngTag: 20028006,\n style: {\n class: \"col-md-6 col-xs-12\"\n }\n },\n {\n label: \"Genehmigungsstatus\",\n type: \"Select\",\n dataSource: \"getApprovementWvList\",\n model: \"approvedId\",\n id: \"approvedId\",\n lngTag: 20020007,\n events: {\n hideExpression: \"!qmForm.permissionApproved\"\n },\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"qm-icon-information\"\n }\n },\n {\n label: \"Genehmigungsstatus\",\n type: \"Select\",\n dataSource: \"getApprovementWvList\",\n model: \"approvedId\",\n lngTag: 20020007,\n disabled: true,\n events: {\n hideExpression: \"qmForm.permissionApproved\"\n },\n style: {\n class: \"col-md-6 col-xs-12\",\n icon: \"qm-icon-information\"\n }\n },\n {\n label: \"Bemerkung\",\n type: \"Summernote\",\n lngTag: 20000049,\n model: \"comment\",\n style: {\n class: \"col-md-12 col-xs-12\",\n },\n }\n ],\n actions: {\n put: \"updateExemption\",\n post: \"addExemption\",\n delete: \"deleteExemption\"\n }\n };\n this.init();\n this.events();\n }\n ExemptionFormDirective.prototype.validate = function () {\n var _this = this;\n var _a, _b, _c, _d;\n if (!this.form)\n return;\n var validationForm = {\n entryId: this.form.objectId,\n referenceId: (_b = (_a = this.reference) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : $('#session').data().personId,\n reference: (_d = (_c = this.reference) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : '',\n dateFrom: this.form.dateFrom,\n dateTo: this.form.dateTo,\n serviceTypeId: Roster.Constants.SERVICE_TYPE_EXEMPTION,\n serviceSubTypeId: Roster.Constants.SERVICE_TYPE_EXEMPTION,\n randomId: Math.random().toString(36).substring(2, 11)\n };\n if (this.lastValidation) {\n var last = angular.copy(this.lastValidation);\n var current = angular.copy(validationForm);\n delete last.randomId;\n delete current.randomId;\n if (JSON.stringify(last) === JSON.stringify(current))\n return;\n }\n this.lastValidation = validationForm;\n this.validation.loading = true;\n this.rosterService.validateNonService(validationForm).then(function (data) {\n if (_this.lastValidation.randomId === validationForm.randomId) {\n _this.validation = {\n errors: data.errors,\n warnings: data.warnings,\n loading: false\n };\n }\n }).catch(function () {\n _this.validation = {\n errors: [_this.lng.translate(20028043, 'Es konnte nicht validiert werden')],\n warnings: [],\n loading: false\n };\n });\n };\n ExemptionFormDirective.prototype.formatForm = function () {\n if (this.form) {\n this.form.approved = this.getApprovementWvItem(this.form.approvedId);\n this.form.permissionApproved = this.permissions.approved.openFile;\n }\n };\n ExemptionFormDirective.prototype.init = function () {\n var _this = this;\n this.rosterService.getExemptionWv().then(function (data) {\n _this.wvList = data;\n });\n this.rosterService.getInstituteList().then(function (data) {\n _this.institutes = data;\n });\n this.initForm();\n };\n ExemptionFormDirective.prototype.getInstitutes = function () {\n var _a, _b;\n return (_b = (_a = this.institutes) === null || _a === void 0 ? void 0 : _a.map(function (x) { return ({ text: x.caption, value: x.objectId }); })) !== null && _b !== void 0 ? _b : [];\n };\n ExemptionFormDirective.prototype.events = function () {\n var _this = this;\n this.scope.$watch('vm.form.exemptionKindId', function (newValue, oldValue) {\n var _a;\n if (newValue === oldValue || !newValue)\n return;\n var intColor = (_a = _this.wvList.exemptionKindWvList.filter(function (x) { return x.objectId === newValue; })[0]) === null || _a === void 0 ? void 0 : _a.value;\n if (!intColor)\n return;\n _this.form.color = '#' + ('000000' + (intColor & 0xFFFFFF).toString(16)).slice(-6);\n });\n this.scope.$watch('vm.form.dateFrom', function (newValue, oldValue) {\n if (!newValue)\n return;\n if (moment(newValue).format(\"L\") === moment(oldValue).format(\"L\"))\n return;\n });\n this.scope.$watch('vm.form.dateTo', function (newValue, oldValue) {\n if (!newValue)\n return;\n if (moment(newValue).format(\"L\") === moment(oldValue).format(\"L\"))\n return;\n });\n this.scope.$watch('vm.form', function () {\n if (!_this.pauseWatchers) {\n _this.validate();\n }\n }, true);\n };\n ExemptionFormDirective.prototype.initForm = function () {\n var _a, _b, _c, _d;\n var newId = this.$qui.generateGuid();\n this.form = {\n id: newId,\n objectId: newId,\n referenceId: this.scope.referenceId,\n caption: this.lng.translate(20028042, 'Freistellung'),\n color: '#0000FF',\n dateFrom: new Date(),\n dateTo: new Date(),\n comment: '',\n captionShort: '',\n exemptionKindId: null,\n instituteId: (_b = (_a = this.reference) === null || _a === void 0 ? void 0 : _a.instituteId) !== null && _b !== void 0 ? _b : null,\n permissionApproved: (_d = (_c = this.permissions) === null || _c === void 0 ? void 0 : _c.approved) === null || _d === void 0 ? void 0 : _d.openFile,\n approvedId: null,\n approvedById: null\n };\n };\n ExemptionFormDirective.prototype.getApprovementWvList = function () {\n return this.wvList.approvementTypeWvList.map(function (x) { return ({ text: x.name, value: x.objectId }); });\n };\n ExemptionFormDirective.prototype.getApprovementWvItem = function (approvedId) {\n var _a, _b;\n var result = this.wvList.approvementTypeWvList.filter(function (item) { return item.objectId === approvedId; });\n return result ? (_b = (_a = result[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '' : '';\n };\n ExemptionFormDirective.prototype.getExemptionKindList = function () {\n var result = this.wvList.exemptionKindWvList.map(function (x) { return ({ text: x.name, value: x.objectId }); });\n result.unshift({ text: '', value: QMC.Common.Constants.GUID_EMPTY });\n return result;\n };\n ExemptionFormDirective.prototype.loadExemption = function (id, start, end) {\n var _this = this;\n if (!id)\n return;\n this.loading = true;\n this.rosterService.getExemption(id).then(function (data) {\n _this.pauseWatchers = true;\n if (start)\n data.dateFrom = start;\n if (end)\n data.dateFrom = end;\n data.dateFrom = _this.$qui.createDateFromString(data.dateFrom);\n data.dateTo = _this.$qui.createDateFromString(data.dateTo);\n _this.form = data;\n _this.formatForm();\n _this.createInterface();\n setTimeout(function () {\n _this.pauseWatchers = false;\n }, 50);\n }).finally(function () { return _this.loading = false; });\n };\n ExemptionFormDirective.prototype.createInterface = function () {\n if (!this.form)\n return;\n this.$qui.functionWaiter('createForm', this);\n };\n ExemptionFormDirective.prototype.addExemption = function (form) {\n var _this = this;\n form = form !== null && form !== void 0 ? form : this.form;\n if (!this.permissions.standard.new)\n return;\n this.loading = true;\n this.rosterService.postExemption(form).then(function () {\n _this.calls.close();\n _this.callbacks.onNew(form);\n }).finally(function () { return _this.loading = false; });\n };\n ExemptionFormDirective.prototype.updateExemption = function (form) {\n var _this = this;\n form = form !== null && form !== void 0 ? form : this.form;\n if (!this.form.permissions.modify)\n return;\n this.loading = true;\n this.rosterService.putExemption(form.objectId, form).then(function () {\n _this.calls.close();\n _this.callbacks.onEdit(form);\n }).finally(function () { return _this.loading = false; });\n };\n ExemptionFormDirective.prototype.deleteExemption = function (form) {\n var _this = this;\n form = form !== null && form !== void 0 ? form : this.form;\n if (!this.form.permissions.delete)\n return;\n this.promptOptions.title = this.lng.translate(20028042, 'Freistellung');\n this.promptOptions.itemText = form.caption + \" (\" + moment(form.dateFrom).format('DD.MM.yyyy HH:mm') + \" - \" + moment(form.dateTo).format('DD.MM.yyyy HH:mm') + \")\";\n QMC.Common.Utilities.confirm(this.promptOptions, function (data) {\n if (!data)\n return;\n _this.loading = true;\n _this.rosterService.deleteExemption(form.objectId).then(function () {\n _this.calls.close();\n _this.callbacks.onDelete(form);\n }).finally(function () { return _this.loading = false; });\n }, \"#prompt_\" + this.id);\n };\n return ExemptionFormDirective;\n }());\n angular.module('QMC.Roster').component('qmExemptionForm', {\n templateUrl: './Roster/ExemptionForm',\n controller: ['$scope', '$qui', 'RosterService', 'QmcLanguageService', '$timeout', ExemptionFormDirective],\n controllerAs: 'vm',\n bindings: {\n form: '=?',\n permissions: '=',\n calls: '=',\n callbacks: '=',\n reference: '='\n }\n });\n })(Roster = QMC.Roster || (QMC.Roster = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Roster;\n (function (Roster) {\n /**\n * Time tracking user interface class\n */\n var UserInterfaceTimeTracking = /** @class */ (function (_super) {\n __extends(UserInterfaceTimeTracking, _super);\n function UserInterfaceTimeTracking() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.showMonthFilter = true;\n /**\n * time tracking item list table / only testing purpose right now, NOT final\n * @memberof UserInterface\n */\n _this.timeTrackingListTable = {\n \"config\": {\n \"defaultSort\": \"timeStamp\",\n \"sortReverse\": \"true\"\n },\n \"filter\": {\n model: null\n },\n \"table\": {\n \"Stempeldatum\": {\n \"label\": \"timeStamp\",\n \"dType\": \"Date\",\n \"lngTag\": \"0\"\n },\n \"Bezeichnung\": {\n \"label\": \"caption\",\n \"dType\": \"string\",\n \"lngTag\": \"0\"\n },\n \"Aktionen\": [{\n \"icon\": \"qm-icon-eye blue\",\n \"click\": \"\",\n \"dType\": \"Button\",\n \"tooltip\": \"Betrachten\",\n \"lngTag\": \"0\"\n }]\n }, \"card\": {\n \"avatar\": {\n \"icon\": \"qm-icon-clock\"\n },\n \"text\": {\n \"label\": \"caption\",\n \"dType\": \"string\"\n },\n \"subtext\": [\n {\n \"label\": \"timeStamp\",\n \"dType\": \"Date\"\n }\n ],\n \"buttons\": [\n {\n \"icon\": \"qm-icon-eye blue\",\n \"click\": \"\",\n \"dType\": \"Button\",\n \"tooltip\": \"Betrachten\",\n \"lngTag\": \"0\"\n }\n ]\n },\n \"data\": null\n };\n return _this;\n }\n return UserInterfaceTimeTracking;\n }(QMC.Common.UserInterface));\n Roster.UserInterfaceTimeTracking = UserInterfaceTimeTracking;\n })(Roster = QMC.Roster || (QMC.Roster = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Roster;\n (function (Roster) {\n var TimeTrackingConstants = /** @class */ (function () {\n function TimeTrackingConstants() {\n }\n TimeTrackingConstants.TIME_TRACKING_STAMP_IN = '829F4DFB-F4E0-4921-8AC1-8C4F83952593';\n TimeTrackingConstants.TIME_TRACKING_STAMP_OUT = '04C5C2E9-1485-4466-BF46-DE4428DD3DA7';\n return TimeTrackingConstants;\n }());\n Roster.TimeTrackingConstants = TimeTrackingConstants;\n })(Roster = QMC.Roster || (QMC.Roster = {}));\n})(QMC || (QMC = {}));\nvar QMC;\n(function (QMC) {\n var Roster;\n (function (Roster) {\n var TimeTrackingService = /** @class */ (function (_super) {\n __extends(TimeTrackingService, _super);\n function TimeTrackingService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.timeTrackingPath = '/TimeTracking';\n return _this;\n }\n TimeTrackingService.prototype.checkTimeTrackingAvailable = function () {\n return _super.prototype.getItem.call(this, this.timeTrackingPath + '/CheckAvailable').then(function (data) {\n return data;\n });\n };\n TimeTrackingService.prototype.getLatestTimeTrackingDetailItem = function () {\n return _super.prototype.getItem.call(this, this.timeTrackingPath + '/GetLatest').then(function (data) {\n return data;\n });\n };\n TimeTrackingService.prototype.postTimeTrackingStart = function (comment) {\n return _super.prototype.post.call(this, this.timeTrackingPath + '/Start', { comment: comment }).then(function (data) {\n return data;\n });\n };\n TimeTrackingService.prototype.postTimeTrackingStop = function (comment) {\n return _super.prototype.post.call(this, this.timeTrackingPath + '/Stop', { comment: comment }).then(function (data) {\n return data;\n });\n };\n TimeTrackingService.prototype.getTimeTrackingItemList = function () {\n return _super.prototype.get.call(this, this.timeTrackingPath, { page: -1, pageSize: -1 }).then(function (data) {\n return data.items;\n });\n };\n TimeTrackingService = __decorate([\n QMC.Service('QMC.Roster', 'TimeTrackingService'),\n QMC.Inject('$http', '$q')\n ], TimeTrackingService);\n return TimeTrackingService;\n }(QMC.Common.BaseService));\n Roster.TimeTrackingService = TimeTrackingService;\n })(Roster = QMC.Roster || (QMC.Roster = {}));\n})(QMC || (QMC = {}));\n\n//# sourceMappingURL=../../maps/Roster/qmc.roster.js.map\n"],"names":["QMC","__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__assign","assign","t","s","n","call","apply","routes","$locationProvider","$stateProvider","qmcBase","html5Mode","enabled","requireBase","state","url","templateUrl","controller","controllerAs","resolve","data","console","log","params","startDay","dynamic","angular","module","config","$inject","Constants","Roster","SERVICE","SUBTYPE_PLANNED","SUBTYPE_DOCUMENTED","MISCELLANIOUS_TEMPLATE","SERVICE_WV_HOLIDAY","SERVICE_TYPE_HOLIDAY","SERVICE_SUBTYPE_HOLIDAY_HOLIDAY","SERVICE_SUBTYPE_HOLIDAY_SPECIAL","SERVICE_SUBTYPE_HOLIDAY_TRAINING","SERVICE_WV_DISEASE","SERVICE_TYPE_DISEASE","SERVICE_SUBTYPE_DISEASE_STANDARD","SERVICE_SUBTYPE_DISEASE_ACCIDENT","SERVICE_TYPE_EXEMPTION","SERVICE_WV_EXEMPTION","SERVICE_SICKNOTETYPE_INITIALDOCUMENT","_super","RosterService","$http","$q","_this","modulePath","servicePlanningPath","sickLeavePath","sickNotePath","exemptionPath","Common","BaseService","getTemplates","get","getRosterWv","getItem","getReferences","objectType","getRosterData","referenceIds","referenceType","dateFrom","dateTo","predefinedView","includeSub","loadWorkingEventsData","referenceObjectType","predefinedViewId","getAwayData","postServicePlanning","post","then","postServiceDocu","id","putService","put","getService","deleteService","delete","checkForConflictErrors","validateNonService","calculateDayValues","referenceId","postSickLeave","putSickLeave","getSickLeave","deleteSickLeave","getSickLeaveWv","postSickNote","sickLeaveId","putSickNote","sickNoteId","getSickNote","getSickNoteList","deleteSickNote","postExemption","putExemption","getExemption","deleteExemption","getExemptionWv","Service","Inject","RosterController","$location","rosterService","$qui","$scope","$stateParams","$state","lng","permissionService","clientService","userService","$compile","$timeout","_this_1","localStorageItem","supportMiscTemplates","localStorageItemName","isMobile","scrollPosition","debounceCheckShowWeekends","debounceCheckHighlightWeekends","debounceCheckShowWorkingEventsInfo","debounceCheck","calendarCreated","showValidationBox","calendarNoReload","askDroppedService","UserSettingConstantsAndDefaults","ASKDROPPEDSERVICE","institutes","employees","serviceAdditionals","referenceTypes","references","predefinedViews","employeesList","rosterResources","rosterData","rosterEvents","isNegativeTimePeriodLock","resourceViewMobileCreated","loading","template","calendar","institute","employee","wv","detail","permission","allLoaded","view","service","new","modify","serviceDocumenteted","openFile","servicePermission","rosterSettings","showWeekends","showWorkingEventsInfo","viewDate","Date","dataFrom","dataTo","GUID_EMPTY","defaultSchedulerView","highlightWeekends","showOnlyActiveReferences","dblClick","clickTimer","isDragging","formState","holidayPermissions","standard","undefined","special","approved","document","documentSpecial","holidayCallbacks","onNew","onEdit","onDelete","exemptionCallbacks","sickLeavePermissions","accident","sickLeaveCallbacks","keepData","init","getSectionColor","path","anonAvatar","bindEvents","navToggle","selectedReferences","localStorage","JSON","parse","selectedReference","$","personId","moment","toDate","validation","errors","warnings","isLoading","IS_MOBILE","events","getPermissionsByObjectTypes","moduleAccess","grep","e","wtOverviewPermission","exemptionPermissions","getUserSettings","value","toLowerCase","setupCalendar","getInstitutes","getEmployees","getWvList","resetCalendar","openNewServiceSelect","_a","selectedNewReference","some","x","modal","newServiceSelected","reference","filter","wantedRosterType","eventReference","instituteId","name","text","rosterTypeId","rosterSubTypeId","handleTemplateDrop","startOf","newServiceSelectedGeneralPlanning","initNewForm","serviceForm","date","droppedOnRosterType","handleRosterDrop","serviceTypeId","handleHolidayDrop","handleDiseaseDrop","handleExemptionDrop","notify","title","message","icon","status","timer","delay","scopeApply","wantedSubType","_b","wantToCreateIsTime","calculateDateTo","calendarInfo","timeFrom","timeTo","referenceRessource","referenceInstituteId","parentId","isDateLockedForType","openNewServiceModal","saveNewService","serviceSubTypeId","holidayCalls","comment","endOf","holidayTypeId","isSpecialHoliday","color","amountOfDays","amountOfHours","accountingTypeFlag","isManualDays","isManualHours","creditWorkAsHoliday","permissionApproved","approvedId","APPROVAL_APRROVED_ID","APPROVAL_PENDING_ID","caption","translate","sickLeaveCalls","objectId","captionShort","substring","toUpperCase","diseaseKindId","_e","_c","exemptionCalls","exemptionKindId","_f","dropDate","getFullYear","getMonth","getDate","dropDateMoment","momentTimeFrom","minutes","hours","modDropDateMomentMinutes","clone","add","momentFrom","momentTo","timespan","duration","diff","openExistingService","openExistingPlannedService","openModifyModal","getTempaltesById","templateList","item","items","fullCalendar","setTimeout","prepareForValidation","validationFormList","proposedConflictCheckAction","this_1","_i","_loop_1","referenceItem","formToValidate","copy","addTimeToDate","displayTitle","conflictProposedAction","push","validate","form","validationChanged","listToCheck","lastValidation","stringify","conflictsResult","oldV","forEach","ignoreWarnings","postAsIsTime","postIsTime","postPlanningOrIsTime","finally","getAdditionalString","ids","result","this_2","_loop_2","createNewServiceFromPlanning","isLocked","getTextColor","parseInt","substr","type","locks","this_3","referenceIds_1","state_1","referenceLocks","actualLocks_1","subTypeId","actualLock","lockRange","range","eventRange","overlaps","showLocks","selectedPerson","lock","lockedTypeNames","showTemplates","show","hideTemplates","hide","element","contents","showSettings","hideSettings","showInfos","data_1","y","_loop_4","instituteContainer","selectedTemplateContainer","setupDndEvents","getInstituteList","map","getEmployeeList","SHOW_ONLY_ACTIVE_EMPLOYEES_PREDEFINED_SEARCH_ID","SHOW_ALL_EMPLOYEES_PREDEFINED_SEARCH_ID","createPersonDisplay","forename","shortCaption","employeeNr","group","sort","a","toLocaleLowerCase","additionalWvList","predefinedSearchesWvList","selectedPredefinedView","getReferenceTypes","selectedReferenceType","selectedReferenceTypeName","reloadCalendar","referencesMapped","selectedReferenceName","forceReload","referencesIds","requestId_1","request","valueOf","go","format","generateGuid","lastRequest","lastRequestId","rosterResultData","services","serviceTypeCaption","addEvent","captionSub","serviceType","currentValue","plannedValue","targetValue","totalValue","restHolidaysValue","element_2","resourceId","start","end","captionEventType","editable","fullTitle","textColor","_g","_h","_j","_k","lockDescription","rendering","noPopover","scrollTop","postPlannedTime","successNote","deleteNote","event","dataService","createDateFromString","getPermissionsForDataset","dataPerm","asHours","getElementById","waitForEl","click","additionalWvIds","break","templateId","setHours","getHours","$watch","newVal","oldVal","getPermissionsForGivenUserAndObjectType","_loop_5","resourceItem","roosterReference","splice","setItem","preventNegativeTimePeriods","from","vm","each","stick","container","draggable","zIndex","revert","revertDuration","onDrag","stop","getCalendarHeight","window","height","ressourceView","resourceColumns","index","self","indexOf","hideColumn","scope","nameDefaultColumnSize","typeDefaultColumnSize","currentValueDefaultColumnSize","plannedValueDefaultColumnSize","targetValueDefaultColumnSize","totalValueDefaultColumnSize","restHolidaysValueDefaultColumnSize","resourceAreaDefaultWidth","ressColumns","labelText","field","width","render","parent","button","cell","args","css","createElement","hover","addClass","removeClass","attr","on","wtoData","closest","find","prepend","calenderViews","pop","concat","defaultCalendarView","schedulerLicenseKey","FULL_CALENDAR_PREMIUM_LICENSE","contentHeight","defaultView","defaultDate","timezone","locale","firstDay","weekends","nowIndicator","monthNames","split","monthNamesShort","dayNames","dayNamesShort","weekNumbers","weekNumberCalculation","isoWeek","views","month","titleFormat","week","day","columnFormat","header","left","center","right","timeFormat","buttonText","today","resources","resourceAreaWidth","slotLabelFormat","slotWidth","eventStartEditable","eventDurationEditable","eventResourceEditable","droppable","eventResize","eventDrop","delta","revertFunc","_m","remove","edit","_l","drop","jsEvent","ui","data_2","droppedRowData","droppedRowRosterType","_d","eventReceive","_id","eventClick","viewRender","dateToCheck","needToReloadCompletely","row","setAttribute","prev","fromChanged","getTime","toChanged","days","getElementsByClassName","dataset","getDay","classList","resourceRender","resource","includes","querySelector","eventRender","textContent","timeString","eventTypeCaption","popover","animation","html","content","trigger","placement","dayClick","resourceObj","singleClick","toISOString","clearInterval","setInterval","Controller","SickLeaveFormDirective","Math","random","toString","pauseWatchers","formInvalid","calcedValues","promptOptions","yesNo","$postLink","calls","initForm","isAccountServices","newId","sickNotes","open","loadSickLeave","createInterface","close","$onDestroy","uiForm","label","lngTag","model","style","class","displayDateTo","dateToRequired","displayTime","disableTime","disableDate","dataSource","hideExpression","disabled","maxLength","sickNoteLoading","sickNoteFormState","uiSickNoteForm","required","documentFolderStructure","documentObjectType","actions","wvList","newValue","oldValue","intColor","diseaseKindWvList","slice","getCalcDayValues","getDiseaseKinds","getSickNoteKinds","sickNoteKindWvList","getPermission","permissions","isEditAllowed","calcDays","getButtonClass","functionWaiter","addSickLeave","callbacks","updateSickLeave","itemText","Utilities","confirm","validationForm","entryId","randomId","last","current","catch","newSickNote","sickNoteForm","typeOfSickNoteId","typeOfSickNoteCaption","parentObjectType","openSickNoteModal","closeSickNoteModal","openSickNote","createSickNote","getSickNotes","updateSickNote","component","bindings","ExemptionFormDirective","loadExemption","formSchema","placeholder","formatForm","getApprovementWvItem","exemptionKindWvList","approvedById","getApprovementWvList","approvementTypeWvList","getExemptionKindList","unshift","addExemption","updateExemption","UserInterfaceTimeTracking","showMonthFilter","timeTrackingListTable","defaultSort","sortReverse","table","Stempeldatum","dType","Bezeichnung","Aktionen","tooltip","card","avatar","subtext","buttons","UserInterface","TimeTrackingConstants","TIME_TRACKING_STAMP_IN","TIME_TRACKING_STAMP_OUT","TimeTrackingService","timeTrackingPath","checkTimeTrackingAvailable","getLatestTimeTrackingDetailItem","postTimeTrackingStart","postTimeTrackingStop","getTimeTrackingItemList","page","pageSize"],"mappings":"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"}