From 00074fce059e5b1fe3c44bfa9ceaaa1401bd39b6 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Wed, 7 Dec 2022 10:16:59 -0500 Subject: [PATCH] ability to add occupant on occupancy create --- handlers/lotOccupancies-get/new.js | 4 +- handlers/lotOccupancies-get/new.ts | 4 +- helpers/lotOccupancyDB/addLotOccupancy.d.ts | 10 +++ helpers/lotOccupancyDB/addLotOccupancy.js | 16 ++++ helpers/lotOccupancyDB/addLotOccupancy.ts | 32 +++++++ public-typescript/lotOccupancyEdit.js | 11 ++- public-typescript/lotOccupancyEdit.ts | 15 +++- public/javascripts/lotOccupancyEdit.min.js | 2 +- views/lotOccupancy-edit.ejs | 99 +++++++++++++++++++++ 9 files changed, 188 insertions(+), 5 deletions(-) diff --git a/handlers/lotOccupancies-get/new.js b/handlers/lotOccupancies-get/new.js index d81f389c..f35c7de5 100644 --- a/handlers/lotOccupancies-get/new.js +++ b/handlers/lotOccupancies-get/new.js @@ -1,5 +1,5 @@ import { dateToInteger, dateToString } from "@cityssm/expressjs-server-js/dateTimeFns.js"; -import { getLotStatuses, getLotTypes, getOccupancyTypes } from "../../helpers/functions.cache.js"; +import { getLotOccupantTypes, getLotStatuses, getLotTypes, getOccupancyTypes } from "../../helpers/functions.cache.js"; import { getLot } from "../../helpers/lotOccupancyDB/getLot.js"; import { getMaps } from "../../helpers/lotOccupancyDB/getMaps.js"; import * as configFunctions from "../../helpers/functions.config.js"; @@ -17,6 +17,7 @@ export const handler = (request, response) => { lotOccupancy.mapName = lot.mapName; } const occupancyTypes = getOccupancyTypes(); + const lotOccupantTypes = getLotOccupantTypes(); const lotTypes = getLotTypes(); const lotStatuses = getLotStatuses(); const maps = getMaps(); @@ -28,6 +29,7 @@ export const handler = (request, response) => { " Record", lotOccupancy, occupancyTypes, + lotOccupantTypes, lotTypes, lotStatuses, maps, diff --git a/handlers/lotOccupancies-get/new.ts b/handlers/lotOccupancies-get/new.ts index ada15902..7edf975d 100644 --- a/handlers/lotOccupancies-get/new.ts +++ b/handlers/lotOccupancies-get/new.ts @@ -2,7 +2,7 @@ import type { RequestHandler } from "express"; import { dateToInteger, dateToString } from "@cityssm/expressjs-server-js/dateTimeFns.js"; -import { getLotStatuses, getLotTypes, getOccupancyTypes } from "../../helpers/functions.cache.js"; +import { getLotOccupantTypes, getLotStatuses, getLotTypes, getOccupancyTypes } from "../../helpers/functions.cache.js"; import { getLot } from "../../helpers/lotOccupancyDB/getLot.js"; import { getMaps } from "../../helpers/lotOccupancyDB/getMaps.js"; @@ -28,6 +28,7 @@ export const handler: RequestHandler = (request, response) => { } const occupancyTypes = getOccupancyTypes(); + const lotOccupantTypes = getLotOccupantTypes(); const lotTypes = getLotTypes(); const lotStatuses = getLotStatuses(); const maps = getMaps(); @@ -42,6 +43,7 @@ export const handler: RequestHandler = (request, response) => { lotOccupancy, occupancyTypes, + lotOccupantTypes, lotTypes, lotStatuses, maps, diff --git a/helpers/lotOccupancyDB/addLotOccupancy.d.ts b/helpers/lotOccupancyDB/addLotOccupancy.d.ts index 71c50548..f4f2652b 100644 --- a/helpers/lotOccupancyDB/addLotOccupancy.d.ts +++ b/helpers/lotOccupancyDB/addLotOccupancy.d.ts @@ -7,6 +7,16 @@ interface AddLotOccupancyForm { occupancyEndDateString: string; occupancyTypeFieldIds?: string; [lotOccupancyFieldValue_occupancyTypeFieldId: string]: unknown; + lotOccupantTypeId: string; + occupantName?: string; + occupantAddress1?: string; + occupantAddress2?: string; + occupantCity?: string; + occupantProvince?: string; + occupantPostalCode?: string; + occupantPhoneNumber?: string; + occupantEmailAddress?: string; + occupantComment?: string; } export declare const addLotOccupancy: (lotOccupancyForm: AddLotOccupancyForm, requestSession: recordTypes.PartialSession, connectedDatabase?: sqlite.Database) => number; export default addLotOccupancy; diff --git a/helpers/lotOccupancyDB/addLotOccupancy.js b/helpers/lotOccupancyDB/addLotOccupancy.js index 412c88b1..52ab1bfb 100644 --- a/helpers/lotOccupancyDB/addLotOccupancy.js +++ b/helpers/lotOccupancyDB/addLotOccupancy.js @@ -2,6 +2,7 @@ import sqlite from "better-sqlite3"; import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; import * as dateTimeFunctions from "@cityssm/expressjs-server-js/dateTimeFns.js"; import { addOrUpdateLotOccupancyField } from "./addOrUpdateLotOccupancyField.js"; +import addLotOccupancyOccupant from "./addLotOccupancyOccupant.js"; export const addLotOccupancy = (lotOccupancyForm, requestSession, connectedDatabase) => { const database = connectedDatabase || sqlite(databasePath); const rightNowMillis = Date.now(); @@ -31,6 +32,21 @@ export const addLotOccupancy = (lotOccupancyForm, requestSession, connectedDatab }, requestSession, database); } } + if (lotOccupancyForm.lotOccupantTypeId) { + addLotOccupancyOccupant({ + lotOccupancyId, + lotOccupantTypeId: lotOccupancyForm.lotOccupantTypeId, + occupantName: lotOccupancyForm.occupantName, + occupantAddress1: lotOccupancyForm.occupantAddress1, + occupantAddress2: lotOccupancyForm.occupantAddress2, + occupantCity: lotOccupancyForm.occupantCity, + occupantProvince: lotOccupancyForm.occupantProvince, + occupantPostalCode: lotOccupancyForm.occupantPostalCode, + occupantPhoneNumber: lotOccupancyForm.occupantPhoneNumber, + occupantEmailAddress: lotOccupancyForm.occupantEmailAddress, + occupantComment: lotOccupancyForm.occupantComment + }, requestSession, database); + } if (!connectedDatabase) { database.close(); } diff --git a/helpers/lotOccupancyDB/addLotOccupancy.ts b/helpers/lotOccupancyDB/addLotOccupancy.ts index 0a414271..ef7abdc3 100644 --- a/helpers/lotOccupancyDB/addLotOccupancy.ts +++ b/helpers/lotOccupancyDB/addLotOccupancy.ts @@ -7,6 +7,7 @@ import * as dateTimeFunctions from "@cityssm/expressjs-server-js/dateTimeFns.js" import { addOrUpdateLotOccupancyField } from "./addOrUpdateLotOccupancyField.js"; import type * as recordTypes from "../../types/recordTypes"; +import addLotOccupancyOccupant from "./addLotOccupancyOccupant.js"; interface AddLotOccupancyForm { occupancyTypeId: string | number; @@ -17,6 +18,17 @@ interface AddLotOccupancyForm { occupancyTypeFieldIds?: string; [lotOccupancyFieldValue_occupancyTypeFieldId: string]: unknown; + + lotOccupantTypeId: string; + occupantName?: string; + occupantAddress1?: string; + occupantAddress2?: string; + occupantCity?: string; + occupantProvince?: string; + occupantPostalCode?: string; + occupantPhoneNumber?: string; + occupantEmailAddress?: string; + occupantComment?: string; } export const addLotOccupancy = ( @@ -80,6 +92,26 @@ export const addLotOccupancy = ( } } + if (lotOccupancyForm.lotOccupantTypeId) { + addLotOccupancyOccupant( + { + lotOccupancyId, + lotOccupantTypeId: lotOccupancyForm.lotOccupantTypeId, + occupantName: lotOccupancyForm.occupantName, + occupantAddress1: lotOccupancyForm.occupantAddress1, + occupantAddress2: lotOccupancyForm.occupantAddress2, + occupantCity: lotOccupancyForm.occupantCity, + occupantProvince: lotOccupancyForm.occupantProvince, + occupantPostalCode: lotOccupancyForm.occupantPostalCode, + occupantPhoneNumber: lotOccupancyForm.occupantPhoneNumber, + occupantEmailAddress: lotOccupancyForm.occupantEmailAddress, + occupantComment: lotOccupancyForm.occupantComment + }, + requestSession, + database + ); + } + if (!connectedDatabase) { database.close(); } diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index 4f78bca9..d5a7a9af 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -466,7 +466,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); endDatePicker.refresh(); }); los.initializeUnlockFieldButtons(formElement); - if (!isCreate) { + if (isCreate) { + const lotOccupantTypeIdElement = document.querySelector("#lotOccupancy--lotOccupantTypeId"); + lotOccupantTypeIdElement.addEventListener("change", () => { + const occupantFields = formElement.querySelectorAll("[data-table='LotOccupancyOccupant']"); + for (const occupantField of occupantFields) { + occupantField.disabled = (lotOccupantTypeIdElement.value === ""); + } + }); + } + else { let lotOccupancyOccupants = exports.lotOccupancyOccupants; delete exports.lotOccupancyOccupants; const openEditLotOccupancyOccupant = (clickEvent) => { diff --git a/public-typescript/lotOccupancyEdit.ts b/public-typescript/lotOccupancyEdit.ts index 187f848a..d283014e 100644 --- a/public-typescript/lotOccupancyEdit.ts +++ b/public-typescript/lotOccupancyEdit.ts @@ -694,7 +694,20 @@ declare const bulmaJS: BulmaJS; * Occupants */ - if (!isCreate) { + if (isCreate) { + + const lotOccupantTypeIdElement = document.querySelector("#lotOccupancy--lotOccupantTypeId") as HTMLSelectElement; + + lotOccupantTypeIdElement.addEventListener("change", () => { + + const occupantFields = formElement.querySelectorAll("[data-table='LotOccupancyOccupant']") as NodeListOf; + + for (const occupantField of occupantFields) { + occupantField.disabled = (lotOccupantTypeIdElement.value === ""); + } + }); + + } else { let lotOccupancyOccupants: recordTypes.LotOccupancyOccupant[] = exports.lotOccupancyOccupants; diff --git a/public/javascripts/lotOccupancyEdit.min.js b/public/javascripts/lotOccupancyEdit.min.js index 36bd53fb..544ca8f2 100644 --- a/public/javascripts/lotOccupancyEdit.min.js +++ b/public/javascripts/lotOccupancyEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t,c;const a=exports.los,o=document.querySelector("#lotOccupancy--lotOccupancyId").value,n=""===o;let s=!1,l=n;const r=()=>{s||(s=!0,cityssm.enableNavBlocker())},i=document.querySelector("#form--lotOccupancy");i.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/"+(n?"doCreateLotOccupancy":"doUpdateLotOccupancy"),i,e=>{e.success?(s=!1,cityssm.disableNavBlocker(),n||l?window.location.href=a.urlPrefix+"/lotOccupancies/"+e.lotOccupancyId+"/edit?t="+Date.now():bulmaJS.alert({message:exports.aliases.occupancy+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+exports.aliases.occupancy,message:e.errorMessage||"",contextualColorName:"danger"})})});const u=i.querySelectorAll("input, select");for(const e of u)e.addEventListener("change",r);if(!n){const n=()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:o},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=a.urlPrefix+"/lotOccupancies/"+(null===(t=e.lotOccupancyId)||void 0===t?void 0:t.toString())+"/edit"):bulmaJS.alert({title:"Error Copying Record",message:e.errorMessage||"",contextualColorName:"danger"})})};null===(e=document.querySelector("#button--copyLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),s?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Copy "+exports.aliases.occupancy+" Record as New",message:"Are you sure you want to copy this record to a new record?",contextualColorName:"info",okButton:{text:"Yes, Copy",callbackFunction:n}})}),null===(t=document.querySelector("#button--deleteLotOccupancy"))||void 0===t||t.addEventListener("click",e=>{e.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.occupancy+" Record",message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:o},e=>{e.success?(cityssm.disableNavBlocker(),window.location.href=a.urlPrefix+"/lotOccupancies?t="+Date.now()):bulmaJS.alert({title:"Error Deleting Record",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}),null===(c=document.querySelector("#button--createWorkOrder"))||void 0===c||c.addEventListener("click",e=>{let t;e.preventDefault();const c=e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{e.success?(t(),bulmaJS.confirm({title:"Work Order Created Successfully",message:"Would you like to open the work order now?",contextualColorName:"success",okButton:{text:"Yes, Open the Work Order",callbackFunction:()=>{window.location.href=a.urlPrefix+"/workOrders/"+e.workOrderId+"/edit"}}})):bulmaJS.alert({title:"Error Creating Work Order",message:e.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow:e=>{e.querySelector("#workOrderCreate--lotOccupancyId").value=o,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const t=e.querySelector("#workOrderCreate--workOrderTypeId");for(const e of exports.workOrderTypes){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=e.workOrderType,t.append(c)}},onshown:(e,a)=>{var o;t=a,null===(o=e.querySelector("form"))||void 0===o||o.addEventListener("submit",c)}})})}const d=document.querySelector("#lotOccupancy--occupancyTypeId");if(n){const e=document.querySelector("#container--lotOccupancyFields");d.addEventListener("change",()=>{""!==d.value?cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:d.value},t=>{if(0===t.occupancyTypeFields.length)return void(e.innerHTML='

There are no additional fields for this '+exports.aliases.occupancy.toLowerCase()+" type.

");e.innerHTML="";let c="";for(const a of t.occupancyTypeFields){c+=","+a.occupancyTypeFieldId;const t="lotOccupancyFieldValue_"+a.occupancyTypeFieldId,o="lotOccupancy--"+t,n=document.createElement("div");if(n.className="field",n.innerHTML='
',n.querySelector("label").textContent=a.occupancyTypeField,""===a.occupancyTypeFieldValues){const e=document.createElement("input");e.className="input",e.id=o,e.name=t,e.type="text",e.required=a.isRequired,e.minLength=a.minimumLength,e.maxLength=a.maximumLength,a.pattern&&""!==a.pattern&&(e.pattern=a.pattern),n.querySelector(".control").append(e)}else{n.querySelector(".control").innerHTML='
';const e=n.querySelector("select");e.required=a.isRequired;const c=a.occupancyTypeFieldValues.split("\n");for(const t of c){const c=document.createElement("option");c.value=t,c.textContent=t,e.append(c)}}e.append(n)}e.insertAdjacentHTML("beforeend",'')}):e.innerHTML='

Select the '+exports.aliases.occupancy.toLowerCase()+" type to load the available fields.

"})}else{const e=d.value;d.addEventListener("change",()=>{d.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:"Are you sure you want to change the "+exports.aliases.occupancy.toLowerCase()+" type?\nThis change affects the additional fields associated with this record, and may also affect the available fees.",contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{l=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{d.value=e}}})})}const p=document.querySelector("#lotOccupancy--lotName");if(p.addEventListener("click",e=>{const t=e.currentTarget.value;let c,o,n,s;const l=(e,t)=>{document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,r(),c()},i=e=>{e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)},u=()=>{s.innerHTML='


Searching...

',cityssm.postJSON(a.urlPrefix+"/lots/doSearchLots",n,e=>{if(0===e.count)return void(s.innerHTML='

No results.

');const t=document.createElement("div");t.className="panel";for(const c of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=c.lotId.toString(),e.dataset.lotName=c.lotName,e.innerHTML='
'+cityssm.escapeHTML(c.lotName||"")+'
'+cityssm.escapeHTML(c.mapName||"")+'
'+cityssm.escapeHTML(c.lotStatus)+'
'+(c.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",i),t.append(e)}s.innerHTML="",s.append(t)})},d=e=>{e.preventDefault();const t=o.querySelector("#lotCreate--lotName").value;cityssm.postJSON(a.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{e.success?l(e.lotId,t):bulmaJS.alert({title:"Error Creating "+exports.aliases.lot,message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{a.populateAliases(e)},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),o=e,c=a,bulmaJS.init(e);const l=e.querySelector("#lotSelect--lotName");""!==document.querySelector("#lotOccupancy--lotId").value&&(l.value=t),l.focus(),l.addEventListener("change",u);const r=e.querySelector("#lotSelect--occupancyStatus");if(r.addEventListener("change",u),""!==t&&(r.value=""),n=e.querySelector("#form--lotSelect"),s=e.querySelector("#resultsContainer--lotSelect"),n.addEventListener("submit",e=>{e.preventDefault()}),u(),exports.lotNamePattern){const t=exports.lotNamePattern;e.querySelector("#lotCreate--lotName").pattern=t.source}const i=e.querySelector("#lotCreate--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,i.append(t)}const p=e.querySelector("#lotCreate--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,p.append(t)}const m=e.querySelector("#lotCreate--mapId");for(const e of exports.maps){const t=document.createElement("option");t.value=e.mapId.toString(),t.textContent=e.mapName||"(No Name)",m.append(t)}e.querySelector("#form--lotCreate").addEventListener("submit",d)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),document.querySelector(".is-lot-view-button").addEventListener("click",()=>{const e=document.querySelector("#lotOccupancy--lotId").value;e?window.open(a.urlPrefix+"/lots/"+e):bulmaJS.alert({message:"No "+exports.aliases.lot.toLowerCase()+" selected.",contextualColorName:"info"})}),document.querySelector(".is-clear-lot-button").addEventListener("click",()=>{p.disabled?bulmaJS.alert({message:"You need to unlock the field before clearing it.",contextualColorName:"info"}):(p.value="(No "+exports.aliases.lot+")",document.querySelector("#lotOccupancy--lotId").value="",r())}),a.initializeDatePickers(i),document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change",()=>{const e=document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;e.min=document.querySelector("#lotOccupancy--occupancyStartDateString").value,e.refresh()}),a.initializeUnlockFieldButtons(i),!n){let e=exports.lotOccupancyOccupants;delete exports.lotOccupancyOccupants;const t=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupantIndex,10),s=e.find(e=>e.lotOccupantIndex===c);let l,r;const i=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",l,t=>{t.success?(e=t.lotOccupancyOccupants,r(),n()):bulmaJS.alert({title:"Error Updating "+exports.aliases.occupant,message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=c.toString();const t=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");let n=!1;for(const e of exports.lotOccupantTypes){const c=document.createElement("option");c.value=e.lotOccupantTypeId.toString(),c.textContent=e.lotOccupantType,e.lotOccupantTypeId===s.lotOccupantTypeId&&(c.selected=!0,n=!0),t.append(c)}if(!n){const e=document.createElement("option");e.value=s.lotOccupantTypeId.toString(),e.textContent=s.lotOccupantType,e.selected=!0,t.append(e)}e.querySelector("#lotOccupancyOccupantEdit--occupantName").value=s.occupantName,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress1").value=s.occupantAddress1,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress2").value=s.occupantAddress2,e.querySelector("#lotOccupancyOccupantEdit--occupantCity").value=s.occupantCity,e.querySelector("#lotOccupancyOccupantEdit--occupantProvince").value=s.occupantProvince,e.querySelector("#lotOccupancyOccupantEdit--occupantPostalCode").value=s.occupantPostalCode,e.querySelector("#lotOccupancyOccupantEdit--occupantPhoneNumber").value=s.occupantPhoneNumber,e.querySelector("#lotOccupancyOccupantEdit--occupantEmailAddress").value=s.occupantEmailAddress,e.querySelector("#lotOccupancyOccupantEdit--occupantComment").value=s.occupantComment},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId").focus(),(l=e.querySelector("form")).addEventListener("submit",i),r=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},c=t=>{const c=t.currentTarget.closest("tr").dataset.lotOccupantIndex;bulmaJS.confirm({title:"Remove "+exports.aliases.occupant+"?",message:"Are you sure you want to remove this "+exports.aliases.occupant.toLowerCase()+"?",okButton:{text:"Yes, Remove "+exports.aliases.occupant,callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:o,lotOccupantIndex:c},t=>{t.success?(e=t.lotOccupancyOccupants,n()):bulmaJS.alert({title:"Error Removing "+exports.aliases.occupant,message:t.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},n=()=>{const a=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(a),0===e.length)return void(a.innerHTML='

There are no '+exports.aliases.occupants.toLowerCase()+" associated with this record.

");const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML=""+exports.aliases.occupant+'AddressOther ContactCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupantIndex=a.lotOccupantIndex.toString(),e.innerHTML=""+cityssm.escapeHTML(a.occupantName||"(No Name)")+'
'+cityssm.escapeHTML(a.lotOccupantType)+""+(a.occupantAddress1?cityssm.escapeHTML(a.occupantAddress1)+"
":"")+(a.occupantAddress2?cityssm.escapeHTML(a.occupantAddress2)+"
":"")+(a.occupantCity?cityssm.escapeHTML(a.occupantCity)+", ":"")+cityssm.escapeHTML(a.occupantProvince||"")+"
"+cityssm.escapeHTML(a.occupantPostalCode||"")+""+(a.occupantPhoneNumber?cityssm.escapeHTML(a.occupantPhoneNumber)+"
":"")+(a.occupantEmailAddress?cityssm.escapeHTML(a.occupantEmailAddress):"")+""+cityssm.escapeHTML(a.occupantComment)+'
',e.querySelector(".button--edit").addEventListener("click",t),e.querySelector(".button--delete").addEventListener("click",c),o.querySelector("tbody").append(e)}a.append(o)};document.querySelector("#button--addOccupant").addEventListener("click",()=>{let t,c,s,l;const r=c=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",c,c=>{c.success?(e=c.lotOccupancyOccupants,t(),n()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupant,message:c.errorMessage||"",contextualColorName:"danger"})})},i=e=>{e.preventDefault(),r(c)};let u=[];const d=e=>{e.preventDefault();const t=e.currentTarget,c=u[Number.parseInt(t.dataset.index,10)],a=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===a?bulmaJS.alert({title:"No "+exports.aliases.occupant+" Type Selected",message:"Select a type to apply to the newly added "+exports.aliases.occupant.toLowerCase()+".",contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(a,10),c.lotOccupancyId=Number.parseInt(o,10),r(c))},p=e=>{e.preventDefault(),""!==s.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(l.innerHTML='

Searching...
',cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doSearchPastOccupants",s,e=>{u=e.occupants;const t=document.createElement("div");t.className="panel";for(const[e,c]of u.entries()){const a=document.createElement("a");a.className="panel-block is-block",a.dataset.index=e.toString(),a.innerHTML=""+cityssm.escapeHTML(c.occupantName||"")+'
'+cityssm.escapeHTML(c.occupantAddress1||"")+"
"+(c.occupantAddress2?cityssm.escapeHTML(c.occupantAddress2)+"
":"")+cityssm.escapeHTML(c.occupantCity||"")+", "+cityssm.escapeHTML(c.occupantProvince||"")+"
"+cityssm.escapeHTML(c.occupantPostalCode||"")+'
'+(c.occupantPhoneNumber?cityssm.escapeHTML(c.occupantPhoneNumber)+"
":"")+cityssm.escapeHTML(c.occupantEmailAddress||"")+"
",a.addEventListener("click",d),t.append(a)}l.innerHTML="",l.append(t)})):l.innerHTML='

Enter a partial name or address in the search field above.

'};cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=o;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const a=document.createElement("option");a.value=e.lotOccupantTypeId.toString(),a.textContent=e.lotOccupantType,t.append(a),c.append(a.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(c=e.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",i),l=e.querySelector("#lotOccupancyOccupantCopy--searchResults"),(s=e.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),e.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",p),t=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),n()}if(!n){let e=exports.lotOccupancyComments;delete exports.lotOccupancyComments;const t=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),s=e.find(e=>e.lotOccupancyCommentId===c);let l,r;const i=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",l,t=>{t.success?(e=t.lotOccupancyComments,r(),n()):bulmaJS.alert({title:"Error Updating Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=c.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=s.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=s.lotOccupancyCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.lotOccupancyCommentDateString<=n?n:s.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=s.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),a.initializeDatePickers(e),a.initializeTimePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(l=e.querySelector("form")).addEventListener("submit",i),r=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},c=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:o,lotOccupancyCommentId:c},t=>{t.success?(e=t.lotOccupancyComments,n()):bulmaJS.alert({title:"Error Removing Comment",message:t.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},n=()=>{const a=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(a.innerHTML='

There are no comments associated with this record.

');const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML='CommentorComment DateCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=a.lotOccupancyCommentId.toString(),e.innerHTML=""+cityssm.escapeHTML(a.recordCreate_userName||"")+""+a.lotOccupancyCommentDateString+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(a.lotOccupancyComment||"")+'
',e.querySelector(".button--edit").addEventListener("click",t),e.querySelector(".button--delete").addEventListener("click",c),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)};document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;const s=o=>{o.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{t.success?(e=t.lotOccupancyComments,c(),n()):bulmaJS.alert({title:"Error Adding Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=o},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",s),c=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),n()}if(!n){let e=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const t=document.querySelector("#container--lotOccupancyFees"),c=()=>{let t=0;for(const c of e)t+=(c.feeAmount+c.taxAmount)*c.quantity;return t},n=t=>{const c=t.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:o,feeId:c},t=>{t.success?(e=t.lotOccupancyFees,l()):bulmaJS.alert({title:"Error Deleting Fee",message:t.errorMessage||"",contextualColorName:"danger"})})}}})},l=()=>{if(0===e.length)return t.innerHTML='

There are no fees associated with this record.

',void p();t.innerHTML='
FeeUnit Cost×QuantityequalsTotalOptions
Subtotal
Tax
Grand Total
';let c=0,a=0;for(const o of e){const e=document.createElement("tr");e.className="container--lotOccupancyFee",e.dataset.feeId=o.feeId.toString(),e.dataset.includeQuantity=o.includeQuantity?"1":"0",e.innerHTML=''+cityssm.escapeHTML(o.feeName||"")+""+(1===o.quantity?"":'$'+o.feeAmount.toFixed(2)+'×'+o.quantity+"=")+'$'+(o.feeAmount*o.quantity).toFixed(2)+'',e.querySelector("button").addEventListener("click",n),t.querySelector("tbody").append(e),c+=o.feeAmount*o.quantity,a+=o.taxAmount*o.quantity}t.querySelector("#lotOccupancyFees--feeAmountTotal").textContent="$"+c.toFixed(2),t.querySelector("#lotOccupancyFees--taxAmountTotal").textContent="$"+a.toFixed(2),t.querySelector("#lotOccupancyFees--grandTotal").textContent="$"+(c+a).toFixed(2),p()};document.querySelector("#button--addFee").addEventListener("click",()=>{if(s)return void bulmaJS.alert({message:"Please save all unsaved changes before adding fees.",contextualColorName:"warning"});let c,n,r;const i=(t,c=1)=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyFee",{lotOccupancyId:o,feeId:t,quantity:c},t=>{t.success?(e=t.lotOccupancyFees,l(),d()):bulmaJS.alert({title:"Error Adding Fee",message:t.errorMessage||"",contextualColorName:"danger"})})},u=e=>{e.preventDefault();const t=Number.parseInt(e.currentTarget.dataset.feeId,10),a=Number.parseInt(e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),o=c.find(e=>e.feeCategoryId===a).fees.find(e=>e.feeId===t);o.includeQuantity?(e=>{let t,c;const a=a=>{a.preventDefault(),i(e.feeId,t.value),c()};cityssm.openHtmlModal("lotOccupancy-setFeeQuantity",{onshow:t=>{t.querySelector("#lotOccupancyFeeQuantity--quantityUnit").textContent=e.quantityUnit},onshown:(e,o)=>{c=o,t=e.querySelector("#lotOccupancyFeeQuantity--quantity"),e.querySelector("form").addEventListener("submit",a)}})})(o):i(t)},d=()=>{const e=n.value.trim().toLowerCase().split(" ");r.innerHTML="";for(const a of c){const c=document.createElement("div");c.className="container--feeCategory",c.dataset.feeCategoryId=a.feeCategoryId.toString(),c.innerHTML='

'+cityssm.escapeHTML(a.feeCategory||"")+'

';let o=!1;for(const n of a.fees){if(t.querySelector(".container--lotOccupancyFee[data-fee-id='"+n.feeId+"'][data-include-quantity='0']"))continue;let a=!0;for(const t of e)if(!n.feeName.toLowerCase().includes(t)){a=!1;break}if(!a)continue;o=!0;const s=document.createElement("a");s.className="panel-block is-block container--fee",s.dataset.feeId=n.feeId.toString(),s.href="#",s.innerHTML=""+cityssm.escapeHTML(n.feeName||"")+"
"+cityssm.escapeHTML(n.feeDescription||"").replace(/\n/g,"
")+"
",s.addEventListener("click",u),c.querySelector(".panel").append(s)}o&&r.append(c)}};cityssm.openHtmlModal("lotOccupancy-addFee",{onshow:e=>{n=e.querySelector("#feeSelect--feeName"),r=e.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:o},e=>{c=e.feeCategories,n.disabled=!1,n.addEventListener("keyup",d),n.focus(),d()})},onshown:()=>{bulmaJS.toggleHtmlClipped()},onhidden:()=>{l()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})});let r=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const i=document.querySelector("#container--lotOccupancyTransactions"),u=()=>{let e=0;for(const t of r)e+=t.transactionAmount;return e},d=e=>{const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:o,transactionIndex:t},e=>{e.success?(r=e.lotOccupancyTransactions,p()):bulmaJS.alert({title:"Error Deleting Transaction",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},p=()=>{if(0===r.length)return void(i.innerHTML='

There are no transactions associated with this record.

');i.innerHTML='
Date'+cityssm.escapeHTML(exports.aliases.externalReceiptNumber)+'AmountOptions
Transaction Total
';let t=0;for(const e of r){t+=e.transactionAmount;const c=document.createElement("tr");c.className="container--lotOccupancyTransaction",c.dataset.transactionIndex=e.transactionIndex.toString(),c.innerHTML=""+e.transactionDateString+""+cityssm.escapeHTML(e.externalReceiptNumber||"")+"
"+cityssm.escapeHTML(e.transactionNote||"")+'$'+e.transactionAmount.toFixed(2)+'',c.querySelector("button").addEventListener("click",d),i.querySelector("tbody").append(c)}i.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+t.toFixed(2);const a=c();a>t&&i.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(a-t).toFixed(2)+"
")};document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;const t=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{t.success?(r=t.lotOccupancyTransactions,e(),p()):bulmaJS.confirm({title:"Error Adding Transaction",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=o.toString();const t=c(),n=u(),s=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");s.min=(-1*n).toFixed(2),s.max=Math.max(t-n,0).toFixed(2),s.value=Math.max(t-n,0).toFixed(2)},onshown:(c,a)=>{bulmaJS.toggleHtmlClipped(),e=a,c.querySelector("form").addEventListener("submit",t)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),l()}})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t,c;const a=exports.los,o=document.querySelector("#lotOccupancy--lotOccupancyId").value,n=""===o;let s=!1,l=n;const r=()=>{s||(s=!0,cityssm.enableNavBlocker())},i=document.querySelector("#form--lotOccupancy");i.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/"+(n?"doCreateLotOccupancy":"doUpdateLotOccupancy"),i,e=>{e.success?(s=!1,cityssm.disableNavBlocker(),n||l?window.location.href=a.urlPrefix+"/lotOccupancies/"+e.lotOccupancyId+"/edit?t="+Date.now():bulmaJS.alert({message:exports.aliases.occupancy+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+exports.aliases.occupancy,message:e.errorMessage||"",contextualColorName:"danger"})})});const u=i.querySelectorAll("input, select");for(const e of u)e.addEventListener("change",r);if(!n){const n=()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:o},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=a.urlPrefix+"/lotOccupancies/"+(null===(t=e.lotOccupancyId)||void 0===t?void 0:t.toString())+"/edit"):bulmaJS.alert({title:"Error Copying Record",message:e.errorMessage||"",contextualColorName:"danger"})})};null===(e=document.querySelector("#button--copyLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),s?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Copy "+exports.aliases.occupancy+" Record as New",message:"Are you sure you want to copy this record to a new record?",contextualColorName:"info",okButton:{text:"Yes, Copy",callbackFunction:n}})}),null===(t=document.querySelector("#button--deleteLotOccupancy"))||void 0===t||t.addEventListener("click",e=>{e.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.occupancy+" Record",message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:o},e=>{e.success?(cityssm.disableNavBlocker(),window.location.href=a.urlPrefix+"/lotOccupancies?t="+Date.now()):bulmaJS.alert({title:"Error Deleting Record",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}),null===(c=document.querySelector("#button--createWorkOrder"))||void 0===c||c.addEventListener("click",e=>{let t;e.preventDefault();const c=e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{e.success?(t(),bulmaJS.confirm({title:"Work Order Created Successfully",message:"Would you like to open the work order now?",contextualColorName:"success",okButton:{text:"Yes, Open the Work Order",callbackFunction:()=>{window.location.href=a.urlPrefix+"/workOrders/"+e.workOrderId+"/edit"}}})):bulmaJS.alert({title:"Error Creating Work Order",message:e.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow:e=>{e.querySelector("#workOrderCreate--lotOccupancyId").value=o,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const t=e.querySelector("#workOrderCreate--workOrderTypeId");for(const e of exports.workOrderTypes){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=e.workOrderType,t.append(c)}},onshown:(e,a)=>{var o;t=a,null===(o=e.querySelector("form"))||void 0===o||o.addEventListener("submit",c)}})})}const d=document.querySelector("#lotOccupancy--occupancyTypeId");if(n){const e=document.querySelector("#container--lotOccupancyFields");d.addEventListener("change",()=>{""!==d.value?cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:d.value},t=>{if(0===t.occupancyTypeFields.length)return void(e.innerHTML='

