1 line
9.6 KiB
JavaScript
1 line
9.6 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("main").dataset.urlPrefix,l=document.querySelector("#container--lotTypes");let o=exports.lotTypes;delete exports.lotTypes;const s=new Set,a=e=>{const t=e.currentTarget,l=t.closest(".container--lotType"),o=Number.parseInt(l.dataset.lotTypeId,10);s.has(o)?s.delete(o):s.add(o),t.innerHTML=s.has(o)?'<i class="fas fa-fw fa-minus" aria-hidden="true"></i>':'<i class="fas fa-fw fa-plus" aria-hidden="true"></i>';const a=l.querySelectorAll(".panel-block");for(const e of a)e.classList.toggle("is-hidden")},i=e=>{e.success?(o=e.lotTypes,b()):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot+" Type",message:e.errorMessage,contextualColorName:"danger"})},d=e=>{const l=Number.parseInt(e.currentTarget.closest(".container--lotType").dataset.lotTypeId,10);bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" Type",message:"Are you sure you want to delete this "+exports.aliases.lot.toLowerCase()+" type?",contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.lot+" Type",callbackFunction:()=>{cityssm.postJSON(t+"/admin/doDeleteLotType",{lotTypeId:l},i)}}})},n=l=>{const s=Number.parseInt(l.currentTarget.closest(".container--lotType").dataset.lotTypeId,10),a=o.find(e=>s===e.lotTypeId);let d;const n=e=>{e.preventDefault(),cityssm.postJSON(t+"/admin/doUpdateLotType",e.currentTarget,e=>{i(e),e.success&&d()})};cityssm.openHtmlModal("adminLotTypes-editLotType",{onshow:t=>{e.populateAliases(t),t.querySelector("#lotTypeEdit--lotTypeId").value=s.toString(),t.querySelector("#lotTypeEdit--lotType").value=a.lotType},onshown:(e,t)=>{d=t,e.querySelector("#lotTypeEdit--lotType").focus(),e.querySelector("form").addEventListener("submit",n),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},r=l=>{const o=Number.parseInt(l.currentTarget.closest(".container--lotType").dataset.lotTypeId,10);let a;const d=e=>{e.preventDefault(),cityssm.postJSON(t+"/admin/doAddLotTypeField",e.currentTarget,e=>{s.add(o),i(e),e.success&&(a(),u(o,e.lotTypeFieldId))})};cityssm.openHtmlModal("adminLotTypes-addLotTypeField",{onshow:t=>{e.populateAliases(t),o&&(t.querySelector("#lotTypeFieldAdd--lotTypeId").value=o.toString())},onshown:(e,t)=>{a=t,e.querySelector("#lotTypeFieldAdd--lotTypeField").focus(),e.querySelector("form").addEventListener("submit",d),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},p=e=>{e.preventDefault();const l=e.currentTarget.closest(".container--lotType").dataset.lotTypeId;cityssm.postJSON(t+"/admin/doMoveLotTypeUp",{lotTypeId:l,moveToTop:e.shiftKey?"1":"0"},i)},c=e=>{e.preventDefault();const l=e.currentTarget.closest(".container--lotType").dataset.lotTypeId;cityssm.postJSON(t+"/admin/doMoveLotTypeDown",{lotTypeId:l,moveToBottom:e.shiftKey?"1":"0"},i)},u=(l,s)=>{const a=o.find(e=>e.lotTypeId===l).lotTypeFields.find(e=>e.lotTypeFieldId===s);let d,n,r,p,c;const u=()=>{n.min=d.value},y=()=>{""===p.value?(d.disabled=!1,n.disabled=!1,r.disabled=!1):(d.disabled=!0,n.disabled=!0,r.disabled=!0)},m=e=>{e.preventDefault(),cityssm.postJSON(t+"/admin/doUpdateLotTypeField",e.currentTarget,e=>{i(e),e.success&&c()})},T=()=>{bulmaJS.confirm({title:"Delete Field",message:"Are you sure you want to delete this field? Note that historical records that make use of this field will not be affected.",contextualColorName:"warning",okButton:{text:"Yes, Delete Field",callbackFunction:()=>{cityssm.postJSON(t+"/admin/doDeleteLotTypeField",{lotTypeFieldId:s},e=>{i(e),e.success&&c()})}}})};cityssm.openHtmlModal("adminLotTypes-editLotTypeField",{onshow:t=>{e.populateAliases(t),t.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value=a.lotTypeFieldId.toString(),t.querySelector("#lotTypeFieldEdit--lotTypeField").value=a.lotTypeField,t.querySelector("#lotTypeFieldEdit--isRequired").value=a.isRequired?"1":"0",(d=t.querySelector("#lotTypeFieldEdit--minimumLength")).value=a.minimumLength.toString(),(n=t.querySelector("#lotTypeFieldEdit--maximumLength")).value=a.maximumLength.toString(),(r=t.querySelector("#lotTypeFieldEdit--pattern")).value=a.pattern,(p=t.querySelector("#lotTypeFieldEdit--lotTypeFieldValues")).value=a.lotTypeFieldValues,y()},onshown:(e,t)=>{c=t,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),e.querySelector("form").addEventListener("submit",m),d.addEventListener("keyup",u),u(),p.addEventListener("keyup",y),e.querySelector("#button--deleteLotTypeField").addEventListener("click",T)},onremoved:()=>{bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})},y=e=>{e.preventDefault();const t=Number.parseInt(e.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId,10),l=Number.parseInt(e.currentTarget.closest(".container--lotType").dataset.lotTypeId,10);u(l,t)},m=e=>{e.preventDefault();const l=e.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId;cityssm.postJSON(t+"/admin/doMoveLotTypeFieldUp",{lotTypeFieldId:l,moveToTop:e.shiftKey?"1":"0"},i)},T=e=>{e.preventDefault();const l=e.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId;cityssm.postJSON(t+"/admin/doMoveLotTypeFieldDown",{lotTypeFieldId:l,moveToBottom:e.shiftKey?"1":"0"},i)},v=(e,t,l)=>{if(0===l.length)e.insertAdjacentHTML("beforeend",'<div class="panel-block is-block'+(s.has(t)?"":" is-hidden")+'"><div class="message is-info"><p class="message-body">There are no additional fields.</p></div></div>');else for(const o of l){const l=document.createElement("div");l.className="panel-block is-block container--lotTypeField",s.has(t)||l.classList.add("is-hidden"),l.dataset.lotTypeFieldId=o.lotTypeFieldId.toString(),l.innerHTML='<div class="level is-mobile"><div class="level-left"><div class="level-item"><a class="has-text-weight-bold button--editLotTypeField" href="#">'+cityssm.escapeHTML(o.lotTypeField)+'</a></div></div><div class="level-right"><div class="level-item"><div class="field has-addons"><div class="control"><button class="button is-small button--moveLotTypeFieldUp" data-tooltip="Move Up" type="button" aria-label="Move Up"><i class="fas fa-arrow-up" aria-hidden="true"></i></button></div><div class="control"><button class="button is-small button--moveLotTypeFieldDown" data-tooltip="Move Down" type="button" aria-label="Move Down"><i class="fas fa-arrow-down" aria-hidden="true"></i></button></div></div></div></div></div>',l.querySelector(".button--editLotTypeField").addEventListener("click",y),l.querySelector(".button--moveLotTypeFieldUp").addEventListener("click",m),l.querySelector(".button--moveLotTypeFieldDown").addEventListener("click",T),e.append(l)}},b=()=>{if(l.innerHTML="",0!==o.length)for(const e of o){const t=document.createElement("div");t.className="panel container--lotType",t.dataset.lotTypeId=e.lotTypeId.toString(),t.innerHTML='<div class="panel-heading"><div class="level is-mobile"><div class="level-left"><div class="level-item"><button class="button is-small button--toggleLotTypeFields" data-tooltip="Toggle Fields" type="button" aria-label="Toggle Fields">'+(s.has(e.lotTypeId)?'<i class="fas fa-fw fa-minus" aria-hidden="true"></i>':'<i class="fas fa-fw fa-plus" aria-hidden="true"></i>')+'</button></div><div class="level-item"><h2 class="title is-4">'+cityssm.escapeHTML(e.lotType)+'</h2></div></div><div class="level-right"><div class="level-item"><button class="button is-danger is-small button--deleteLotType" type="button"><span class="icon is-small"><i class="fas fa-trash" aria-hidden="true"></i></span><span>Delete</span></button></div><div class="level-item"><button class="button is-primary is-small button--editLotType" type="button"><span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit '+exports.aliases.lot+' Type</span></button></div><div class="level-item"><button class="button is-success is-small button--addLotTypeField" type="button"><span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span><span>Add Field</span></button></div><div class="level-item"><div class="field has-addons"><div class="control"><button class="button is-small button--moveLotTypeUp" data-tooltip="Move Up" type="button" aria-label="Move Up"><i class="fas fa-arrow-up" aria-hidden="true"></i></button></div><div class="control"><button class="button is-small button--moveLotTypeDown" data-tooltip="Move Down" type="button" aria-label="Move Down"><i class="fas fa-arrow-down" aria-hidden="true"></i></button></div></div></div></div></div></div>',v(t,e.lotTypeId,e.lotTypeFields),t.querySelector(".button--toggleLotTypeFields").addEventListener("click",a),t.querySelector(".button--deleteLotType").addEventListener("click",d),t.querySelector(".button--editLotType").addEventListener("click",n),t.querySelector(".button--addLotTypeField").addEventListener("click",r),t.querySelector(".button--moveLotTypeUp").addEventListener("click",p),t.querySelector(".button--moveLotTypeDown").addEventListener("click",c),l.append(t)}else l.insertAdjacentHTML("afterbegin",'<div class="message is-warning><p class="message-body">There are no active '+exports.aliases.lot.toLowerCase()+" types.</p></div>")};document.querySelector("#button--addLotType").addEventListener("click",()=>{let l;const s=e=>{e.preventDefault(),cityssm.postJSON(t+"/admin/doAddLotType",e.currentTarget,e=>{e.success?(l(),o=e.lotTypes,b()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot+" Type",message:e.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("adminLotTypes-addLotType",{onshow:t=>{e.populateAliases(t)},onshown:(e,t)=>{l=t,e.querySelector("#lotTypeAdd--lotType").focus(),e.querySelector("form").addEventListener("submit",s),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),b()})(); |