From bf672408c835f35cafd694a2b3413f89112fc869 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Tue, 24 Jan 2023 09:22:41 -0500 Subject: [PATCH] fix lot occupancy type fields --- .../doGetOccupancyTypeFields.js | 3 +- .../doGetOccupancyTypeFields.ts | 4 +- public-typescript/lotOccupancyEdit.js | 331 +++++++++--------- .../lotOccupancyEdit/lotOccupancyEdit.js | 17 +- .../lotOccupancyEdit/lotOccupancyEdit.ts | 14 +- public/javascripts/lotOccupancyEdit.min.js | 2 +- 6 files changed, 190 insertions(+), 181 deletions(-) diff --git a/handlers/lotOccupancies-post/doGetOccupancyTypeFields.js b/handlers/lotOccupancies-post/doGetOccupancyTypeFields.js index a8dbdbaf..eb553381 100644 --- a/handlers/lotOccupancies-post/doGetOccupancyTypeFields.js +++ b/handlers/lotOccupancies-post/doGetOccupancyTypeFields.js @@ -1,7 +1,8 @@ import { getOccupancyTypeById, getAllOccupancyTypeFields } from '../../helpers/functions.cache.js'; export async function handler(request, response) { - const occupancyTypeFields = await getAllOccupancyTypeFields(); + const allOccupancyTypeFields = await getAllOccupancyTypeFields(); const result = (await getOccupancyTypeById(Number.parseInt(request.body.occupancyTypeId, 10))); + const occupancyTypeFields = [...allOccupancyTypeFields]; occupancyTypeFields.push(...(result.occupancyTypeFields ?? [])); response.json({ occupancyTypeFields diff --git a/handlers/lotOccupancies-post/doGetOccupancyTypeFields.ts b/handlers/lotOccupancies-post/doGetOccupancyTypeFields.ts index 2c865762..59e27b5f 100644 --- a/handlers/lotOccupancies-post/doGetOccupancyTypeFields.ts +++ b/handlers/lotOccupancies-post/doGetOccupancyTypeFields.ts @@ -9,12 +9,14 @@ export async function handler( request: Request, response: Response ): Promise { - const occupancyTypeFields = await getAllOccupancyTypeFields() + const allOccupancyTypeFields = await getAllOccupancyTypeFields() const result = (await getOccupancyTypeById( Number.parseInt(request.body.occupancyTypeId, 10) ))! + const occupancyTypeFields = [...allOccupancyTypeFields] + occupancyTypeFields.push(...(result.occupancyTypeFields ?? [])) response.json({ diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index 53094967..3232d676 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -186,11 +186,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', { occupancyTypeId: occupancyTypeIdElement.value }, (responseJSON) => { - var _a; + var _a, _b; if (responseJSON.occupancyTypeFields.length === 0) { lotOccupancyFieldsContainerElement.innerHTML = `
-

There are no additional fields for this ${los.escapedAliases.occupancy} type.

-
`; +

There are no additional fields for this ${los.escapedAliases.occupancy} type.

+ `; return; } lotOccupancyFieldsContainerElement.innerHTML = ''; @@ -205,7 +205,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); fieldElement.className = 'field'; fieldElement.innerHTML = `
`; fieldElement.querySelector('label').textContent = occupancyTypeField.occupancyTypeField; - if (occupancyTypeField.occupancyTypeFieldValues === '') { + if (((_a = occupancyTypeField.occupancyTypeFieldValues) !== null && _a !== void 0 ? _a : '') === '') { const inputElement = document.createElement('input'); inputElement.className = 'input'; inputElement.id = fieldId; @@ -216,7 +216,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); occupancyTypeField.minimumLength; inputElement.maxLength = occupancyTypeField.maximumLength; - if (((_a = occupancyTypeField.pattern) !== null && _a !== void 0 ? _a : '') !== '') { + if (((_b = occupancyTypeField.pattern) !== null && _b !== void 0 ? _b : '') !== '') { inputElement.pattern = occupancyTypeField.pattern; } ; @@ -239,6 +239,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); selectElement.append(optionElement); } } + console.log(fieldElement); lotOccupancyFieldsContainerElement.append(fieldElement); } lotOccupancyFieldsContainerElement.insertAdjacentHTML('beforeend', ``); @@ -351,10 +352,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } cityssm.openHtmlModal('lotOccupancy-selectLot', { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { var _a; bulmaJS.toggleHtmlClipped(); lotSelectModalElement = modalElement; @@ -409,7 +410,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ; modalElement.querySelector('#form--lotCreate').addEventListener('submit', createLotAndSelect); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); @@ -458,8 +459,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); */ "use strict"; /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ + var _a; Object.defineProperty(exports, "__esModule", { value: true }); - let lotOccupancyOccupants; + let lotOccupancyOccupants = exports.lotOccupancyOccupants; + delete exports.lotOccupancyOccupants; function openEditLotOccupancyOccupant(clickEvent) { const lotOccupantIndex = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset .lotOccupantIndex, 10); @@ -650,7 +653,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); : cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress)) + '') + ('' + - '' + + '' + cityssm.escapeHTML((_k = lotOccupancyOccupant.occupantComment) !== null && _k !== void 0 ? _k : '') + '' + '') + @@ -687,162 +694,158 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } else { - lotOccupancyOccupants = exports.lotOccupancyOccupants; - delete exports.lotOccupancyOccupants; - document - .querySelector('#button--addOccupant') - .addEventListener('click', () => { - let addCloseModalFunction; - let addFormElement; - let searchFormElement; - let searchResultsElement; - function addOccupant(formOrObject) { - cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doAddLotOccupancyOccupant', formOrObject, (responseJSON) => { - var _a; - if (responseJSON.success) { - lotOccupancyOccupants = responseJSON.lotOccupancyOccupants; - addCloseModalFunction(); - renderLotOccupancyOccupants(); - } - else { - bulmaJS.alert({ - title: `Error Adding ${los.escapedAliases.Occupant}`, - message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', - contextualColorName: 'danger' - }); - } - }); - } - function addOccupantFromForm(submitEvent) { - submitEvent.preventDefault(); - addOccupant(addFormElement); - } - let pastOccupantSearchResults = []; - function addOccupantFromCopy(clickEvent) { - clickEvent.preventDefault(); - const panelBlockElement = clickEvent.currentTarget; - const occupant = pastOccupantSearchResults[Number.parseInt(panelBlockElement.dataset.index, 10)]; - const lotOccupantTypeId = panelBlockElement - .closest('.modal') - .querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId').value; - if (lotOccupantTypeId === '') { - bulmaJS.alert({ - title: `No ${los.escapedAliases.Occupant} Type Selected`, - message: `Select a type to apply to the newly added ${los.escapedAliases.occupant}.`, - contextualColorName: 'warning' - }); - } - else { - occupant.lotOccupantTypeId = Number.parseInt(lotOccupantTypeId, 10); - occupant.lotOccupancyId = Number.parseInt(lotOccupancyId, 10); - addOccupant(occupant); - } - } - function searchOccupants(event) { - event.preventDefault(); - if (searchFormElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').value === '') { - searchResultsElement.innerHTML = - '
' + - '

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

' + - '
'; - return; - } - searchResultsElement.innerHTML = - los.getLoadingParagraphHTML('Searching...'); - cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchPastOccupants', searchFormElement, (responseJSON) => { - var _a, _b, _c, _d, _e, _f, _g, _h; - pastOccupantSearchResults = responseJSON.occupants; - const panelElement = document.createElement('div'); - panelElement.className = 'panel'; - for (const [index, occupant] of pastOccupantSearchResults.entries()) { - const panelBlockElement = document.createElement('a'); - panelBlockElement.className = 'panel-block is-block'; - panelBlockElement.dataset.index = index.toString(); - panelBlockElement.innerHTML = - '' + - cityssm.escapeHTML((_a = occupant.occupantName) !== null && _a !== void 0 ? _a : '') + - '' + - '
' + - '
' + - ('
' + - cityssm.escapeHTML((_b = occupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') + - '
' + - (((_c = occupant.occupantAddress2) !== null && _c !== void 0 ? _c : '') === '' - ? '' - : cityssm.escapeHTML(occupant.occupantAddress2) + - '
') + - cityssm.escapeHTML((_d = occupant.occupantCity) !== null && _d !== void 0 ? _d : '') + - ', ' + - cityssm.escapeHTML((_e = occupant.occupantProvince) !== null && _e !== void 0 ? _e : '') + - '
' + - cityssm.escapeHTML((_f = occupant.occupantPostalCode) !== null && _f !== void 0 ? _f : '') + - '
') + - ('
' + - (((_g = occupant.occupantPhoneNumber) !== null && _g !== void 0 ? _g : '') === '' - ? '' - : cityssm.escapeHTML(occupant.occupantPhoneNumber) + - '
') + - cityssm.escapeHTML((_h = occupant.occupantEmailAddress) !== null && _h !== void 0 ? _h : '') + - '
' + - '
') + - '
'; - panelBlockElement.addEventListener('click', addOccupantFromCopy); - panelElement.append(panelBlockElement); - } - searchResultsElement.innerHTML = ''; - searchResultsElement.append(panelElement); - }); - } - cityssm.openHtmlModal('lotOccupancy-addOccupant', { - onshow(modalElement) { - los.populateAliases(modalElement); - modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupancyId').value = lotOccupancyId; - const lotOccupantTypeSelectElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId'); - const lotOccupantTypeCopySelectElement = modalElement.querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId'); - for (const lotOccupantType of exports.lotOccupantTypes) { - const optionElement = document.createElement('option'); - optionElement.value = lotOccupantType.lotOccupantTypeId.toString(); - optionElement.textContent = lotOccupantType.lotOccupantType; - optionElement.dataset.occupantCommentTitle = - lotOccupantType.occupantCommentTitle; - lotOccupantTypeSelectElement.append(optionElement); - lotOccupantTypeCopySelectElement.append(optionElement.cloneNode(true)); - } - ; - modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCity').value = exports.occupantCityDefault; - modalElement.querySelector('#lotOccupancyOccupantAdd--occupantProvince').value = exports.occupantProvinceDefault; - }, - onshown: (modalElement, closeModalFunction) => { - bulmaJS.toggleHtmlClipped(); - bulmaJS.init(modalElement); - const lotOccupantTypeIdElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId'); - lotOccupantTypeIdElement.focus(); - lotOccupantTypeIdElement.addEventListener('change', () => { - var _a; - let occupantCommentTitle = (_a = lotOccupantTypeIdElement.selectedOptions[0].dataset - .occupantCommentTitle) !== null && _a !== void 0 ? _a : ''; - if (occupantCommentTitle === '') { - occupantCommentTitle = 'Comment'; - } - modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCommentTitle').textContent = occupantCommentTitle; - }); - addFormElement = modalElement.querySelector('#form--lotOccupancyOccupantAdd'); - addFormElement.addEventListener('submit', addOccupantFromForm); - searchResultsElement = modalElement.querySelector('#lotOccupancyOccupantCopy--searchResults'); - searchFormElement = modalElement.querySelector('#form--lotOccupancyOccupantCopy'); - searchFormElement.addEventListener('submit', (formEvent) => { - formEvent.preventDefault(); - }); - modalElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').addEventListener('change', searchOccupants); - addCloseModalFunction = closeModalFunction; - }, - onremoved: () => { - bulmaJS.toggleHtmlClipped(); - } - }); - }); renderLotOccupancyOccupants(); } + (_a = document + .querySelector('#button--addOccupant')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => { + let addCloseModalFunction; + let addFormElement; + let searchFormElement; + let searchResultsElement; + function addOccupant(formOrObject) { + cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doAddLotOccupancyOccupant', formOrObject, (responseJSON) => { + var _a; + if (responseJSON.success) { + lotOccupancyOccupants = responseJSON.lotOccupancyOccupants; + addCloseModalFunction(); + renderLotOccupancyOccupants(); + } + else { + bulmaJS.alert({ + title: `Error Adding ${los.escapedAliases.Occupant}`, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', + contextualColorName: 'danger' + }); + } + }); + } + function addOccupantFromForm(submitEvent) { + submitEvent.preventDefault(); + addOccupant(addFormElement); + } + let pastOccupantSearchResults = []; + function addOccupantFromCopy(clickEvent) { + clickEvent.preventDefault(); + const panelBlockElement = clickEvent.currentTarget; + const occupant = pastOccupantSearchResults[Number.parseInt(panelBlockElement.dataset.index, 10)]; + const lotOccupantTypeId = panelBlockElement + .closest('.modal') + .querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId').value; + if (lotOccupantTypeId === '') { + bulmaJS.alert({ + title: `No ${los.escapedAliases.Occupant} Type Selected`, + message: `Select a type to apply to the newly added ${los.escapedAliases.occupant}.`, + contextualColorName: 'warning' + }); + } + else { + occupant.lotOccupantTypeId = Number.parseInt(lotOccupantTypeId, 10); + occupant.lotOccupancyId = Number.parseInt(lotOccupancyId, 10); + addOccupant(occupant); + } + } + function searchOccupants(event) { + event.preventDefault(); + if (searchFormElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').value === '') { + searchResultsElement.innerHTML = + '
' + + '

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