There are no additional fields for this '+exports.aliases.occupancy.toLowerCase()+" type.

");e.innerHTML="";let c="";for(const a of t.occupancyTypeFields){c+=","+a.occupancyTypeFieldId;const t="lotOccupancyFieldValue_"+a.occupancyTypeFieldId,o="lotOccupancy--"+t,n=document.createElement("div");if(n.className="field",n.innerHTML='
',n.querySelector("label").textContent=a.occupancyTypeField,""===a.occupancyTypeFieldValues){const e=document.createElement("input");e.className="input",e.id=o,e.name=t,e.type="text",e.required=a.isRequired,e.minLength=a.minimumLength,e.maxLength=a.maximumLength,a.pattern&&""!==a.pattern&&(e.pattern=a.pattern),n.querySelector(".control").append(e)}else{n.querySelector(".control").innerHTML='
';const e=n.querySelector("select");e.required=a.isRequired;const c=a.occupancyTypeFieldValues.split("\n");for(const t of c){const c=document.createElement("option");c.value=t,c.textContent=t,e.append(c)}}e.append(n)}e.insertAdjacentHTML("beforeend",'')}):e.innerHTML='

Select the '+exports.aliases.occupancy.toLowerCase()+" type to load the available fields.

"})}else{const e=d.value;d.addEventListener("change",()=>{d.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:"Are you sure you want to change the "+exports.aliases.occupancy.toLowerCase()+" type?\nThis change affects the additional fields associated with this record, and may also affect the available fees.",contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{l=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{d.value=e}}})})}const p=document.querySelector("#lotOccupancy--lotName");if(p.addEventListener("click",e=>{const t=e.currentTarget.value;let c,o,n,s;const l=(e,t)=>{document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,r(),c()},i=e=>{e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)},u=()=>{s.innerHTML='


