/
component_filter.js
48 lines (42 loc) · 1.5 KB
/
component_filter.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
$(document).ready(function() {
$('.filter').click(function(e) {
e.preventDefault();
$('#filters a').removeClass('selected');
var available_searches = [];
$('.results_table').each(function() {
var search_id = $(this).attr('class').split(/\s+/).pop();
available_searches.push(search_id);
});
if (e.target.id === 'showall') {
$('tr').show();
$('#showall').addClass('selected');
} else {
$('tr').hide();
$('.' + e.target.id).show();
// Always show column headers
$('.column_headers').show();
$('#' + e.target.id).addClass('selected');
}
// Update results count
available_searches.forEach(function(search_id) {
var class_name;
class_name = e.target.id === 'showall'
? 'tr.' + search_id
: 'tr.' + search_id + '.' + e.target.id;
var results_count = $(class_name).length;
var results_message =
results_count == 1
? '1 result'
: results_count + ' results';
$('.results_count_' + search_id).text(results_message);
})
});
// We want URL anchors to also work as filters
var anchor = location.hash.substring(1);
if (anchor !== '') {
$('#' + anchor).click();
} else {
$('#filters a').removeClass('selected');
$('#showall').addClass('selected');
}
});