sunrise-cms/public/javascripts/licence-search.min.js

1 line
2.2 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("#form--filters"),n=document.querySelector("#filter--limit"),r=document.querySelector("#filter--offset"),s=document.querySelector("#container--searchResults"),a=()=>{const i=Number.parseInt(n.value,10),c=Number.parseInt(r.value,10);s.innerHTML='<p class="has-text-centered has-text-grey-lighter"><i class="fas fa-3x fa-circle-notch fa-spin" aria-hidden="true"></i><br /><em>Loading licences...</em></p>',cityssm.postJSON(e+"/licences/doSearch",t,e=>{const t=e.licences;if(0===t.length)return void(s.innerHTML='<div class="message is-info"><div class="message-body"><strong>Your search returned no results.</strong><br />Please try expanding your search criteria.</div></div>');s.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr></tr></thead><tbody></tbody></table>';const n=s.querySelector("tbody");for(const e of t){const e=document.createElement("tr");e.innerHTML="",n.append(e)}if(s.insertAdjacentHTML("beforeend",'<div class="level is-block-print"><div class="level-left has-text-weight-bold">Displaying licences '+(c+1).toString()+" to "+Math.min(i+c,e.count).toString()+" of "+e.count.toString()+"</div></div>"),i<e.count){const t=document.createElement("nav");if(t.className="level-right is-hidden-print",t.setAttribute("role","pagination"),t.setAttribute("aria-label","pagination"),c>0){const e=document.createElement("a");e.className="button",e.textContent="Previous",e.addEventListener("click",e=>{e.preventDefault(),r.value=Math.max(0,c-i).toString(),a()}),t.append(e)}if(i+c<e.count){const e=document.createElement("a");e.className="button ml-3",e.innerHTML='<span>Next Licences</span><span class="icon"><i class="fas fa-chevron-right" aria-hidden="true"></i></span>',e.addEventListener("click",e=>{e.preventDefault(),r.value=(c+i).toString(),a()}),t.append(e)}s.querySelector(".level").append(t)}})},i=()=>{r.value="0",a()};t.addEventListener("submit",e=>{e.preventDefault()});const c=t.querySelectorAll(".input, .select select");for(const e of c)e.addEventListener("change",i);i()})();