Searching...

',cityssm.postJSON(a.urlPrefix+"/lots/doSearchLots",n,e=>{if(0===e.count)return void(s.innerHTML='

No results.

');const t=document.createElement("div");t.className="panel";for(const c of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=c.lotId.toString(),e.dataset.lotName=c.lotName,e.innerHTML='
'+cityssm.escapeHTML(c.lotName||"")+'
'+cityssm.escapeHTML(c.mapName||"")+'
'+cityssm.escapeHTML(c.lotStatus)+'
'+(c.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",i),t.append(e)}s.innerHTML="",s.append(t)})},d=e=>{e.preventDefault();const t=o.querySelector("#lotCreate--lotName").value;cityssm.postJSON(a.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{e.success?l(e.lotId,t):bulmaJS.alert({title:"Error Creating "+exports.aliases.lot,message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{a.populateAliases(e)},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),o=e,c=a,bulmaJS.init(e);const l=e.querySelector("#lotSelect--lotName");""!==document.querySelector("#lotOccupancy--lotId").value&&(l.value=t),l.focus(),l.addEventListener("change",u);const r=e.querySelector("#lotSelect--occupancyStatus");if(r.addEventListener("change",u),""!==t&&(r.value=""),n=e.querySelector("#form--lotSelect"),s=e.querySelector("#resultsContainer--lotSelect"),n.addEventListener("submit",e=>{e.preventDefault()}),u(),exports.lotNamePattern){const t=exports.lotNamePattern;e.querySelector("#lotCreate--lotName").pattern=t.source}const i=e.querySelector("#lotCreate--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,i.append(t)}const p=e.querySelector("#lotCreate--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,p.append(t)}const m=e.querySelector("#lotCreate--mapId");for(const e of exports.maps){const t=document.createElement("option");t.value=e.mapId.toString(),t.textContent=e.mapName||"(No Name)",m.append(t)}e.querySelector("#form--lotCreate").addEventListener("submit",d)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),document.querySelector(".is-lot-view-button").addEventListener("click",()=>{const e=document.querySelector("#lotOccupancy--lotId").value;e?window.open(a.urlPrefix+"/lots/"+e):bulmaJS.alert({message:"No "+exports.aliases.lot.toLowerCase()+" selected.",contextualColorName:"info"})}),document.querySelector(".is-clear-lot-button").addEventListener("click",()=>{p.disabled?bulmaJS.alert({message:"You need to unlock the field before clearing it.",contextualColorName:"info"}):(p.value="(No "+exports.aliases.lot+")",document.querySelector("#lotOccupancy--lotId").value="",r())}),a.initializeDatePickers(i),document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change",()=>{const e=document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;e.min=document.querySelector("#lotOccupancy--occupancyStartDateString").value,e.refresh()}),a.initializeUnlockFieldButtons(i),n){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=i.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else{let e=exports.lotOccupancyOccupants;delete exports.lotOccupancyOccupants;const t=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupantIndex,10),s=e.find(e=>e.lotOccupantIndex===c);let l,r;const i=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",l,t=>{t.success?(e=t.lotOccupancyOccupants,r(),n()):bulmaJS.alert({title:"Error Updating "+exports.aliases.occupant,message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=c.toString();const t=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");let n=!1;for(const e of exports.lotOccupantTypes){const c=document.createElement("option");c.value=e.lotOccupantTypeId.toString(),c.textContent=e.lotOccupantType,e.lotOccupantTypeId===s.lotOccupantTypeId&&(c.selected=!0,n=!0),t.append(c)}if(!n){const e=document.createElement("option");e.value=s.lotOccupantTypeId.toString(),e.textContent=s.lotOccupantType,e.selected=!0,t.append(e)}e.querySelector("#lotOccupancyOccupantEdit--occupantName").value=s.occupantName,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress1").value=s.occupantAddress1,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress2").value=s.occupantAddress2,e.querySelector("#lotOccupancyOccupantEdit--occupantCity").value=s.occupantCity,e.querySelector("#lotOccupancyOccupantEdit--occupantProvince").value=s.occupantProvince,e.querySelector("#lotOccupancyOccupantEdit--occupantPostalCode").value=s.occupantPostalCode,e.querySelector("#lotOccupancyOccupantEdit--occupantPhoneNumber").value=s.occupantPhoneNumber,e.querySelector("#lotOccupancyOccupantEdit--occupantEmailAddress").value=s.occupantEmailAddress,e.querySelector("#lotOccupancyOccupantEdit--occupantComment").value=s.occupantComment},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId").focus(),(l=e.querySelector("form")).addEventListener("submit",i),r=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},c=t=>{const c=t.currentTarget.closest("tr").dataset.lotOccupantIndex;bulmaJS.confirm({title:"Remove "+exports.aliases.occupant+"?",message:"Are you sure you want to remove this "+exports.aliases.occupant.toLowerCase()+"?",okButton:{text:"Yes, Remove "+exports.aliases.occupant,callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:o,lotOccupantIndex:c},t=>{t.success?(e=t.lotOccupancyOccupants,n()):bulmaJS.alert({title:"Error Removing "+exports.aliases.occupant,message:t.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},n=()=>{const a=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(a),0===e.length)return void(a.innerHTML='

