1 line
17 KiB
JavaScript
1 line
17 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const c=exports.los,n=document.querySelector("#container--occupancyTypes"),t=document.querySelector("#container--occupancyTypePrints");let a=exports.occupancyTypes;delete exports.occupancyTypes;let i=exports.allOccupancyTypeFields;delete exports.allOccupancyTypeFields;const l=new Set;function s(e){var c;const n=e.currentTarget,t=n.closest(".container--occupancyType"),a=Number.parseInt(null!==(c=t.dataset.occupancyTypeId)&&void 0!==c?c:"",10);l.has(a)?l.delete(a):l.add(a),n.innerHTML=l.has(a)?'<i class="fas fa-fw fa-minus" aria-hidden="true"></i>':'<i class="fas fa-fw fa-plus" aria-hidden="true"></i>';const i=t.querySelectorAll(".panel-block");for(const e of i)e.classList.toggle("is-hidden")}function o(e){var n;const t=e;t.success?(a=t.occupancyTypes,i=t.allOccupancyTypeFields,O()):bulmaJS.alert({title:`Error Updating ${c.escapedAliases.Occupancy} Type`,message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})}function d(e){var n;const t=Number.parseInt(null!==(n=e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId)&&void 0!==n?n:"",10);bulmaJS.confirm({title:`Delete ${c.escapedAliases.Occupancy} Type`,message:`Are you sure you want to delete this ${c.escapedAliases.occupancy} type?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${c.escapedAliases.Occupancy} Type`,callbackFunction:function(){cityssm.postJSON(`${c.urlPrefix}/admin/doDeleteOccupancyType`,{occupancyTypeId:t},o)}}})}function p(e){var n;const t=Number.parseInt(null!==(n=e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId)&&void 0!==n?n:"",10),i=a.find(e=>t===e.occupancyTypeId);let l;function s(e){e.preventDefault(),cityssm.postJSON(`${c.urlPrefix}/admin/doUpdateOccupancyType`,e.currentTarget,e=>{const c=e;o(c),c.success&&l()})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyType",{onshow(e){c.populateAliases(e),e.querySelector("#occupancyTypeEdit--occupancyTypeId").value=t.toString(),e.querySelector("#occupancyTypeEdit--occupancyType").value=i.occupancyType},onshown(e,c){var n;l=c,e.querySelector("#occupancyTypeEdit--occupancyType").focus(),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",s),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function u(e){var n;const t=Number.parseInt(null!==(n=e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId)&&void 0!==n?n:"",10);let a;function i(e){e.preventDefault(),cityssm.postJSON(`${c.urlPrefix}/admin/doAddOccupancyTypeField`,e.currentTarget,e=>{var c;const n=e;l.add(t),o(n),n.success&&(a(),y(t,null!==(c=n.occupancyTypeFieldId)&&void 0!==c?c:0))})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypeField",{onshow(e){c.populateAliases(e),t&&(e.querySelector("#occupancyTypeFieldAdd--occupancyTypeId").value=t.toString())},onshown(e,c){var n;a=c,e.querySelector("#occupancyTypeFieldAdd--occupancyTypeField").focus(),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",i),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function r(e){const n=e.currentTarget,t=e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(`${c.urlPrefix}/admin/${"up"===n.dataset.direction?"doMoveOccupancyTypeUp":"doMoveOccupancyTypeDown"}`,{occupancyTypeId:t,moveToEnd:e.shiftKey?"1":"0"},o)}function y(e,n){var t;let l;e&&(l=a.find(c=>c.occupancyTypeId===e));const s=(l?null!==(t=l.occupancyTypeFields)&&void 0!==t?t:[]:i).find(e=>e.occupancyTypeFieldId===n);let d,p,u,r,y;function v(){p.min=d.value}function T(){""===r.value?(d.disabled=!1,p.disabled=!1,u.disabled=!1):(d.disabled=!0,p.disabled=!0,u.disabled=!0)}function m(e){e.preventDefault(),cityssm.postJSON(`${c.urlPrefix}/admin/doUpdateOccupancyTypeField`,e.currentTarget,e=>{const c=e;o(c),c.success&&y()})}function f(){cityssm.postJSON(`${c.urlPrefix}/admin/doDeleteOccupancyTypeField`,{occupancyTypeFieldId:n},e=>{const c=e;o(c),c.success&&y()})}function b(){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:f}})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField",{onshow:e=>{var n,t,a,i,l,o,y,v;c.populateAliases(e),e.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldId").value=s.occupancyTypeFieldId.toString(),e.querySelector("#occupancyTypeFieldEdit--occupancyTypeField").value=null!==(n=s.occupancyTypeField)&&void 0!==n?n:"",e.querySelector("#occupancyTypeFieldEdit--isRequired").value=null!==(t=s.isRequired)&&void 0!==t&&t?"1":"0",(d=e.querySelector("#occupancyTypeFieldEdit--minimumLength")).value=null!==(i=null===(a=s.minimumLength)||void 0===a?void 0:a.toString())&&void 0!==i?i:"",(p=e.querySelector("#occupancyTypeFieldEdit--maximumLength")).value=null!==(o=null===(l=s.maximumLength)||void 0===l?void 0:l.toString())&&void 0!==o?o:"",(u=e.querySelector("#occupancyTypeFieldEdit--pattern")).value=null!==(y=s.pattern)&&void 0!==y?y:"",(r=e.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues")).value=null!==(v=s.occupancyTypeFieldValues)&&void 0!==v?v:"",T()},onshown:(e,c)=>{var n,t;y=c,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",m),d.addEventListener("keyup",v),v(),r.addEventListener("keyup",T),null===(t=e.querySelector("#button--deleteOccupancyTypeField"))||void 0===t||t.addEventListener("click",b)},onremoved:()=>{bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})}function v(e){var c,n;e.preventDefault();const t=Number.parseInt(null!==(c=e.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId)&&void 0!==c?c:"",10);y(Number.parseInt(null!==(n=e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId)&&void 0!==n?n:"",10),t)}function T(e){const n=e.currentTarget,t=e.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;cityssm.postJSON(`${c.urlPrefix}/admin/${"up"===n.dataset.direction?"doMoveOccupancyTypeFieldUp":"doMoveOccupancyTypeFieldDown"}`,{occupancyTypeFieldId:t,moveToEnd:e.shiftKey?"1":"0"},o)}function m(e,n,t){var a,i;if(0===t.length)e.insertAdjacentHTML("beforeend",`<div class="panel-block is-block ${!n||l.has(n)?"":" is-hidden"}">\n <div class="message is-info"><p class="message-body">There are no additional fields.</p></div>\n </div>`);else for(const s of t){const t=document.createElement("div");t.className="panel-block is-block container--occupancyTypeField",n&&!l.has(n)&&t.classList.add("is-hidden"),t.dataset.occupancyTypeFieldId=s.occupancyTypeFieldId.toString(),t.innerHTML=`<div class="level is-mobile">\n <div class="level-left">\n <div class="level-item">\n <a class="has-text-weight-bold button--editOccupancyTypeField" href="#">\n ${cityssm.escapeHTML(null!==(a=s.occupancyTypeField)&&void 0!==a?a:"")}\n </a>\n </div>\n </div>\n <div class="level-right">\n <div class="level-item">\n ${c.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeFieldUp","button--moveOccupancyTypeFieldDown")}\n </div>\n </div>\n </div>`,null===(i=t.querySelector(".button--editOccupancyTypeField"))||void 0===i||i.addEventListener("click",v),t.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click",T),t.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click",T),e.append(t)}}function f(e){var n;const t=null!==(n=e.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId)&&void 0!==n?n:"";let a;function i(e){e.preventDefault(),cityssm.postJSON(`${c.urlPrefix}/admin/doAddOccupancyTypePrint`,e.currentTarget,e=>{const c=e;c.success&&a(),o(c)})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypePrint",{onshow(e){c.populateAliases(e),e.querySelector("#occupancyTypePrintAdd--occupancyTypeId").value=t;const n=e.querySelector("#occupancyTypePrintAdd--printEJS");for(const[e,c]of Object.entries(exports.occupancyTypePrintTitles)){const t=document.createElement("option");t.value=e,t.textContent=c,n.append(t)}},onshown(e,c){var n;a=c,null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",i)}})}function b(e){const n=e.currentTarget,t=n.closest(".container--occupancyTypePrint").dataset.printEJS,a=n.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;cityssm.postJSON(`${c.urlPrefix}/admin/${"up"===n.dataset.direction?"doMoveOccupancyTypePrintUp":"doMoveOccupancyTypePrintDown"}`,{occupancyTypeId:a,printEJS:t,moveToEnd:e.shiftKey?"1":"0"},o)}function g(e){e.preventDefault();const n=e.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS,t=e.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;bulmaJS.confirm({title:"Delete Print",message:"Are you sure you want to remove this print option?",contextualColorName:"warning",okButton:{text:"Yes, Remove Print",callbackFunction:function(){cityssm.postJSON(`${c.urlPrefix}/admin/doDeleteOccupancyTypePrint`,{occupancyTypeId:t,printEJS:n},o)}}})}function S(e,n,t){var a;if(0===t.length)e.insertAdjacentHTML("beforeend",'<div class="panel-block is-block">\n <div class="message is-info">\n <p class="message-body">There are no prints associated with this record.</p>\n </div>\n </div>');else for(const n of t){const t=document.createElement("div");t.className="panel-block is-block container--occupancyTypePrint",t.dataset.printEJS=n;const i="*"===n?"(All Available Prints)":exports.occupancyTypePrintTitles[n];let l="fa-star";n.startsWith("pdf/")?l="fa-file-pdf":n.startsWith("screen/")&&(l="fa-file"),t.innerHTML=`<div class="level is-mobile">\n <div class="level-left">\n <div class="level-item">\n <i class="fas fa-fw ${l}" aria-hidden="true"></i>\n </div>\n <div class="level-item">\n ${cityssm.escapeHTML(i||n)}\n </div>\n </div>\n <div class="level-right">\n <div class="level-item">\n ${c.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypePrintUp","button--moveOccupancyTypePrintDown")}\n </div>\n <div class="level-item">\n <button class="button is-small is-danger button--deleteOccupancyTypePrint" data-tooltip="Delete" type="button" aria-label="Delete Print">\n <i class="fas fa-trash" aria-hidden="true"></i>\n </button>\n </div>\n </div>\n </div>`,t.querySelector(".button--moveOccupancyTypePrintUp").addEventListener("click",b),t.querySelector(".button--moveOccupancyTypePrintDown").addEventListener("click",b),null===(a=t.querySelector(".button--deleteOccupancyTypePrint"))||void 0===a||a.addEventListener("click",g),e.append(t)}}function O(){var e,o,y,v,T,b,g,O;if(n.innerHTML=`<div class="panel container--occupancyType" id="container--allOccupancyTypeFields" data-occupancy-type-id="">\n <div class="panel-heading">\n <div class="level is-mobile">\n <div class="level-left">\n <div class="level-item">\n <h2 class="title is-4">(All ${c.escapedAliases.Occupancy} Types)</h2>\n </div>\n </div>\n <div class="level-right">\n <div class="level-item">\n <button class="button is-success is-small button--addOccupancyTypeField" type="button">\n <span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>\n <span>Add Field</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>`,t.innerHTML="",m(n.querySelector("#container--allOccupancyTypeFields"),void 0,i),null===(e=n.querySelector(".button--addOccupancyTypeField"))||void 0===e||e.addEventListener("click",u),0===a.length)return n.insertAdjacentHTML("afterbegin",`<div class="message is-warning>\n <p class="message-body">There are no active ${c.escapedAliases.occupancy} types.</p>\n </div>`),void t.insertAdjacentHTML("afterbegin",`<div class="message is-warning>\n <p class="message-body">There are no active ${c.escapedAliases.occupancy} types.</p>\n </div>`);for(const e of a){const a=document.createElement("div");a.className="panel container--occupancyType",a.dataset.occupancyTypeId=e.occupancyTypeId.toString(),a.innerHTML=`<div class="panel-heading">\n <div class="level is-mobile">\n <div class="level-left">\n <div class="level-item">\n <button class="button is-small button--toggleOccupancyTypeFields" data-tooltip="Toggle Fields" type="button" aria-label="Toggle Fields">\n ${l.has(e.occupancyTypeId)?'<i class="fas fa-fw fa-minus" aria-hidden="true"></i>':'<i class="fas fa-fw fa-plus" aria-hidden="true"></i>'}\n </button>\n </div>\n <div class="level-item">\n <h2 class="title is-4">${cityssm.escapeHTML(e.occupancyType)}</h2>\n </div>\n </div>\n <div class="level-right">\n <div class="level-item">\n <button class="button is-danger is-small button--deleteOccupancyType" type="button">\n <span class="icon is-small"><i class="fas fa-trash" aria-hidden="true"></i></span>\n <span>Delete</span>\n </button>\n </div>\n <div class="level-item">\n <button class="button is-primary is-small button--editOccupancyType" type="button">\n <span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span>\n <span>Edit ${c.escapedAliases.Occupancy} Type</span>\n </button>\n </div>\n <div class="level-item">\n <button class="button is-success is-small button--addOccupancyTypeField" type="button">\n <span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>\n <span>Add Field</span>\n </button>\n </div>\n <div class="level-item">\n ${c.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeUp","button--moveOccupancyTypeDown")}\n </div>\n </div>\n </div>\n </div>`,m(a,e.occupancyTypeId,null!==(o=e.occupancyTypeFields)&&void 0!==o?o:[]),null===(y=a.querySelector(".button--toggleOccupancyTypeFields"))||void 0===y||y.addEventListener("click",s),null===(v=a.querySelector(".button--deleteOccupancyType"))||void 0===v||v.addEventListener("click",d),null===(T=a.querySelector(".button--editOccupancyType"))||void 0===T||T.addEventListener("click",p),null===(b=a.querySelector(".button--addOccupancyTypeField"))||void 0===b||b.addEventListener("click",u),a.querySelector(".button--moveOccupancyTypeUp").addEventListener("click",r),a.querySelector(".button--moveOccupancyTypeDown").addEventListener("click",r),n.append(a);const i=document.createElement("div");i.className="panel container--occupancyTypePrintList",i.dataset.occupancyTypeId=e.occupancyTypeId.toString(),i.innerHTML=`<div class="panel-heading">\n <div class="level is-mobile">\n <div class="level-left">\n <div class="level-item">\n <h2 class="title is-4">${cityssm.escapeHTML(e.occupancyType)}</h2>\n </div>\n </div>\n <div class="level-right">\n <div class="level-item">\n <button class="button is-success is-small button--addOccupancyTypePrint" type="button">\n <span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>\n <span>Add Print</span>\n </button>\n </div>\n </div>\n </div>\n </div>`,S(i,e.occupancyTypeId,null!==(g=e.occupancyTypePrints)&&void 0!==g?g:[]),null===(O=i.querySelector(".button--addOccupancyTypePrint"))||void 0===O||O.addEventListener("click",f),t.append(i)}}null===(e=document.querySelector("#button--addOccupancyType"))||void 0===e||e.addEventListener("click",()=>{let e;function n(n){n.preventDefault(),cityssm.postJSON(`${c.urlPrefix}/admin/doAddOccupancyType`,n.currentTarget,n=>{var t;const i=n;i.success?(e(),a=i.occupancyTypes,O()):bulmaJS.alert({title:`Error Adding ${c.escapedAliases.Occupancy} Type`,message:null!==(t=i.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType",{onshow(e){c.populateAliases(e)},onshown(c,t){var a;e=t,c.querySelector("#occupancyTypeAdd--occupancyType").focus(),null===(a=c.querySelector("form"))||void 0===a||a.addEventListener("submit",n),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}),O()})(); |