let table; if (typeof hidesearch === "undefined") { var hidesearch; hidesearch = [100]; } if (typeof hidesearch === "undefined") { var cstmbuttons; cstmbuttons = []; } if (typeof pageLength === "undefined") { var pageLength; pageLength = -1; } 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 ($(this).index() == 0) { var options = ''; $('#user_id_select').find('option').each(function () { options += ''; }); $(this).html(''); } else { $(this).html(''); } }); table = $('#datatable').DataTable({ "order": [[1, "desc"]], fixedHeader: { header: true, headerOffset: $('#topnav').outerHeight() }, lengthMenu: [ [25, 50, 100, -1], [25, 50, 100, 'All'] ], columnDefs: [ {width: '300px', targets: 0}, {width: '250px', targets: 1}, {width: '80px', targets: 7}, ], pageLength: 100, "language": { "url": "/datatables/json/german.json?v1" }, orderCellsTop: true, stateSave: true, stateDuration: 60 * 60 * 24 * 30, "initComplete": function () { $('.dt-search').append(''); $('.dt-search').addClass('d-inline-block'); $.each(cstmbuttons, function (index, value) { $('.dt-buttons').append(value); }); $('#dt-length-0').addClass('form-control-sm'); $('#clear_cookie').click(function () { $('#filterrow input').val(''); $('#filterrow select').val(''); table.search('').columns().search('').draw(); }); }, "ajax": { "url": requestUrl, "type": "GET", "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) { $('#selectsearch').change(); return json.data; } }, "columns": [ { "data": { _: "user.user", "sort": "user.order" }, className: "text-nowrap" }, { "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" } ], layout: { topStart: { search: { placeholder: '' }, buttons: [ { extend: 'excelHtml5', text: 'XLSX Export', className: 'btn-success margina d-none d-lg-block', exportOptions: { columns: ['th:not(:last-child)'], format: { body: function (data, row, column, node) { data = $('
' + data + '
').text(); return $.isNumeric(data.replace(',', '.')) ? data.replace(',', '.') : data; } } } } ] }, topEnd: { pageLength: true } } }); $('#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(); } $(window).scroll(function () { var height = $(window).scrollTop(); if (height > 450) { if ($('#filterrow').is(':visible')) { $('#filterrow').hide(); } } else { if ($('#filterrow').is(':hidden')) { $('#filterrow').show(); } } }); $(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()); }); $('#days-div').hide(); $('#days').prop("required", false); $("#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(''); }); $('#days-div').hide(); $('#days').prop("required", false); } 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(''); }); $('#days-div').hide(); $('#days').prop("required", false); } else if (parseInt($(this).find(':selected').data('hourday')) === 5) { $("#endtime-div").hide(); $("#endtime-div").find('input').each(function () { $(this).prop("required", false); $(this).prop("disabled", true); }); $("#enddate-div").hide(); $("#enddate-div").find('input').each(function () { $(this).prop("required", false); $(this).prop("min", ''); $(this).val(''); }); $('#days-div').show(); $('#days').prop("required", true); } 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,#user_id_select", function () { if (parseInt($('#timerecordingCategory_id').find(':selected').data('hourday')) === 6) { var userid; userid = $('#user_id_select').val(); $.post(checkWorkinghoursUrl, { user_id: userid, 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('