There are no '+exports.aliases.occupants.toLowerCase()+" associated with this record.

");const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML=""+exports.aliases.occupant+'AddressOther ContactCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupantIndex=a.lotOccupantIndex.toString(),e.innerHTML=""+cityssm.escapeHTML(a.occupantName||"(No Name)")+'
'+cityssm.escapeHTML(a.lotOccupantType)+""+(a.occupantAddress1?cityssm.escapeHTML(a.occupantAddress1)+"
":"")+(a.occupantAddress2?cityssm.escapeHTML(a.occupantAddress2)+"
":"")+(a.occupantCity?cityssm.escapeHTML(a.occupantCity)+", ":"")+cityssm.escapeHTML(a.occupantProvince||"")+"
"+cityssm.escapeHTML(a.occupantPostalCode||"")+""+(a.occupantPhoneNumber?cityssm.escapeHTML(a.occupantPhoneNumber)+"
":"")+(a.occupantEmailAddress?cityssm.escapeHTML(a.occupantEmailAddress):"")+""+cityssm.escapeHTML(a.occupantComment)+'
',e.querySelector(".button--edit").addEventListener("click",t),e.querySelector(".button--delete").addEventListener("click",c),o.querySelector("tbody").append(e)}a.append(o)};document.querySelector("#button--addOccupant").addEventListener("click",()=>{let t,c,s,l;const r=c=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",c,c=>{c.success?(e=c.lotOccupancyOccupants,t(),n()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupant,message:c.errorMessage||"",contextualColorName:"danger"})})},i=e=>{e.preventDefault(),r(c)};let u=[];const d=e=>{e.preventDefault();const t=e.currentTarget,c=u[Number.parseInt(t.dataset.index,10)],a=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===a?bulmaJS.alert({title:"No "+exports.aliases.occupant+" Type Selected",message:"Select a type to apply to the newly added "+exports.aliases.occupant.toLowerCase()+".",contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(a,10),c.lotOccupancyId=Number.parseInt(o,10),r(c))},p=e=>{e.preventDefault(),""!==s.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(l.innerHTML='

