pub / kontra

Der linke Newsaggregator.
git clone src.jayvii.de/pub/kontra.git
Home | Log | Files | Exports | Refs | README | RSS

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