"use strict"; // Class definition var KTDatatablesServerSide = function () { // Shared variables var tableOrders; var tableLocations; var dtOrders; var dtLocations; // Orders var initDatatableOrders = function () { dtOrders = $("#kt_datatable_orders").DataTable({ language: { url: '/assets/plugins/custom/datatables/de-DE.json', }, searchDelay: 500, paging: false, processing: true, serverSide: false, order: [[0, 'desc']], stateSave: true, info: false, ajax: { url: "/JSON/orders", }, columns: [ { data: 'order_number' }, { data: 'loc_count' }, { data: 'report_count' }, { data: null }, ], columnDefs: [ { targets: [0,1], orderable: false, render: function (data) { return data; } }, { targets: 2, orderable: false, render: function (data, type, row) { return `${row.report_count} / ${row.reportopen_count}`; }, }, { targets: -1, data: null, orderable: false, className: 'text-end', render: function (data, type, row) { return ` `; }, }, ] }); tableOrders = dtOrders.$; // Re-init functions on every table re-draw -- more info: https://datatables.net/reference/event/draw dtOrders.on('draw', function () { handleSelectOrder(); KTMenu.createInstances(); }); dtOrders.on('click', 'tbody tr', function () { let data = dtOrders.row(this).data(); console.log(data); //alert('You clicked on ' + data[0] + "'s row"); }); } var initDatatableLocations = function () { dtLocations = $("#kt_datatable_locations").DataTable({ language: { url: '//cdn.datatables.net/plug-ins/2.0.8/i18n/de-DE.json', }, searchDelay: 500, paging: false, processing: true, serverSide: false, order: [[0, 'desc']], stateSave: true, info: false, ajax: { url: "/JSON/order_locations/"+order_id, }, columns: [ { data: 'name' }, { data: 'room_count' }, { data: 'report_count' }, { data: null }, ], columnDefs: [ { targets: 0, orderable: false, render: function (data, type, row) { if(row.unassigned == 1){ return ` ${row.name}`; }else{ return data; } } }, { targets: 1, orderable: false, render: function (data) { return data; } }, { targets: 2, orderable: false, render: function (data, type, row) { return `${row.report_count} / ${row.reportopen_count}`; }, }, { targets: -1, data: null, orderable: false, className: 'text-end', render: function (data, type, row) { if(row.unassigned == 1){ var deleditbtn= ` `; }else{ var deleditbtn= ''; } return `${deleditbtn} `; }, }, ] }); tableLocations = dtLocations.$; // Re-init functions on every table re-draw -- more info: https://datatables.net/reference/event/draw dtLocations.on('draw', function () { handleSelectLocation(); KTMenu.createInstances(); }); } // Select order var handleSelectOrder = () => { // Select all delete buttons const selectOrderButtons = document.querySelectorAll('[data-kt-docs-table-filter="select_order"]'); selectOrderButtons.forEach(d => { d.addEventListener('click', function (e) { e.preventDefault(); window.location="/locations/list/"+$(this).attr("data-id") /*const parent = e.target.closest('tr'); const orderName = parent.querySelectorAll('td')[0].innerText; $("#info_order_lactions").html('zur Auftragsnummer '+orderName+''); updateDatatableLocations($(this).attr("data-id"));*/ }) }); } // Search Datatable --- official docs reference: https://datatables.net/reference/api/search() var handleSearchDatatable = function () { const filterSearch = document.querySelector('[data-kt-docs-table-filter="search"]'); filterSearch.addEventListener('keyup', function (e) { dtOrders.search(e.target.value).draw(); }); } //APP Sync var initAppSync = function (){ $("button#btn_check_update").click( function(){ window.location.reload(); } ); } // Public methods return { init: function () { initDatatableOrders(); //handleSearchDatatable(); handleSelectOrder(); initAppSync(); } } }(); // On document ready KTUtil.onDOMContentLoaded(function () { KTDatatablesServerSide.init(); });