Searching...
',cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doSearchPastOccupants",s,e=>{u=e.occupants;const t=document.createElement("div");t.className="panel";for(const[e,c]of u.entries()){const a=document.createElement("a");a.className="panel-block is-block",a.dataset.index=e.toString(),a.innerHTML=""+cityssm.escapeHTML(c.occupantName||"")+'
'+cityssm.escapeHTML(c.occupantAddress1||"")+"
"+(c.occupantAddress2?cityssm.escapeHTML(c.occupantAddress2)+"
":"")+cityssm.escapeHTML(c.occupantCity||"")+", "+cityssm.escapeHTML(c.occupantProvince||"")+"
"+cityssm.escapeHTML(c.occupantPostalCode||"")+'
'+(c.occupantPhoneNumber?cityssm.escapeHTML(c.occupantPhoneNumber)+"
":"")+cityssm.escapeHTML(c.occupantEmailAddress||"")+"
",a.addEventListener("click",d),t.append(a)}l.innerHTML="",l.append(t)})):l.innerHTML='

Enter a partial name or address in the search field above.

'};cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=o;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const a=document.createElement("option");a.value=e.lotOccupantTypeId.toString(),a.textContent=e.lotOccupantType,t.append(a),c.append(a.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(c=e.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",i),l=e.querySelector("#lotOccupancyOccupantCopy--searchResults"),(s=e.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),e.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",p),t=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),n()}if(!n){let e=exports.lotOccupancyComments;delete exports.lotOccupancyComments;const t=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),s=e.find(e=>e.lotOccupancyCommentId===c);let l,r;const i=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",l,t=>{t.success?(e=t.lotOccupancyComments,r(),n()):bulmaJS.alert({title:"Error Updating Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=c.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=s.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=s.lotOccupancyCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.lotOccupancyCommentDateString<=n?n:s.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=s.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),a.initializeDatePickers(e),a.initializeTimePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(l=e.querySelector("form")).addEventListener("submit",i),r=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},c=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:o,lotOccupancyCommentId:c},t=>{t.success?(e=t.lotOccupancyComments,n()):bulmaJS.alert({title:"Error Removing Comment",message:t.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},n=()=>{const a=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(a.innerHTML='

