jQuery(document).ready(function ($) { const category = $("#timetics-filter-category"); const staff = $("#timetics-filter-staff"); const url = timetics.site_url + "/wp-json/timetics/v1/appointments/filter"; const meetinContainer = $(".tt-meeting-list-wrapper"); $(category).on("change", function (e) { e.preventDefault(); $.ajax({ url: url, method: "GET", data: { category: $(this).val(), }, success: function (res) { if (Array.isArray(res.data.items)) { const meetings_markup = prepare_items(res.data.items); meetinContainer.html(meetings_markup); } }, }); }); $(staff).on("change", function (e) { e.preventDefault(); $.ajax({ url: url, method: "GET", data: { staff_id: $(this).val(), }, success: function (res) { if (Array.isArray(res.data.items)) { const meetings_markup = prepare_items(res.data.items); meetinContainer.html(meetings_markup); } }, }); }); /** * Prepare meeting itesm * * @return string */ function prepare_items(items) { if (items.length < 1) { return `
No meetings found
`; } const meetings = items .map((item) => { const staffs = preapare_staff(item.staff); return `Meeting description