' + + '
'; + return; + } + searchResultsElement.innerHTML = + los.getLoadingParagraphHTML('Searching...'); + cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchPastOccupants', searchFormElement, (responseJSON) => { + var _a, _b, _c, _d, _e, _f, _g, _h; + pastOccupantSearchResults = responseJSON.occupants; + const panelElement = document.createElement('div'); + panelElement.className = 'panel'; + for (const [index, occupant] of pastOccupantSearchResults.entries()) { + const panelBlockElement = document.createElement('a'); + panelBlockElement.className = 'panel-block is-block'; + panelBlockElement.dataset.index = index.toString(); + panelBlockElement.innerHTML = + '' + + cityssm.escapeHTML((_a = occupant.occupantName) !== null && _a !== void 0 ? _a : '') + + '' + + '
' + + '
' + + ('
' + + cityssm.escapeHTML((_b = occupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') + + '
' + + (((_c = occupant.occupantAddress2) !== null && _c !== void 0 ? _c : '') === '' + ? '' + : cityssm.escapeHTML(occupant.occupantAddress2) + '
') + + cityssm.escapeHTML((_d = occupant.occupantCity) !== null && _d !== void 0 ? _d : '') + + ', ' + + cityssm.escapeHTML((_e = occupant.occupantProvince) !== null && _e !== void 0 ? _e : '') + + '
' + + cityssm.escapeHTML((_f = occupant.occupantPostalCode) !== null && _f !== void 0 ? _f : '') + + '
') + + ('
' + + (((_g = occupant.occupantPhoneNumber) !== null && _g !== void 0 ? _g : '') === '' + ? '' + : cityssm.escapeHTML(occupant.occupantPhoneNumber) + + '
') + + cityssm.escapeHTML((_h = occupant.occupantEmailAddress) !== null && _h !== void 0 ? _h : '') + + '
' + + '
') + + '
'; + panelBlockElement.addEventListener('click', addOccupantFromCopy); + panelElement.append(panelBlockElement); + } + searchResultsElement.innerHTML = ''; + searchResultsElement.append(panelElement); + }); + } + cityssm.openHtmlModal('lotOccupancy-addOccupant', { + onshow(modalElement) { + los.populateAliases(modalElement); + modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupancyId').value = lotOccupancyId; + const lotOccupantTypeSelectElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId'); + const lotOccupantTypeCopySelectElement = modalElement.querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId'); + for (const lotOccupantType of exports.lotOccupantTypes) { + const optionElement = document.createElement('option'); + optionElement.value = lotOccupantType.lotOccupantTypeId.toString(); + optionElement.textContent = lotOccupantType.lotOccupantType; + optionElement.dataset.occupantCommentTitle = + lotOccupantType.occupantCommentTitle; + lotOccupantTypeSelectElement.append(optionElement); + lotOccupantTypeCopySelectElement.append(optionElement.cloneNode(true)); + } + ; + modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCity').value = exports.occupantCityDefault; + modalElement.querySelector('#lotOccupancyOccupantAdd--occupantProvince').value = exports.occupantProvinceDefault; + }, + onshown: (modalElement, closeModalFunction) => { + bulmaJS.toggleHtmlClipped(); + bulmaJS.init(modalElement); + const lotOccupantTypeIdElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId'); + lotOccupantTypeIdElement.focus(); + lotOccupantTypeIdElement.addEventListener('change', () => { + var _a; + let occupantCommentTitle = (_a = lotOccupantTypeIdElement.selectedOptions[0].dataset + .occupantCommentTitle) !== null && _a !== void 0 ? _a : ''; + if (occupantCommentTitle === '') { + occupantCommentTitle = 'Comment'; + } + modalElement.querySelector('#lotOccupancyOccupantAdd--occupantCommentTitle').textContent = occupantCommentTitle; + }); + addFormElement = modalElement.querySelector('#form--lotOccupancyOccupantAdd'); + addFormElement.addEventListener('submit', addOccupantFromForm); + searchResultsElement = modalElement.querySelector('#lotOccupancyOccupantCopy--searchResults'); + searchFormElement = modalElement.querySelector('#form--lotOccupancyOccupantCopy'); + searchFormElement.addEventListener('submit', (formEvent) => { + formEvent.preventDefault(); + }); + modalElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').addEventListener('change', searchOccupants); + addCloseModalFunction = closeModalFunction; + }, + onremoved: () => { + bulmaJS.toggleHtmlClipped(); + } + }); + }); if (!isCreate) { "use strict"; diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js index 1826df12..4d8f6e30 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js @@ -186,11 +186,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doGetOccupancyTypeFields', { occupancyTypeId: occupancyTypeIdElement.value }, (responseJSON) => { - var _a; + var _a, _b; if (responseJSON.occupancyTypeFields.length === 0) { lotOccupancyFieldsContainerElement.innerHTML = `
-

