$(function () { $.nette.ext('actions', { success: function (payload) { if (payload.push_state) { window.history.pushState({}, '', payload.url); } if (payload.show_modal) { $('.modal-backdrop').remove(); $('#modal').modal('show'); if (payload.ajax && payload.redirect) { $.nette.ajax(payload.redirect); } } if (payload.hide_modal) { $('#modal').modal('hide'); $('.modal-backdrop').remove(); if (payload.href && payload.redirect) { location.href = payload.redirect; } } } }); function filter() { $('.filter').map(function (i, filter) { let $filter = $(filter); let action = $(filter).find('.filter-action'); let badge = action.find('.badge'); let box = $(filter).find('.filter-box'); let fields = box.find('.form-control, .form-select'); let checkers = box.find('input[type=checkbox], input[type=radio]'); let count = 0; fields.map(function (j, field) { let $field = $(field); if ($field.val()) { count++; } }); checkers.map(function (j, checker) { let $checker = $(checker); if ($checker.is(':checked')) { count++; } }); badge.text(count); $filter.removeClass('open'); if (count > 0) { $filter.addClass('open'); } action.on('click', function() { $filter.toggleClass('open'); }); }); } function menu() { $('.menu > li.active').parents('li').map(function (i, menu) { let $menu = $(menu); $menu.addClass('active'); }); } function init() { filter(); menu(); $('[data-bs-toggle="title"]').popover({ trigger: 'hover focus' }); $('[data-bs-toggle="hint"]').popover({ trigger: 'click focus' }); } function clear() { $('[data-bs-toggle="title"]').popover('dispose'); $('[data-bs-toggle="hint"]').popover('dispose'); } init(); $(document).on('ajaxStart', function () { clear(); }); $(document).on('ajaxComplete', function () { init(); }); });