");
}
}]
});
}
}, {
key: "searchRecords",
value: function searchRecords() {
var self = this;
$('#table-search, #filterBy').on('keyup change focus', function (e) {
var filterBy = $('#filterBy').val();
var hasFilter = filterBy !== ''; // reset search term
self.table.column(4).search('').draw();
if (hasFilter) {
self.table.column(4).search(filterBy).draw();
} else {
self.table.draw();
}
});
}
}, {
key: "getSelectedInfo",
value: function getSelectedInfo() {
var $selectedRow = $('input[name="selectedRow[]"]:checked').length;
var $info = $('.thead-btn');
var $badge = $('').addClass('selected-row-info text-muted pl-1').text("".concat($selectedRow, " selected")); // remove existing info
$('.selected-row-info').remove(); // add current info
if ($selectedRow) {
$info.prepend($badge);
}
}
}, {
key: "selecter",
value: function selecter() {
var self = this;
$(document).on('change', '#check-handle', function () {
var isChecked = $(this).prop('checked');
$('input[name="selectedRow[]"]').prop('checked', isChecked); // get info
self.getSelectedInfo();
}).on('change', 'input[name="selectedRow[]"]', function () {
var $selectors = $('input[name="selectedRow[]"]');
var $selectedRow = $('input[name="selectedRow[]"]:checked').length;
var prop = $selectedRow === $selectors.length ? 'checked' : 'indeterminate'; // reset props
$('#check-handle').prop('indeterminate', false).prop('checked', false);
if ($selectedRow) {
$('#check-handle').prop(prop, true);
} // get info
self.getSelectedInfo();
});
}
}, {
key: "clearSelected",
value: function clearSelected() {
var self = this; // clear selected rows
$('#invoicesTable').on('page.dt', function () {
self.clearSelectedRows();
});
$('#clear-search').on('click', function () {
self.clearSelectedRows();
});
}
}, {
key: "clearSelectedRows",
value: function clearSelectedRows() {
$('#check-handle').prop('indeterminate', false).prop('checked', false).trigger('change');
}
}]);
return InvoicesListDemo;
}();
/**
* Keep in mind that your scripts may not always be executed after the theme is completely ready,
* you might need to observe the `theme:load` event to make sure your scripts are executed after the theme is ready.
*/
$(document).on('theme:init', function () {
new InvoicesListDemo();
});