There are no comments associated with this record.

');const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML='CommentorComment DateCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=a.lotOccupancyCommentId.toString(),e.innerHTML=""+cityssm.escapeHTML(a.recordCreate_userName||"")+""+a.lotOccupancyCommentDateString+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(a.lotOccupancyComment||"")+'
',e.querySelector(".button--edit").addEventListener("click",t),e.querySelector(".button--delete").addEventListener("click",c),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)};document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;const s=o=>{o.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{t.success?(e=t.lotOccupancyComments,c(),n()):bulmaJS.alert({title:"Error Adding Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=o},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",s),c=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),n()}if(!n){let e=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const t=document.querySelector("#container--lotOccupancyFees"),c=()=>{let t=0;for(const c of e)t+=(c.feeAmount+c.taxAmount)*c.quantity;return t},n=t=>{const c=t.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:o,feeId:c},t=>{t.success?(e=t.lotOccupancyFees,l()):bulmaJS.alert({title:"Error Deleting Fee",message:t.errorMessage||"",contextualColorName:"danger"})})}}})},l=()=>{if(0===e.length)return t.innerHTML='

There are no fees associated with this record.

',void p();t.innerHTML='
FeeUnit Cost×QuantityequalsTotalOptions
Subtotal
Tax
Grand Total
';let c=0,a=0;for(const o of e){const e=document.createElement("tr");e.className="container--lotOccupancyFee",e.dataset.feeId=o.feeId.toString(),e.dataset.includeQuantity=o.includeQuantity?"1":"0",e.innerHTML=''+cityssm.escapeHTML(o.feeName||"")+""+(1===o.quantity?"":'$'+o.feeAmount.toFixed(2)+'×'+o.quantity+"=")+'$'+(o.feeAmount*o.quantity).toFixed(2)+'',e.querySelector("button").addEventListener("click",n),t.querySelector("tbody").append(e),c+=o.feeAmount*o.quantity,a+=o.taxAmount*o.quantity}t.querySelector("#lotOccupancyFees--feeAmountTotal").textContent="$"+c.toFixed(2),t.querySelector("#lotOccupancyFees--taxAmountTotal").textContent="$"+a.toFixed(2),t.querySelector("#lotOccupancyFees--grandTotal").textContent="$"+(c+a).toFixed(2),p()};document.querySelector("#button--addFee").addEventListener("click",()=>{if(s)return void bulmaJS.alert({message:"Please save all unsaved changes before adding fees.",contextualColorName:"warning"});let c,n,r;const i=(t,c=1)=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyFee",{lotOccupancyId:o,feeId:t,quantity:c},t=>{t.success?(e=t.lotOccupancyFees,l(),d()):bulmaJS.alert({title:"Error Adding Fee",message:t.errorMessage||"",contextualColorName:"danger"})})},u=e=>{e.preventDefault();const t=Number.parseInt(e.currentTarget.dataset.feeId,10),a=Number.parseInt(e.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),o=c.find(e=>e.feeCategoryId===a).fees.find(e=>e.feeId===t);o.includeQuantity?(e=>{let t,c;const a=a=>{a.preventDefault(),i(e.feeId,t.value),c()};cityssm.openHtmlModal("lotOccupancy-setFeeQuantity",{onshow:t=>{t.querySelector("#lotOccupancyFeeQuantity--quantityUnit").textContent=e.quantityUnit},onshown:(e,o)=>{c=o,t=e.querySelector("#lotOccupancyFeeQuantity--quantity"),e.querySelector("form").addEventListener("submit",a)}})})(o):i(t)},d=()=>{const e=n.value.trim().toLowerCase().split(" ");r.innerHTML="";for(const a of c){const c=document.createElement("div");c.className="container--feeCategory",c.dataset.feeCategoryId=a.feeCategoryId.toString(),c.innerHTML='

