OpenXE/classes/Modules/TimeManagement/www/js/timemanagement_handle.js
2021-05-21 08:49:41 +02:00

163 lines
5.8 KiB
JavaScript

var TimeManagementHandle = (function ($) {
'use strict';
var me = {
isInitialized: false,
selector: {
handleDialog: '#timemanagement-handle-dialog',
form: '#timemanagement-handle-form',
msg: '#timemanagement-handle-msg',
overviewTable: '#requesteddaystatus',
clickClass: '.handle-day-status',
commentSpan: '#comment',
fromSpan: '#from',
tillSpan: '#till',
amountSpan: '#amount',
employeeNameSpan: '#employee-name',
employeeNumberSpan: '#employee-number',
requestTokenHidden: '#request-token',
requestAddressIdHidden: '#request-address-id',
requestRejectHidden: '#request-reject',
deleteTitle: '#delete-title',
requestTitle: '#request-title',
defaultNoteVacation: '#default-note-vacation',
defaultNoteSick: '#default-note-sick',
internalComment: '#internal-comment'
},
storage: {
$dialog: null
},
init: function () {
if (me.isInitialized === true) {
return;
}
me.storage.$dialog = $(me.selector.handleDialog);
me.dialogInit();
me.registerEvents();
me.isInitialized = true;
},
registerEvents: function () {
$(me.selector.overviewTable).on('click', me.selector.clickClass, function (event) {
event.preventDefault();
me.dialogOpen(this.id.replace('vac-', ''));
});
},
dialogInit: function () {
me.storage.$dialog.dialog({
modal: true,
bgiframe: true,
closeOnEscape: false,
minWidth: 650,
minHeight: 200,
autoOpen: false,
open: function () {
$(me.selector.inputKey).trigger('focus');
},
close: function () {
me.dialogReset();
},
buttons: {
ZUSTIMMEN: function () {
$(me.selector.form).submit();
},
ABLEHNEN: function () {
$(me.selector.requestRejectHidden).val(1);
$(me.selector.form).submit();
}
}
});
},
dialogOpen: function (requestToken) {
$.ajax({
url: 'index.php?module=mitarbeiterzeiterfassung&action=timemanagementhandle&cmd=timemanagementhandleinfo',
type: 'POST',
dataType: 'json',
data: {
requestToken: requestToken
},
success: function (data) {
if (data.error) {
me.storage.$dialog.find(me.selector.msg).text(data.error);
} else {
me.dialogReset();
let title = '';
if (data.type === 'L' || data.type === 'V') {
title = $(me.selector.deleteTitle).text();
} else {
title = $(me.selector.requestTitle).text();
}
let defaultNote = '';
if(data.type === 'S'){
defaultNote = $(me.selector.defaultNoteSick).text();
}
if(data.type === 'R'){
defaultNote = $(me.selector.defaultNoteVacation).text();
}
me.storage.$dialog.find(me.selector.commentSpan).text(data.comment);
me.storage.$dialog.find(me.selector.fromSpan).text(data.min_date);
me.storage.$dialog.find(me.selector.tillSpan).text(data.max_date);
me.storage.$dialog.find(me.selector.amountSpan).text(data.amount);
me.storage.$dialog.find(me.selector.employeeNameSpan).text(data.employee_name);
me.storage.$dialog.find(me.selector.employeeNumberSpan).text(data.employee_number);
me.storage.$dialog.find(me.selector.internalComment).val(defaultNote);
me.storage.$dialog.find(me.selector.requestTokenHidden).val(requestToken);
me.storage.$dialog.find(me.selector.requestAddressIdHidden).val(data.employee_id);
me.storage.$dialog.dialog('option', 'title', title);
me.storage.$dialog.dialog('open');
}
},
beforeSend: function () {}
});
},
dialogClose: function () {
me.storage.$dialog.dialog('close');
},
dialogReset: function () {
me.storage.$dialog.find(me.selector.commentSpan).text('');
me.storage.$dialog.find(me.selector.fromSpan).text('');
me.storage.$dialog.find(me.selector.tillSpan).text('');
me.storage.$dialog.find(me.selector.amountSpan).text('');
me.storage.$dialog.find(me.selector.employeeNameSpan).text('');
me.storage.$dialog.find(me.selector.employeeNumberSpan).text('');
me.storage.$dialog.find(me.selector.internalComment).val('');
me.storage.$dialog.find(me.selector.requestRejectHidden).val(0);
me.storage.$dialog.find(me.selector.requestTokenHidden).val(null);
me.storage.$dialog.find(me.selector.requestAddressIdHidden).val(null);
}
};
return {
init: me.init
};
})(jQuery);
$(document).ready(function () {
TimeManagementHandle.init();
});