cityssm/lottery-licence-manager

View on GitHub
public/javascripts/licence-search.min.js

Summary

Maintainability
A
0 mins
Test Coverage
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=new Map,a=document.querySelector("#form--filters"),s=document.querySelector("#filter--limit"),i=document.querySelector("#filter--offset"),n=document.querySelector("#container--searchResults"),c=n.getAttribute("data-external-licence-number-label"),l=()=>{const r=Number.parseInt(s.value,10),o=Number.parseInt(i.value,10);n.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",a,a=>{const s=a.licences;if(0===s.length)return void(n.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>');n.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th>'+cityssm.escapeHTML(c)+'</th><th>Licence</th><th>Organization Name</th><th>Location</th><th>Active Date Range</th><th class="is-hidden-print"><span class="sr-only">Options</span></th></tr></thead><tbody></tbody></table>';const d=n.querySelector("tbody");for(const a of s){const s=t.get(a.licenceTypeKey),i=document.createElement("tr");let n="";n=a.locationID?'<a data-tooltip="View Location" href="'+cityssm.escapeHTML(e)+"/locations/"+a.locationID.toString()+'">'+cityssm.escapeHTML(a.locationDisplayName)+"</a>"+(a.locationDisplayName===a.locationAddress1?"":`<br /> <small>${cityssm.escapeHTML(a.locationAddress1)} </small>`):'<span class="has-text-grey">(No Location Set)</span>',i.innerHTML='<td><a data-tooltip="View Licence" href="'+cityssm.escapeHTML(e)+"/licences/"+a.licenceID.toString()+'">'+cityssm.escapeHTML(a.externalLicenceNumber)+"<br /><small>Licence #"+a.licenceID.toString()+"</small></a></td><td>"+cityssm.escapeHTML(s||a.licenceTypeKey)+"<br /><small>"+cityssm.escapeHTML(a.licenceDetails)+'</small></td><td><a data-tooltip="View Organization" href="'+cityssm.escapeHTML(e)+"/organizations/"+a.organizationID.toString()+'">'+cityssm.escapeHTML(a.organizationName)+"</a></td><td>"+n+'</td><td class="is-nowrap"><span class="has-cursor-default has-tooltip-right" data-tooltip="Start Date"><i class="fas fa-fw fa-play" aria-hidden="true"></i> '+a.startDateString+'</span><br /><span class="has-cursor-default has-tooltip-right" data-tooltip="End Date"><i class="fas fa-fw fa-stop" aria-hidden="true"></i> '+a.endDateString+'</span></td><td class="has-text-right is-nowrap is-hidden-print">'+(a.canUpdate?'<a class="button is-small" data-tooltip="Edit Licence" href="'+cityssm.escapeHTML(e)+"/licences/"+a.licenceID.toString()+'/edit"><span class="icon"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit</span></a> ':"")+(a.issueDate?'<a class="button is-small" data-tooltip="Print Licence" href="'+cityssm.escapeHTML(e)+"/licences/"+a.licenceID.toString()+'/print" download><i class="fas fa-print" aria-hidden="true"></i><span class="sr-only">Print</span></a>':'<span class="tag is-warning">Not Issued</span>')+"</div></td>",d.append(i)}if(n.insertAdjacentHTML("beforeend",'<div class="level is-block-print"><div class="level-left has-text-weight-bold">Displaying licences '+(o+1).toString()+" to "+Math.min(r+o,a.count).toString()+" of "+a.count.toString()+"</div></div>"),r<a.count){const e=document.createElement("nav");if(e.className="level-right is-hidden-print",e.setAttribute("role","pagination"),e.setAttribute("aria-label","pagination"),o>0){const t=document.createElement("a");t.className="button",t.textContent="Previous",t.addEventListener("click",e=>{e.preventDefault(),i.value=Math.max(0,o-r).toString(),l()}),e.append(t)}if(r+o<a.count){const t=document.createElement("a");t.className="button ml-3",t.innerHTML='<span>Next Licences</span><span class="icon"><i class="fas fa-chevron-right" aria-hidden="true"></i></span>',t.addEventListener("click",e=>{e.preventDefault(),i.value=(o+r).toString(),l()}),e.append(t)}n.querySelector(".level").append(e)}})},r=()=>{i.value="0",l()},o=document.querySelectorAll("#filter--licenceTypeKey option");for(let e=1;e<o.length;e+=1){const a=o[e];t.set(a.value,a.textContent)}a.addEventListener("submit",e=>{e.preventDefault()});const d=a.querySelectorAll(".input, .select select");for(const e of d)e.addEventListener("change",r);r()})();