"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();
});