Skip to main content

Library Search Catalogue

Add this Script to the advanced body 

<script>
  window.addEventListener("load", function () {
    var searchContainer = document.querySelector('div[role="search"]');
    if (!searchContainer) return;

    // Look for an existing catalog form by its action
    var catalogForm = searchContainer.querySelector(
      'form[action*="pld.ent.sirsi.net/client/embedded.search/default"]'
    );

    // If there is no catalog form yet, create and append it
    if (!catalogForm) {
      var newFormContainer = document.createElement("div");
      newFormContainer.innerHTML = '\
        <form action="https://pld.ent.sirsi.net/client/embedded.search/default" \
              method="get" target="_blank" class="search-box" ng-ignore>\
          <input type="hidden" name="ln" value="en_US">\
          <div class="input-group">\
            <label for="q" class="sr-only">Search Catalog:</label>\
            <input type="text" id="q" class="form-control" name="q" \
                   placeholder="Search Catalog" title="Enter search term">\
            <span class="input-group-btn">\
              <button id="searchButton" class="btn btn-default button" type="submit" title="Search">Go!</button>\
            </span>\
          </div>\
          <input name="searchSource" value="local" type="hidden">\
          <input name="basicType" value="Keyword" type="hidden">\
        </form>';

      searchContainer.appendChild(newFormContainer);
      catalogForm = newFormContainer.querySelector("form");
    }

    // Find the website search form
    var forms = searchContainer.querySelectorAll("form.search-box");
    var siteForm = null;

    forms.forEach(function (form) {
      var action = form.getAttribute("action") || "";
      if (action.indexOf("pld.ent.sirsi.net/client/embedded.search/default") === -1) {
        if (!siteForm) siteForm = form;
      }
    });

    // Configure website search
    if (siteForm) {
      var siteInput =
        siteForm.querySelector('input[type="search"]') ||
        siteForm.querySelector('input[type="text"]');

      if (siteInput) {
        siteInput.placeholder = "Search Website";
        siteInput.title = "Enter website search term";
        siteForm.setAttribute("aria-label", "Website search");
      }
    }

    // Configure catalog search
    if (catalogForm) {
      var catalogInput =
        catalogForm.querySelector('input[name="q"]') ||
        catalogForm.querySelector('input[type="text"]');

      if (catalogInput) {
        catalogInput.placeholder = "Search Catalog";
        catalogInput.title = "Enter catalog search term";
        catalogForm.setAttribute("aria-label", "Library catalog search");
      }
    }
  });
</script>