let table; if (typeof hidesearch === "undefined") { var hidesearch; hidesearch = [100]; } if (typeof cstmdom === "undefined") { var cstmdom; cstmdom = "flBrtip"; } if (typeof columndefs === "undefined") { var columndefs; columndefs = ""; } if (typeof columnfilter === "undefined") { var columnfilter; columnfilter = ""; } if (typeof columnoptions === "undefined") { var columnoptions; columnoptions = ""; } $('#filterrow th').each(function (i) { let title = $('#datatable thead th').eq($(this).index()).text(); if (hidesearch.includes($(this).index())) { } else if (columnfilter.includes($(this).index())) { $(this).html(''); } else { $(this).html(''); } }); table = $('#datatable').DataTable({ responsive: true, "order": [[0, "desc"]], buttons: [ { extend: 'excelHtml5', text: 'XLSX Export', className: 'btn-success margina d-none d-lg-block', exportOptions: { columns: ['th:not(:last-child)'] } } ], columnDefs: [ columndefs ], "language": { "url": "/datatables/json/german.json?v1" }, orderCellsTop: true, stateSave: true, stateDuration: 60 * 60 * 24 * 30, "initComplete": function () { $('#datatable_filter').append(''); $('#clear_cookie').click(function () { $('#filterrow input').val(''); $('#filterrow select').val(''); table.search('').columns().search('').draw(); }); }, "dom": cstmdom, "ajax": { "url": requestUrl, "type": "POST", "data": function (d) { $('.display-calendar').each(function (index) { if ($(this).hasClass('active-calendar')) { d.datatype = $(this).data('datatype'); } }) d.dataweek = $('#dataweek').val(); d.datamonth = $('#datamonth').val(); d.datayear = $('#datayear').val(); }, "dataSrc": function (json) { $('#is-time').text(json.time.is); $('#must-time').text(json.time.must); $('#holidays').text(json.time.holidays); $('#plushours').text(json.time.plushours); if (json.time.AllHours!="00h:00m") { $('#AllHours-div').show(); $('#AllHours').text(json.time.AllHours); } if ($("#plushours").text().includes("-")) { $('#plushours-label').css('background-color', '#fda7a7'); } else { $('#plushours-label').css('background-color', '#d0fbd9'); } if (json.time.auto_workinghours == "1") { $('#auto-workinghours-button').show(); } return json.data; } }, "columns": [ { "data": { _: "date.date", "sort": "date.order" }, className: "text-nowrap" }, { "data": { _: "start.start", "sort": "start.order" }, className: "text-center" }, { "data": { _: "end.end", "sort": "end.order" }, className: "text-center" }, { "data": { _: "sum.sum", "sort": "sum.order" }, className: "text-center" }, { "data": { _: "category.category", "sort": "category.order" }, className: "" } , { "data": { _: "comment.comment", "sort": "comment.order" }, className: "text-left" }, { "data": { _: "edit.edit", "sort": "edit.order" }, className: "edit-td" } ] }); $('#filterrow').on('keyup', 'input', function () { table .column($(this).data('index')) .search(this.value) .draw(); }); $('#selectsearch').change(function () { table .column($(this).data('index')) .search(this.value) .draw(); }); let state = table.state.loaded(); if (state) { table.columns().eq(0).each(function (colIdx) { var colSearch = state.columns[colIdx].search; if (colSearch.search) { $('#filterrow').find("[data-index='" + colIdx + "']").val(colSearch.search); } }); table.draw(); } $(document).ready(function () { $(".select2").select2(); $("body").on("change", "#timerecordingCategory_id", function () { if (parseInt($(this).find(':selected').data('hourday')) === 2) { $("#endtime-div").hide(); $("#endtime-div").find('input').each(function () { $(this).prop("required", false); }); $("#enddate-div").show(); $("#enddate-div").find('input').each(function () { $(this).prop("required", true); $(this).prop("min", $('#date').val()); $(this).val($('#date').val()); }); $("#div-calc-overtime").hide(); } else if (parseInt($(this).find(':selected').data('hourday')) === 1 || parseInt($(this).find(':selected').data('hourday')) === 6) { if (parseInt($(this).find(':selected').data('hourday')) === 6) { $("#div-calc-overtime").show(); } else { $("#div-calc-overtime").hide(); } $("#endtime-div").show(); $("#endtime-div").find('input').each(function () { $(this).prop("required", true); $(this).prop("disabled", false); }); $("#enddate-div").hide(); $("#enddate-div").find('input').each(function () { $(this).prop("required", false); $(this).prop("min", ''); $(this).val(''); }) } else if (parseInt($(this).find(':selected').data('hourday')) === 3 || parseInt($(this).find(':selected').data('hourday')) === 4) { $("#endtime-div").hide(); $("#endtime-div").find('input').each(function () { $(this).prop("required", false); $(this).prop("disabled", true); }); $("#div-calc-overtime").hide(); $("#enddate-div").hide(); $("#enddate-div").find('input').each(function () { $(this).prop("required", false); $(this).prop("min", ''); $(this).val(''); }) } else if (parseInt($(this).find(':selected').data('hourday')) === 7) { $("#endtime-div").show(); $("#endtime-div").find('input').each(function () { $(this).prop("required", true); $(this).prop("disabled", false); }); $("#enddate-div").hide(); $("#enddate-div").find('input').each(function () { $(this).prop("required", false); $(this).prop("min", ''); $(this).val(''); }) $('#businesstrip_info').val(''); $('#businesstrip_info').show(); $('.car-div-car').show(); } if (parseInt($(this).find(':selected').data('comment')) === 1) { $('#comment').prop("required", true); } else { $('#comment').prop("required", false); } if (parseInt($(this).find(':selected').data('businesstrip')) === 1) { $('.businesstrip-div').show(); $('#businesstrip').prop("checked", false); $('#businesstrip_info').val(''); $('#businesstrip_info').hide(); $('.car-div').find('input').prop("required", false); $('.car-div').find('input').val(''); $('#timerecordingCar_id').val('').change(); $('.car-div').hide(); } else if (parseInt($(this).find(':selected').data('hourday')) === 7) { $('.businesstrip-div').show(); $('.businesstrip-check-div').hide(); $('#businesstrip').prop("checked", true); $('#businesstrip_info').show(); $('#businesstrip_info').prop('required', true); $('#homeoffice-div').hide(); } else { $('.businesstrip-div').hide(); $('#businesstrip').prop("checked", false); $('#businesstrip_info').val(''); $('#timerecordingCar_id').val('').change(); $('.car-div').find('input').prop("required", false); $('.car-div').find('input').val(''); $('.car-div').hide(); $('#businesstrip_info').hide(); } if (parseInt($(this).find(':selected').data('homeoffice')) === 1) { $('#homeoffice-div').show(); $('#homeoffice').prop("checked", false); } else { $('#homeoffice').prop("checked", false); $('#homeoffice-div').hide(); } }); $("body").on("change", "#date", function () { if ($('#enddate-div').css('display') === "block") { if ($('#date').val() > $('#enddate').val()) { $('#enddate').prop("min", $('#date').val()); $('#enddate').val($('#date').val()); } else { $('#enddate').prop("min", $('#date').val()); } } }); $("body").on("change", "#start", function () { if ($('#start').val() > $('#end').val()) { $('#end').val($('#start').val()); } $('#end').prop("min", $('#start').val()); }); $("body").on("change", "#start,#end,#date,#timerecordingCategory_id", function () { if (parseInt($('#timerecordingCategory_id').find(':selected').data('hourday')) === 6) { $.post(checkWorkinghoursUrl, { date: $.trim($('#date').val()), start: $.trim($('#start').val()), end: $.trim($('#end').val()), ajax: 1 }).done(function (data) { var result = $.parseJSON(data); if (result.state === "success") { $('#calc-overtime').html(result.message); } if (result.state === "error") { $('#calc-overtime').html('