@@ -7,47 +7,47 @@ function getClassOfCheckedCheckboxes(checkboxes) {
7
7
} ) ;
8
8
return tags ;
9
9
}
10
-
10
+
11
11
function change ( ) {
12
12
console . log ( "Change event fired." ) ;
13
13
var affiliationsCbs = document . querySelectorAll ( ".affiliation input[type='checkbox']" ) ;
14
14
var domainsCbs = document . querySelectorAll ( ".domains input[type='checkbox']" ) ;
15
15
var formatsCbs = document . querySelectorAll ( ".formats input[type='checkbox']" ) ;
16
16
var packagesCbs = document . querySelectorAll ( ".packages input[type='checkbox']" ) ;
17
-
17
+
18
18
var affiliatioinTags = getClassOfCheckedCheckboxes ( affiliationsCbs ) ;
19
19
var domainTags = getClassOfCheckedCheckboxes ( domainsCbs ) ;
20
20
var formatTags = getClassOfCheckedCheckboxes ( formatsCbs ) ;
21
21
var packageTags = getClassOfCheckedCheckboxes ( packagesCbs ) ;
22
-
22
+
23
23
var filters = {
24
24
affiliations : affiliatioinTags ,
25
25
domains : domainTags ,
26
26
formats : formatTags ,
27
27
packages : packageTags
28
28
} ;
29
-
29
+
30
30
filterResults ( filters ) ;
31
31
}
32
-
32
+
33
33
function filterResults ( filters ) {
34
34
console . log ( "Filtering results..." ) ;
35
35
var rElems = document . querySelectorAll ( ".tagged-card" ) ;
36
-
36
+
37
37
rElems . forEach ( function ( el ) {
38
38
var isVisible = true ; // Assume visible by default
39
-
39
+
40
40
// Check if the element has any domain or package filter
41
41
if ( filters . affiliations . length > 0 || filters . domains . length > 0 || filters . formats . length > 0 || filters . packages . length > 0 ) {
42
42
var hasMatchingAffiliation = filters . affiliations . length === 0 || filters . affiliations . some ( affiliation => el . classList . contains ( affiliation ) ) ;
43
43
var hasMatchingDomain = filters . domains . length === 0 || filters . domains . some ( domain => el . classList . contains ( domain ) ) ;
44
44
var hasMatchingFormat = filters . formats . length === 0 || filters . formats . some ( format => el . classList . contains ( format ) ) ;
45
45
var hasMatchingPackage = filters . packages . length === 0 || filters . packages . some ( package => el . classList . contains ( package ) ) ;
46
-
46
+
47
47
// The element should be visible if it matches any filter within each category
48
48
isVisible = hasMatchingAffiliation && hasMatchingDomain && hasMatchingFormat && hasMatchingPackage ;
49
49
}
50
-
50
+
51
51
// Toggle visibility based on the result
52
52
if ( isVisible ) {
53
53
el . classList . remove ( "d-none" ) ;
@@ -57,23 +57,23 @@ function getClassOfCheckedCheckboxes(checkboxes) {
57
57
el . classList . add ( "d-none" ) ;
58
58
}
59
59
} ) ;
60
-
60
+
61
61
// Update the margins after filtering
62
62
updateMargins ( ) ;
63
63
}
64
-
64
+
65
65
var checkboxes = document . querySelectorAll ( 'input[type="checkbox"]' ) ;
66
66
checkboxes . forEach ( function ( checkbox ) {
67
67
checkbox . addEventListener ( "change" , change ) ;
68
68
} ) ;
69
-
69
+
70
70
function updateMargins ( ) {
71
71
const columns = document . querySelectorAll ( '.sd-col.sd-d-flex-row.docutils' ) ;
72
-
72
+
73
73
columns . forEach ( column => {
74
74
// Check if this column has any visible cards
75
75
const hasVisibleCard = Array . from ( column . children ) . some ( child => ! child . classList . contains ( 'd-none' ) ) ;
76
-
76
+
77
77
// Toggle a class based on whether there are visible cards
78
78
if ( hasVisibleCard ) {
79
79
column . classList . add ( 'has-visible-card' ) ;
@@ -82,18 +82,18 @@ function getClassOfCheckedCheckboxes(checkboxes) {
82
82
}
83
83
} ) ;
84
84
}
85
-
85
+
86
86
function clearCbs ( ) {
87
87
// Select all checkbox inputs and uncheck them
88
88
var checkboxes = document . querySelectorAll ( 'input[type="checkbox"]' ) ;
89
89
checkboxes . forEach ( function ( checkbox ) {
90
90
checkbox . checked = false ;
91
91
} ) ;
92
-
93
- change ( ) ;
92
+
93
+ change ( ) ;
94
94
}
95
-
95
+
96
96
// Initial call to set up correct margins when the page loads
97
97
document . addEventListener ( 'DOMContentLoaded' , updateMargins ) ;
98
-
99
- console . log ( "Script loaded." ) ;
98
+
99
+ console . log ( "Script loaded." ) ;
0 commit comments