$(document).ready(function() {
changeSelectIntoInput('input#chiffre', 'select#select_chiffre');
// advanced search
changeSelectIntoInput('input#therapeut', 'select#advanced_search_selection.therapeut');
changeSelectIntoInput('input#chiffre', 'select#advanced_search_selection.chiffre');
changeSelectIntoInput('input#end', 'input#end_datepicker_alt');
changeSelectIntoInput('input#room', 'select#advanced_search_selection.room');
changeSelectIntoInput('input#settlement', 'select#advanced_search_selection.settlement');
var entryDate = $('input#f_date_of_entry');
if(entryDate.length) {
entryDate.val('2024-07-27');
entryDate.css('display', 'none');
$("label[for='f_date_of_entry']").css('display', 'none');
}
var info = $('textarea#f_information');
if(info.length) {
info.css('display', 'none');
$("label[for='f_information']").css('display', 'none');
}
if($('.idIsset').length) {
} else {
setTimeout(
function() {
editHandling();
}, 500);
}
//deaktivate Date
deaktivateDateButtons('.shutdown_start_date button', '.advanced_search.start_date', '.advanced_search.start_hour', '.start span.dateselector input', 'select#start_seconds option', '.shutdown_start_date', '.activate_start_date');
deaktivateDateButtons('.shutdown_end_date button', '.advanced_search.end_date', '.advanced_search.end_hour', '.end span.dateselector input', 'select#end_seconds option', '.shutdown_end_date', '.activate_end_date');
//activate Date
activateDateButtons('.activate_start_date button', '.advanced_search.start_date', '.advanced_search.start_hour', '.start span.dateselector input', 'select#start_seconds option', '.activate_start_date', '.shutdown_start_date');
activateDateButtons('.activate_end_date button', '.advanced_search.end_date', '.advanced_search.end_hour', '.end span.dateselector input', 'select#end_seconds option', '.activate_end_date', '.shutdown_end_date');
$('table#advanced_search_table').DataTable();
if($('#meeting_table.sort').length) {
$.fn.dataTable.moment('dddd d MMMM YYYY');
$('#meeting_table.sort').DataTable();
}
});
function changeSelectIntoInput($input, $select) {
var input = $($input);
var select = $($select);
select.on('change', function() {
if($(this).val() != '-') {
input.val($(this).val());
} else {
input.val('');
}
});
}
function editHandling() {
var year = $('.times input.year'); // Vorhandene Buchungen Datum Inhalt (Y-MM-DD)
var sec = $('.times input.sec'); // Vorhandene Buchungen Stunden in Sekunden
var chooseYear = $('span.dateselector input#start_datepicker_alt'); // Anfang Datum Inhalt (DD.MM.Y)
var chooseSec = $('select#start_seconds'); // Anfang Stunden in Sekunden
var i = 1;
while(i <= year.length) {
var currentYear = $('.times input.year.' + i);
var currentSec = $('.times input.sec.' + i);
if((currentYear.val() == chooseYear.val()) && (currentSec.val() == chooseSec.val()+1)) {
// On change handler (datepicker and year select)
$('select#start_seconds').on('change', function() {
onChangeEvents();
});
$('#start_datepicker').datepicker('option', 'onSelect', function() {
datePickerHandler();
});
// Error event if start and change handler is wrong
errorEvent('Sie können nicht zwei Räume zur selben Zeit buchen! Bitte ändern Sie entweder die Zeit oder das Datum.'
+ 'currentYear val: ' + currentYear.val() + 'choosenYear val: ' + chooseYear.val() + 'currentSec val: ' + currentSec.val() + 'choosenSec val: ' + chooseSec.val());
break;
} else {
$('select#start_seconds').on('change', function() {
onChangeEvents();
});
$('#start_datepicker').datepicker('option', 'onSelect', function() {
datePickerHandler();
});
}
i++;
}
function datePickerHandler() {
// moment().unix -> moment.min.js
var todayTimestamp = moment().format('DD.MM.Y');
var startDatePicker = moment($('#start_datepicker_alt').val()).unix();
var endDatePicker = moment($('#end_datepicker_alt').val()).unix();
var startDatePickerVal = moment.unix(startDatePicker).format('Y-MM-DD');
var startDatePickerFormat = moment.unix(startDatePicker).format('DD.MM.Y');
if(endDatePicker < startDatePicker) {
$('#end_datepicker_alt').val(startDatePickerVal);
$('#end_datepicker').val(startDatePickerFormat)
}
onChangeEvents();
}
function onChangeEvents() {
var inputDay = moment($('#start_datepicker_alt').val()).format('DD');
var inputMonth = moment($('#start_datepicker_alt').val()).format('MM');
var inputYear = moment($('#start_datepicker_alt').val()).format('Y');
var todayDay = moment().format('DD');
var todayMonth = moment().format('MM');
var todayYear = moment().format('Y');
//inputDay=parseInt(inputDay);
// hier wird geprüft, ob das Datum und die Zeit (in sek) nicht gleich dem einer bestehenden Raumbuchung ist.
if(inputDay >= todayDay) {
if(inputMonth >= todayMonth) {
if(inputYear >= todayYear) {
if(currentYear.val() != chooseYear.val() || currentSec.val() != chooseSec.val()) {
$('#edit_entry_submit_save input').css('border', '');
$('#edit_entry_submit_save input').css('color', '');
if($('#edit_entry_submit_save input.offline').length) {
$('#edit_entry_submit_save input').removeClass('offline');
$('input.submit').removeAttr('disabled');
$('form#main').unbind();
}
} else {
errorEvent('Das Datum und die Anfangszeit des Termins ist Identisch mit einem bestehenden Termin des gleichen Nutzers!');
}
} else {
errorEvent('das Jahr passt nicht');
}
} else {
errorEvent('der Monat passt nicht');
}
} else {
errorEvent('der Tag passt nicht');
}
}
function errorEvent(message) {
// Bei dem ersten Fehler wieder rausspringen ( break; )
// Wenns von anfang an nicht passt -> kein speichern möglich.
$('#edit_entry_submit_save input').css('border', '1px solid red');
$('#edit_entry_submit_save input').css('color', 'red');
$('#edit_entry_submit_save input').addClass('offline');
alert(message);
if($('#edit_entry_submit_save input.offline').length) {
$('form#main').submit(function(event) {
event.preventDefault();
});
} else {
$('input.submit.default_action').removeAttr('disabled');
$('form#main').unbind();
}
}
}
function deaktivateDateButtons($shutdownButton, $shutdownCssDate, $shutdownCssHour, $disableDate, $disableSeconds, $shutdownHasClass, $shutdownAddClass) {
$($shutdownButton).on('click', function() {
$($shutdownCssDate).css('display', 'none');
$($shutdownCssHour).css('display', 'none');
$($disableDate).prop('disabled', true);
$($disableSeconds).prop('disabled', true);
$($shutdownHasClass).removeClass('active');
$($shutdownAddClass).addClass('active');
});
}
function activateDateButtons($activateButton, $activateCssDate, $activateCssHour, $enableDate, $enableSeconds, $activateHasClass, $activateAddClass) {
$($activateButton).on('click', function() {
$($activateCssDate).css('display', 'block');
$($activateCssHour).css('display', 'block');
$($enableDate).prop('disabled', false);
$($enableSeconds).prop('disabled', false);
$($activateHasClass).removeClass('active');
$($activateAddClass).addClass('active');
});
}
var supportsDatalist = function supportsDatalist() {
return ('list' in document.createElement('input')) &&
('options' in document.createElement('datalist')) &&
(window.HTMLDataListElement !== undefined);
};
var oldInitGeneral = init;
init = function(args) {
oldInitGeneral.apply(this, [args]);
var logonForm = document.getElementById('logon');
if (logonForm && logonForm.NewUserName)
{
logonForm.NewUserName.focus();
}
if (!lteIE6)
{
$('').attr({
type: 'hidden',
name: 'datatable',
value: '1'
}).appendTo('#header_search');
$('#user_list_link').each(function() {
var href = $(this).attr('href');
href += (href.indexOf('?') < 0) ? '?' : '&';
href += 'datatable=1';
$(this).attr('href', href);
});
}
$('form input.default_action').each(function() {
var defaultSubmitButton = $(this);
$(this).parents('form').find('input').keypress(function(event) {
if (event.which == 13) // the Enter key
{
defaultSubmitButton.click();
return false;
}
else
{
return true;
}
});
});
if (supportsDatalist() || lteIE6)
{
if (navigator.userAgent.toLowerCase().indexOf('opera') >= 0)
{
$('datalist').prev().attr('autocomplete', 'on');
}
}
else
{
$('datalist').each(function() {
var datalist = $(this);
var options = [];
datalist.parent().find('option').each(function() {
var option = {};
option.label = $(this).text();
option.value = $(this).val();
options.push(option);
});
var minLength = 0;
var breaks = [25,250,2500];
var nOptions = options.length;
var i=0;
while ((i= breaks[i]))
{
i++;
minLength++;
}
var formInput = datalist.prev();
formInput.empty().autocomplete({
source: options,
minLength: minLength
});
if (minLength === 0)
{
formInput.focus(function() {
$(this).autocomplete('search', '');
});
}
});
}
};