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