MediaWiki:Gadget-ResearchNotes-datatable.js: Difference between revisions
No edit summary |
No edit summary |
||
Line 56: | Line 56: | ||
initComplete: function () { | initComplete: function () { | ||
function applyFilters(name){ | |||
//build a regex filter string with an or(|) condition | //build a regex filter string with an or(|) condition | ||
var | var name = $('input:checkbox[name="' + name + '"]:checked').map(function() { | ||
return this.value; | return this.value; | ||
}).get().join('|'); | }).get().join('|'); | ||
//filter in column 3, with an regex, no smart filtering, not case sensitive | //filter in column 3, with an regex, no smart filtering, not case sensitive | ||
table.column(3).search( | table.column(3).search(name, true, false, false).draw(false); | ||
var monitor = $('#monitor'); | var monitor = $('#monitor'); | ||
$(monitor). | $(monitor).html(topic); | ||
} | |||
// OR filtering | |||
$('input:checkbox').on('click', function () { | |||
applyFilters(topic); | |||
}); | |||
// Clear filters | |||
$('.clear-filter').click(function(){ | |||
$('#topics').find('input:checkbox:checked').prop('checked', false); | |||
applyFilters(topic); | |||
}); | }); | ||
} | } |
Revision as of 07:31, 16 July 2024
/**
* Datatables definitions
* @example <>
*/
if( $('link[href$="datatables.min.css"]').length ){
// do nothing
} else {
$('<link/>', {
rel: 'stylesheet',
type: 'text/css',
href: 'https://cdn.datatables.net/v/dt/dt-2.0.8/b-3.0.2/cr-2.0.3/date-1.5.2/fc-5.0.1/fh-4.0.1/r-3.0.2/rg-1.5.0/rr-1.5.0/sc-2.4.3/sb-1.7.1/sp-2.3.1/sl-2.0.3/sr-1.4.1/datatables.min.css'
}).appendTo('head');
}
$.ajaxSetup({ cache: true });
$.when(
mw.loader.getScript( 'https://cdn.datatables.net/v/dt/dt-2.0.8/b-3.0.2/cr-2.0.3/date-1.5.2/fc-5.0.1/fh-4.0.1/r-3.0.2/rg-1.5.0/rr-1.5.0/sc-2.4.3/sb-1.7.1/sp-2.3.1/sl-2.0.3/sr-1.4.1/datatables.min.js' )
)
.then(
function () {
if( $('#research-notes').length ) {
var table = $('#research-notes').DataTable({
dom: '<"top"lf>rt<"bottom"ip><"clear">',
columns: [
{ "title": "Page" },
{ "title": "File" },
{ "title": "URL" },
{ "title": "Topic" },
{ "title": "Note" },
{ "title": "User" },
{ "title": "Date" }
],
columnDefs: [
{
type: 'date',
targets: [ 6 ]
}
],
aaSorting: [
[ 1, "desc" ]
],
pageLength: 100,
lengthMenu: [
[50, 100, 250, -1],
['50 per page', '100 per page', '250 per page', 'Show all']
],
language: {
search: '',
searchPlaceholder: 'Search in notes',
searchBuilder: {
title: ''
},
lengthMenu: '_MENU_',
},
initComplete: function () {
function applyFilters(name){
//build a regex filter string with an or(|) condition
var name = $('input:checkbox[name="' + name + '"]:checked').map(function() {
return this.value;
}).get().join('|');
//filter in column 3, with an regex, no smart filtering, not case sensitive
table.column(3).search(name, true, false, false).draw(false);
var monitor = $('#monitor');
$(monitor).html(topic);
}
// OR filtering
$('input:checkbox').on('click', function () {
applyFilters(topic);
});
// Clear filters
$('.clear-filter').click(function(){
$('#topics').find('input:checkbox:checked').prop('checked', false);
applyFilters(topic);
});
}
});
}
});