'+cityssm.escapeHTML(a.feeCategory||"")+'

';let o=!1;for(const n of a.fees){if(t.querySelector(".container--lotOccupancyFee[data-fee-id='"+n.feeId+"'][data-include-quantity='0']"))continue;let a=!0;for(const t of e)if(!n.feeName.toLowerCase().includes(t)){a=!1;break}if(!a)continue;o=!0;const s=document.createElement("a");s.className="panel-block is-block container--fee",s.dataset.feeId=n.feeId.toString(),s.href="#",s.innerHTML=""+cityssm.escapeHTML(n.feeName||"")+"
"+cityssm.escapeHTML(n.feeDescription||"").replace(/\n/g,"
")+"
",s.addEventListener("click",u),c.querySelector(".panel").append(s)}o&&r.append(c)}};cityssm.openHtmlModal("lotOccupancy-addFee",{onshow:e=>{n=e.querySelector("#feeSelect--feeName"),r=e.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:o},e=>{c=e.feeCategories,n.disabled=!1,n.addEventListener("keyup",d),n.focus(),d()})},onshown:()=>{bulmaJS.toggleHtmlClipped()},onhidden:()=>{l()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})});let r=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const i=document.querySelector("#container--lotOccupancyTransactions"),u=()=>{let e=0;for(const t of r)e+=t.transactionAmount;return e},d=e=>{const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:o,transactionIndex:t},e=>{e.success?(r=e.lotOccupancyTransactions,p()):bulmaJS.alert({title:"Error Deleting Transaction",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},p=()=>{if(0===r.length)return void(i.innerHTML='