There are no additional fields for this ${los.escapedAliases.occupancy} type.

-
`; +

There are no additional fields for this ${los.escapedAliases.occupancy} type.

+ `; return; } lotOccupancyFieldsContainerElement.innerHTML = ''; @@ -205,7 +205,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); fieldElement.className = 'field'; fieldElement.innerHTML = `
`; fieldElement.querySelector('label').textContent = occupancyTypeField.occupancyTypeField; - if (occupancyTypeField.occupancyTypeFieldValues === '') { + if (((_a = occupancyTypeField.occupancyTypeFieldValues) !== null && _a !== void 0 ? _a : '') === '') { const inputElement = document.createElement('input'); inputElement.className = 'input'; inputElement.id = fieldId; @@ -216,7 +216,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); occupancyTypeField.minimumLength; inputElement.maxLength = occupancyTypeField.maximumLength; - if (((_a = occupancyTypeField.pattern) !== null && _a !== void 0 ? _a : '') !== '') { + if (((_b = occupancyTypeField.pattern) !== null && _b !== void 0 ? _b : '') !== '') { inputElement.pattern = occupancyTypeField.pattern; } ; @@ -239,6 +239,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); selectElement.append(optionElement); } } + console.log(fieldElement); lotOccupancyFieldsContainerElement.append(fieldElement); } lotOccupancyFieldsContainerElement.insertAdjacentHTML('beforeend', ``); @@ -351,10 +352,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } cityssm.openHtmlModal('lotOccupancy-selectLot', { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { var _a; bulmaJS.toggleHtmlClipped(); lotSelectModalElement = modalElement; @@ -409,7 +410,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ; modalElement.querySelector('#form--lotCreate').addEventListener('submit', createLotAndSelect); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts index 19f65296..566654c0 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts @@ -284,8 +284,8 @@ declare const bulmaJS: BulmaJS }) => { if (responseJSON.occupancyTypeFields.length === 0) { lotOccupancyFieldsContainerElement.innerHTML = `
-

There are no additional fields for this ${los.escapedAliases.occupancy} type.

-
` +

There are no additional fields for this ${los.escapedAliases.occupancy} type.

+ ` return } @@ -311,7 +311,7 @@ declare const bulmaJS: BulmaJS fieldElement.querySelector('label') as HTMLLabelElement ).textContent = occupancyTypeField.occupancyTypeField as string - if (occupancyTypeField.occupancyTypeFieldValues === '') { + if ((occupancyTypeField.occupancyTypeFieldValues ?? '') === '') { const inputElement = document.createElement('input') inputElement.className = 'input' @@ -362,6 +362,8 @@ declare const bulmaJS: BulmaJS } } + console.log(fieldElement) + lotOccupancyFieldsContainerElement.append(fieldElement) } @@ -529,10 +531,10 @@ declare const bulmaJS: BulmaJS } cityssm.openHtmlModal('lotOccupancy-selectLot', { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement) }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped() lotSelectModalElement = modalElement @@ -628,7 +630,7 @@ declare const bulmaJS: BulmaJS modalElement.querySelector('#form--lotCreate') as HTMLFormElement ).addEventListener('submit', createLotAndSelect) }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped() } }) diff --git a/public/javascripts/lotOccupancyEdit.min.js b/public/javascripts/lotOccupancyEdit.min.js index d6c55d6d..563c6ffd 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 n=exports.los,a=document.querySelector("#lotOccupancy--lotOccupancyId").value,o=""===a;let s=o;const l=document.querySelector("#form--lotOccupancy");l.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/"+(o?"doCreateLotOccupancy":"doUpdateLotOccupancy"),l,e=>{var t;e.success?(n.clearUnsavedChanges(),o||s?window.location.href=n.getLotOccupancyURL(e.lotOccupancyId,!0,!0):bulmaJS.alert({message:`${n.escapedAliases.Occupancy} Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+n.escapedAliases.Occupancy,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const r=l.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",n.setUnsavedChanges);function u(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:a},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=n.getLotOccupancyURL(e.lotOccupancyId,!0)):bulmaJS.alert({title:"Error Copying Record",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}null===(e=document.querySelector("#button--copyLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),n.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${n.escapedAliases.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:u}})}),null===(t=document.querySelector("#button--deleteLotOccupancy"))||void 0===t||t.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:`Delete ${n.escapedAliases.Occupancy} Record`,message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:a},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=n.getLotOccupancyURL()):bulmaJS.alert({title:"Error Deleting Record",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}),null===(c=document.querySelector("#button--createWorkOrder"))||void 0===c||c.addEventListener("click",e=>{let t;function c(e){e.preventDefault(),cityssm.postJSON(n.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=n.getWorkOrderURL(e.workOrderId,!0)}}})):bulmaJS.alert({title:"Error Creating Work Order",message:e.errorMessage,contextualColorName:"danger"})})}e.preventDefault(),cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow(e){e.querySelector("#workOrderCreate--lotOccupancyId").value=a,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const t=e.querySelector("#workOrderCreate--workOrderTypeId"),c=exports.workOrderTypes;1===c.length&&(t.innerHTML="");for(const e of c){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=e.workOrderType,t.append(c)}},onshown(e,n){var a;t=n,bulmaJS.toggleHtmlClipped(),null===(a=e.querySelector("form"))||void 0===a||a.addEventListener("submit",c)},onremoved(){bulmaJS.toggleHtmlClipped()}})});const i=document.querySelector("#lotOccupancy--occupancyTypeId");if(o){const e=document.querySelector("#container--lotOccupancyFields");i.addEventListener("change",()=>{""!==i.value?cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:i.value},t=>{var c;if(0===t.occupancyTypeFields.length)return void(e.innerHTML=`
\n

There are no additional fields for this ${n.escapedAliases.occupancy} type.

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

Select the ${n.escapedAliases.occupancy} type to load the available fields.

\n
`})}else{const e=i.value;i.addEventListener("change",()=>{i.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${n.escapedAliases.occupancy} type?\n\n This 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:()=>{s=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{i.value=e}}})})}const d=document.querySelector("#lotOccupancy--lotName");let p;function m(e){const t=Number.parseInt(e.currentTarget.closest("tr").dataset.lotOccupantIndex,10),c=p.find(e=>e.lotOccupantIndex===t);let o,s;function l(e){e.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",o,e=>{var t;e.success?(p=e.lotOccupancyOccupants,s(),v()):bulmaJS.alert({title:"Error Updating "+n.escapedAliases.Occupant,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow(e){var o;n.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=a,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=t.toString();const s=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");let l=!1;for(const e of exports.lotOccupantTypes){const t=document.createElement("option");t.value=e.lotOccupantTypeId.toString(),t.textContent=e.lotOccupantType,t.dataset.occupantCommentTitle=e.occupantCommentTitle,e.lotOccupantTypeId===c.lotOccupantTypeId&&(t.selected=!0,l=!0),s.append(t)}if(!l){const e=document.createElement("option");e.value=c.lotOccupantTypeId.toString(),e.textContent=c.lotOccupantType,e.dataset.occupantCommentTitle=c.occupantCommentTitle,e.selected=!0,s.append(e)}e.querySelector("#lotOccupancyOccupantEdit--occupantName").value=c.occupantName,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress1").value=c.occupantAddress1,e.querySelector("#lotOccupancyOccupantEdit--occupantAddress2").value=c.occupantAddress2,e.querySelector("#lotOccupancyOccupantEdit--occupantCity").value=c.occupantCity,e.querySelector("#lotOccupancyOccupantEdit--occupantProvince").value=c.occupantProvince,e.querySelector("#lotOccupancyOccupantEdit--occupantPostalCode").value=c.occupantPostalCode,e.querySelector("#lotOccupancyOccupantEdit--occupantPhoneNumber").value=c.occupantPhoneNumber,e.querySelector("#lotOccupancyOccupantEdit--occupantEmailAddress").value=c.occupantEmailAddress,e.querySelector("#lotOccupancyOccupantEdit--occupantCommentTitle").textContent=""===(null!==(o=c.occupantCommentTitle)&&void 0!==o?o:"")?"Comment":c.occupantCommentTitle,e.querySelector("#lotOccupancyOccupantEdit--occupantComment").value=c.occupantComment},onshown(e,t){bulmaJS.toggleHtmlClipped();const c=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");c.focus(),c.addEventListener("change",()=>{var t;let n=null!==(t=c.selectedOptions[0].dataset.occupantCommentTitle)&&void 0!==t?t:"";""===n&&(n="Comment"),e.querySelector("#lotOccupancyOccupantEdit--occupantCommentTitle").textContent=n}),(o=e.querySelector("form")).addEventListener("submit",l),s=t},onremoved(){bulmaJS.toggleHtmlClipped()}})}function y(e){const t=e.currentTarget.closest("tr").dataset.lotOccupantIndex;bulmaJS.confirm({title:`Remove ${n.escapedAliases.Occupant}?`,message:`Are you sure you want to remove this ${n.escapedAliases.occupant}?`,okButton:{text:"Yes, Remove "+n.escapedAliases.Occupant,callbackFunction:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:a,lotOccupantIndex:t},e=>{var t;e.success?(p=e.lotOccupancyOccupants,v()):bulmaJS.alert({title:"Error Removing "+n.escapedAliases.Occupant,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function v(){var e,t,c,a,o,s,l,r,u,i;const d=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(d),0===p.length)return void(d.innerHTML=`
\n

There are no ${n.escapedAliases.occupants} associated with this record.

\n
`);const v=document.createElement("table");v.className="table is-fullwidth is-striped is-hoverable",v.innerHTML=`\n ${n.escapedAliases.Occupant}\n Address\n Other Contact\n Comment\n Options\n \n `;for(const n of p){const d=document.createElement("tr");d.dataset.lotOccupantIndex=n.lotOccupantIndex.toString(),d.innerHTML=""+cityssm.escapeHTML(""===(null!==(e=n.occupantName)&&void 0!==e?e:"")?"(No Name)":n.occupantName)+'
'+cityssm.escapeHTML(n.lotOccupantType)+""+(""===(null!==(t=n.occupantAddress1)&&void 0!==t?t:"")?"":cityssm.escapeHTML(n.occupantAddress1)+"
")+(""===(null!==(c=n.occupantAddress2)&&void 0!==c?c:"")?"":cityssm.escapeHTML(n.occupantAddress2)+"
")+(""===(null!==(a=n.occupantCity)&&void 0!==a?a:"")?"":cityssm.escapeHTML(n.occupantCity)+", ")+cityssm.escapeHTML(null!==(o=n.occupantProvince)&&void 0!==o?o:"")+"
"+cityssm.escapeHTML(null!==(s=n.occupantPostalCode)&&void 0!==s?s:"")+""+(""===(null!==(l=n.occupantPhoneNumber)&&void 0!==l?l:"")?"":cityssm.escapeHTML(n.occupantPhoneNumber)+"
")+(""===(null!==(r=n.occupantEmailAddress)&&void 0!==r?r:"")?"":cityssm.escapeHTML(n.occupantEmailAddress))+''+cityssm.escapeHTML(null!==(i=n.occupantComment)&&void 0!==i?i:"")+'
',d.querySelector(".button--edit").addEventListener("click",m),d.querySelector(".button--delete").addEventListener("click",y),v.querySelector("tbody").append(d)}d.append(v)}if(d.addEventListener("click",e=>{const t=e.currentTarget.value;let c,a,o,s;function l(e,t){document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,n.setUnsavedChanges(),c()}function r(e){e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)}function u(){s.innerHTML=n.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(n.urlPrefix+"/lots/doSearchLots",o,e=>{var t,c;if(0===e.count)return void(s.innerHTML='
\n

No results.

\n
');const n=document.createElement("div");n.className="panel";for(const a of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=a.lotId.toString(),e.dataset.lotName=a.lotName,e.innerHTML='
'+cityssm.escapeHTML(null!==(t=a.lotName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=a.mapName)&&void 0!==c?c:"")+'
'+cityssm.escapeHTML(a.lotStatus)+'
'+(a.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",r),n.append(e)}s.innerHTML="",s.append(n)})}function i(e){e.preventDefault();const t=a.querySelector("#lotCreate--lotName").value;cityssm.postJSON(n.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{var c;e.success?l(e.lotId,t):bulmaJS.alert({title:`Error Creating ${n.escapedAliases.Lot}`,message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{n.populateAliases(e)},onshown:(e,n)=>{var l;bulmaJS.toggleHtmlClipped(),a=e,c=n,bulmaJS.init(e);const r=e.querySelector("#lotSelect--lotName");""!==document.querySelector("#lotOccupancy--lotId").value&&(r.value=t),r.focus(),r.addEventListener("change",u);const d=e.querySelector("#lotSelect--occupancyStatus");if(d.addEventListener("change",u),""!==t&&(d.value=""),o=e.querySelector("#form--lotSelect"),s=e.querySelector("#resultsContainer--lotSelect"),o.addEventListener("submit",e=>{e.preventDefault()}),u(),exports.lotNamePattern){const t=exports.lotNamePattern;e.querySelector("#lotCreate--lotName").pattern=t.source}const p=e.querySelector("#lotCreate--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,p.append(t)}const m=e.querySelector("#lotCreate--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,m.append(t)}const y=e.querySelector("#lotCreate--mapId");for(const e of exports.maps){const t=document.createElement("option");t.value=e.mapId.toString(),t.textContent=""===(null!==(l=e.mapName)&&void 0!==l?l:"")?"(No Name)":e.mapName,y.append(t)}e.querySelector("#form--lotCreate").addEventListener("submit",i)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),document.querySelector(".is-lot-view-button").addEventListener("click",()=>{const e=document.querySelector("#lotOccupancy--lotId").value;""===e?bulmaJS.alert({message:`No ${n.escapedAliases.lot} selected.`,contextualColorName:"info"}):window.open(n.urlPrefix+"/lots/"+e)}),document.querySelector(".is-clear-lot-button").addEventListener("click",()=>{d.disabled?bulmaJS.alert({message:"You need to unlock the field before clearing it.",contextualColorName:"info"}):(d.value=`(No ${n.escapedAliases.Lot})`,document.querySelector("#lotOccupancy--lotId").value="",n.setUnsavedChanges())}),n.initializeDatePickers(l),document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change",()=>{const e=document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;e.min=document.querySelector("#lotOccupancy--occupancyStartDateString").value,e.refresh()}),n.initializeUnlockFieldButtons(l),Object.defineProperty(exports,"__esModule",{value:!0}),o){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=l.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else p=exports.lotOccupancyOccupants,delete exports.lotOccupancyOccupants,document.querySelector("#button--addOccupant").addEventListener("click",()=>{let e,t,c,o;function s(t){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",t,t=>{var c;t.success?(p=t.lotOccupancyOccupants,e(),v()):bulmaJS.alert({title:`Error Adding ${n.escapedAliases.Occupant}`,message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}function l(e){e.preventDefault(),s(t)}let r=[];function u(e){e.preventDefault();const t=e.currentTarget,c=r[Number.parseInt(t.dataset.index,10)],o=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===o?bulmaJS.alert({title:`No ${n.escapedAliases.Occupant} Type Selected`,message:`Select a type to apply to the newly added ${n.escapedAliases.occupant}.`,contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(o,10),c.lotOccupancyId=Number.parseInt(a,10),s(c))}function i(e){e.preventDefault(),""!==c.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(o.innerHTML=n.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doSearchPastOccupants",c,e=>{var t,c,n,a,s,l,i,d;r=e.occupants;const p=document.createElement("div");p.className="panel";for(const[e,o]of r.entries()){const r=document.createElement("a");r.className="panel-block is-block",r.dataset.index=e.toString(),r.innerHTML=""+cityssm.escapeHTML(null!==(t=o.occupantName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=o.occupantAddress1)&&void 0!==c?c:"")+"
"+(""===(null!==(n=o.occupantAddress2)&&void 0!==n?n:"")?"":cityssm.escapeHTML(o.occupantAddress2)+"
")+cityssm.escapeHTML(null!==(a=o.occupantCity)&&void 0!==a?a:"")+", "+cityssm.escapeHTML(null!==(s=o.occupantProvince)&&void 0!==s?s:"")+"
"+cityssm.escapeHTML(null!==(l=o.occupantPostalCode)&&void 0!==l?l:"")+'
'+(""===(null!==(i=o.occupantPhoneNumber)&&void 0!==i?i:"")?"":cityssm.escapeHTML(o.occupantPhoneNumber)+"
")+cityssm.escapeHTML(null!==(d=o.occupantEmailAddress)&&void 0!==d?d:"")+"
",r.addEventListener("click",u),p.append(r)}o.innerHTML="",o.append(p)})):o.innerHTML='

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

'}cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow(e){n.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=a;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const n=document.createElement("option");n.value=e.lotOccupantTypeId.toString(),n.textContent=e.lotOccupantType,n.dataset.occupantCommentTitle=e.occupantCommentTitle,t.append(n),c.append(n.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(n,a)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(n);const s=n.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId");s.focus(),s.addEventListener("change",()=>{var e;let t=null!==(e=s.selectedOptions[0].dataset.occupantCommentTitle)&&void 0!==e?e:"";""===t&&(t="Comment"),n.querySelector("#lotOccupancyOccupantAdd--occupantCommentTitle").textContent=t}),(t=n.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),o=n.querySelector("#lotOccupancyOccupantCopy--searchResults"),(c=n.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),n.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",i),e=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),v();if(!o){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;function O(t){const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),o=e.find(e=>e.lotOccupancyCommentId===c);let s,l;function r(t){t.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",s,t=>{var c;t.success?(e=t.lotOccupancyComments,l(),f()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=a,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=c.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=o.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=o.lotOccupancyCommentDateString;const s=cityssm.dateToString(new Date);t.max=o.lotOccupancyCommentDateString<=s?s:o.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=o.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),n.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(s=e.querySelector("form")).addEventListener("submit",r),l=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function g(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:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:a,lotOccupancyCommentId:c},t=>{var c;t.success?(e=t.lotOccupancyComments,f()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function f(){var t,c,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(null!==(t=a.recordCreate_userName)&&void 0!==t?t:"")+""+(null!==(c=a.lotOccupancyCommentDateString)&&void 0!==c?c:"")+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(null!==(n=a.lotOccupancyComment)&&void 0!==n?n:"")+'
',e.querySelector(".button--edit").addEventListener("click",O),e.querySelector(".button--delete").addEventListener("click",g),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)}delete exports.lotOccupancyComments,document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;function o(a){a.preventDefault(),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{var n;t.success?(e=t.lotOccupancyComments,c(),f()):bulmaJS.alert({title:"Error Adding Comment",message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{n.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=a},onshown:(e,n)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",o),c=n},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),f(),Object.defineProperty(exports,"__esModule",{value:!0});let t=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const c=document.querySelector("#container--lotOccupancyFees");function h(){let e=0;for(const c of t)e+=(c.feeAmount+c.taxAmount)*c.quantity;return e}function S(e){const c=e.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:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:a,feeId:c},e=>{var c;e.success?(t=e.lotOccupancyFees,b()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}}})}function b(){var e,n;if(0===t.length)return c.innerHTML='
\n

There are no fees associated with this record.

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

'+cityssm.escapeHTML(null!==(t=o.feeCategory)&&void 0!==t?t:"")+'

';let d=!1;for(const t of o.fees){if(null!==c.querySelector(`.container--lotOccupancyFee[data-fee-id='${t.feeId}'][data-include-quantity='0']`))continue;let s=!0;const p=((null!==(n=t.feeName)&&void 0!==n?n:"")+" "+(null!==(a=t.feeDescription)&&void 0!==a?a:"")).toLowerCase();for(const e of i)if(!p.includes(e)){s=!1;break}if(!s)continue;d=!0;const m=document.createElement("a");m.className="panel-block is-block container--fee",m.dataset.feeId=t.feeId.toString(),m.dataset.feeCategoryId=o.feeCategoryId.toString(),m.href="#",m.innerHTML=""+cityssm.escapeHTML(null!==(l=t.feeName)&&void 0!==l?l:"")+"
"+cityssm.escapeHTML(null!==(u=t.feeDescription)&&void 0!==u?u:"").replace(/\n/g,"
")+"
",m.addEventListener("click",r),e.querySelector(".panel").append(m)}d&&s.append(e)}}cityssm.openHtmlModal("lotOccupancy-addFee",{onshow(t){o=t.querySelector("#feeSelect--feeName"),s=t.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:a},t=>{e=t.feeCategories,o.disabled=!1,o.addEventListener("keyup",u),o.focus(),u()})},onshown(){bulmaJS.toggleHtmlClipped()},onhidden(){b()},onremoved(){bulmaJS.toggleHtmlClipped()}})});let o=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const s=document.querySelector("#container--lotOccupancyTransactions");function C(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:function(){cityssm.postJSON(n.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:a,transactionIndex:t},e=>{var t;e.success?(o=e.lotOccupancyTransactions,T()):bulmaJS.alert({title:"Error Deleting Transaction",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function T(){var e,c,a;if(0===o.length)return void(s.innerHTML='

There are no transactions associated with this record.

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

There are no additional fields for this ${c.escapedAliases.occupancy} type.

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

Select the ${c.escapedAliases.occupancy} type to load the available fields.

\n
`})}else{const e=u.value;u.addEventListener("change",()=>{u.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${c.escapedAliases.occupancy} type?\n\n This 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:()=>{o=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{u.value=e}}})})}const i=document.querySelector("#lotOccupancy--lotName");var d;i.addEventListener("click",e=>{const t=e.currentTarget.value;let n,a,o,s;function l(e,t){document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,c.setUnsavedChanges(),n()}function r(e){e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)}function u(){s.innerHTML=c.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(c.urlPrefix+"/lots/doSearchLots",o,e=>{var t,c;if(0===e.count)return void(s.innerHTML='
\n

No results.

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

There are no ${c.escapedAliases.occupants} associated with this record.

\n
`);const v=document.createElement("table");v.className="table is-fullwidth is-striped is-hoverable",v.innerHTML=`\n ${c.escapedAliases.Occupant}\n Address\n Other Contact\n Comment\n Options\n \n `;for(const c of p){const d=document.createElement("tr");d.dataset.lotOccupantIndex=c.lotOccupantIndex.toString(),d.innerHTML=""+cityssm.escapeHTML(""===(null!==(e=c.occupantName)&&void 0!==e?e:"")?"(No Name)":c.occupantName)+'
'+cityssm.escapeHTML(c.lotOccupantType)+""+(""===(null!==(t=c.occupantAddress1)&&void 0!==t?t:"")?"":cityssm.escapeHTML(c.occupantAddress1)+"
")+(""===(null!==(n=c.occupantAddress2)&&void 0!==n?n:"")?"":cityssm.escapeHTML(c.occupantAddress2)+"
")+(""===(null!==(a=c.occupantCity)&&void 0!==a?a:"")?"":cityssm.escapeHTML(c.occupantCity)+", ")+cityssm.escapeHTML(null!==(o=c.occupantProvince)&&void 0!==o?o:"")+"
"+cityssm.escapeHTML(null!==(s=c.occupantPostalCode)&&void 0!==s?s:"")+""+(""===(null!==(l=c.occupantPhoneNumber)&&void 0!==l?l:"")?"":cityssm.escapeHTML(c.occupantPhoneNumber)+"
")+(""===(null!==(r=c.occupantEmailAddress)&&void 0!==r?r:"")?"":cityssm.escapeHTML(c.occupantEmailAddress))+''+cityssm.escapeHTML(null!==(i=c.occupantComment)&&void 0!==i?i:"")+'
',d.querySelector(".button--edit").addEventListener("click",m),d.querySelector(".button--delete").addEventListener("click",y),v.querySelector("tbody").append(d)}d.append(v)}if(delete exports.lotOccupancyOccupants,a){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=s.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else v();if(null===(d=document.querySelector("#button--addOccupant"))||void 0===d||d.addEventListener("click",()=>{let e,t,a,o;function s(t){cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",t,t=>{var n;t.success?(p=t.lotOccupancyOccupants,e(),v()):bulmaJS.alert({title:`Error Adding ${c.escapedAliases.Occupant}`,message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}function l(e){e.preventDefault(),s(t)}let r=[];function u(e){e.preventDefault();const t=e.currentTarget,a=r[Number.parseInt(t.dataset.index,10)],o=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===o?bulmaJS.alert({title:`No ${c.escapedAliases.Occupant} Type Selected`,message:`Select a type to apply to the newly added ${c.escapedAliases.occupant}.`,contextualColorName:"warning"}):(a.lotOccupantTypeId=Number.parseInt(o,10),a.lotOccupancyId=Number.parseInt(n,10),s(a))}function i(e){e.preventDefault(),""!==a.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(o.innerHTML=c.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doSearchPastOccupants",a,e=>{var t,c,n,a,s,l,i,d;r=e.occupants;const p=document.createElement("div");p.className="panel";for(const[e,o]of r.entries()){const r=document.createElement("a");r.className="panel-block is-block",r.dataset.index=e.toString(),r.innerHTML=""+cityssm.escapeHTML(null!==(t=o.occupantName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=o.occupantAddress1)&&void 0!==c?c:"")+"
"+(""===(null!==(n=o.occupantAddress2)&&void 0!==n?n:"")?"":cityssm.escapeHTML(o.occupantAddress2)+"
")+cityssm.escapeHTML(null!==(a=o.occupantCity)&&void 0!==a?a:"")+", "+cityssm.escapeHTML(null!==(s=o.occupantProvince)&&void 0!==s?s:"")+"
"+cityssm.escapeHTML(null!==(l=o.occupantPostalCode)&&void 0!==l?l:"")+'
'+(""===(null!==(i=o.occupantPhoneNumber)&&void 0!==i?i:"")?"":cityssm.escapeHTML(o.occupantPhoneNumber)+"
")+cityssm.escapeHTML(null!==(d=o.occupantEmailAddress)&&void 0!==d?d:"")+"
",r.addEventListener("click",u),p.append(r)}o.innerHTML="",o.append(p)})):o.innerHTML='

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

'}cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow(e){c.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=n;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),a=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const c=document.createElement("option");c.value=e.lotOccupantTypeId.toString(),c.textContent=e.lotOccupantType,c.dataset.occupantCommentTitle=e.occupantCommentTitle,t.append(c),a.append(c.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(c,n)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(c);const s=c.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId");s.focus(),s.addEventListener("change",()=>{var e;let t=null!==(e=s.selectedOptions[0].dataset.occupantCommentTitle)&&void 0!==e?e:"";""===t&&(t="Comment"),c.querySelector("#lotOccupancyOccupantAdd--occupantCommentTitle").textContent=t}),(t=c.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),o=c.querySelector("#lotOccupancyOccupantCopy--searchResults"),(a=c.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),c.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",i),e=n},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),!a){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;function O(t){const a=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),o=e.find(e=>e.lotOccupancyCommentId===a);let s,l;function r(t){t.preventDefault(),cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",s,t=>{var c;t.success?(e=t.lotOccupancyComments,l(),f()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{c.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=n,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=a.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=o.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=o.lotOccupancyCommentDateString;const s=cityssm.dateToString(new Date);t.max=o.lotOccupancyCommentDateString<=s?s:o.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=o.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),c.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(s=e.querySelector("form")).addEventListener("submit",r),l=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function g(t){const a=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:function(){cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:n,lotOccupancyCommentId:a},t=>{var c;t.success?(e=t.lotOccupancyComments,f()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function f(){var t,c,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(null!==(t=a.recordCreate_userName)&&void 0!==t?t:"")+""+(null!==(c=a.lotOccupancyCommentDateString)&&void 0!==c?c:"")+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(null!==(n=a.lotOccupancyComment)&&void 0!==n?n:"")+'
',e.querySelector(".button--edit").addEventListener("click",O),e.querySelector(".button--delete").addEventListener("click",g),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)}delete exports.lotOccupancyComments,document.querySelector("#button--addComment").addEventListener("click",()=>{let t,a;function o(n){n.preventDefault(),cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{var c;t.success?(e=t.lotOccupancyComments,a(),f()):bulmaJS.alert({title:"Error Adding Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{c.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=n},onshown:(e,c)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",o),a=c},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),f(),Object.defineProperty(exports,"__esModule",{value:!0});let t=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const a=document.querySelector("#container--lotOccupancyFees");function h(){let e=0;for(const c of t)e+=(c.feeAmount+c.taxAmount)*c.quantity;return e}function S(e){const a=e.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:function(){cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:n,feeId:a},e=>{var c;e.success?(t=e.lotOccupancyFees,b()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}}})}function b(){var e,c;if(0===t.length)return a.innerHTML='
\n

There are no fees associated with this record.

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

'+cityssm.escapeHTML(null!==(t=o.feeCategory)&&void 0!==t?t:"")+'

';let d=!1;for(const t of o.fees){if(null!==a.querySelector(`.container--lotOccupancyFee[data-fee-id='${t.feeId}'][data-include-quantity='0']`))continue;let s=!0;const p=((null!==(c=t.feeName)&&void 0!==c?c:"")+" "+(null!==(n=t.feeDescription)&&void 0!==n?n:"")).toLowerCase();for(const e of i)if(!p.includes(e)){s=!1;break}if(!s)continue;d=!0;const m=document.createElement("a");m.className="panel-block is-block container--fee",m.dataset.feeId=t.feeId.toString(),m.dataset.feeCategoryId=o.feeCategoryId.toString(),m.href="#",m.innerHTML=""+cityssm.escapeHTML(null!==(l=t.feeName)&&void 0!==l?l:"")+"
"+cityssm.escapeHTML(null!==(u=t.feeDescription)&&void 0!==u?u:"").replace(/\n/g,"
")+"
",m.addEventListener("click",r),e.querySelector(".panel").append(m)}d&&s.append(e)}}cityssm.openHtmlModal("lotOccupancy-addFee",{onshow(t){o=t.querySelector("#feeSelect--feeName"),s=t.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:n},t=>{e=t.feeCategories,o.disabled=!1,o.addEventListener("keyup",u),o.focus(),u()})},onshown(){bulmaJS.toggleHtmlClipped()},onhidden(){b()},onremoved(){bulmaJS.toggleHtmlClipped()}})});let o=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const s=document.querySelector("#container--lotOccupancyTransactions");function C(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:function(){cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:n,transactionIndex:t},e=>{var t;e.success?(o=e.lotOccupancyTransactions,T()):bulmaJS.alert({title:"Error Deleting Transaction",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function T(){var e,n,a;if(0===o.length)return void(s.innerHTML='

There are no transactions associated with this record.

');s.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n
Date${c.escapedAliases.ExternalReceiptNumber}AmountOptions
Transaction Total
`;let l=0;for(const t of o){l+=t.transactionAmount;const c=document.createElement("tr");c.className="container--lotOccupancyTransaction",c.dataset.transactionIndex=t.transactionIndex.toString(),c.innerHTML=""+(null!==(e=t.transactionDateString)&&void 0!==e?e:"")+""+cityssm.escapeHTML(null!==(n=t.externalReceiptNumber)&&void 0!==n?n:"")+"
"+cityssm.escapeHTML(null!==(a=t.transactionNote)&&void 0!==a?a:"")+'$'+t.transactionAmount.toFixed(2)+'',c.querySelector("button").addEventListener("click",C),s.querySelector("tbody").append(c)}s.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+l.toFixed(2);const r=h();r>l&&s.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(r-l).toFixed(2)+"
")}document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;function t(t){t.preventDefault(),cityssm.postJSON(c.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{var c;t.success?(o=t.lotOccupancyTransactions,e(),T()):bulmaJS.confirm({title:"Error Adding Transaction",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow(e){c.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=n.toString();const t=h(),a=function(){let e=0;for(const t of o)e+=t.transactionAmount;return e}(),s=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");s.min=(-1*a).toFixed(2),s.max=Math.max(t-a,0).toFixed(2),s.value=Math.max(t-a,0).toFixed(2)},onshown(c,n){bulmaJS.toggleHtmlClipped(),e=n,c.querySelector("form").addEventListener("submit",t)},onremoved(){bulmaJS.toggleHtmlClipped()}})}),b()}})(); \ No newline at end of file