From 0a0af43983a4d6f51fd09fd1d2ad36d7605dd949 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Mon, 23 Jan 2023 11:18:45 -0500 Subject: [PATCH] occupant comment title to label relationship to deceased --- helpers/initializer.database.cemetery.js | 5 + helpers/initializer.database.cemetery.ts | 5 + helpers/initializer.database.js | 8 +- helpers/initializer.database.ts | 8 +- .../lotOccupancyDB/addLotOccupantType.d.ts | 1 + helpers/lotOccupancyDB/addLotOccupantType.js | 6 +- helpers/lotOccupancyDB/addLotOccupantType.ts | 6 +- .../getLotOccupancyOccupants.js | 2 +- .../getLotOccupancyOccupants.ts | 2 +- helpers/lotOccupancyDB/getLotOccupantTypes.js | 3 +- helpers/lotOccupancyDB/getLotOccupantTypes.ts | 3 +- .../lotOccupancyDB/updateLotOccupantType.d.ts | 3 +- .../lotOccupancyDB/updateLotOccupantType.js | 3 +- .../lotOccupancyDB/updateLotOccupantType.ts | 7 +- public-typescript/adminTables.js | 21 +- .../adminTablesLotOccupantTypes.js | 21 +- .../adminTablesLotOccupantTypes.ts | 21 +- public-typescript/lotOccupancyEdit.js | 53 ++++- .../lotOccupancyEditOccupants.js | 53 ++++- .../lotOccupancyEditOccupants.ts | 78 ++++++-- public/html/lotOccupancy-addOccupant.html | 2 +- public/html/lotOccupancy-editOccupant.html | 2 +- public/javascripts/adminTables.min.js | 2 +- public/javascripts/lotOccupancyEdit.min.js | 2 +- types/recordTypes.d.ts | 2 + types/recordTypes.ts | 2 + views/admin-tables.ejs | 114 +++++------ views/lotOccupancy-view.ejs | 182 +++++++++--------- 28 files changed, 410 insertions(+), 207 deletions(-) diff --git a/helpers/initializer.database.cemetery.js b/helpers/initializer.database.cemetery.js index 8ac8ac5f..1fc9c0af 100644 --- a/helpers/initializer.database.cemetery.js +++ b/helpers/initializer.database.cemetery.js @@ -35,18 +35,23 @@ async function initializeCemeteryDatabase() { await addRecord('LotStatuses', 'Taken', 3, session); await addLotOccupantType({ lotOccupantType: 'Deceased', + fontAwesomeIconClass: 'cross', orderNumber: 1 }, session); await addLotOccupantType({ lotOccupantType: 'Funeral Director', + fontAwesomeIconClass: 'church', orderNumber: 2 }, session); await addLotOccupantType({ lotOccupantType: 'Preneed Owner', + fontAwesomeIconClass: 'user', orderNumber: 3 }, session); await addLotOccupantType({ lotOccupantType: 'Purchaser', + fontAwesomeIconClass: 'hand-holding-usd', + occupantCommentTitle: 'Relationship to Owner/Deceased', orderNumber: 4 }, session); await addRecord('OccupancyTypes', 'Preneed', 1, session); diff --git a/helpers/initializer.database.cemetery.ts b/helpers/initializer.database.cemetery.ts index d94b55b2..33a51800 100644 --- a/helpers/initializer.database.cemetery.ts +++ b/helpers/initializer.database.cemetery.ts @@ -67,6 +67,7 @@ async function initializeCemeteryDatabase(): Promise { await addLotOccupantType( { lotOccupantType: 'Deceased', + fontAwesomeIconClass: 'cross', orderNumber: 1 }, session @@ -75,6 +76,7 @@ async function initializeCemeteryDatabase(): Promise { await addLotOccupantType( { lotOccupantType: 'Funeral Director', + fontAwesomeIconClass: 'church', orderNumber: 2 }, session @@ -83,6 +85,7 @@ async function initializeCemeteryDatabase(): Promise { await addLotOccupantType( { lotOccupantType: 'Preneed Owner', + fontAwesomeIconClass: 'user', orderNumber: 3 }, session @@ -91,6 +94,8 @@ async function initializeCemeteryDatabase(): Promise { await addLotOccupantType( { lotOccupantType: 'Purchaser', + fontAwesomeIconClass: 'hand-holding-usd', + occupantCommentTitle: 'Relationship to Owner/Deceased', orderNumber: 4 }, session diff --git a/helpers/initializer.database.js b/helpers/initializer.database.js index 3b933699..60db551b 100644 --- a/helpers/initializer.database.js +++ b/helpers/initializer.database.js @@ -26,7 +26,13 @@ const createStatements = [ 'create index if not exists idx_occupancytypefields_ordernumber on OccupancyTypeFields (occupancyTypeId, orderNumber, occupancyTypeField)', `create table if not exists OccupancyTypePrints (occupancyTypeId integer not null, printEJS varchar(100) not null, orderNumber smallint not null default 0, ${recordColumns}, primary key (occupancyTypeId, printEJS), foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`, 'create index if not exists idx_occupancytypeprints_ordernumber on OccupancyTypePrints (occupancyTypeId, orderNumber, printEJS)', - `create table if not exists LotOccupantTypes (lotOccupantTypeId integer not null primary key autoincrement, lotOccupantType varchar(100) not null, fontAwesomeIconClass varchar(50) not null default '', orderNumber smallint not null default 0, ${recordColumns})`, + `create table if not exists LotOccupantTypes ( + lotOccupantTypeId integer not null primary key autoincrement, + lotOccupantType varchar(100) not null, + fontAwesomeIconClass varchar(50) not null default '', + occupantCommentTitle varchar(50) not null default '', + orderNumber smallint not null default 0, + ${recordColumns})`, 'create index if not exists idx_lotoccupanttypes_ordernumber on LotOccupantTypes (orderNumber, lotOccupantType)', `create table if not exists LotOccupancies (lotOccupancyId integer not null primary key autoincrement, occupancyTypeId integer not null, lotId integer, occupancyStartDate integer not null check (occupancyStartDate > 0), occupancyEndDate integer check (occupancyEndDate > 0), ${recordColumns}, foreign key (lotId) references Lots (lotId), foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`, `create table if not exists LotOccupancyOccupants (lotOccupancyId integer not null, lotOccupantIndex integer not null, occupantName varchar(200) not null, occupantAddress1 varchar(50), occupantAddress2 varchar(50), occupantCity varchar(20), occupantProvince varchar(2), occupantPostalCode varchar(7), occupantPhoneNumber varchar(30), occupantEmailAddress varchar(200), lotOccupantTypeId integer not null, occupantComment text not null default '', ${recordColumns}, primary key (lotOccupancyId, lotOccupantIndex), foreign key (lotOccupancyId) references LotOccupancies (lotOccupancyId), foreign key (lotOccupantTypeId) references LotOccupantTypes (lotOccupantTypeId)) without rowid`, diff --git a/helpers/initializer.database.ts b/helpers/initializer.database.ts index d3605c56..25fa491d 100644 --- a/helpers/initializer.database.ts +++ b/helpers/initializer.database.ts @@ -37,7 +37,13 @@ const createStatements = [ 'create index if not exists idx_occupancytypefields_ordernumber on OccupancyTypeFields (occupancyTypeId, orderNumber, occupancyTypeField)', `create table if not exists OccupancyTypePrints (occupancyTypeId integer not null, printEJS varchar(100) not null, orderNumber smallint not null default 0, ${recordColumns}, primary key (occupancyTypeId, printEJS), foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`, 'create index if not exists idx_occupancytypeprints_ordernumber on OccupancyTypePrints (occupancyTypeId, orderNumber, printEJS)', - `create table if not exists LotOccupantTypes (lotOccupantTypeId integer not null primary key autoincrement, lotOccupantType varchar(100) not null, fontAwesomeIconClass varchar(50) not null default '', orderNumber smallint not null default 0, ${recordColumns})`, + `create table if not exists LotOccupantTypes ( + lotOccupantTypeId integer not null primary key autoincrement, + lotOccupantType varchar(100) not null, + fontAwesomeIconClass varchar(50) not null default '', + occupantCommentTitle varchar(50) not null default '', + orderNumber smallint not null default 0, + ${recordColumns})`, 'create index if not exists idx_lotoccupanttypes_ordernumber on LotOccupantTypes (orderNumber, lotOccupantType)', `create table if not exists LotOccupancies (lotOccupancyId integer not null primary key autoincrement, occupancyTypeId integer not null, lotId integer, occupancyStartDate integer not null check (occupancyStartDate > 0), occupancyEndDate integer check (occupancyEndDate > 0), ${recordColumns}, foreign key (lotId) references Lots (lotId), foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`, `create table if not exists LotOccupancyOccupants (lotOccupancyId integer not null, lotOccupantIndex integer not null, occupantName varchar(200) not null, occupantAddress1 varchar(50), occupantAddress2 varchar(50), occupantCity varchar(20), occupantProvince varchar(2), occupantPostalCode varchar(7), occupantPhoneNumber varchar(30), occupantEmailAddress varchar(200), lotOccupantTypeId integer not null, occupantComment text not null default '', ${recordColumns}, primary key (lotOccupancyId, lotOccupantIndex), foreign key (lotOccupancyId) references LotOccupancies (lotOccupancyId), foreign key (lotOccupantTypeId) references LotOccupantTypes (lotOccupantTypeId)) without rowid`, diff --git a/helpers/lotOccupancyDB/addLotOccupantType.d.ts b/helpers/lotOccupancyDB/addLotOccupantType.d.ts index 0ef1ef1e..1c66a93d 100644 --- a/helpers/lotOccupancyDB/addLotOccupantType.d.ts +++ b/helpers/lotOccupancyDB/addLotOccupantType.d.ts @@ -2,6 +2,7 @@ import type * as recordTypes from '../../types/recordTypes'; interface AddLotOccupantTypeForm { lotOccupantType: string; fontAwesomeIconClass?: string; + occupantCommentTitle?: string; orderNumber?: number; } export declare function addLotOccupantType(lotOccupantTypeForm: AddLotOccupantTypeForm, requestSession: recordTypes.PartialSession): Promise; diff --git a/helpers/lotOccupancyDB/addLotOccupantType.js b/helpers/lotOccupancyDB/addLotOccupantType.js index 77eade2c..3b3449f8 100644 --- a/helpers/lotOccupancyDB/addLotOccupantType.js +++ b/helpers/lotOccupancyDB/addLotOccupantType.js @@ -5,11 +5,11 @@ export async function addLotOccupantType(lotOccupantTypeForm, requestSession) { const rightNowMillis = Date.now(); const result = database .prepare(`insert into LotOccupantTypes ( - lotOccupantType, fontAwesomeIconClass, orderNumber, + lotOccupantType, fontAwesomeIconClass, occupantCommentTitle, orderNumber, recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis) - values (?, ?, ?, ?, ?, ?, ?)`) - .run(lotOccupantTypeForm.lotOccupantType, lotOccupantTypeForm.fontAwesomeIconClass ?? '', lotOccupantTypeForm.orderNumber ?? -1, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis); + values (?, ?, ?, ?, ?, ?, ?, ?)`) + .run(lotOccupantTypeForm.lotOccupantType, lotOccupantTypeForm.fontAwesomeIconClass ?? '', lotOccupantTypeForm.occupantCommentTitle ?? '', lotOccupantTypeForm.orderNumber ?? -1, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis); database.release(); clearCacheByTableName('LotOccupantTypes'); return result.lastInsertRowid; diff --git a/helpers/lotOccupancyDB/addLotOccupantType.ts b/helpers/lotOccupancyDB/addLotOccupantType.ts index 534eb265..d208a82d 100644 --- a/helpers/lotOccupancyDB/addLotOccupantType.ts +++ b/helpers/lotOccupancyDB/addLotOccupantType.ts @@ -6,6 +6,7 @@ import { clearCacheByTableName } from '../functions.cache.js' interface AddLotOccupantTypeForm { lotOccupantType: string fontAwesomeIconClass?: string + occupantCommentTitle?: string orderNumber?: number } @@ -20,14 +21,15 @@ export async function addLotOccupantType( const result = database .prepare( `insert into LotOccupantTypes ( - lotOccupantType, fontAwesomeIconClass, orderNumber, + lotOccupantType, fontAwesomeIconClass, occupantCommentTitle, orderNumber, recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis) - values (?, ?, ?, ?, ?, ?, ?)` + values (?, ?, ?, ?, ?, ?, ?, ?)` ) .run( lotOccupantTypeForm.lotOccupantType, lotOccupantTypeForm.fontAwesomeIconClass ?? '', + lotOccupantTypeForm.occupantCommentTitle ?? '', lotOccupantTypeForm.orderNumber ?? -1, requestSession.user!.userName, rightNowMillis, diff --git a/helpers/lotOccupancyDB/getLotOccupancyOccupants.js b/helpers/lotOccupancyDB/getLotOccupancyOccupants.js index b188f84f..34db4de1 100644 --- a/helpers/lotOccupancyDB/getLotOccupancyOccupants.js +++ b/helpers/lotOccupancyDB/getLotOccupancyOccupants.js @@ -9,7 +9,7 @@ export async function getLotOccupancyOccupants(lotOccupancyId, connectedDatabase o.occupantPhoneNumber, o.occupantEmailAddress, o.occupantComment, o.lotOccupantTypeId, t.lotOccupantType, - t.fontAwesomeIconClass + t.fontAwesomeIconClass, t.occupantCommentTitle from LotOccupancyOccupants o left join LotOccupantTypes t on o.lotOccupantTypeId = t.lotOccupantTypeId where o.recordDelete_timeMillis is null diff --git a/helpers/lotOccupancyDB/getLotOccupancyOccupants.ts b/helpers/lotOccupancyDB/getLotOccupancyOccupants.ts index 44bb3b03..aa3aae7f 100644 --- a/helpers/lotOccupancyDB/getLotOccupancyOccupants.ts +++ b/helpers/lotOccupancyDB/getLotOccupancyOccupants.ts @@ -18,7 +18,7 @@ export async function getLotOccupancyOccupants( o.occupantPhoneNumber, o.occupantEmailAddress, o.occupantComment, o.lotOccupantTypeId, t.lotOccupantType, - t.fontAwesomeIconClass + t.fontAwesomeIconClass, t.occupantCommentTitle from LotOccupancyOccupants o left join LotOccupantTypes t on o.lotOccupantTypeId = t.lotOccupantTypeId where o.recordDelete_timeMillis is null diff --git a/helpers/lotOccupancyDB/getLotOccupantTypes.js b/helpers/lotOccupancyDB/getLotOccupantTypes.js index fc19aca1..920cecbe 100644 --- a/helpers/lotOccupancyDB/getLotOccupantTypes.js +++ b/helpers/lotOccupancyDB/getLotOccupantTypes.js @@ -3,7 +3,8 @@ import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; export async function getLotOccupantTypes() { const database = await acquireConnection(); const lotOccupantTypes = database - .prepare(`select lotOccupantTypeId, lotOccupantType, fontAwesomeIconClass, orderNumber + .prepare(`select lotOccupantTypeId, lotOccupantType, fontAwesomeIconClass, occupantCommentTitle, + orderNumber from LotOccupantTypes where recordDelete_timeMillis is null order by orderNumber, lotOccupantType`) diff --git a/helpers/lotOccupancyDB/getLotOccupantTypes.ts b/helpers/lotOccupancyDB/getLotOccupantTypes.ts index 37afaad8..698764ad 100644 --- a/helpers/lotOccupancyDB/getLotOccupantTypes.ts +++ b/helpers/lotOccupancyDB/getLotOccupantTypes.ts @@ -13,7 +13,8 @@ export async function getLotOccupantTypes(): Promise< const lotOccupantTypes: recordTypes.LotOccupantType[] = database .prepare( - `select lotOccupantTypeId, lotOccupantType, fontAwesomeIconClass, orderNumber + `select lotOccupantTypeId, lotOccupantType, fontAwesomeIconClass, occupantCommentTitle, + orderNumber from LotOccupantTypes where recordDelete_timeMillis is null order by orderNumber, lotOccupantType` diff --git a/helpers/lotOccupancyDB/updateLotOccupantType.d.ts b/helpers/lotOccupancyDB/updateLotOccupantType.d.ts index 240831c0..76ed6498 100644 --- a/helpers/lotOccupancyDB/updateLotOccupantType.d.ts +++ b/helpers/lotOccupancyDB/updateLotOccupantType.d.ts @@ -2,7 +2,8 @@ import type * as recordTypes from '../../types/recordTypes'; interface UpdateLotOccupantTypeForm { lotOccupantTypeId: number | string; lotOccupantType: string; - fontAwesomeIconClass?: string; + fontAwesomeIconClass: string; + occupantCommentTitle: string; } export declare function updateLotOccupantType(lotOccupantTypeForm: UpdateLotOccupantTypeForm, requestSession: recordTypes.PartialSession): Promise; export default updateLotOccupantType; diff --git a/helpers/lotOccupancyDB/updateLotOccupantType.js b/helpers/lotOccupancyDB/updateLotOccupantType.js index fa74e8e8..497fd1dc 100644 --- a/helpers/lotOccupancyDB/updateLotOccupantType.js +++ b/helpers/lotOccupancyDB/updateLotOccupantType.js @@ -7,11 +7,12 @@ export async function updateLotOccupantType(lotOccupantTypeForm, requestSession) .prepare(`update LotOccupantTypes set lotOccupantType = ?, fontAwesomeIconClass = ?, + occupantCommentTitle = ?, recordUpdate_userName = ?, recordUpdate_timeMillis = ? where lotOccupantTypeId = ? and recordDelete_timeMillis is null`) - .run(lotOccupantTypeForm.lotOccupantType, lotOccupantTypeForm.fontAwesomeIconClass ?? '', requestSession.user.userName, rightNowMillis, lotOccupantTypeForm.lotOccupantTypeId); + .run(lotOccupantTypeForm.lotOccupantType, lotOccupantTypeForm.fontAwesomeIconClass, lotOccupantTypeForm.occupantCommentTitle, requestSession.user.userName, rightNowMillis, lotOccupantTypeForm.lotOccupantTypeId); database.release(); clearCacheByTableName('LotOccupantTypes'); return result.changes > 0; diff --git a/helpers/lotOccupancyDB/updateLotOccupantType.ts b/helpers/lotOccupancyDB/updateLotOccupantType.ts index 866c9805..a47c0b70 100644 --- a/helpers/lotOccupancyDB/updateLotOccupantType.ts +++ b/helpers/lotOccupancyDB/updateLotOccupantType.ts @@ -7,7 +7,8 @@ import type * as recordTypes from '../../types/recordTypes' interface UpdateLotOccupantTypeForm { lotOccupantTypeId: number | string lotOccupantType: string - fontAwesomeIconClass?: string + fontAwesomeIconClass: string + occupantCommentTitle: string } export async function updateLotOccupantType( @@ -23,6 +24,7 @@ export async function updateLotOccupantType( `update LotOccupantTypes set lotOccupantType = ?, fontAwesomeIconClass = ?, + occupantCommentTitle = ?, recordUpdate_userName = ?, recordUpdate_timeMillis = ? where lotOccupantTypeId = ? @@ -30,7 +32,8 @@ export async function updateLotOccupantType( ) .run( lotOccupantTypeForm.lotOccupantType, - lotOccupantTypeForm.fontAwesomeIconClass ?? '', + lotOccupantTypeForm.fontAwesomeIconClass, + lotOccupantTypeForm.occupantCommentTitle, requestSession.user!.userName, rightNowMillis, lotOccupantTypeForm.lotOccupantTypeId diff --git a/public-typescript/adminTables.js b/public-typescript/adminTables.js index 2c74ed67..53439b81 100644 --- a/public-typescript/adminTables.js +++ b/public-typescript/adminTables.js @@ -616,8 +616,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); const containerElement = document.querySelector('#container--lotOccupantTypes'); if (lotOccupantTypes.length === 0) { containerElement.innerHTML = ` -

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

- `; +
+

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

+
+ `; return; } containerElement.innerHTML = ''; @@ -663,6 +665,21 @@ Object.defineProperty(exports, "__esModule", { value: true }); '">' + '') + '' + + '' + + ('
' + + '
' + + '' + + '
' + + '
') + + '' + ('' + ('
') + ' -

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

- `; +
+

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

+
+ `; return; } containerElement.innerHTML = ''; @@ -142,6 +144,21 @@ function renderLotOccupantTypes() { '">' + '') + '' + + '' + + ('
' + + '
' + + '' + + '
' + + '
') + + '' + ('' + ('') + ' -

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

- ` +
+

There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.

+
+ ` return } @@ -197,6 +199,21 @@ function renderLotOccupantTypes(): void { '">' + '') + '' + + '' + + ('
' + + '
' + + '' + + '
' + + '
') + + '' + ('' + ('') + ' { + onshow(modalElement) { + var _a; los.populateAliases(modalElement); modalElement.querySelector('#lotOccupancyOccupantEdit--lotOccupancyId').value = lotOccupancyId; modalElement.querySelector('#lotOccupancyOccupantEdit--lotOccupantIndex').value = lotOccupantIndex.toString(); @@ -497,6 +498,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const optionElement = document.createElement('option'); optionElement.value = lotOccupantType.lotOccupantTypeId.toString(); optionElement.textContent = lotOccupantType.lotOccupantType; + optionElement.dataset.occupantCommentTitle = + lotOccupantType.occupantCommentTitle; if (lotOccupantType.lotOccupantTypeId === lotOccupancyOccupant.lotOccupantTypeId) { optionElement.selected = true; @@ -507,8 +510,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (!lotOccupantTypeSelected) { const optionElement = document.createElement('option'); optionElement.value = lotOccupancyOccupant.lotOccupantTypeId.toString(); - optionElement.textContent = - lotOccupancyOccupant.lotOccupantType; + optionElement.textContent = lotOccupancyOccupant.lotOccupantType; + optionElement.dataset.occupantCommentTitle = + lotOccupancyOccupant.occupantCommentTitle; optionElement.selected = true; lotOccupantTypeSelectElement.append(optionElement); } @@ -521,16 +525,31 @@ Object.defineProperty(exports, "__esModule", { value: true }); modalElement.querySelector('#lotOccupancyOccupantEdit--occupantPostalCode').value = lotOccupancyOccupant.occupantPostalCode; modalElement.querySelector('#lotOccupancyOccupantEdit--occupantPhoneNumber').value = lotOccupancyOccupant.occupantPhoneNumber; modalElement.querySelector('#lotOccupancyOccupantEdit--occupantEmailAddress').value = lotOccupancyOccupant.occupantEmailAddress; + modalElement.querySelector('#lotOccupancyOccupantEdit--occupantCommentTitle').textContent = + ((_a = lotOccupancyOccupant.occupantCommentTitle) !== null && _a !== void 0 ? _a : '') === '' + ? 'Comment' + : lotOccupancyOccupant.occupantCommentTitle; modalElement.querySelector('#lotOccupancyOccupantEdit--occupantComment').value = lotOccupancyOccupant.occupantComment; }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); - modalElement.querySelector('#lotOccupancyOccupantEdit--lotOccupantTypeId').focus(); + const lotOccupantTypeIdElement = modalElement.querySelector('#lotOccupancyOccupantEdit--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('#lotOccupancyOccupantEdit--occupantCommentTitle').textContent = occupantCommentTitle; + }); editFormElement = modalElement.querySelector('form'); editFormElement.addEventListener('submit', editOccupant); editCloseModalFunction = closeModalFunction; }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); @@ -567,7 +586,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderLotOccupancyOccupants() { - var _a, _b, _c, _d, _e, _f, _g, _h; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; const occupantsContainer = document.querySelector('#container--lotOccupancyOccupants'); cityssm.clearElement(occupantsContainer); if (lotOccupancyOccupants.length === 0) { @@ -631,7 +650,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); : cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress)) + '') + ('' + - cityssm.escapeHTML(lotOccupancyOccupant.occupantComment) + + '' + + cityssm.escapeHTML((_k = lotOccupancyOccupant.occupantComment) !== null && _k !== void 0 ? _k : '') + + '' + '') + ('' + '
' + @@ -773,7 +794,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } cityssm.openHtmlModal('lotOccupancy-addOccupant', { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupancyId').value = lotOccupancyId; const lotOccupantTypeSelectElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId'); @@ -782,6 +803,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); 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)); } @@ -792,7 +815,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); onshown: (modalElement, closeModalFunction) => { bulmaJS.toggleHtmlClipped(); bulmaJS.init(modalElement); - modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId').focus(); + 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'); diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.js b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.js index 0d1f2c98..45c6fb5f 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.js @@ -29,7 +29,8 @@ function openEditLotOccupancyOccupant(clickEvent) { }); } cityssm.openHtmlModal('lotOccupancy-editOccupant', { - onshow: (modalElement) => { + onshow(modalElement) { + var _a; los.populateAliases(modalElement); modalElement.querySelector('#lotOccupancyOccupantEdit--lotOccupancyId').value = lotOccupancyId; modalElement.querySelector('#lotOccupancyOccupantEdit--lotOccupantIndex').value = lotOccupantIndex.toString(); @@ -39,6 +40,8 @@ function openEditLotOccupancyOccupant(clickEvent) { const optionElement = document.createElement('option'); optionElement.value = lotOccupantType.lotOccupantTypeId.toString(); optionElement.textContent = lotOccupantType.lotOccupantType; + optionElement.dataset.occupantCommentTitle = + lotOccupantType.occupantCommentTitle; if (lotOccupantType.lotOccupantTypeId === lotOccupancyOccupant.lotOccupantTypeId) { optionElement.selected = true; @@ -49,8 +52,9 @@ function openEditLotOccupancyOccupant(clickEvent) { if (!lotOccupantTypeSelected) { const optionElement = document.createElement('option'); optionElement.value = lotOccupancyOccupant.lotOccupantTypeId.toString(); - optionElement.textContent = - lotOccupancyOccupant.lotOccupantType; + optionElement.textContent = lotOccupancyOccupant.lotOccupantType; + optionElement.dataset.occupantCommentTitle = + lotOccupancyOccupant.occupantCommentTitle; optionElement.selected = true; lotOccupantTypeSelectElement.append(optionElement); } @@ -63,16 +67,31 @@ function openEditLotOccupancyOccupant(clickEvent) { modalElement.querySelector('#lotOccupancyOccupantEdit--occupantPostalCode').value = lotOccupancyOccupant.occupantPostalCode; modalElement.querySelector('#lotOccupancyOccupantEdit--occupantPhoneNumber').value = lotOccupancyOccupant.occupantPhoneNumber; modalElement.querySelector('#lotOccupancyOccupantEdit--occupantEmailAddress').value = lotOccupancyOccupant.occupantEmailAddress; + modalElement.querySelector('#lotOccupancyOccupantEdit--occupantCommentTitle').textContent = + ((_a = lotOccupancyOccupant.occupantCommentTitle) !== null && _a !== void 0 ? _a : '') === '' + ? 'Comment' + : lotOccupancyOccupant.occupantCommentTitle; modalElement.querySelector('#lotOccupancyOccupantEdit--occupantComment').value = lotOccupancyOccupant.occupantComment; }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); - modalElement.querySelector('#lotOccupancyOccupantEdit--lotOccupantTypeId').focus(); + const lotOccupantTypeIdElement = modalElement.querySelector('#lotOccupancyOccupantEdit--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('#lotOccupancyOccupantEdit--occupantCommentTitle').textContent = occupantCommentTitle; + }); editFormElement = modalElement.querySelector('form'); editFormElement.addEventListener('submit', editOccupant); editCloseModalFunction = closeModalFunction; }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); @@ -109,7 +128,7 @@ function deleteLotOccupancyOccupant(clickEvent) { }); } function renderLotOccupancyOccupants() { - var _a, _b, _c, _d, _e, _f, _g, _h; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; const occupantsContainer = document.querySelector('#container--lotOccupancyOccupants'); cityssm.clearElement(occupantsContainer); if (lotOccupancyOccupants.length === 0) { @@ -173,7 +192,9 @@ function renderLotOccupancyOccupants() { : cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress)) + '') + ('' + - cityssm.escapeHTML(lotOccupancyOccupant.occupantComment) + + '' + + cityssm.escapeHTML((_k = lotOccupancyOccupant.occupantComment) !== null && _k !== void 0 ? _k : '') + + '' + '') + ('' + '
' + @@ -315,7 +336,7 @@ else { }); } cityssm.openHtmlModal('lotOccupancy-addOccupant', { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupancyId').value = lotOccupancyId; const lotOccupantTypeSelectElement = modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId'); @@ -324,6 +345,8 @@ else { 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)); } @@ -334,7 +357,17 @@ else { onshown: (modalElement, closeModalFunction) => { bulmaJS.toggleHtmlClipped(); bulmaJS.init(modalElement); - modalElement.querySelector('#lotOccupancyOccupantAdd--lotOccupantTypeId').focus(); + 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'); diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts index 5fa6ff44..c1109ae3 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts @@ -61,7 +61,7 @@ function openEditLotOccupancyOccupant(clickEvent: Event): void { } cityssm.openHtmlModal('lotOccupancy-editOccupant', { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement) ;( modalElement.querySelector( @@ -84,6 +84,8 @@ function openEditLotOccupancyOccupant(clickEvent: Event): void { const optionElement = document.createElement('option') optionElement.value = lotOccupantType.lotOccupantTypeId.toString() optionElement.textContent = lotOccupantType.lotOccupantType + optionElement.dataset.occupantCommentTitle = + lotOccupantType.occupantCommentTitle if ( lotOccupantType.lotOccupantTypeId === @@ -100,8 +102,9 @@ function openEditLotOccupancyOccupant(clickEvent: Event): void { const optionElement = document.createElement('option') optionElement.value = lotOccupancyOccupant.lotOccupantTypeId!.toString() - optionElement.textContent = - lotOccupancyOccupant.lotOccupantType as string + optionElement.textContent = lotOccupancyOccupant.lotOccupantType! + optionElement.dataset.occupantCommentTitle = + lotOccupancyOccupant.occupantCommentTitle! optionElement.selected = true lotOccupantTypeSelectElement.append(optionElement) @@ -147,26 +150,50 @@ function openEditLotOccupancyOccupant(clickEvent: Event): void { '#lotOccupancyOccupantEdit--occupantEmailAddress' ) as HTMLInputElement ).value = lotOccupancyOccupant.occupantEmailAddress! + ;( + modalElement.querySelector( + '#lotOccupancyOccupantEdit--occupantCommentTitle' + ) as HTMLLabelElement + ).textContent = + (lotOccupancyOccupant.occupantCommentTitle ?? '') === '' + ? 'Comment' + : lotOccupancyOccupant.occupantCommentTitle! ;( modalElement.querySelector( '#lotOccupancyOccupantEdit--occupantComment' ) as HTMLTextAreaElement ).value = lotOccupancyOccupant.occupantComment! }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped() - ;( - modalElement.querySelector( - '#lotOccupancyOccupantEdit--lotOccupantTypeId' - ) as HTMLInputElement - ).focus() + + const lotOccupantTypeIdElement = modalElement.querySelector( + '#lotOccupancyOccupantEdit--lotOccupantTypeId' + ) as HTMLSelectElement + + lotOccupantTypeIdElement.focus() + + lotOccupantTypeIdElement.addEventListener('change', () => { + let occupantCommentTitle = + lotOccupantTypeIdElement.selectedOptions[0].dataset + .occupantCommentTitle ?? '' + if (occupantCommentTitle === '') { + occupantCommentTitle = 'Comment' + } + + ;( + modalElement.querySelector( + '#lotOccupancyOccupantEdit--occupantCommentTitle' + ) as HTMLLabelElement + ).textContent = occupantCommentTitle + }) editFormElement = modalElement.querySelector('form')! editFormElement.addEventListener('submit', editOccupant) editCloseModalFunction = closeModalFunction }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped() } }) @@ -289,7 +316,9 @@ function renderLotOccupancyOccupants(): void { : cityssm.escapeHTML(lotOccupancyOccupant.occupantEmailAddress!)) + '') + ('' + - cityssm.escapeHTML(lotOccupancyOccupant.occupantComment!) + + '' + + cityssm.escapeHTML(lotOccupancyOccupant.occupantComment ?? '') + + '' + '') + ('' + '
' + @@ -489,7 +518,7 @@ if (isCreate) { } cityssm.openHtmlModal('lotOccupancy-addOccupant', { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement) ;( modalElement.querySelector( @@ -509,6 +538,8 @@ if (isCreate) { const optionElement = document.createElement('option') optionElement.value = lotOccupantType.lotOccupantTypeId.toString() optionElement.textContent = lotOccupantType.lotOccupantType + optionElement.dataset.occupantCommentTitle = + lotOccupantType.occupantCommentTitle lotOccupantTypeSelectElement.append(optionElement) @@ -531,11 +562,26 @@ if (isCreate) { onshown: (modalElement, closeModalFunction) => { bulmaJS.toggleHtmlClipped() bulmaJS.init(modalElement) - ;( + + const lotOccupantTypeIdElement = modalElement.querySelector( + '#lotOccupancyOccupantAdd--lotOccupantTypeId' + ) as HTMLSelectElement + + lotOccupantTypeIdElement.focus() + + lotOccupantTypeIdElement.addEventListener('change', () => { + let occupantCommentTitle = + lotOccupantTypeIdElement.selectedOptions[0].dataset + .occupantCommentTitle ?? '' + + if (occupantCommentTitle === '') { + occupantCommentTitle = 'Comment' + } + modalElement.querySelector( - '#lotOccupancyOccupantAdd--lotOccupantTypeId' - ) as HTMLInputElement - ).focus() + '#lotOccupancyOccupantAdd--occupantCommentTitle' + )!.textContent = occupantCommentTitle + }) addFormElement = modalElement.querySelector( '#form--lotOccupancyOccupantAdd' diff --git a/public/html/lotOccupancy-addOccupant.html b/public/html/lotOccupancy-addOccupant.html index 61171856..28868509 100644 --- a/public/html/lotOccupancy-addOccupant.html +++ b/public/html/lotOccupancy-addOccupant.html @@ -98,7 +98,7 @@
- +
diff --git a/public/html/lotOccupancy-editOccupant.html b/public/html/lotOccupancy-editOccupant.html index 23ef4d4f..dfae5b1c 100644 --- a/public/html/lotOccupancy-editOccupant.html +++ b/public/html/lotOccupancy-editOccupant.html @@ -81,7 +81,7 @@
- +
diff --git a/public/javascripts/adminTables.min.js b/public/javascripts/adminTables.min.js index 831df786..09451c98 100644 --- a/public/javascripts/adminTables.min.js +++ b/public/javascripts/adminTables.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los;function t(e){const t=e.currentTarget,s=t.value;t.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML=``}Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.workOrderTypes;function r(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderType",t.currentTarget,e=>{var t;e.success?(s=e.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}delete exports.workOrderTypes;const o=t=>{const r=t.currentTarget.closest("tr"),o=r.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderType",{workOrderTypeId:o},e=>{var t;e.success?(0===(s=e.workOrderTypes).length?n():r.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})};function a(t){const r=t.currentTarget,o=r.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===r.dataset.direction?"doMoveWorkOrderTypeUp":"doMoveWorkOrderTypeDown"),{workOrderTypeId:o,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(s=e.workOrderTypes,n()):bulmaJS.alert({title:"Error Moving Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function n(){var t;const n=document.querySelector("#container--workOrderTypes");if(0!==s.length){n.innerHTML="";for(const l of s){const s=document.createElement("tr");s.dataset.workOrderTypeId=l.workOrderTypeId.toString(),s.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderTypeUp","button--moveWorkOrderTypeDown",!1)+'
',s.querySelector("form").addEventListener("submit",r),s.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",a),s.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),s.querySelector(".button--deleteWorkOrderType").addEventListener("click",o),n.append(s)}}else n.innerHTML='\n

There are no active work order types.

\n '}document.querySelector("#form--addWorkOrderType").addEventListener("submit",t=>{t.preventDefault();const r=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderType",r,e=>{var t;e.success?(s=e.workOrderTypes,n(),r.reset(),r.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}),n(),Object.defineProperty(exports,"__esModule",{value:!0});let l=exports.workOrderMilestoneTypes;function d(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{var t;e.success?(l=e.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function c(t){const s=t.currentTarget.closest("tr"),r=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:r},e=>{var t;e.success?(0===(l=e.workOrderMilestoneTypes).length?u():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function i(t){const s=t.currentTarget,r=s.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveWorkOrderMilestoneTypeUp":"doMoveWorkOrderMilestoneTypeDown"),{workOrderMilestoneTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(l=e.workOrderMilestoneTypes,u()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function u(){const t=document.querySelector("#container--workOrderMilestoneTypes");if(0!==l.length){t.innerHTML="";for(const s of l){const r=document.createElement("tr");r.dataset.workOrderMilestoneTypeId=s.workOrderMilestoneTypeId.toString(),r.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderMilestoneTypeUp","button--moveWorkOrderMilestoneTypeDown",!1)+'
',r.querySelector("form").addEventListener("submit",d),r.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),r.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",i),r.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",c),t.append(r)}}else t.innerHTML='\n

There are no active work order milestone types.

\n '}delete exports.workOrderMilestoneTypes,document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderMilestoneType",s,e=>{var t;e.success?(l=e.workOrderMilestoneTypes,u(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}),u(),Object.defineProperty(exports,"__esModule",{value:!0});let p=exports.lotStatuses;function m(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotStatus",t.currentTarget,t=>{var s;t.success?(p=t.lotStatuses,bulmaJS.alert({message:e.escapedAliases.Lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+e.escapedAliases.Lot+" Status",message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function y(t){const s=t.currentTarget.closest("tr"),r=s.dataset.lotStatusId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} Status`,message:`Are you sure you want to delete this status?
\n Note that no ${e.escapedAliases.lot} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotStatus",{lotStatusId:r},t=>{var r;t.success?(0===(p=t.lotStatuses).length?T():s.remove(),bulmaJS.alert({message:e.escapedAliases.Lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} Status`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}}})}function v(t){const s=t.currentTarget,r=s.closest("tr").dataset.lotStatusId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotStatusUp":"doMoveLotStatusDown"),{lotStatusId:r,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;t.success?(p=t.lotStatuses,T()):bulmaJS.alert({title:"Error Moving "+e.escapedAliases.Lot+" Status",message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function T(){const t=document.querySelector("#container--lotStatuses");if(0!==p.length){t.innerHTML="";for(const s of p){const r=document.createElement("tr");r.dataset.lotStatusId=s.lotStatusId.toString(),r.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp","button--moveLotStatusDown",!1)+'
',r.querySelector("form").addEventListener("submit",m),r.querySelector(".button--moveLotStatusUp").addEventListener("click",v),r.querySelector(".button--moveLotStatusDown").addEventListener("click",v),r.querySelector(".button--deleteLotStatus").addEventListener("click",y),t.append(r)}}else t.innerHTML=`\n

There are no active ${e.escapedAliases.lot} statuses.

\n `}delete exports.lotStatuses,document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotStatus",s,t=>{var r;t.success?(p=t.lotStatuses,T(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Status`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),T(),Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.lotOccupantTypes;function O(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotOccupantType",t.currentTarget,t=>{var s;t.success?(g=t.lotOccupantTypes,bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Updating ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function f(t){const s=t.currentTarget.closest("tr"),r=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.lot} ${e.escapedAliases.occupant} type?
\n Note that no ${e.escapedAliases.lot} ${e.escapedAliases.occupants} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:r},t=>{var r;t.success?(0===(g=t.lotOccupantTypes).length?b():s.remove(),bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Deleted Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}}})}function S(t){const s=t.currentTarget,r=s.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotOccupantTypeUp":"doMoveLotOccupantTypeDown"),{lotOccupantTypeId:r,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;t.success?(g=t.lotOccupantTypes,b()):bulmaJS.alert({title:`Error Moving ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function b(){const s=document.querySelector("#container--lotOccupantTypes");if(0!==g.length){s.innerHTML="";for(const r of g){const o=document.createElement("tr");o.dataset.lotOccupantTypeId=r.lotOccupantTypeId.toString();const a="form--lotOccupantType-"+r.lotOccupantTypeId.toString();o.innerHTML='
fa-
'+e.getMoveUpDownButtonFieldHTML("button--moveLotOccupantTypeUp","button--moveLotOccupantTypeDown",!1)+'
';const n=o.querySelector("input[name='fontAwesomeIconClass']");n.addEventListener("keyup",t),n.addEventListener("change",t),o.querySelector("form").addEventListener("submit",O),o.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",S),o.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",S),o.querySelector(".button--deleteLotOccupantType").addEventListener("click",f),s.append(o)}}else s.innerHTML=`\n

There are no active ${e.escapedAliases.lot} ${e.escapedAliases.occupant} types.

\n `}delete exports.lotOccupantTypes,document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotOccupantType",s,t=>{var r;t.success?(g=t.lotOccupantTypes,b(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),b()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los;function t(e){const t=e.currentTarget,s=t.value;t.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML=``}Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.workOrderTypes;function r(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderType",t.currentTarget,e=>{var t;e.success?(s=e.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}delete exports.workOrderTypes;const o=t=>{const r=t.currentTarget.closest("tr"),o=r.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderType",{workOrderTypeId:o},e=>{var t;e.success?(0===(s=e.workOrderTypes).length?n():r.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})};function a(t){const r=t.currentTarget,o=r.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===r.dataset.direction?"doMoveWorkOrderTypeUp":"doMoveWorkOrderTypeDown"),{workOrderTypeId:o,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(s=e.workOrderTypes,n()):bulmaJS.alert({title:"Error Moving Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function n(){var t;const n=document.querySelector("#container--workOrderTypes");if(0!==s.length){n.innerHTML="";for(const l of s){const s=document.createElement("tr");s.dataset.workOrderTypeId=l.workOrderTypeId.toString(),s.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderTypeUp","button--moveWorkOrderTypeDown",!1)+'
',s.querySelector("form").addEventListener("submit",r),s.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",a),s.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),s.querySelector(".button--deleteWorkOrderType").addEventListener("click",o),n.append(s)}}else n.innerHTML='\n

There are no active work order types.

\n '}document.querySelector("#form--addWorkOrderType").addEventListener("submit",t=>{t.preventDefault();const r=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderType",r,e=>{var t;e.success?(s=e.workOrderTypes,n(),r.reset(),r.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}),n(),Object.defineProperty(exports,"__esModule",{value:!0});let l=exports.workOrderMilestoneTypes;function c(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{var t;e.success?(l=e.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function d(t){const s=t.currentTarget.closest("tr"),r=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:r},e=>{var t;e.success?(0===(l=e.workOrderMilestoneTypes).length?u():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function i(t){const s=t.currentTarget,r=s.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveWorkOrderMilestoneTypeUp":"doMoveWorkOrderMilestoneTypeDown"),{workOrderMilestoneTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(l=e.workOrderMilestoneTypes,u()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function u(){const t=document.querySelector("#container--workOrderMilestoneTypes");if(0!==l.length){t.innerHTML="";for(const s of l){const r=document.createElement("tr");r.dataset.workOrderMilestoneTypeId=s.workOrderMilestoneTypeId.toString(),r.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderMilestoneTypeUp","button--moveWorkOrderMilestoneTypeDown",!1)+'
',r.querySelector("form").addEventListener("submit",c),r.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),r.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",i),r.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",d),t.append(r)}}else t.innerHTML='\n

There are no active work order milestone types.

\n '}delete exports.workOrderMilestoneTypes,document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderMilestoneType",s,e=>{var t;e.success?(l=e.workOrderMilestoneTypes,u(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}),u(),Object.defineProperty(exports,"__esModule",{value:!0});let p=exports.lotStatuses;function m(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotStatus",t.currentTarget,t=>{var s;t.success?(p=t.lotStatuses,bulmaJS.alert({message:e.escapedAliases.Lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+e.escapedAliases.Lot+" Status",message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function y(t){const s=t.currentTarget.closest("tr"),r=s.dataset.lotStatusId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} Status`,message:`Are you sure you want to delete this status?
\n Note that no ${e.escapedAliases.lot} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotStatus",{lotStatusId:r},t=>{var r;t.success?(0===(p=t.lotStatuses).length?T():s.remove(),bulmaJS.alert({message:e.escapedAliases.Lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} Status`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}}})}function v(t){const s=t.currentTarget,r=s.closest("tr").dataset.lotStatusId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotStatusUp":"doMoveLotStatusDown"),{lotStatusId:r,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;t.success?(p=t.lotStatuses,T()):bulmaJS.alert({title:"Error Moving "+e.escapedAliases.Lot+" Status",message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function T(){const t=document.querySelector("#container--lotStatuses");if(0!==p.length){t.innerHTML="";for(const s of p){const r=document.createElement("tr");r.dataset.lotStatusId=s.lotStatusId.toString(),r.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp","button--moveLotStatusDown",!1)+'
',r.querySelector("form").addEventListener("submit",m),r.querySelector(".button--moveLotStatusUp").addEventListener("click",v),r.querySelector(".button--moveLotStatusDown").addEventListener("click",v),r.querySelector(".button--deleteLotStatus").addEventListener("click",y),t.append(r)}}else t.innerHTML=`\n

There are no active ${e.escapedAliases.lot} statuses.

\n `}delete exports.lotStatuses,document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotStatus",s,t=>{var r;t.success?(p=t.lotStatuses,T(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Status`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),T(),Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.lotOccupantTypes;function f(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotOccupantType",t.currentTarget,t=>{var s;t.success?(g=t.lotOccupantTypes,bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Updating ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function O(t){const s=t.currentTarget.closest("tr"),r=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.lot} ${e.escapedAliases.occupant} type?
\n Note that no ${e.escapedAliases.lot} ${e.escapedAliases.occupants} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:r},t=>{var r;t.success?(0===(g=t.lotOccupantTypes).length?b():s.remove(),bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Deleted Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}}})}function S(t){const s=t.currentTarget,r=s.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotOccupantTypeUp":"doMoveLotOccupantTypeDown"),{lotOccupantTypeId:r,moveToEnd:t.shiftKey?"1":"0"},t=>{var s;t.success?(g=t.lotOccupantTypes,b()):bulmaJS.alert({title:`Error Moving ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(s=t.errorMessage)&&void 0!==s?s:"",contextualColorName:"danger"})})}function b(){const s=document.querySelector("#container--lotOccupantTypes");if(0!==g.length){s.innerHTML="";for(const r of g){const o=document.createElement("tr");o.dataset.lotOccupantTypeId=r.lotOccupantTypeId.toString();const a="form--lotOccupantType-"+r.lotOccupantTypeId.toString();o.innerHTML='
fa-
'+e.getMoveUpDownButtonFieldHTML("button--moveLotOccupantTypeUp","button--moveLotOccupantTypeDown",!1)+'
';const n=o.querySelector("input[name='fontAwesomeIconClass']");n.addEventListener("keyup",t),n.addEventListener("change",t),o.querySelector("form").addEventListener("submit",f),o.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",S),o.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",S),o.querySelector(".button--deleteLotOccupantType").addEventListener("click",O),s.append(o)}}else s.innerHTML=`\n
\n

There are no active ${e.escapedAliases.lot} ${e.escapedAliases.occupant} types.

\n
\n `}delete exports.lotOccupantTypes,document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotOccupantType",s,t=>{var r;t.success?(g=t.lotOccupantTypes,b(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:null!==(r=t.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}),b()})(); \ No newline at end of file diff --git a/public/javascripts/lotOccupancyEdit.min.js b/public/javascripts/lotOccupancyEdit.min.js index 91430de7..d6c55d6d 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=>{n.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=a,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=t.toString();const o=e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId");let s=!1;for(const e of exports.lotOccupantTypes){const t=document.createElement("option");t.value=e.lotOccupantTypeId.toString(),t.textContent=e.lotOccupantType,e.lotOccupantTypeId===c.lotOccupantTypeId&&(t.selected=!0,s=!0),o.append(t)}if(!s){const e=document.createElement("option");e.value=c.lotOccupantTypeId.toString(),e.textContent=c.lotOccupantType,e.selected=!0,o.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--occupantComment").value=c.occupantComment},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyOccupantEdit--lotOccupantTypeId").focus(),(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;const u=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(u),0===p.length)return void(u.innerHTML=`
\n

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

\n
`);const i=document.createElement("table");i.className="table is-fullwidth is-striped is-hoverable",i.innerHTML=`\n ${n.escapedAliases.Occupant}\n Address\n Other Contact\n Comment\n Options\n \n `;for(const n of p){const u=document.createElement("tr");u.dataset.lotOccupantIndex=n.lotOccupantIndex.toString(),u.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(n.occupantComment)+'
',u.querySelector(".button--edit").addEventListener("click",m),u.querySelector(".button--delete").addEventListener("click",y),i.querySelector("tbody").append(u)}u.append(i)}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,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),n.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(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,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 diff --git a/types/recordTypes.d.ts b/types/recordTypes.d.ts index e42fd44b..29151544 100644 --- a/types/recordTypes.d.ts +++ b/types/recordTypes.d.ts @@ -102,6 +102,7 @@ export interface LotOccupantType extends Record { lotOccupantTypeId: number; lotOccupantType: string; fontAwesomeIconClass: string; + occupantCommentTitle: string; orderNumber?: number; } export interface FeeCategory extends Record { @@ -151,6 +152,7 @@ export interface LotOccupancyOccupant extends Record { lotOccupantTypeId?: number; lotOccupantType?: string; fontAwesomeIconClass?: string; + occupantCommentTitle?: string; occupantName?: string; occupantAddress1?: string; occupantAddress2?: string; diff --git a/types/recordTypes.ts b/types/recordTypes.ts index 2365e51e..b94771ab 100644 --- a/types/recordTypes.ts +++ b/types/recordTypes.ts @@ -134,6 +134,7 @@ export interface LotOccupantType extends Record { lotOccupantTypeId: number lotOccupantType: string fontAwesomeIconClass: string + occupantCommentTitle: string orderNumber?: number } @@ -199,6 +200,7 @@ export interface LotOccupancyOccupant extends Record { lotOccupantTypeId?: number lotOccupantType?: string fontAwesomeIconClass?: string + occupantCommentTitle?: string occupantName?: string occupantAddress1?: string diff --git a/views/admin-tables.ejs b/views/admin-tables.ejs index 6832c88b..d7b7eecd 100644 --- a/views/admin-tables.ejs +++ b/views/admin-tables.ejs @@ -2,7 +2,7 @@
- <%- include('_menu-admin'); -%> + <%- include('_menu-admin'); -%>

- Config Table Management + Config Table Management

@@ -150,36 +150,38 @@

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

- - - - - - + + + + + + + - - - + + +
<%= configFunctions.getProperty("aliases.lot") %> <%= configFunctions.getProperty("aliases.occupant") %> Type - Icon Class - - - -  Options
<%= configFunctions.getProperty("aliases.lot") %> <%= configFunctions.getProperty("aliases.occupant") %> Type + Icon Class + + + + Comment Title Options
-
- -
-
- <%= configFunctions.getProperty("aliases.occupant") %> Type" required /> -
-
- -
-
-
-
+
+ + +
+
+ <%= configFunctions.getProperty("aliases.occupant") %> Type" required /> +
+
+ +
+
+
+
diff --git a/views/lotOccupancy-view.ejs b/views/lotOccupancy-view.ejs index ee5fe03e..84eced8a 100644 --- a/views/lotOccupancy-view.ejs +++ b/views/lotOccupancy-view.ejs @@ -1,25 +1,25 @@ <%- include('_header'); -%>

@@ -85,95 +85,95 @@

-
-
-
-

- <%= configFunctions.getProperty("aliases.occupancy") %> Type
- <%= lotOccupancy.occupancyType %> +

+
+
+

+ <%= configFunctions.getProperty("aliases.occupancy") %> Type
+ <%= lotOccupancy.occupancyType %> +

+
+
+

+ <%= configFunctions.getProperty("aliases.lot") %>
+ <% if (lotOccupancy.lotId) { %> + <%= lotOccupancy.lotName %> + <% } else { %> + (No <%= configFunctions.getProperty("aliases.lot") %>) + <% } %>

-
-
-

- <%= configFunctions.getProperty("aliases.lot") %>
- <% if (lotOccupancy.lotId) { %> - <%= lotOccupancy.lotName %> - <% } else { %> - (No <%= configFunctions.getProperty("aliases.lot") %>) - <% } %> -

-

- <%= configFunctions.getProperty("aliases.map") %>
- <% if (lotOccupancy.mapId) { %> - <%= lotOccupancy.mapName %> - <% } else { %> - (No <%= configFunctions.getProperty("aliases.map") %>) - <% } %> -

-
-
-

- <%= configFunctions.getProperty("aliases.occupancyStartDate") %>
- <%= lotOccupancy.occupancyStartDateString %> -

-

- End Date
- <% if (lotOccupancy.occupancyEndDateString === "") { %> - (No End Date) - <% } else { %> - <%= lotOccupancy.occupancyEndDateString %> - <% } %> -

-
- <% if (lotOccupancy.lotOccupancyFields.length > 0) { %> -
- <% for (const lotOccupancyField of lotOccupancy.lotOccupancyFields) { %> -

- <%= lotOccupancyField.occupancyTypeField %>
- <% if (lotOccupancyField.lotOccupancyFieldValue) { %> - <%= lotOccupancyField.lotOccupancyFieldValue %> - <% } else { %> - (No Value) - <% } %> -

- <% } %> -
- <% } %> -
-
+

+ <%= configFunctions.getProperty("aliases.map") %>
+ <% if (lotOccupancy.mapId) { %> + <%= lotOccupancy.mapName %> + <% } else { %> + (No <%= configFunctions.getProperty("aliases.map") %>) + <% } %> +

+
+
+

+ <%= configFunctions.getProperty("aliases.occupancyStartDate") %>
+ <%= lotOccupancy.occupancyStartDateString %> +

+

+ End Date
+ <% if (lotOccupancy.occupancyEndDateString === "") { %> + (No End Date) + <% } else { %> + <%= lotOccupancy.occupancyEndDateString %> + <% } %> +

+
+ <% if (lotOccupancy.lotOccupancyFields.length > 0) { %> +
+ <% for (const lotOccupancyField of lotOccupancy.lotOccupancyFields) { %> +

+ <%= lotOccupancyField.occupancyTypeField %>
+ <% if (lotOccupancyField.lotOccupancyFieldValue) { %> + <%= lotOccupancyField.lotOccupancyFieldValue %> + <% } else { %> + (No Value) + <% } %> +

+ <% } %> +
+ <% } %> +
+

- <%= configFunctions.getProperty("aliases.occupants") %> + <%= configFunctions.getProperty("aliases.occupants") %>

<% if (lotOccupancy.lotOccupancyOccupants.length === 0) { %>
-

- There are no <%= configFunctions.getProperty("aliases.occupants").toLowerCase() %> - associated with this record. -

+

+ There are no <%= configFunctions.getProperty("aliases.occupants").toLowerCase() %> + associated with this record. +

<% } else { %> - - - - - - + + + + + + <% for (const lotOccupancyOccupant of lotOccupancy.lotOccupancyOccupants) { %> <% } %>
<%= configFunctions.getProperty("aliases.occupant") %>AddressOther ContactComment
<%= configFunctions.getProperty("aliases.occupant") %>AddressOther ContactComment
- <%= lotOccupancyOccupant.occupantName %>
- - - <%= lotOccupancyOccupant.lotOccupantType %> - + <%= lotOccupancyOccupant.occupantName %>
+ + + <%= lotOccupancyOccupant.lotOccupantType %> +
<% if (lotOccupancyOccupant.occupantAddress1) { %> @@ -195,7 +195,9 @@ <%= lotOccupancyOccupant.occupantEmailAddress %> + <%= lotOccupancyOccupant.occupantComment %> +