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