1 line
13 KiB
JavaScript
1 line
13 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("main").dataset.urlPrefix,s=document.querySelector("#container--feeCategories");let o=exports.feeCategories;delete exports.feeCategories;const a=()=>{if(0!==o.length){s.innerHTML="";for(const e of o){const t=document.createElement("section");if(t.className="panel container--feeCategory",t.dataset.feeCategoryId=e.feeCategoryId.toString(),t.innerHTML='<div class="panel-heading"><div class="columns"><div class="column"><h2 class="title is-4">'+cityssm.escapeHTML(e.feeCategory)+'</h2></div><div class="column is-narrow"><div class="field is-grouped is-justify-content-end">'+(0===e.fees.length?'<div class="control"><button class="button is-small is-danger button--deleteFeeCategory" type="button"><span class="icon is-small"><i class="fas fa-trash" aria-hidden="true"></i></span><span>Delete Category</span></button></div>':"")+'<div class="control"><button class="button is-small is-primary button--editFeeCategory" type="button"><span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit Category</span></button></div><div class="control"><button class="button is-small is-success button--addFee" type="button"><span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span><span>Add Fee</span></button></div><div class="control"><div class="field has-addons"><div class="control"><button class="button is-small button--moveFeeCategoryUp" 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--moveFeeCategoryDown" 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>',0===e.fees.length)t.insertAdjacentHTML("beforeend",'<div class="panel-block is-block"><div class="message is-info"><p class="message-body">There are no fees in the "'+cityssm.escapeHTML(e.feeCategory)+'" category.</p></div></div>');else for(const s of e.fees){const e=document.createElement("div");e.className="panel-block is-block container--fee",e.dataset.feeId=s.feeId.toString(),e.innerHTML='<div class="columns"><div class="column is-half"><p><a class="has-text-weight-bold" href="#">'+cityssm.escapeHTML(s.feeName)+"</a><br /><small>"+cityssm.escapeHTML(s.feeDescription).replace(/\n/g,"<br />")+'</small></p><p class="tags">'+(s.isRequired?'<span class="tag is-warning">Required</span>':"")+(s.occupancyTypeId?' <span class="tag has-tooltip-bottom" data-tooltip="'+cityssm.escapeHTML(exports.aliases.occupancy)+' Type Filter">'+cityssm.escapeHTML(s.occupancyType)+"</span>":"")+(s.lotTypeId?' <span class="tag has-tooltip-bottom" data-tooltip="'+cityssm.escapeHTML(exports.aliases.lot)+' Type Filter">'+cityssm.escapeHTML(s.lotType)+"</span>":"")+'</p></div><div class="column"><div class="columns is-mobile"><div class="column has-text-centered">'+(s.feeFunction?cityssm.escapeHTML(s.feeFunction)+"<br /><small>Fee Function</small>":"$"+s.feeAmount.toFixed(2)+"<br /><small>Fee</small>")+'</div><div class="column has-text-centered">'+(s.taxPercentage?s.taxPercentage+"%":"$"+s.taxAmount.toFixed(2))+'<br /><small>Tax</small></div><div class="column has-text-centered">'+(s.includeQuantity?cityssm.escapeHTML(s.quantityUnit)+"<br /><small>Quantity</small>":"")+'</div></div></div><div class="column is-narrow"><div class="field has-addons is-justify-content-end"><div class="control"><button class="button is-small button--moveFeeUp" 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--moveFeeDown" 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>',e.querySelector("a").addEventListener("click",d),e.querySelector(".button--moveFeeUp").addEventListener("click",u),e.querySelector(".button--moveFeeDown").addEventListener("click",y),t.append(e)}0===e.fees.length&&t.querySelector(".button--deleteFeeCategory").addEventListener("click",n),t.querySelector(".button--editFeeCategory").addEventListener("click",r),t.querySelector(".button--addFee").addEventListener("click",i),t.querySelector(".button--moveFeeCategoryUp").addEventListener("click",c),t.querySelector(".button--moveFeeCategoryDown").addEventListener("click",l),s.append(t)}}else s.innerHTML='<div class="message is-warning"><p class="message-body">There are no available fees.</p></div>'};document.querySelector("#button--addFeeCategory").addEventListener("click",()=>{let e;const s=s=>{s.preventDefault(),cityssm.postJSON(t+"/admin/doAddFeeCategory",s.currentTarget,t=>{t.success?(o=t.feeCategories,e(),a()):bulmaJS.alert({title:"Error Creating Fee Category",message:t.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("adminFees-addFeeCategory",{onshown:(t,o)=>{bulmaJS.toggleHtmlClipped(),t.querySelector("#feeCategoryAdd--feeCategory").focus(),e=o,t.querySelector("form").addEventListener("submit",s)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})});const r=e=>{const s=Number.parseInt(e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),r=o.find(e=>e.feeCategoryId===s);let n;const c=e=>{e.preventDefault(),cityssm.postJSON(t+"/admin/doUpdateFeeCategory",e.currentTarget,e=>{e.success?(o=e.feeCategories,n(),a()):bulmaJS.alert({title:"Error Updating Fee Category",message:e.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("adminFees-editFeeCategory",{onshow:e=>{e.querySelector("#feeCategoryEdit--feeCategoryId").value=r.feeCategoryId.toString(),e.querySelector("#feeCategoryEdit--feeCategory").value=r.feeCategory},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),n=t,e.querySelector("form").addEventListener("submit",c),e.querySelector("#feeCategoryEdit--feeCategory").focus()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},n=e=>{const s=Number.parseInt(e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);bulmaJS.confirm({title:"Delete Fee Category?",message:"Are you sure you want to delete this fee category?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee Category",callbackFunction:()=>{cityssm.postJSON(t+"/admin/doDeleteFeeCategory",{feeCategoryId:s},e=>{e.success?(o=e.feeCategories,a()):bulmaJS.alert({title:"Error Updating Fee Category",message:e.errorMessage,contextualColorName:"danger"})})}}})},c=e=>{const s=Number.parseInt(e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);cityssm.postJSON(t+"/admin/doMoveFeeCategoryUp",{feeCategoryId:s,moveToTop:e.shiftKey?"1":"0"},e=>{e.success?(o=e.feeCategories,a()):bulmaJS.alert({title:"Error Moving Fee Category",message:e.errorMessage,contextualColorName:"danger"})})},l=e=>{const s=Number.parseInt(e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);cityssm.postJSON(t+"/admin/doMoveFeeCategoryDown",{feeCategoryId:s,moveToBottom:e.shiftKey?"1":"0"},e=>{e.success?(o=e.feeCategories,a()):bulmaJS.alert({title:"Error Moving Fee Category",message:e.errorMessage,contextualColorName:"danger"})})},i=s=>{const r=Number.parseInt(s.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);let n;const c=e=>{e.preventDefault(),cityssm.postJSON(t+"/admin/doAddFee",e.currentTarget,e=>{e.success?(o=e.feeCategories,n(),a()):bulmaJS.alert({title:"Error Adding Fee",message:e.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("adminFees-addFee",{onshow:t=>{const s=t.querySelector("#feeAdd--feeCategoryId");for(const e of o){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===r&&(t.selected=!0),s.append(t)}const a=t.querySelector("#feeAdd--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,a.append(t)}const n=t.querySelector("#feeAdd--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,n.append(t)}t.querySelector("#feeAdd--taxPercentage").value=exports.taxPercentageDefault.toString(),e.populateAliases(t)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),n=t,e.querySelector("form").addEventListener("submit",c),e.querySelector("#feeAdd--feeName").focus(),e.querySelector("#feeAdd--feeFunction").addEventListener("change",()=>{const t=e.querySelector("#feeAdd--feeAmount"),s=e.querySelector("#feeAdd--feeFunction");""===s.value?(s.closest(".select").classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.closest(".select").classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--taxPercentage").addEventListener("keyup",()=>{const t=e.querySelector("#feeAdd--taxAmount"),s=e.querySelector("#feeAdd--taxPercentage");""===s.value?(s.classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--includeQuantity").addEventListener("change",()=>{e.querySelector("#feeAdd--quantityUnit").disabled=""===e.querySelector("#feeAdd--includeQuantity").value})},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},d=s=>{s.preventDefault();const r=s.currentTarget.closest(".container--fee"),n=Number.parseInt(r.dataset.feeId,10),c=Number.parseInt(r.closest(".container--feeCategory").dataset.feeCategoryId),l=o.find(e=>e.feeCategoryId===c).fees.find(e=>e.feeId===n);let i,d;const u=e=>{e.preventDefault(),cityssm.postJSON(t+"/admin/doUpdateFee",e.currentTarget,e=>{e.success?(o=e.feeCategories,i(),a()):bulmaJS.alert({title:"Error Updating Fee",message:e.errorMessage,contextualColorName:"danger"})})},y=e=>{e.preventDefault();bulmaJS.confirm({title:"Delete Fee?",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee",callbackFunction:()=>{cityssm.postJSON(t+"/admin/doDeleteFee",{feeId:n},e=>{e.success?(o=e.feeCategories,i(),a()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage,contextualColorName:"danger"})})}}})},m=()=>{const e=d.querySelector("#feeEdit--feeAmount"),t=d.querySelector("#feeEdit--feeFunction");""===t.value?(t.closest(".select").classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.closest(".select").classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)},p=()=>{const e=d.querySelector("#feeEdit--taxAmount"),t=d.querySelector("#feeEdit--taxPercentage");""===t.value?(t.classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)},g=()=>{d.querySelector("#feeEdit--quantityUnit").disabled=""===d.querySelector("#feeEdit--includeQuantity").value};cityssm.openHtmlModal("adminFees-editFee",{onshow:t=>{d=t,t.querySelector("#feeEdit--feeId").value=l.feeId.toString();const s=t.querySelector("#feeEdit--feeCategoryId");for(const e of o){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===c&&(t.selected=!0),s.append(t)}t.querySelector("#feeEdit--feeName").value=l.feeName,t.querySelector("#feeEdit--feeDescription").value=l.feeDescription;const a=t.querySelector("#feeEdit--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,e.occupancyTypeId===l.occupancyTypeId&&(t.selected=!0),a.append(t)}const r=t.querySelector("#feeEdit--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,e.lotTypeId===l.lotTypeId&&(t.selected=!0),r.append(t)}t.querySelector("#feeEdit--feeAmount").value=l.feeAmount?l.feeAmount.toFixed(2):"",t.querySelector("#feeEdit--feeFunction").addEventListener("change",m),m(),t.querySelector("#feeEdit--taxAmount").value=l.taxAmount?l.taxAmount.toFixed(2):"";const n=t.querySelector("#feeEdit--taxPercentage");n.value=l.taxPercentage?l.taxPercentage.toString():"",n.addEventListener("keyup",p),p();const i=t.querySelector("#feeEdit--includeQuantity");l.includeQuantity&&(i.value="1"),i.addEventListener("change",g),t.querySelector("#feeEdit--quantityUnit").value=l.quantityUnit||"",g(),l.isRequired&&(t.querySelector("#feeEdit--isRequired").value="1"),e.populateAliases(t)},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),i=t,e.querySelector("form").addEventListener("submit",u),bulmaJS.init(e),e.querySelector(".button--deleteFee").addEventListener("click",y)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},u=e=>{const s=e.currentTarget.closest(".container--fee"),r=Number.parseInt(s.dataset.feeId,10);cityssm.postJSON(t+"/admin/doMoveFeeUp",{feeId:r,moveToTop:e.shiftKey?"1":"0"},e=>{e.success?(o=e.feeCategories,a()):bulmaJS.alert({title:"Error Moving Fee",message:e.errorMessage,contextualColorName:"danger"})})},y=e=>{const s=e.currentTarget.closest(".container--fee"),r=Number.parseInt(s.dataset.feeId,10);cityssm.postJSON(t+"/admin/doMoveFeeDown",{feeId:r,moveToBottom:e.shiftKey?"1":"0"},e=>{e.success?(o=e.feeCategories,a()):bulmaJS.alert({title:"Error Moving Fee",message:e.errorMessage,contextualColorName:"danger"})})};a()})(); |