cityssm/corporate-records-manager

View on GitHub
public/javascripts/dashboard.min.js

Summary

Maintainability
A
0 mins
Test Coverage
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.urlPrefix,t=exports.crm,s=Number.parseInt(document.querySelector("#search--limit").value,10),n=document.querySelector("#search--offset"),r=document.querySelector("#form--search"),a=document.querySelector("#container--search"),o=o=>{o&&o.preventDefault(),cityssm.clearElement(a),a.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-4x fa-pulse fa-spinner" aria-hidden="true"></i><br />Searching Records...</div>';const l=Number.parseInt(n.value,10);cityssm.postJSON(e+"/dashboard/doGetRecords",r,e=>{if(0===e.records.length)return void(a.innerHTML='<div class="message is-info"><div class="message-body">There are no records that match the search criteria.</div></div>');const n=document.createElement("div");if(n.className="box p-3 is-flex is-justify-content-space-between is-align-items-center",n.innerHTML='<div class="span has-text-weight-bold">'+(l+1).toString()+" to "+Math.min(l+s,e.count).toString()+" of "+e.count.toString()+'</div><div class="span has-text-right"></div>',0!==l){const e=document.createElement("button");e.className="button is-light is-info has-tooltip-left has-tooltip-arrow is-previous-button",e.dataset.tooltip="Previous Results",e.type="button",e.setAttribute("aria-label","Previous Results"),e.innerHTML='<i class="fas fa-arrow-left" aria-hidden="true"></i>',n.querySelectorAll(".span")[1].append(e)}if(s+l<e.count){const e=document.createElement("button");e.className="button is-outlined is-info ml-1 is-next-button",e.type="button",e.setAttribute("aria-label","Next Results"),e.innerHTML='<span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span>',n.querySelectorAll(".span")[1].append(e)}const r=document.createElement("div");r.className="panel";for(const s of e.records){const e=t.renderRecordPanelLinkEle(s,{panelTag:"a"});r.append(e)}a.innerHTML="",a.append(n),a.append(r),a.append(n.cloneNode(!0));const o=a.querySelectorAll(".is-next-button");for(const e of o)e.addEventListener("click",i);const u=a.querySelectorAll(".is-previous-button");for(const e of u)e.addEventListener("click",c)})},c=e=>{e&&e.preventDefault(),n.value=Math.max(Number.parseInt(n.value,10)-s,0).toString(),o()},i=e=>{e&&e.preventDefault(),n.value=(Number.parseInt(n.value,10)+s).toString(),o()},l=e=>{e&&e.preventDefault(),n.value="0",o()},u=document.querySelector("#search--recordTypeKey"),d=document.querySelector("#search--statusTypeKey"),p=new Map,m=()=>{if(d.innerHTML='<option value="" selected>(All Statuses)</option>',p.has(u.value))for(const e of p.get(u.value)){if(!e.isActive||0===e.recordCount)continue;const t=document.createElement("option");t.value=e.statusTypeKey,t.textContent=e.statusType,d.append(t)}};u.addEventListener("change",()=>{if(d.innerHTML='<option value="" selected>(All Statuses)</option>',""===u.value);else if(p.has(u.value))m();else{const t=u.value;cityssm.postJSON(e+"/dashboard/doGetStatusTypes",{recordTypeKey:t},e=>{p.set(t,e.statusTypes),m()})}}),r.addEventListener("submit",l);const v=r.querySelectorAll("input, select");for(const e of v)e.addEventListener("change",l);o(),document.querySelector("#button--searchMoreFiltersToggle").addEventListener("click",()=>{const e=document.querySelector("#fieldset--searchMoreFilters");e.classList.toggle("is-hidden"),e.disabled=!!e.classList.contains("is-hidden"),l()})})(),(()=>{const e=exports.urlPrefix,t=document.querySelector("#search--recordTag-datalist");document.querySelector("#search--recordTag").addEventListener("focus",()=>{0===t.options.length&&cityssm.postJSON(e+"/dashboard/doGetRecordTagsForSearch",{},e=>{t.textContent="";for(const s of e.tags){const e=document.createElement("option");e.value=s,t.append(e)}})})})(),(()=>{const e=cityssm.dateToString(new Date),t=document.querySelector("#search--recordDateString-gte"),s=document.querySelector("#search--recordDateString-lte");t.addEventListener("change",()=>{s.min=t.value}),s.addEventListener("change",()=>{let n=s.value;""===n&&(n=e),t.max=n})})();