sunrise-cms/public/javascripts/adminFees.min.js

1 line
17 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const t=exports.los,n=document.querySelector("#container--feeCategories");let o=exports.feeCategories;function s(e){return o.find(t=>t.feeCategoryId===e)}function a(e,t){return e.fees.find(e=>e.feeId===t)}function r(){var e,s,a,r,m,v,p,g,C,S,b,F,q,E,x,T,A,I;if(0!==o.length){n.innerHTML="";for(const L of o){const o=document.createElement("section");o.className="panel container--feeCategory",o.dataset.feeCategoryId=L.feeCategoryId.toString(),o.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&&(o.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===(a=o.querySelector(".button--deleteFeeCategory"))||void 0===a||a.addEventListener("click",i));for(const e of L.fees){const n=document.createElement("div");n.className="panel-block is-block container--fee",n.dataset.feeId=e.feeId.toString();const s=null!==(r=e.isRequired)&&void 0!==r&&r||void 0!==e.occupancyTypeId||void 0!==e.lotTypeId;n.innerHTML=`<div class="columns">\n <div class="column is-half">\n <p>\n <a class="has-text-weight-bold a--editFee" href="#">${cityssm.escapeHTML(null!==(m=e.feeName)&&void 0!==m?m:"")}</a><br />\n <small>\n ${cityssm.escapeHTML(null!==(v=e.feeDescription)&&void 0!==v?v:"").replaceAll("\n","<br />")}\n </small>\n </p>\n ${s?`<p class="tags">\n ${null!==(p=e.isRequired)&&void 0!==p&&p?'<span class="tag is-warning">Required</span>':""}\n ${-1===(null!==(g=e.occupancyTypeId)&&void 0!==g?g:-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!==(C=e.occupancyType)&&void 0!==C?C:"")}</span>\n </span>`}\n ${-1===(null!==(S=e.lotTypeId)&&void 0!==S?S:-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!==(b=e.lotType)&&void 0!==b?b:"")}</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>`:`<a class="a--editFeeAmount" href="#">\n $${(null!==(F=e.feeAmount)&&void 0!==F?F:0).toFixed(2)}<br />\n <small>Fee</small>\n </a>`}\n </div>\n <div class="column has-text-centered">\n ${e.taxPercentage?`${e.taxPercentage.toString()}%`:`$${(null!==(q=e.taxAmount)&&void 0!==q?q:0).toFixed(2)}`}<br />\n <small>Tax</small>\n </div>\n <div class="column has-text-centered">\n ${e.includeQuantity?`${cityssm.escapeHTML(null!==(E=e.quantityUnit)&&void 0!==E?E:"")}<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===(x=n.querySelector(".a--editFee"))||void 0===x||x.addEventListener("click",f),null===(T=n.querySelector(".a--editFeeAmount"))||void 0===T||T.addEventListener("click",u),n.querySelector(".button--moveFeeUp").addEventListener("click",y),n.querySelector(".button--moveFeeDown").addEventListener("click",y),o.append(n)}null===(A=o.querySelector(".button--editFeeCategory"))||void 0===A||A.addEventListener("click",l),null===(I=o.querySelector(".button--addFee"))||void 0===I||I.addEventListener("click",d),o.querySelector(".button--moveFeeCategoryUp").addEventListener("click",c),o.querySelector(".button--moveFeeCategoryDown").addEventListener("click",c),n.append(o)}}else n.innerHTML='<div class="message is-warning">\n <p class="message-body">There are no available fees.</p>\n </div>'}function l(e){var n;const a=s(Number.parseInt(null!==(n=e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId)&&void 0!==n?n:"",10));let l;function i(e){e.preventDefault(),cityssm.postJSON(`${t.urlPrefix}/admin/doUpdateFeeCategory`,e.currentTarget,e=>{var t;const n=e;n.success?(o=n.feeCategories,l(),r()):bulmaJS.alert({title:"Error Updating Fee Category",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-editFeeCategory",{onshow(e){e.querySelector("#feeCategoryEdit--feeCategoryId").value=a.feeCategoryId.toString(),e.querySelector("#feeCategoryEdit--feeCategory").value=a.feeCategory,a.isGroupedFee&&(e.querySelector("#feeCategoryEdit--isGroupedFee").checked=!0)},onshown(e,t){var n;bulmaJS.toggleHtmlClipped(),l=t,null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",i),e.querySelector("#feeCategoryEdit--feeCategory").focus()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function i(e){var n;const s=Number.parseInt(null!==(n=e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId)&&void 0!==n?n:"",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:s},e=>{var t;const n=e;n.success?(o=n.feeCategories,r()):bulmaJS.alert({title:"Error Updating Fee Category",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function c(e){var n;const s=e.currentTarget,a=null!==(n=s.closest(".container--feeCategory").dataset.feeCategoryId)&&void 0!==n?n:"";cityssm.postJSON(`${t.urlPrefix}/admin/${"up"===s.dataset.direction?"doMoveFeeCategoryUp":"doMoveFeeCategoryDown"}`,{feeCategoryId:a,moveToEnd:e.shiftKey?"1":"0"},e=>{var t;const n=e;n.success?(o=n.feeCategories,r()):bulmaJS.alert({title:"Error Moving Fee Category",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function d(e){var n;const s=Number.parseInt(null!==(n=e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId)&&void 0!==n?n:"",10);let a;function l(e){e.preventDefault(),cityssm.postJSON(`${t.urlPrefix}/admin/doAddFee`,e.currentTarget,e=>{var t;const n=e;n.success?(o=n.feeCategories,a(),r()):bulmaJS.alert({title:"Error Adding Fee",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFee",{onshow(e){const n=e.querySelector("#feeAdd--feeCategoryId");for(const e of o){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===s&&(t.selected=!0),n.append(t)}const a=e.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 r=e.querySelector("#feeAdd--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,r.append(t)}e.querySelector("#feeAdd--taxPercentage").value=exports.taxPercentageDefault.toString(),t.populateAliases(e)},onshown(e,t){var n,o,s;bulmaJS.toggleHtmlClipped(),a=t,null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",l),e.querySelector("#feeAdd--feeName").focus(),e.querySelector("#feeAdd--feeFunction").addEventListener("change",()=>{var t,n;const o=e.querySelector("#feeAdd--feeAmount"),s=e.querySelector("#feeAdd--feeFunction");""===s.value?(null===(t=s.closest(".select"))||void 0===t||t.classList.remove("is-success"),o.classList.add("is-success"),o.disabled=!1):(null===(n=s.closest(".select"))||void 0===n||n.classList.add("is-success"),o.classList.remove("is-success"),o.disabled=!0)}),null===(o=e.querySelector("#feeAdd--taxPercentage"))||void 0===o||o.addEventListener("keyup",()=>{const t=e.querySelector("#feeAdd--taxAmount"),n=e.querySelector("#feeAdd--taxPercentage");""===n.value?(n.classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(n.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 u(e){var n,l;e.preventDefault();const i=e.currentTarget.closest(".container--fee"),c=Number.parseInt(null!==(n=i.dataset.feeId)&&void 0!==n?n:"",10),d=s(Number.parseInt(null!==(l=i.closest(".container--feeCategory").dataset.feeCategoryId)&&void 0!==l?l:"")),u=a(d,c);let f;function y(e){e.preventDefault(),cityssm.postJSON(`${t.urlPrefix}/admin/doUpdateFeeAmount`,e.currentTarget,e=>{var t;const n=e;n.success?(o=n.feeCategories,f(),r()):bulmaJS.alert({title:"Error Updating Fee Amount",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-editFeeAmount",{onshow(e){var t,n,o;e.querySelector("#feeAmountEdit--feeId").value=u.feeId.toString(),e.querySelector("#feeAmountEdit--feeCategory").textContent=d.feeCategory,e.querySelector("#feeAmountEdit--feeName").textContent=null!==(t=u.feeName)&&void 0!==t?t:"",e.querySelector("#feeAmountEdit--feeAmount").value=null!==(o=null===(n=u.feeAmount)||void 0===n?void 0:n.toFixed(2))&&void 0!==o?o:"0"},onshown(e,t){var n;e.querySelector("#feeAmountEdit--feeAmount").select(),f=t,null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",y)}})}function f(e){var n,l;e.preventDefault();const i=e.currentTarget.closest(".container--fee"),c=Number.parseInt(null!==(n=i.dataset.feeId)&&void 0!==n?n:"",10),d=Number.parseInt(null!==(l=i.closest(".container--feeCategory").dataset.feeCategoryId)&&void 0!==l?l:""),u=a(s(d),c);let f,y;function m(e){e.preventDefault(),cityssm.postJSON(`${t.urlPrefix}/admin/doUpdateFee`,e.currentTarget,e=>{var t;const n=e;n.success?(o=n.feeCategories,f(),r()):bulmaJS.alert({title:"Error Updating Fee",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function v(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:c},e=>{var t;const n=e;n.success?(o=n.feeCategories,f(),r()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function p(){var e,t;const n=y.querySelector("#feeEdit--feeAmount"),o=y.querySelector("#feeEdit--feeFunction");""===o.value?(null===(e=o.closest(".select"))||void 0===e||e.classList.remove("is-success"),n.classList.add("is-success"),n.disabled=!1):(null===(t=o.closest(".select"))||void 0===t||t.classList.add("is-success"),n.classList.remove("is-success"),n.disabled=!0)}function g(){const e=y.querySelector("#feeEdit--taxAmount"),t=y.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 C(){const e=y.querySelector("#feeEdit--includeQuantity").value;y.querySelector("#feeEdit--quantityUnit").disabled=""===e}cityssm.openHtmlModal("adminFees-editFee",{onshow(e){var n,s,a,r,l,i,c;y=e,e.querySelector("#feeEdit--feeId").value=u.feeId.toString();const f=e.querySelector("#feeEdit--feeCategoryId");for(const e of o){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===d&&(t.selected=!0),f.append(t)}e.querySelector("#feeEdit--feeName").value=null!==(n=u.feeName)&&void 0!==n?n:"",e.querySelector("#feeEdit--feeAccount").value=null!==(s=u.feeAccount)&&void 0!==s?s:"",e.querySelector("#feeEdit--feeDescription").value=null!==(a=u.feeDescription)&&void 0!==a?a:"";const m=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===u.occupancyTypeId&&(t.selected=!0),m.append(t)}const v=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===u.lotTypeId&&(t.selected=!0),v.append(t)}e.querySelector("#feeEdit--feeAmount").value=u.feeAmount?u.feeAmount.toFixed(2):"",null===(r=e.querySelector("#feeEdit--feeFunction"))||void 0===r||r.addEventListener("change",p),p(),e.querySelector("#feeEdit--taxAmount").value=u.taxAmount?u.taxAmount.toFixed(2):"";const S=e.querySelector("#feeEdit--taxPercentage");S.value=u.taxPercentage?u.taxPercentage.toString():"",S.addEventListener("keyup",g),g();const b=e.querySelector("#feeEdit--includeQuantity");null!==(l=u.includeQuantity)&&void 0!==l&&l&&(b.value="1"),b.addEventListener("change",C),e.querySelector("#feeEdit--quantityUnit").value=null!==(i=u.quantityUnit)&&void 0!==i?i:"",C(),null!==(c=u.isRequired)&&void 0!==c&&c&&(e.querySelector("#feeEdit--isRequired").value="1"),t.populateAliases(e)},onshown(e,t){var n,o;bulmaJS.toggleHtmlClipped(),f=t,null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",m),bulmaJS.init(e),null===(o=e.querySelector(".button--deleteFee"))||void 0===o||o.addEventListener("click",v)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function y(e){var n;const s=e.currentTarget,a=null!==(n=s.closest(".container--fee").dataset.feeId)&&void 0!==n?n:"";cityssm.postJSON(`${t.urlPrefix}/admin/${"up"===s.dataset.direction?"doMoveFeeUp":"doMoveFeeDown"}`,{feeId:a,moveToEnd:e.shiftKey?"1":"0"},e=>{var t;const n=e;n.success?(o=n.feeCategories,r()):bulmaJS.alert({title:"Error Moving Fee",message:null!==(t=n.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 n(n){n.preventDefault(),cityssm.postJSON(`${t.urlPrefix}/admin/doAddFeeCategory`,n.currentTarget,t=>{var n;const s=t;s.success?(o=s.feeCategories,e(),r()):bulmaJS.alert({title:"Error Creating Fee Category",message:null!==(n=s.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFeeCategory",{onshown(t,o){var s;bulmaJS.toggleHtmlClipped(),t.querySelector("#feeCategoryAdd--feeCategory").focus(),e=o,null===(s=t.querySelector("form"))||void 0===s||s.addEventListener("submit",n)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addFeeCategory").focus()}})}),r()})();