1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,c=document.querySelector("#container--occupancyTypes");let t=exports.occupancyTypes;delete exports.occupancyTypes;let a=exports.allOccupancyTypeFields;delete exports.allOccupancyTypeFields;const s=new Set,n=e=>{const c=e.currentTarget,t=c.closest(".container--occupancyType"),a=Number.parseInt(t.dataset.occupancyTypeId,10);s.has(a)?s.delete(a):s.add(a),c.innerHTML=s.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 n=t.querySelectorAll(".panel-block");for(const e of n)e.classList.toggle("is-hidden")},l=e=>{e.success?(t=e.occupancyTypes,a=e.allOccupancyTypeFields,b()):bulmaJS.alert({title:"Error Updating "+exports.aliases.occupancy+" Type",message:e.errorMessage||"",contextualColorName:"danger"})},o=c=>{const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);bulmaJS.confirm({title:"Delete "+exports.aliases.occupancy+" Type",message:"Are you sure you want to delete this "+exports.aliases.occupancy.toLowerCase()+" type?",contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.occupancy+" Type",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyType",{occupancyTypeId:t},l)}}})},i=c=>{const a=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),s=t.find(e=>a===e.occupancyTypeId);let n;const o=c=>{c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyType",c.currentTarget,e=>{l(e),e.success&&n()})};cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyType",{onshow:c=>{e.populateAliases(c),c.querySelector("#occupancyTypeEdit--occupancyTypeId").value=a.toString(),c.querySelector("#occupancyTypeEdit--occupancyType").value=s.occupancyType},onshown:(e,c)=>{n=c,e.querySelector("#occupancyTypeEdit--occupancyType").focus(),e.querySelector("form").addEventListener("submit",o),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},d=c=>{const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);let a;const n=c=>{c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypeField",c.currentTarget,e=>{s.add(t),l(e),e.success&&(a(),y(t,e.occupancyTypeFieldId))})};cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypeField",{onshow:c=>{e.populateAliases(c),t&&(c.querySelector("#occupancyTypeFieldAdd--occupancyTypeId").value=t.toString())},onshown:(e,c)=>{a=c,e.querySelector("#occupancyTypeFieldAdd--occupancyTypeField").focus(),e.querySelector("form").addEventListener("submit",n),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},p=c=>{c.preventDefault();const t=c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypeUp",{occupancyTypeId:t,moveToTop:c.shiftKey?"1":"0"},l)},u=c=>{c.preventDefault();const t=c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypeDown",{occupancyTypeId:t,moveToBottom:c.shiftKey?"1":"0"},l)},y=(c,s)=>{let n;c&&(n=t.find(e=>e.occupancyTypeId===c));const o=(n?n.occupancyTypeFields:a).find(e=>e.occupancyTypeFieldId===s);let i,d,p,u,y;const r=()=>{d.min=i.value},T=()=>{""===u.value?(i.disabled=!1,d.disabled=!1,p.disabled=!1):(i.disabled=!0,d.disabled=!0,p.disabled=!0)},v=c=>{c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyTypeField",c.currentTarget,e=>{l(e),e.success&&y()})},m=()=>{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(e.urlPrefix+"/admin/doDeleteOccupancyTypeField",{occupancyTypeFieldId:s},e=>{l(e),e.success&&y()})}}})};cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField",{onshow:c=>{e.populateAliases(c),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldId").value=o.occupancyTypeFieldId.toString(),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeField").value=o.occupancyTypeField,c.querySelector("#occupancyTypeFieldEdit--isRequired").value=o.isRequired?"1":"0",(i=c.querySelector("#occupancyTypeFieldEdit--minimumLength")).value=o.minimumLength.toString(),(d=c.querySelector("#occupancyTypeFieldEdit--maximumLength")).value=o.maximumLength.toString(),(p=c.querySelector("#occupancyTypeFieldEdit--pattern")).value=o.pattern,(u=c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues")).value=o.occupancyTypeFieldValues,T()},onshown:(e,c)=>{y=c,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),e.querySelector("form").addEventListener("submit",v),i.addEventListener("keyup",r),r(),u.addEventListener("keyup",T),e.querySelector("#button--deleteOccupancyTypeField").addEventListener("click",m)},onremoved:()=>{bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})},r=e=>{e.preventDefault();const c=Number.parseInt(e.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId,10),t=Number.parseInt(e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);y(t,c)},T=c=>{c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypeFieldUp",{occupancyTypeFieldId:t,moveToTop:c.shiftKey?"1":"0"},l)},v=c=>{c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypeFieldDown",{occupancyTypeFieldId:t,moveToBottom:c.shiftKey?"1":"0"},l)},m=(e,c,t)=>{if(0===t.length)e.insertAdjacentHTML("beforeend",'<div class="panel-block is-block'+(!c||s.has(c)?"":" is-hidden")+'"><div class="message is-info"><p class="message-body">There are no additional fields.</p></div></div>');else for(const a of t){const t=document.createElement("div");t.className="panel-block is-block container--occupancyTypeField",c&&!s.has(c)&&t.classList.add("is-hidden"),t.dataset.occupancyTypeFieldId=a.occupancyTypeFieldId.toString(),t.innerHTML='<div class="level is-mobile"><div class="level-left"><div class="level-item"><a class="has-text-weight-bold button--editOccupancyTypeField" href="#">'+cityssm.escapeHTML(a.occupancyTypeField||"")+'</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--moveOccupancyTypeFieldUp" 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--moveOccupancyTypeFieldDown" 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>',t.querySelector(".button--editOccupancyTypeField").addEventListener("click",r),t.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click",T),t.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click",v),e.append(t)}},b=()=>{if(c.innerHTML='<div class="panel container--occupancyType" id="container--allOccupancyTypeFields" data-occupancy-type-id=""><div class="panel-heading"><div class="level is-mobile"><div class="level-left"><div class="level-item"><h2 class="title is-4">(All Occupancy Types)</h2></div></div><div class="level-right"><div class="level-item"><button class="button is-success is-small button--addOccupancyTypeField" type="button"><span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span><span>Add Field</span></button></div></div></div></div></div>',m(c.querySelector("#container--allOccupancyTypeFields"),void 0,a),c.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),0!==t.length)for(const e of t){const t=document.createElement("div");t.className="panel container--occupancyType",t.dataset.occupancyTypeId=e.occupancyTypeId.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--toggleOccupancyTypeFields" data-tooltip="Toggle Fields" type="button" aria-label="Toggle Fields">'+(s.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>')+'</button></div><div class="level-item"><h2 class="title is-4">'+cityssm.escapeHTML(e.occupancyType)+'</h2></div></div><div class="level-right"><div class="level-item"><button class="button is-danger is-small button--deleteOccupancyType" 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--editOccupancyType" type="button"><span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit '+exports.aliases.occupancy+' Type</span></button></div><div class="level-item"><button class="button is-success is-small button--addOccupancyTypeField" 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--moveOccupancyTypeUp" 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--moveOccupancyTypeDown" 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>',m(t,e.occupancyTypeId,e.occupancyTypeFields),t.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click",n),t.querySelector(".button--deleteOccupancyType").addEventListener("click",o),t.querySelector(".button--editOccupancyType").addEventListener("click",i),t.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),t.querySelector(".button--moveOccupancyTypeUp").addEventListener("click",p),t.querySelector(".button--moveOccupancyTypeDown").addEventListener("click",u),c.append(t)}else c.insertAdjacentHTML("afterbegin",'<div class="message is-warning><p class="message-body">There are no active '+exports.aliases.occupancy.toLowerCase()+" types.</p></div>")};document.querySelector("#button--addOccupancyType").addEventListener("click",()=>{let c;const a=a=>{a.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyType",a.currentTarget,e=>{e.success?(c(),t=e.occupancyTypes,b()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupancy+" Type",message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType",{onshow:c=>{e.populateAliases(c)},onshown:(e,t)=>{c=t,e.querySelector("#occupancyTypeAdd--occupancyType").focus(),e.querySelector("form").addEventListener("submit",a),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),b()})(); |