filter_engines.js (1552B)
1 /* Script to filter through the list of search engines ---------------------- */
2
3 filter_sources = function(bar = "sources_filterbar") {
4
5 // Get text from filter bar
6 var pat = document.getElementById(bar).value.toLowerCase().split(" ");
7
8 // Gather article objects that contain the search engines
9 var entries = document.querySelectorAll("article");
10
11 // Compare text in article objects with text in filter bar
12 // Mark those hidden that do not match
13 for (let i = 0; i < entries.length; i++) {
14
15 // Match ANY of the patterns
16 let match = false;
17 for (let j = 0; j < pat.length; j++) {
18 if (entries[i].innerText.toLowerCase().match(pat[j]) === null) {
19 match = true;
20 }
21 }
22 if (match) {
23 entries[i].classList.add("hidden");
24 } else {
25 entries[i].classList.remove("hidden");
26 }
27 }
28
29 }
30
31 /* Script to search through search engines via category buttons ------------- */
32
33 filter_category = function(category, bar = "sources_filterbar") {
34
35 // Get current content from filterbar
36 var filterbar = document.getElementById(bar);
37
38 // Insert category name into category-filterbar
39 document.getElementById(bar).value = filterbar.value + " #" + category;
40
41 // collapse category summary
42 document.getElementById("categories").open = false;
43
44 // filter through search engines list
45 filter_sources(bar);
46
47 // Scroll back to search bar
48 setTimeout(function() { document.location = "#sources"; }, 10);
49
50 }
51