mirror of
https://github.com/postgres/pgweb.git
synced 2025-07-29 11:59:36 +00:00

This moves the HTML code generated for the filters into the Django template, instead of the JavaScript portion.
54 lines
2.4 KiB
JavaScript
54 lines
2.4 KiB
JavaScript
/*
|
|
* Filter feature matrix
|
|
*/
|
|
$(document).ready(function(){
|
|
// Show/hide column based on whether supplied checkbox is checked.
|
|
function filter_version(checkbox)
|
|
{
|
|
var total_checked = $('form#featurematrix_version_filter .featurematrix_version:checked').length;
|
|
var column=$("table tr:first th").index($("table tr:first th:contains('" + checkbox.val() + "')")) + 1;
|
|
if (total_checked) {
|
|
$('.feature-version-col').css('width', (70 / total_checked) + '%');
|
|
}
|
|
$("table th:nth-child(" + column + "), table td:nth-child(" + column + ")").toggle(checkbox.is(":checked")).toggleClass('hidden');
|
|
hide_unchanged();
|
|
// Lastly, if at this point an entire row is obsolete, then hide
|
|
$('tbody tr').each(function(i, el) {
|
|
var $tr = $(el),
|
|
visible_count = $tr.find('td:not(.hidden)').length,
|
|
obsolete_count = $tr.find('td.fm_obs:not(.hidden)').length;
|
|
// if visible count matches obsolete count, then hide this row
|
|
$tr.toggle(visible_count !== obsolete_count);
|
|
});
|
|
}
|
|
|
|
// Show/hide rows if all values are the same in displayed cells
|
|
function hide_unchanged()
|
|
{
|
|
var hide_unchanged=$('form#featurematrix_version_filter input#hide_unchanged').is(':checked');
|
|
$('table tr').has('td').each(function(){
|
|
var row_values=$(this).children('td').not('.colFirst, .hidden');
|
|
var yes_count=row_values.filter(":contains('Yes')").length;
|
|
var no_count=row_values.filter(":contains('No')").length;
|
|
var obsolete_count=row_values.filter(":contains('Obsolete')").length;
|
|
$(this).toggle(hide_unchanged == false || (yes_count != row_values.length && no_count != row_values.length && obsolete_count != row_values.length));
|
|
});
|
|
}
|
|
|
|
// Upon loading the page, apply the filter based on EOL versions that are
|
|
// unchecked.
|
|
$('form#featurematrix_version_filter input.featurematrix_version').not(':checked').each(function(){
|
|
filter_version($(this));
|
|
});
|
|
|
|
// Apply filter based on change in check status of clicked version filter.
|
|
$('form#featurematrix_version_filter input.featurematrix_version').on("change", function(){
|
|
filter_version($(this));
|
|
});
|
|
|
|
// Show/hide unchanged feature rows when checkbox clicked.
|
|
$('form#featurematrix_version_filter input#hide_unchanged').on("change", function(){
|
|
hide_unchanged();
|
|
});
|
|
});
|