docs-v2/assets/js/telegraf-filters.js

51 lines
1.5 KiB
JavaScript

// Count tag elements
function countTag(tag) {
return $(".visible[data-tags*='" + tag + "']").length
}
function getFilterCounts() {
$('#plugin-filters label').each(function() {
var tagName = $('input', this).attr('name').replace(/[\W]+/, "-");
var tagCount = countTag(tagName);
$(this).attr('data-count', '(' + tagCount + ')');
if (tagCount <= 0) {
$(this).fadeTo(200, 0.25);
} else {
$(this).fadeTo(400, 1.0);
}
})
}
// Get initial filter count on page load
getFilterCounts()
$("#plugin-filters input").click(function() {
// List of tags to hide
var tagArray = $("#plugin-filters input:checkbox:checked").map(function(){
return $(this).attr('name').replace(/[\W]+/, "-");
}).get();
// List of tags to restore
var restoreArray = $("#plugin-filters input:checkbox:not(:checked)").map(function(){
return $(this).attr('name').replace(/[\W]+/, "-");
}).get();
// Actions for filter select
if ( $(this).is(':checked') ) {
$.each( tagArray, function( index, value ) {
$(".plugin-card.visible:not([data-tags~='" + value + "'])").removeClass('visible').fadeOut()
})
} else {
$.each( restoreArray, function( index, value ) {
$(".plugin-card:not(.visible)[data-tags~='" + value + "']").addClass('visible').fadeIn()
})
$.each( tagArray, function( index, value ) {
$(".plugin-card.visible:not([data-tags~='" + value + "'])").removeClass('visible').hide()
})
}
// Refresh filter count
getFilterCounts()
});