There are no transactions associated with this record.

');i.innerHTML='
Date'+cityssm.escapeHTML(exports.aliases.externalReceiptNumber)+'AmountOptions
Transaction Total
';let t=0;for(const e of r){t+=e.transactionAmount;const c=document.createElement("tr");c.className="container--lotOccupancyTransaction",c.dataset.transactionIndex=e.transactionIndex.toString(),c.innerHTML=""+e.transactionDateString+""+cityssm.escapeHTML(e.externalReceiptNumber||"")+"
"+cityssm.escapeHTML(e.transactionNote||"")+'$'+e.transactionAmount.toFixed(2)+'',c.querySelector("button").addEventListener("click",d),i.querySelector("tbody").append(c)}i.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+t.toFixed(2);const a=c();a>t&&i.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(a-t).toFixed(2)+"
")};document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;const t=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{t.success?(r=t.lotOccupancyTransactions,e(),p()):bulmaJS.confirm({title:"Error Adding Transaction",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=o.toString();const t=c(),n=u(),s=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");s.min=(-1*n).toFixed(2),s.max=Math.max(t-n,0).toFixed(2),s.value=Math.max(t-n,0).toFixed(2)},onshown:(c,a)=>{bulmaJS.toggleHtmlClipped(),e=a,c.querySelector("form").addEventListener("submit",t)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),l()}})(); \ No newline at end of file diff --git a/views/lotOccupancy-edit.ejs b/views/lotOccupancy-edit.ejs index 50155c4c..3dddb625 100644 --- a/views/lotOccupancy-edit.ejs +++ b/views/lotOccupancy-edit.ejs @@ -261,6 +261,105 @@ + <% if (isCreate) { %> +
+

<%= configFunctions.getProperty("aliases.occupant") %>

+
+
+
+ +
+
+ +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+
+ +
+ " disabled /> +
+
+
+
+
+ +
+ " disabled /> +
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+

Additional <%= configFunctions.getProperty("aliases.occupants").toLowerCase() %> can be added after the record has been created.

+
+
+
+ +
+ <% } %>