@@ -23,7 +23,8 @@ export function initializeSecurityRules() {
23
23
let results = [ ] ;
24
24
25
25
if ( filterCategoryValue && filterCategoryValue !== 'all' ) {
26
- results = document . querySelectorAll ( `.${ filterCategoryValue } ` ) ;
26
+ const val = ( filterCategoryValue . startsWith ( '.' ) ) ? filterCategoryValue . slice ( 1 ) : filterCategoryValue ;
27
+ results = document . querySelectorAll ( `.${ val } ` ) ;
27
28
} else {
28
29
results = allRules ;
29
30
}
@@ -54,10 +55,13 @@ export function initializeSecurityRules() {
54
55
55
56
const handleEmptyResultSet = ( ) => {
56
57
const searchQuery = inputSearch . value ;
57
- const activeCategoryFilter = stringToTitleCase ( document . querySelector ( '.controls .active' ) . text ) ;
58
+ const txt = ( document . querySelector ( '.controls .active' ) ) ? document . querySelector ( '.controls .active' ) . text : '' ;
59
+ const activeCategoryFilter = stringToTitleCase ( txt ) ;
58
60
const message = `No results found for query "${ searchQuery } " in category ${ activeCategoryFilter } ` ;
59
- jsEmptyResults . innerText = message ;
60
- jsEmptyResults . classList . remove ( 'd-none' ) ;
61
+ if ( jsEmptyResults ) {
62
+ jsEmptyResults . innerText = message ;
63
+ jsEmptyResults . classList . remove ( 'd-none' ) ;
64
+ }
61
65
}
62
66
63
67
const showResults = ( filteredResults ) => {
@@ -77,7 +81,7 @@ export function initializeSecurityRules() {
77
81
// Handle empty result set
78
82
if ( filteredResults . length < 1 ) {
79
83
handleEmptyResultSet ( ) ;
80
- } else {
84
+ } else if ( jsEmptyResults ) {
81
85
jsEmptyResults . innerText = '' ;
82
86
jsEmptyResults . classList . add ( 'd-none' ) ;
83
87
}
@@ -92,11 +96,11 @@ export function initializeSecurityRules() {
92
96
} )
93
97
}
94
98
95
- const handleCategoryFilterClick = ( event ) => {
99
+ const handleCategoryFilterClick = ( event ) => {
96
100
// If button is already active, or an operation is in progress, ignore the click
97
101
if ( event . target . classList . contains ( 'active' ) || ! event . target . getAttribute ( 'data-filter' ) )
98
102
return ;
99
-
103
+
100
104
const searchValue = inputSearch . value . length > 2 ? inputSearch . value . toLowerCase ( ) . trim ( ) : '' ;
101
105
const filtered = filterResults ( event . target . dataset . filter , searchValue ) ;
102
106
activateButton ( event . target , filters ) ;
@@ -105,7 +109,8 @@ export function initializeSecurityRules() {
105
109
106
110
const handleKeyup = ( ) => {
107
111
const searchValue = inputSearch . value . length > 2 ? inputSearch . value . toLowerCase ( ) . trim ( ) : '' ;
108
- const activeCategoryFilter = document . querySelector ( '.controls .active' ) . dataset . filter ;
112
+ const activeCategory = document . querySelector ( '.controls .active' ) ;
113
+ const activeCategoryFilter = ( activeCategory ) ? activeCategory . dataset . filter : '' ;
109
114
const { hash } = window . location ;
110
115
const replaceUrl = hash ? `?q=${ searchValue } ${ hash } ` : `?q=${ searchValue } `
111
116
@@ -150,4 +155,4 @@ export function initializeSecurityRules() {
150
155
activateButton ( activeFilterButton , filters ) ;
151
156
showResults ( filtered ) ;
152
157
}
153
- }
158
+ }
0 commit comments