MediaWiki

Common.js: Difference between revisions

From Underfoot

No edit summary
No edit summary
Line 7: Line 7:
   var timeline  = document.getElementsByClassName("TimelineLine");  
   var timeline  = document.getElementsByClassName("TimelineLine");  
   var gallery  = document.getElementsByClassName("galleryline");
   var gallery  = document.getElementsByClassName("galleryline");
   var documents = document.getElementsByClassName("documentline");
   var documents = document.getElementsByClassName("DocumentLine");
  var dplline  = document.getElementsByClassName("DPLLine");
   var table    = document.getElementById("Table");
   var table    = document.getElementById("Table");
   if (table)    {var tabletr = table.getElementsByTagName("tr")}
   if (table)    {var tabletr = table.getElementsByTagName("tr")}
Line 14: Line 15:
   {
   {
     input = document.getElementById("filterinput");
     input = document.getElementById("filterinput");
     filter = input.value.toUpperCase().replace("_"," ");  
     filter = input.value.toUpperCase().replace(/_/g," ");  
     filter1 = input.value.toUpperCase().replace(" ","_");   
     filter1 = input.value.toUpperCase().replace(/ /g,"_");   
     if (filter.search("!") == 0) {
     if (filter.search("!") == 0) {
       if (filter.length > 1) {
       if (filter.length > 1) {
Line 54: Line 55:


         for (i = 0; i < documents.length; i++) {
         for (i = 0; i < documents.length; i++) {
           if (documents[i].id.toUpperCase().search(filter.substr(1)) == -1) {
           if (documents[i].id.toUpperCase().search(filter1.substr(1)) == -1) {
             documents[i].style.display = '';
             documents[i].style.display = '';
            text=documents[i].innerHTML;
            documents[i].innerHTML = text.replace(/slideshowGroup:'exclude/,"slideshowGroup:'documents");
           } else {
           } else {
             documents[i].style.display = 'none';
             documents[i].style.display = 'none';
             text=documents[i].innerHTML;
          }
             documents[i].innerHTML = text.replace(/slideshowGroup:'documents/,"slideshowGroup:'exclude");
        }
        for (i = 0; i < dplline.length; i++) {
          if (dplline[i].id.toUpperCase().search(filter.substr(1)) == -1) {
             dplline[i].style.display = '';
          } else {
             dplline[i].style.display = 'none';
           }
           }
         }
         }
Line 121: Line 125:


       for (i = 0; i < documents.length; i++) {
       for (i = 0; i < documents.length; i++) {
         if (documents[i].id.toUpperCase().search(filter) > -1) {
         if (documents[i].id.toUpperCase().search(filter1) > -1) {
           documents[i].style.display = '';
           documents[i].style.display = '';
          text=documents[i].innerHTML;
          documents[i].innerHTML = text.replace(/slideshowGroup:'exclude/,"slideshowGroup:'documents");
         } else {
         } else {
           documents[i].style.display = 'none';
           documents[i].style.display = 'none';
           text=documents[i].innerHTML;
        }
           documents[i].innerHTML = text.replace(/slideshowGroup:'documents/,"slideshowGroup:'exclude");
      }
 
      for (i = 0; i < dplline.length; i++) {
        if (dplline[i].id.toUpperCase().search(filter) > -1) {
           dplline[i].style.display = '';
        } else {
           dplline[i].style.display = 'none';
         }
         }
       }
       }

Revision as of 13:00, 25 July 2024

/* Any JavaScript here will be loaded for all users on every page load. */

function filterAll () {
  var input, filter, td, i, description, keywords, txtValue;
  var map       = document.getElementsByClassName("leaflet-marker-icon"); 
  var items     = document.getElementsByClassName("ItemLine");
  var timeline  = document.getElementsByClassName("TimelineLine"); 
  var gallery   = document.getElementsByClassName("galleryline");
  var documents = document.getElementsByClassName("DocumentLine");
  var dplline   = document.getElementsByClassName("DPLLine");
  var table     = document.getElementById("Table");
  if (table)    {var tabletr = table.getElementsByTagName("tr")}

  if (document.getElementById("filterinput") !== null && document.getElementById("filterinput").value !== null)
  {
    input = document.getElementById("filterinput");
    filter = input.value.toUpperCase().replace(/_/g," "); 
    filter1 = input.value.toUpperCase().replace(/ /g,"_");  
    if (filter.search("!") == 0) {
      if (filter.length > 1) {
        for (i = 0; i < map.length; i++) {
          if (map[i].id !== "" && map[i].id.toUpperCase().search(filter.substr(1)) == -1) {
            map[i].style.opacity="1.0";
          } else {
            map[i].style.opacity="0.05";
          }
        }
        for (i = 0; i < items.length; i++) {
          if (items[i].id.toUpperCase().search(filter1.substr(1)) == -1) {
            items[i].style.display = 'inline-block';
          } else {
            items[i].style.display = 'none';
          }
        }

        for (i = 0; i < timeline.length; i++) {
          if (timeline[i].id !== "" && timeline[i].id.toUpperCase().search(filter1.substr(1)) == -1) {
            timeline[i].style.opacity="1.0";
          } else {
            timeline[i].style.opacity="0.1";
          }
        }

        for (i = 0; i < gallery.length; i++) {
          if (gallery[i].id.toUpperCase().search(filter.substr(1)) == -1) {
            gallery[i].style.display = '';
            text=gallery[i].innerHTML;
            gallery[i].innerHTML = text.replace(/slideshowGroup:'exclude/,"slideshowGroup:'gallery");
          } else {
            gallery[i].style.display = 'none';
            text=gallery[i].innerHTML;
            gallery[i].innerHTML = text.replace(/slideshowGroup:'gallery/,"slideshowGroup:'exclude");
          }
        }

        for (i = 0; i < documents.length; i++) {
          if (documents[i].id.toUpperCase().search(filter1.substr(1)) == -1) {
            documents[i].style.display = '';
          } else {
            documents[i].style.display = 'none';
          }
        }
        for (i = 0; i < dplline.length; i++) {
          if (dplline[i].id.toUpperCase().search(filter.substr(1)) == -1) {
            dplline[i].style.display = '';
          } else {
            dplline[i].style.display = 'none';
          }
        }
      
        if (table) {
          for (i = 0; i < tabletr.length; i++) {
            // match text in all columns
            if (tabletr[i].getElementsByTagName("td")[0]) {
              txtValue = tabletr[i].getElementsByTagName("td")[0].textContent
                       + tabletr[i].getElementsByTagName("td")[1].textContent 
                       + tabletr[i].getElementsByTagName("td")[2].textContent 
                       + tabletr[i].getElementsByTagName("td")[3].textContent
                       + tabletr[i].getElementsByTagName("td")[4].textContent
                       + tabletr[i].getElementsByTagName("td")[5].textContent;
              if (txtValue.toUpperCase().search(filter.substr(1)) == -1) {
                tabletr[i].style.display = "";
              } else {
                tabletr[i].style.display = "none";
              }
            }
          }
        }
      }
    } else {
      for (i = 0; i < map.length; i++) {
        if (map[i].id !== "" && map[i].id.toUpperCase().search(filter) > -1) {
          map[i].style.opacity="1.0";
        } else {
          map[i].style.opacity="0.05";
        }
      }
      for (i = 0; i < items.length; i++) {
        if (items[i].id.toUpperCase().search(filter1) > -1) {
          items[i].style.display = 'inline-block';
        } else {
          items[i].style.display = 'none';
        }
       }

      for (i = 0; i < timeline.length; i++) {
        if (timeline[i].id !== "" && timeline[i].id.toUpperCase().search(filter1) > -1) {
          timeline[i].style.opacity="1.0";
        } else {
          timeline[i].style.opacity="0.1";
        }
      }

      for (i = 0; i < gallery.length; i++) {
        if (gallery[i].id.toUpperCase().search(filter) > -1) {
          gallery[i].style.display = '';
          text=gallery[i].innerHTML;
          gallery[i].innerHTML = text.replace(/slideshowGroup:'exclude/,"slideshowGroup:'gallery");
        } else {
          gallery[i].style.display = 'none';
          text=gallery[i].innerHTML;
          gallery[i].innerHTML = text.replace(/slideshowGroup:'gallery/,"slideshowGroup:'exclude");
        }
      }

      for (i = 0; i < documents.length; i++) {
        if (documents[i].id.toUpperCase().search(filter1) > -1) {
          documents[i].style.display = '';
        } else {
          documents[i].style.display = 'none';
        }
      }

      for (i = 0; i < dplline.length; i++) {
        if (dplline[i].id.toUpperCase().search(filter) > -1) {
          dplline[i].style.display = '';
        } else {
          dplline[i].style.display = 'none';
        }
      }
      
      if (table) {
        for (i = 0; i < tabletr.length; i++) {
          // match text in all columns
          if (tabletr[i].getElementsByTagName("td")[0]) {
            txtValue = tabletr[i].getElementsByTagName("td")[0].textContent
                     + tabletr[i].getElementsByTagName("td")[1].textContent 
                     + tabletr[i].getElementsByTagName("td")[2].textContent 
                     + tabletr[i].getElementsByTagName("td")[3].textContent
                     + tabletr[i].getElementsByTagName("td")[4].textContent
                     + tabletr[i].getElementsByTagName("td")[5].textContent;
            if (txtValue !== "" && txtValue.toUpperCase().search(filter) > -1) {
              tabletr[i].style.display = "";
            } else {
              tabletr[i].style.display = "none";
            }
          }
        }
      }
    }
  } 
}

$('#filterbox').html('<input type="text" id="filterinput" onkeyup="filterAll()" value="" placeholder="Filter" title="Filter">');