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 `
${staffs}

${item.name}

Meeting description

`; }).join(''); return meetings; } function preapare_staff(staffs) { const totalStaff = staffs.length; let markup = ''; if ( totalStaff > 2 ) { markup = ``; } else { markup = ``; } return markup; } });