From b63f8a3a47162402c70e6d1d2365664198f7e849 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Thu, 12 Jan 2023 14:41:11 -0500 Subject: [PATCH] linting --- helpers/functions.cache.js | 16 +-- helpers/functions.cache.ts | 16 +-- helpers/functions.config.js | 2 +- helpers/functions.config.ts | 4 +- helpers/functions.print.js | 5 +- helpers/functions.print.ts | 8 +- public-typescript/lotOccupancyEdit.js | 113 +++++++++--------- .../lotOccupancyEditOccupants.js | 113 +++++++++--------- .../lotOccupancyEditOccupants.ts | 111 ++++++++--------- public-typescript/workOrderEdit.js | 74 ++++++------ .../workOrderEdit/workOrderEdit.js | 74 ++++++------ .../workOrderEdit/workOrderEdit.ts | 90 +++++++------- .../workOrderMilestoneCalendar.js | 15 +-- .../workOrderMilestoneCalendar.ts | 22 ++-- public/javascripts/lotOccupancyEdit.min.js | 2 +- public/javascripts/workOrderEdit.min.js | 2 +- .../workOrderMilestoneCalendar.min.js | 2 +- views/print/pdf/style.css | 100 ++++++++-------- 18 files changed, 373 insertions(+), 396 deletions(-) diff --git a/helpers/functions.cache.js b/helpers/functions.cache.js index a310f942..918ecfa3 100644 --- a/helpers/functions.cache.js +++ b/helpers/functions.cache.js @@ -8,7 +8,7 @@ import { getWorkOrderTypes as getWorkOrderTypesFromDatabase } from './lotOccupan import { getWorkOrderMilestoneTypes as getWorkOrderMilestoneTypesFromDatabase } from './lotOccupancyDB/getWorkOrderMilestoneTypes.js'; let lotOccupantTypes; export function getLotOccupantTypes() { - if (!lotOccupantTypes) { + if (lotOccupantTypes === undefined) { lotOccupantTypes = getLotOccupantTypesFromDatabase(); } return lotOccupantTypes; @@ -32,7 +32,7 @@ function clearLotOccupantTypesCache() { } let lotStatuses; export function getLotStatuses() { - if (!lotStatuses) { + if (lotStatuses === undefined) { lotStatuses = getLotStatusesFromDatabase(); } return lotStatuses; @@ -55,7 +55,7 @@ function clearLotStatusesCache() { } let lotTypes; export function getLotTypes() { - if (!lotTypes) { + if (lotTypes === undefined) { lotTypes = getLotTypesFromDatabase(); } return lotTypes; @@ -79,13 +79,13 @@ function clearLotTypesCache() { let occupancyTypes; let allOccupancyTypeFields; export function getOccupancyTypes() { - if (!occupancyTypes) { + if (occupancyTypes === undefined) { occupancyTypes = getOccupancyTypesFromDatabase(); } return occupancyTypes; } export function getAllOccupancyTypeFields() { - if (!allOccupancyTypeFields) { + if (allOccupancyTypeFields === undefined) { allOccupancyTypeFields = getOccupancyTypeFieldsFromDatabase(); } return allOccupancyTypeFields; @@ -106,7 +106,7 @@ export function getOccupancyTypeByOccupancyType(occupancyTypeString) { } export function getOccupancyTypePrintsById(occupancyTypeId) { const occupancyType = getOccupancyTypeById(occupancyTypeId); - if (!occupancyType || + if (occupancyType === undefined || (occupancyType.occupancyTypePrints ?? []).length === 0) { return []; } @@ -121,7 +121,7 @@ function clearOccupancyTypesCache() { } let workOrderTypes; export function getWorkOrderTypes() { - if (!workOrderTypes) { + if (workOrderTypes === undefined) { workOrderTypes = getWorkOrderTypesFromDatabase(); } return workOrderTypes; @@ -137,7 +137,7 @@ function clearWorkOrderTypesCache() { } let workOrderMilestoneTypes; export function getWorkOrderMilestoneTypes() { - if (!workOrderMilestoneTypes) { + if (workOrderMilestoneTypes === undefined) { workOrderMilestoneTypes = getWorkOrderMilestoneTypesFromDatabase(); } return workOrderMilestoneTypes; diff --git a/helpers/functions.cache.ts b/helpers/functions.cache.ts index 3302fb01..63e98a7f 100644 --- a/helpers/functions.cache.ts +++ b/helpers/functions.cache.ts @@ -22,7 +22,7 @@ import type * as recordTypes from '../types/recordTypes' let lotOccupantTypes: recordTypes.LotOccupantType[] | undefined export function getLotOccupantTypes(): recordTypes.LotOccupantType[] { - if (!lotOccupantTypes) { + if (lotOccupantTypes === undefined) { lotOccupantTypes = getLotOccupantTypesFromDatabase() } @@ -65,7 +65,7 @@ function clearLotOccupantTypesCache(): void { let lotStatuses: recordTypes.LotStatus[] | undefined export function getLotStatuses(): recordTypes.LotStatus[] { - if (!lotStatuses) { + if (lotStatuses === undefined) { lotStatuses = getLotStatusesFromDatabase() } @@ -105,7 +105,7 @@ function clearLotStatusesCache(): void { let lotTypes: recordTypes.LotType[] | undefined export function getLotTypes(): recordTypes.LotType[] { - if (!lotTypes) { + if (lotTypes === undefined) { lotTypes = getLotTypesFromDatabase() } @@ -146,7 +146,7 @@ let occupancyTypes: recordTypes.OccupancyType[] | undefined let allOccupancyTypeFields: recordTypes.OccupancyTypeField[] | undefined export function getOccupancyTypes(): recordTypes.OccupancyType[] { - if (!occupancyTypes) { + if (occupancyTypes === undefined) { occupancyTypes = getOccupancyTypesFromDatabase() } @@ -154,7 +154,7 @@ export function getOccupancyTypes(): recordTypes.OccupancyType[] { } export function getAllOccupancyTypeFields(): recordTypes.OccupancyTypeField[] { - if (!allOccupancyTypeFields) { + if (allOccupancyTypeFields === undefined) { allOccupancyTypeFields = getOccupancyTypeFieldsFromDatabase() } return allOccupancyTypeFields @@ -189,7 +189,7 @@ export function getOccupancyTypePrintsById(occupancyTypeId: number): string[] { const occupancyType = getOccupancyTypeById(occupancyTypeId) if ( - !occupancyType || + occupancyType === undefined || (occupancyType.occupancyTypePrints ?? []).length === 0 ) { return [] @@ -214,7 +214,7 @@ function clearOccupancyTypesCache(): void { let workOrderTypes: recordTypes.WorkOrderType[] | undefined export function getWorkOrderTypes(): recordTypes.WorkOrderType[] { - if (!workOrderTypes) { + if (workOrderTypes === undefined) { workOrderTypes = getWorkOrderTypesFromDatabase() } @@ -242,7 +242,7 @@ function clearWorkOrderTypesCache(): void { let workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] | undefined export function getWorkOrderMilestoneTypes(): recordTypes.WorkOrderMilestoneType[] { - if (!workOrderMilestoneTypes) { + if (workOrderMilestoneTypes === undefined) { workOrderMilestoneTypes = getWorkOrderMilestoneTypesFromDatabase() } diff --git a/helpers/functions.config.js b/helpers/functions.config.js index d5afada1..5395d750 100644 --- a/helpers/functions.config.js +++ b/helpers/functions.config.js @@ -52,7 +52,7 @@ export function getProperty(propertyName) { const propertyNameSplit = propertyName.split('.'); let currentObject = config; for (const propertyNamePiece of propertyNameSplit) { - if (Object.prototype.hasOwnProperty.call(currentObject, propertyNamePiece)) { + if (Object.hasOwn(currentObject, propertyNamePiece)) { currentObject = currentObject[propertyNamePiece]; continue; } diff --git a/helpers/functions.config.ts b/helpers/functions.config.ts index 0c98af40..b19bf606 100644 --- a/helpers/functions.config.ts +++ b/helpers/functions.config.ts @@ -210,9 +210,7 @@ export function getProperty(propertyName: string): unknown { let currentObject = config for (const propertyNamePiece of propertyNameSplit) { - if ( - Object.prototype.hasOwnProperty.call(currentObject, propertyNamePiece) - ) { + if (Object.hasOwn(currentObject, propertyNamePiece)) { currentObject = currentObject[propertyNamePiece] continue } diff --git a/helpers/functions.print.js b/helpers/functions.print.js index 7bc4f95f..a149348a 100644 --- a/helpers/functions.print.js +++ b/helpers/functions.print.js @@ -4,10 +4,7 @@ import { getLotOccupancy } from './lotOccupancyDB/getLotOccupancy.js'; import { getWorkOrder } from './lotOccupancyDB/getWorkOrder.js'; const screenPrintConfigs = { lotOccupancy: { - title: configFunctions.getProperty('aliases.lot') + - ' ' + - configFunctions.getProperty('aliases.occupancy') + - ' Print', + title: `${configFunctions.getProperty('aliases.lot')} ${configFunctions.getProperty('aliases.occupancy')} Print`, params: ['lotOccupancyId'] } }; diff --git a/helpers/functions.print.ts b/helpers/functions.print.ts index d946a419..24603111 100644 --- a/helpers/functions.print.ts +++ b/helpers/functions.print.ts @@ -11,11 +11,9 @@ interface PrintConfig { const screenPrintConfigs: Record = { lotOccupancy: { - title: - configFunctions.getProperty('aliases.lot') + - ' ' + - configFunctions.getProperty('aliases.occupancy') + - ' Print', + title: `${configFunctions.getProperty( + 'aliases.lot' + )} ${configFunctions.getProperty('aliases.occupancy')} Print`, params: ['lotOccupancyId'] } } diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index 83423638..670076fd 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -459,7 +459,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupancyOccupants; - const openEditLotOccupancyOccupant = (clickEvent) => { + function openEditLotOccupancyOccupant(clickEvent) { const lotOccupantIndex = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset .lotOccupantIndex, 10); const lotOccupancyOccupant = lotOccupancyOccupants.find((currentLotOccupancyOccupant) => { @@ -467,9 +467,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); let editFormElement; let editCloseModalFunction; - const editOccupant = (submitEvent) => { + function editOccupant(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doUpdateLotOccupancyOccupant', editFormElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyOccupants = responseJSON.lotOccupancyOccupants; editCloseModalFunction(); @@ -477,13 +478,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: 'Error Updating ' + exports.aliases.occupant, - message: responseJSON.errorMessage || '', + title: 'Error Updating ' + los.escapedAliases.Occupant, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-editOccupant', { onshow: (modalElement) => { los.populateAliases(modalElement); @@ -532,69 +533,67 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.toggleHtmlClipped(); } }); - }; - const deleteLotOccupancyOccupant = (clickEvent) => { + } + function deleteLotOccupancyOccupant(clickEvent) { const lotOccupantIndex = clickEvent.currentTarget.closest('tr').dataset.lotOccupantIndex; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancyOccupant', { lotOccupancyId, lotOccupantIndex }, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyOccupants = responseJSON.lotOccupancyOccupants; renderLotOccupancyOccupants(); } else { bulmaJS.alert({ - title: 'Error Removing ' + exports.aliases.occupant, - message: responseJSON.errorMessage || '', + title: 'Error Removing ' + los.escapedAliases.Occupant, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ - title: 'Remove ' + exports.aliases.occupant + '?', - message: 'Are you sure you want to remove this ' + - exports.aliases.occupant.toLowerCase() + - '?', + title: `Remove ${los.escapedAliases.Occupant}?`, + message: `Are you sure you want to remove this ${los.escapedAliases.occupant}?`, okButton: { - text: 'Yes, Remove ' + exports.aliases.occupant, + text: 'Yes, Remove ' + los.escapedAliases.Occupant, callbackFunction: doDelete }, contextualColorName: 'warning' }); - }; - const renderLotOccupancyOccupants = () => { + } + function renderLotOccupancyOccupants() { + var _a, _b, _c; const occupantsContainer = document.querySelector('#container--lotOccupancyOccupants'); cityssm.clearElement(occupantsContainer); if (lotOccupancyOccupants.length === 0) { - occupantsContainer.innerHTML = - '
' + - '

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

' + - '
'; + occupantsContainer.innerHTML = `
+

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

+
`; return; } const tableElement = document.createElement('table'); tableElement.className = 'table is-fullwidth is-striped is-hoverable'; - tableElement.innerHTML = - '' + - ('' + exports.aliases.occupant + '') + - 'Address' + - 'Other Contact' + - 'Comment' + - 'Options' + - '' + - ''; + tableElement.innerHTML = ` + ${los.escapedAliases.Occupant} + Address + Other Contact + Comment + Options + + `; for (const lotOccupancyOccupant of lotOccupancyOccupants) { const tableRowElement = document.createElement('tr'); tableRowElement.dataset.lotOccupantIndex = lotOccupancyOccupant.lotOccupantIndex.toString(); tableRowElement.innerHTML = '' + - cityssm.escapeHTML(lotOccupancyOccupant.occupantName || '(No Name)') + + cityssm.escapeHTML(((_a = lotOccupancyOccupant.occupantName) !== null && _a !== void 0 ? _a : '') === '' + ? '(No Name)' + : lotOccupancyOccupant.occupantName) + '
' + ('' + '' + - cityssm.escapeHTML(lotOccupancyOccupant.occupantPostalCode || '') + + cityssm.escapeHTML((_c = lotOccupancyOccupant.occupantPostalCode) !== null && _c !== void 0 ? _c : '') + '') + ('' + (lotOccupancyOccupant.occupantPhoneNumber @@ -653,7 +652,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); tableElement.querySelector('tbody').append(tableRowElement); } occupantsContainer.append(tableElement); - }; + } if (isCreate) { const lotOccupantTypeIdElement = document.querySelector('#lotOccupancy--lotOccupantTypeId'); lotOccupantTypeIdElement.addEventListener('change', () => { @@ -673,8 +672,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); let addFormElement; let searchFormElement; let searchResultsElement; - const addOccupant = (formOrObject) => { + function addOccupant(formOrObject) { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doAddLotOccupancyOccupant', formOrObject, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyOccupants = responseJSON.lotOccupancyOccupants; addCloseModalFunction(); @@ -682,19 +682,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: 'Error Adding ' + exports.aliases.occupant, - message: responseJSON.errorMessage || '', + title: `Error Adding ${los.escapedAliases.Occupant}`, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; - const addOccupantFromForm = (submitEvent) => { + } + function addOccupantFromForm(submitEvent) { submitEvent.preventDefault(); addOccupant(addFormElement); - }; + } let pastOccupantSearchResults = []; - const addOccupantFromCopy = (clickEvent) => { + function addOccupantFromCopy(clickEvent) { clickEvent.preventDefault(); const panelBlockElement = clickEvent.currentTarget; const occupant = pastOccupantSearchResults[Number.parseInt(panelBlockElement.dataset.index, 10)]; @@ -703,10 +703,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); .querySelector('#lotOccupancyOccupantCopy--lotOccupantTypeId').value; if (lotOccupantTypeId === '') { bulmaJS.alert({ - title: 'No ' + exports.aliases.occupant + ' Type Selected', - message: 'Select a type to apply to the newly added ' + - exports.aliases.occupant.toLowerCase() + - '.', + title: `No ${los.escapedAliases.Occupant} Type Selected`, + message: `Select a type to apply to the newly added ${los.escapedAliases.occupant}.`, contextualColorName: 'warning' }); } @@ -715,8 +713,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); occupant.lotOccupancyId = Number.parseInt(lotOccupancyId, 10); addOccupant(occupant); } - }; - const searchOccupants = (event) => { + } + function searchOccupants(event) { event.preventDefault(); if (searchFormElement.querySelector('#lotOccupancyOccupantCopy--searchFilter').value === '') { searchResultsElement.innerHTML = @@ -728,6 +726,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); searchResultsElement.innerHTML = los.getLoadingParagraphHTML('Searching...'); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doSearchPastOccupants', searchFormElement, (responseJSON) => { + var _a, _b, _c, _d, _e, _f; pastOccupantSearchResults = responseJSON.occupants; const panelElement = document.createElement('div'); panelElement.className = 'panel'; @@ -737,28 +736,28 @@ Object.defineProperty(exports, "__esModule", { value: true }); panelBlockElement.dataset.index = index.toString(); panelBlockElement.innerHTML = '' + - cityssm.escapeHTML(occupant.occupantName || '') + + cityssm.escapeHTML((_a = occupant.occupantName) !== null && _a !== void 0 ? _a : '') + '' + '
' + '
' + ('
' + - cityssm.escapeHTML(occupant.occupantAddress1 || '') + + cityssm.escapeHTML((_b = occupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') + '
' + (occupant.occupantAddress2 ? cityssm.escapeHTML(occupant.occupantAddress2) + '
' : '') + - cityssm.escapeHTML(occupant.occupantCity || '') + + cityssm.escapeHTML((_c = occupant.occupantCity) !== null && _c !== void 0 ? _c : '') + ', ' + - cityssm.escapeHTML(occupant.occupantProvince || '') + + cityssm.escapeHTML((_d = occupant.occupantProvince) !== null && _d !== void 0 ? _d : '') + '
' + - cityssm.escapeHTML(occupant.occupantPostalCode || '') + + cityssm.escapeHTML((_e = occupant.occupantPostalCode) !== null && _e !== void 0 ? _e : '') + '
') + ('
' + (occupant.occupantPhoneNumber ? cityssm.escapeHTML(occupant.occupantPhoneNumber) + '
' : '') + - cityssm.escapeHTML(occupant.occupantEmailAddress || '') + + cityssm.escapeHTML((_f = occupant.occupantEmailAddress) !== null && _f !== void 0 ? _f : '') + '
' + '
') + '
'; @@ -768,7 +767,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); searchResultsElement.innerHTML = ''; searchResultsElement.append(panelElement); }); - }; + } cityssm.openHtmlModal('lotOccupancy-addOccupant', { onshow: (modalElement) => { los.populateAliases(modalElement); diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.js b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.js index 2fa6c869..93afc739 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.js @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); let lotOccupancyOccupants; -const openEditLotOccupancyOccupant = (clickEvent) => { +function openEditLotOccupancyOccupant(clickEvent) { const lotOccupantIndex = Number.parseInt(clickEvent.currentTarget.closest('tr').dataset .lotOccupantIndex, 10); const lotOccupancyOccupant = lotOccupancyOccupants.find((currentLotOccupancyOccupant) => { @@ -10,9 +10,10 @@ const openEditLotOccupancyOccupant = (clickEvent) => { }); let editFormElement; let editCloseModalFunction; - const editOccupant = (submitEvent) => { + function editOccupant(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doUpdateLotOccupancyOccupant', editFormElement, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyOccupants = responseJSON.lotOccupancyOccupants; editCloseModalFunction(); @@ -20,13 +21,13 @@ const openEditLotOccupancyOccupant = (clickEvent) => { } else { bulmaJS.alert({ - title: 'Error Updating ' + exports.aliases.occupant, - message: responseJSON.errorMessage || '', + title: 'Error Updating ' + los.escapedAliases.Occupant, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } cityssm.openHtmlModal('lotOccupancy-editOccupant', { onshow: (modalElement) => { los.populateAliases(modalElement); @@ -75,69 +76,67 @@ const openEditLotOccupancyOccupant = (clickEvent) => { bulmaJS.toggleHtmlClipped(); } }); -}; -const deleteLotOccupancyOccupant = (clickEvent) => { +} +function deleteLotOccupancyOccupant(clickEvent) { const lotOccupantIndex = clickEvent.currentTarget.closest('tr').dataset.lotOccupantIndex; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancyOccupant', { lotOccupancyId, lotOccupantIndex }, (responseJSON) => { + var _a; if (responseJSON.success) { lotOccupancyOccupants = responseJSON.lotOccupancyOccupants; renderLotOccupancyOccupants(); } else { bulmaJS.alert({ - title: 'Error Removing ' + exports.aliases.occupant, - message: responseJSON.errorMessage || '', + title: 'Error Removing ' + los.escapedAliases.Occupant, + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } }); - }; + } bulmaJS.confirm({ - title: 'Remove ' + exports.aliases.occupant + '?', - message: 'Are you sure you want to remove this ' + - exports.aliases.occupant.toLowerCase() + - '?', + title: `Remove ${los.escapedAliases.Occupant}?`, + message: `Are you sure you want to remove this ${los.escapedAliases.occupant}?`, okButton: { - text: 'Yes, Remove ' + exports.aliases.occupant, + text: 'Yes, Remove ' + los.escapedAliases.Occupant, callbackFunction: doDelete }, contextualColorName: 'warning' }); -}; -const renderLotOccupancyOccupants = () => { +} +function renderLotOccupancyOccupants() { + var _a, _b, _c; const occupantsContainer = document.querySelector('#container--lotOccupancyOccupants'); cityssm.clearElement(occupantsContainer); if (lotOccupancyOccupants.length === 0) { - occupantsContainer.innerHTML = - '
' + - '

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

' + - '
'; + occupantsContainer.innerHTML = `
+

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

+
`; return; } const tableElement = document.createElement('table'); tableElement.className = 'table is-fullwidth is-striped is-hoverable'; - tableElement.innerHTML = - '' + - ('' + exports.aliases.occupant + '') + - 'Address' + - 'Other Contact' + - 'Comment' + - 'Options' + - '' + - ''; + tableElement.innerHTML = ` + ${los.escapedAliases.Occupant} + Address + Other Contact + Comment + Options + + `; for (const lotOccupancyOccupant of lotOccupancyOccupants) { const tableRowElement = document.createElement('tr'); tableRowElement.dataset.lotOccupantIndex = lotOccupancyOccupant.lotOccupantIndex.toString(); tableRowElement.innerHTML = '' + - cityssm.escapeHTML(lotOccupancyOccupant.occupantName || '(No Name)') + + cityssm.escapeHTML(((_a = lotOccupancyOccupant.occupantName) !== null && _a !== void 0 ? _a : '') === '' + ? '(No Name)' + : lotOccupancyOccupant.occupantName) + '
' + ('' + '' + ('
' + - cityssm.escapeHTML(occupant.occupantAddress1 || '') + + cityssm.escapeHTML((_b = occupant.occupantAddress1) !== null && _b !== void 0 ? _b : '') + '
' + (occupant.occupantAddress2 ? cityssm.escapeHTML(occupant.occupantAddress2) + '
' : '') + - cityssm.escapeHTML(occupant.occupantCity || '') + + cityssm.escapeHTML((_c = occupant.occupantCity) !== null && _c !== void 0 ? _c : '') + ', ' + - cityssm.escapeHTML(occupant.occupantProvince || '') + + cityssm.escapeHTML((_d = occupant.occupantProvince) !== null && _d !== void 0 ? _d : '') + '
' + - cityssm.escapeHTML(occupant.occupantPostalCode || '') + + cityssm.escapeHTML((_e = occupant.occupantPostalCode) !== null && _e !== void 0 ? _e : '') + '
') + ('
' + (occupant.occupantPhoneNumber ? cityssm.escapeHTML(occupant.occupantPhoneNumber) + '
' : '') + - cityssm.escapeHTML(occupant.occupantEmailAddress || '') + + cityssm.escapeHTML((_f = occupant.occupantEmailAddress) !== null && _f !== void 0 ? _f : '') + '
' + '
') + ''; @@ -311,7 +310,7 @@ else { searchResultsElement.innerHTML = ''; searchResultsElement.append(panelElement); }); - }; + } cityssm.openHtmlModal('lotOccupancy-addOccupant', { onshow: (modalElement) => { los.populateAliases(modalElement); diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts index 064124c2..2e46372b 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditOccupants.ts @@ -18,7 +18,7 @@ declare const formElement: HTMLFormElement let lotOccupancyOccupants: recordTypes.LotOccupancyOccupant[] -const openEditLotOccupancyOccupant = (clickEvent: Event) => { +function openEditLotOccupancyOccupant(clickEvent: Event): void { const lotOccupantIndex = Number.parseInt( (clickEvent.currentTarget as HTMLElement).closest('tr')!.dataset .lotOccupantIndex!, @@ -34,7 +34,7 @@ const openEditLotOccupancyOccupant = (clickEvent: Event) => { let editFormElement: HTMLFormElement let editCloseModalFunction: () => void - const editOccupant = (submitEvent: SubmitEvent) => { + function editOccupant(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( @@ -51,8 +51,8 @@ const openEditLotOccupancyOccupant = (clickEvent: Event) => { renderLotOccupancyOccupants() } else { bulmaJS.alert({ - title: 'Error Updating ' + exports.aliases.occupant, - message: responseJSON.errorMessage || '', + title: 'Error Updating ' + los.escapedAliases.Occupant, + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -63,7 +63,6 @@ const openEditLotOccupancyOccupant = (clickEvent: Event) => { cityssm.openHtmlModal('lotOccupancy-editOccupant', { onshow: (modalElement) => { los.populateAliases(modalElement) - ;( modalElement.querySelector( '#lotOccupancyOccupantEdit--lotOccupancyId' @@ -133,25 +132,21 @@ const openEditLotOccupancyOccupant = (clickEvent: Event) => { '#lotOccupancyOccupantEdit--occupantProvince' ) as HTMLInputElement ).value = lotOccupancyOccupant.occupantProvince! - ;( modalElement.querySelector( '#lotOccupancyOccupantEdit--occupantPostalCode' ) as HTMLInputElement ).value = lotOccupancyOccupant.occupantPostalCode! - ;( modalElement.querySelector( '#lotOccupancyOccupantEdit--occupantPhoneNumber' ) as HTMLInputElement ).value = lotOccupancyOccupant.occupantPhoneNumber! - ;( modalElement.querySelector( '#lotOccupancyOccupantEdit--occupantEmailAddress' ) as HTMLInputElement ).value = lotOccupancyOccupant.occupantEmailAddress! - ;( modalElement.querySelector( '#lotOccupancyOccupantEdit--occupantComment' @@ -160,7 +155,6 @@ const openEditLotOccupancyOccupant = (clickEvent: Event) => { }, onshown: (modalElement, closeModalFunction) => { bulmaJS.toggleHtmlClipped() - ;( modalElement.querySelector( '#lotOccupancyOccupantEdit--lotOccupantTypeId' @@ -178,12 +172,12 @@ const openEditLotOccupancyOccupant = (clickEvent: Event) => { }) } -const deleteLotOccupancyOccupant = (clickEvent: Event) => { +function deleteLotOccupancyOccupant(clickEvent: Event): void { const lotOccupantIndex = (clickEvent.currentTarget as HTMLElement).closest( 'tr' )!.dataset.lotOccupantIndex - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/lotOccupancies/doDeleteLotOccupancyOccupant', { @@ -200,8 +194,8 @@ const deleteLotOccupancyOccupant = (clickEvent: Event) => { renderLotOccupancyOccupants() } else { bulmaJS.alert({ - title: 'Error Removing ' + exports.aliases.occupant, - message: responseJSON.errorMessage || '', + title: 'Error Removing ' + los.escapedAliases.Occupant, + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -210,20 +204,17 @@ const deleteLotOccupancyOccupant = (clickEvent: Event) => { } bulmaJS.confirm({ - title: 'Remove ' + exports.aliases.occupant + '?', - message: - 'Are you sure you want to remove this ' + - exports.aliases.occupant.toLowerCase() + - '?', + title: `Remove ${los.escapedAliases.Occupant}?`, + message: `Are you sure you want to remove this ${los.escapedAliases.occupant}?`, okButton: { - text: 'Yes, Remove ' + exports.aliases.occupant, + text: 'Yes, Remove ' + los.escapedAliases.Occupant, callbackFunction: doDelete }, contextualColorName: 'warning' }) } -const renderLotOccupancyOccupants = () => { +function renderLotOccupancyOccupants(): void { const occupantsContainer = document.querySelector( '#container--lotOccupancyOccupants' ) as HTMLElement @@ -231,12 +222,9 @@ const renderLotOccupancyOccupants = () => { cityssm.clearElement(occupantsContainer) if (lotOccupancyOccupants.length === 0) { - occupantsContainer.innerHTML = - '
' + - '

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

' + - '
' + occupantsContainer.innerHTML = `
+

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

+
` return } @@ -244,15 +232,14 @@ const renderLotOccupancyOccupants = () => { const tableElement = document.createElement('table') tableElement.className = 'table is-fullwidth is-striped is-hoverable' - tableElement.innerHTML = - '' + - ('' + exports.aliases.occupant + '') + - 'Address' + - 'Other Contact' + - 'Comment' + - 'Options' + - '' + - '' + tableElement.innerHTML = ` + ${los.escapedAliases.Occupant} + Address + Other Contact + Comment + Options + + ` for (const lotOccupancyOccupant of lotOccupancyOccupants) { const tableRowElement = document.createElement('tr') @@ -261,7 +248,11 @@ const renderLotOccupancyOccupants = () => { tableRowElement.innerHTML = '' + - cityssm.escapeHTML(lotOccupancyOccupant.occupantName || '(No Name)') + + cityssm.escapeHTML( + (lotOccupancyOccupant.occupantName ?? '') === '' + ? '(No Name)' + : lotOccupancyOccupant.occupantName! + ) + '
' + ('' + ' + const occupantFields: NodeListOf = + formElement.querySelectorAll("[data-table='LotOccupancyOccupant']") for (const occupantField of occupantFields) { occupantField.disabled = lotOccupantTypeIdElement.value === '' @@ -354,9 +344,9 @@ if (isCreate) { let searchFormElement: HTMLFormElement let searchResultsElement: HTMLElement - const addOccupant = ( + function addOccupant( formOrObject: HTMLFormElement | recordTypes.LotOccupancyOccupant - ) => { + ): void { cityssm.postJSON( los.urlPrefix + '/lotOccupancies/doAddLotOccupancyOccupant', formOrObject, @@ -371,8 +361,8 @@ if (isCreate) { renderLotOccupancyOccupants() } else { bulmaJS.alert({ - title: 'Error Adding ' + exports.aliases.occupant, - message: responseJSON.errorMessage || '', + title: `Error Adding ${los.escapedAliases.Occupant}`, + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -380,14 +370,14 @@ if (isCreate) { ) } - const addOccupantFromForm = (submitEvent: SubmitEvent) => { + function addOccupantFromForm(submitEvent: SubmitEvent): void { submitEvent.preventDefault() addOccupant(addFormElement) } let pastOccupantSearchResults: recordTypes.LotOccupancyOccupant[] = [] - const addOccupantFromCopy = (clickEvent: MouseEvent) => { + function addOccupantFromCopy(clickEvent: MouseEvent): void { clickEvent.preventDefault() const panelBlockElement = clickEvent.currentTarget as HTMLElement @@ -407,11 +397,8 @@ if (isCreate) { if (lotOccupantTypeId === '') { bulmaJS.alert({ - title: 'No ' + exports.aliases.occupant + ' Type Selected', - message: - 'Select a type to apply to the newly added ' + - exports.aliases.occupant.toLowerCase() + - '.', + title: `No ${los.escapedAliases.Occupant} Type Selected`, + message: `Select a type to apply to the newly added ${los.escapedAliases.occupant}.`, contextualColorName: 'warning' }) } else { @@ -421,7 +408,7 @@ if (isCreate) { } } - const searchOccupants = (event: Event) => { + function searchOccupants(event: Event): void { event.preventDefault() if ( @@ -461,28 +448,28 @@ if (isCreate) { panelBlockElement.innerHTML = '' + - cityssm.escapeHTML(occupant.occupantName || '') + + cityssm.escapeHTML(occupant.occupantName ?? '') + '' + '
' + '
' + ('
' + - cityssm.escapeHTML(occupant.occupantAddress1 || '') + + cityssm.escapeHTML(occupant.occupantAddress1 ?? '') + '
' + (occupant.occupantAddress2 ? cityssm.escapeHTML(occupant.occupantAddress2) + '
' : '') + - cityssm.escapeHTML(occupant.occupantCity || '') + + cityssm.escapeHTML(occupant.occupantCity ?? '') + ', ' + - cityssm.escapeHTML(occupant.occupantProvince || '') + + cityssm.escapeHTML(occupant.occupantProvince ?? '') + '
' + - cityssm.escapeHTML(occupant.occupantPostalCode || '') + + cityssm.escapeHTML(occupant.occupantPostalCode ?? '') + '
') + ('
' + (occupant.occupantPhoneNumber ? cityssm.escapeHTML(occupant.occupantPhoneNumber) + '
' : '') + - cityssm.escapeHTML(occupant.occupantEmailAddress || '') + + cityssm.escapeHTML(occupant.occupantEmailAddress ?? '') + '
' + '
') + '
' @@ -501,7 +488,6 @@ if (isCreate) { cityssm.openHtmlModal('lotOccupancy-addOccupant', { onshow: (modalElement) => { los.populateAliases(modalElement) - ;( modalElement.querySelector( '#lotOccupancyOccupantAdd--lotOccupancyId' @@ -533,7 +519,6 @@ if (isCreate) { '#lotOccupancyOccupantAdd--occupantCity' ) as HTMLInputElement ).value = exports.occupantCityDefault - ;( modalElement.querySelector( '#lotOccupancyOccupantAdd--occupantProvince' @@ -543,7 +528,6 @@ if (isCreate) { onshown: (modalElement, closeModalFunction) => { bulmaJS.toggleHtmlClipped() bulmaJS.init(modalElement) - ;( modalElement.querySelector( '#lotOccupancyOccupantAdd--lotOccupantTypeId' @@ -565,7 +549,6 @@ if (isCreate) { searchFormElement.addEventListener('submit', (formEvent) => { formEvent.preventDefault() }) - ;( modalElement.querySelector( '#lotOccupancyOccupantCopy--searchFilter' diff --git a/public-typescript/workOrderEdit.js b/public-typescript/workOrderEdit.js index 2d85c11d..8a117457 100644 --- a/public-typescript/workOrderEdit.js +++ b/public-typescript/workOrderEdit.js @@ -1,5 +1,5 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { var _a, _b; @@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/' + (isCreate ? 'doCreateWorkOrder' : 'doUpdateWorkOrder'), submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); if (isCreate) { @@ -31,7 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Updating Work Order', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -48,13 +49,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/doCloseWorkOrder', { workOrderId }, (responseJSON) => { + var _a; if (responseJSON.success) { window.location.href = los.urlPrefix + '/workOrders/' + workOrderId; } else { bulmaJS.alert({ title: 'Error Closing Work Order', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -64,13 +66,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/doDeleteWorkOrder', { workOrderId }, (responseJSON) => { + var _a; if (responseJSON.success) { window.location.href = los.urlPrefix + '/workOrders'; } else { bulmaJS.alert({ title: 'Error Deleting Work Order', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -90,18 +93,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); contextualColorName: 'warning' }); /* - // Disable closing work orders with open milestones - bulmaJS.confirm({ - title: "Close Work Order with Outstanding Milestones", - message: - "Are you sure you want to close this work order with outstanding milestones?", - contextualColorName: "danger", - okButton: { - text: "Yes, Close Work Order", - callbackFunction: doClose - } - }); - */ + // Disable closing work orders with open milestones + bulmaJS.confirm({ + title: "Close Work Order with Outstanding Milestones", + message: + "Are you sure you want to close this work order with outstanding milestones?", + contextualColorName: "danger", + okButton: { + text: "Yes, Close Work Order", + callbackFunction: doClose + } + }); + */ } else { bulmaJS.confirm({ @@ -870,6 +873,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); * Milestones */ function processMilestoneResponse(responseJSON) { + var _a; if (responseJSON.success) { workOrderMilestones = responseJSON.workOrderMilestones; renderMilestones(); @@ -877,7 +881,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Reopening Milestone', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -889,12 +893,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); const workOrderMilestone = workOrderMilestones.find((currentMilestone) => { return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; }); - const doComplete = () => { + function doComplete() { cityssm.postJSON(los.urlPrefix + '/workOrders/doCompleteWorkOrderMilestone', { workOrderId, workOrderMilestoneId }, processMilestoneResponse); - }; + } bulmaJS.confirm({ title: 'Complete Milestone', message: 'Are you sure you want to complete this milestone?' + @@ -912,12 +916,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); function reopenMilestone(clickEvent) { clickEvent.preventDefault(); const workOrderMilestoneId = clickEvent.currentTarget.closest('.container--milestone').dataset.workOrderMilestoneId; - const doReopen = () => { + function doReopen() { cityssm.postJSON(los.urlPrefix + '/workOrders/doReopenWorkOrderMilestone', { workOrderId, workOrderMilestoneId }, processMilestoneResponse); - }; + } bulmaJS.confirm({ title: 'Reopen Milestone', message: 'Are you sure you want to remove the completion status from this milestone, and reopen it?', @@ -931,12 +935,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); function deleteMilestone(clickEvent) { clickEvent.preventDefault(); const workOrderMilestoneId = clickEvent.currentTarget.closest('.container--milestone').dataset.workOrderMilestoneId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/workOrders/doDeleteWorkOrderMilestone', { workOrderMilestoneId, workOrderId }, processMilestoneResponse); - }; + } bulmaJS.confirm({ title: 'Delete Milestone', message: 'Are you sure you want to delete this milestone?', @@ -954,7 +958,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; }); let editCloseModalFunction; - const doEdit = (submitEvent) => { + function doEdit(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/workOrders/doUpdateWorkOrderMilestone', submitEvent.currentTarget, (responseJSON) => { processMilestoneResponse(responseJSON); @@ -962,7 +966,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); editCloseModalFunction(); } }); - }; + } cityssm.openHtmlModal('workOrder-editMilestone', { onshow(modalElement) { ; @@ -1013,7 +1017,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderMilestones() { - var _a, _b, _c; + var _a, _b, _c, _d, _e; // Clear milestones panel const milestonesPanelElement = document.querySelector('#panel--milestones'); const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll('.panel-block'); @@ -1043,7 +1047,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ('
' + (milestone.workOrderMilestoneTypeId ? '' + - cityssm.escapeHTML(milestone.workOrderMilestoneType || '') + + cityssm.escapeHTML((_a = milestone.workOrderMilestoneType) !== null && _a !== void 0 ? _a : '') + '
' : '') + milestone.workOrderMilestoneDateString + @@ -1052,7 +1056,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); : '') + '
' + '' + - cityssm.escapeHTML(milestone.workOrderMilestoneDescription || '') + + cityssm.escapeHTML((_b = milestone.workOrderMilestoneDescription) !== null && _b !== void 0 ? _b : '') + '' + '
') + ('
' + @@ -1083,12 +1087,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
' + '') + ''; - (_a = panelBlockElement - .querySelector('.button--reopenMilestone')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', reopenMilestone); - (_b = panelBlockElement - .querySelector('.button--editMilestone')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', editMilestone); (_c = panelBlockElement - .querySelector('.button--completeMilestone')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', completeMilestone); + .querySelector('.button--reopenMilestone')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', reopenMilestone); + (_d = panelBlockElement + .querySelector('.button--editMilestone')) === null || _d === void 0 ? void 0 : _d.addEventListener('click', editMilestone); + (_e = panelBlockElement + .querySelector('.button--completeMilestone')) === null || _e === void 0 ? void 0 : _e.addEventListener('click', completeMilestone); panelBlockElement .querySelector('.button--deleteMilestone') .addEventListener('click', deleteMilestone); @@ -1107,7 +1111,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); let addModalElement; let addFormElement; let addCloseModalFunction; - const doAdd = (submitEvent) => { + function doAdd(submitEvent) { if (submitEvent) { submitEvent.preventDefault(); } @@ -1134,7 +1138,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { _doAdd(); } - }; + } cityssm.openHtmlModal('workOrder-addMilestone', { onshow(modalElement) { ; diff --git a/public-typescript/workOrderEdit/workOrderEdit.js b/public-typescript/workOrderEdit/workOrderEdit.js index 28b74b76..7ff0be03 100644 --- a/public-typescript/workOrderEdit/workOrderEdit.js +++ b/public-typescript/workOrderEdit/workOrderEdit.js @@ -1,5 +1,5 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { var _a, _b; @@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/' + (isCreate ? 'doCreateWorkOrder' : 'doUpdateWorkOrder'), submitEvent.currentTarget, (responseJSON) => { + var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); if (isCreate) { @@ -31,7 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Updating Work Order', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -48,13 +49,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/doCloseWorkOrder', { workOrderId }, (responseJSON) => { + var _a; if (responseJSON.success) { window.location.href = los.urlPrefix + '/workOrders/' + workOrderId; } else { bulmaJS.alert({ title: 'Error Closing Work Order', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -64,13 +66,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/workOrders/doDeleteWorkOrder', { workOrderId }, (responseJSON) => { + var _a; if (responseJSON.success) { window.location.href = los.urlPrefix + '/workOrders'; } else { bulmaJS.alert({ title: 'Error Deleting Work Order', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -90,18 +93,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); contextualColorName: 'warning' }); /* - // Disable closing work orders with open milestones - bulmaJS.confirm({ - title: "Close Work Order with Outstanding Milestones", - message: - "Are you sure you want to close this work order with outstanding milestones?", - contextualColorName: "danger", - okButton: { - text: "Yes, Close Work Order", - callbackFunction: doClose - } - }); - */ + // Disable closing work orders with open milestones + bulmaJS.confirm({ + title: "Close Work Order with Outstanding Milestones", + message: + "Are you sure you want to close this work order with outstanding milestones?", + contextualColorName: "danger", + okButton: { + text: "Yes, Close Work Order", + callbackFunction: doClose + } + }); + */ } else { bulmaJS.confirm({ @@ -142,6 +145,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); * Milestones */ function processMilestoneResponse(responseJSON) { + var _a; if (responseJSON.success) { workOrderMilestones = responseJSON.workOrderMilestones; renderMilestones(); @@ -149,7 +153,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { bulmaJS.alert({ title: 'Error Reopening Milestone', - message: responseJSON.errorMessage || '', + message: (_a = responseJSON.errorMessage) !== null && _a !== void 0 ? _a : '', contextualColorName: 'danger' }); } @@ -161,12 +165,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); const workOrderMilestone = workOrderMilestones.find((currentMilestone) => { return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; }); - const doComplete = () => { + function doComplete() { cityssm.postJSON(los.urlPrefix + '/workOrders/doCompleteWorkOrderMilestone', { workOrderId, workOrderMilestoneId }, processMilestoneResponse); - }; + } bulmaJS.confirm({ title: 'Complete Milestone', message: 'Are you sure you want to complete this milestone?' + @@ -184,12 +188,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); function reopenMilestone(clickEvent) { clickEvent.preventDefault(); const workOrderMilestoneId = clickEvent.currentTarget.closest('.container--milestone').dataset.workOrderMilestoneId; - const doReopen = () => { + function doReopen() { cityssm.postJSON(los.urlPrefix + '/workOrders/doReopenWorkOrderMilestone', { workOrderId, workOrderMilestoneId }, processMilestoneResponse); - }; + } bulmaJS.confirm({ title: 'Reopen Milestone', message: 'Are you sure you want to remove the completion status from this milestone, and reopen it?', @@ -203,12 +207,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); function deleteMilestone(clickEvent) { clickEvent.preventDefault(); const workOrderMilestoneId = clickEvent.currentTarget.closest('.container--milestone').dataset.workOrderMilestoneId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + '/workOrders/doDeleteWorkOrderMilestone', { workOrderMilestoneId, workOrderId }, processMilestoneResponse); - }; + } bulmaJS.confirm({ title: 'Delete Milestone', message: 'Are you sure you want to delete this milestone?', @@ -226,7 +230,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; }); let editCloseModalFunction; - const doEdit = (submitEvent) => { + function doEdit(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + '/workOrders/doUpdateWorkOrderMilestone', submitEvent.currentTarget, (responseJSON) => { processMilestoneResponse(responseJSON); @@ -234,7 +238,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); editCloseModalFunction(); } }); - }; + } cityssm.openHtmlModal('workOrder-editMilestone', { onshow(modalElement) { ; @@ -285,7 +289,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function renderMilestones() { - var _a, _b, _c; + var _a, _b, _c, _d, _e; // Clear milestones panel const milestonesPanelElement = document.querySelector('#panel--milestones'); const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll('.panel-block'); @@ -315,7 +319,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ('
' + (milestone.workOrderMilestoneTypeId ? '' + - cityssm.escapeHTML(milestone.workOrderMilestoneType || '') + + cityssm.escapeHTML((_a = milestone.workOrderMilestoneType) !== null && _a !== void 0 ? _a : '') + '
' : '') + milestone.workOrderMilestoneDateString + @@ -324,7 +328,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); : '') + '
' + '' + - cityssm.escapeHTML(milestone.workOrderMilestoneDescription || '') + + cityssm.escapeHTML((_b = milestone.workOrderMilestoneDescription) !== null && _b !== void 0 ? _b : '') + '' + '
') + ('
' + @@ -355,12 +359,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
' + '') + ''; - (_a = panelBlockElement - .querySelector('.button--reopenMilestone')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', reopenMilestone); - (_b = panelBlockElement - .querySelector('.button--editMilestone')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', editMilestone); (_c = panelBlockElement - .querySelector('.button--completeMilestone')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', completeMilestone); + .querySelector('.button--reopenMilestone')) === null || _c === void 0 ? void 0 : _c.addEventListener('click', reopenMilestone); + (_d = panelBlockElement + .querySelector('.button--editMilestone')) === null || _d === void 0 ? void 0 : _d.addEventListener('click', editMilestone); + (_e = panelBlockElement + .querySelector('.button--completeMilestone')) === null || _e === void 0 ? void 0 : _e.addEventListener('click', completeMilestone); panelBlockElement .querySelector('.button--deleteMilestone') .addEventListener('click', deleteMilestone); @@ -379,7 +383,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); let addModalElement; let addFormElement; let addCloseModalFunction; - const doAdd = (submitEvent) => { + function doAdd(submitEvent) { if (submitEvent) { submitEvent.preventDefault(); } @@ -406,7 +410,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); else { _doAdd(); } - }; + } cityssm.openHtmlModal('workOrder-addMilestone', { onshow(modalElement) { ; diff --git a/public-typescript/workOrderEdit/workOrderEdit.ts b/public-typescript/workOrderEdit/workOrderEdit.ts index 81e20272..29165aff 100644 --- a/public-typescript/workOrderEdit/workOrderEdit.ts +++ b/public-typescript/workOrderEdit/workOrderEdit.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +/* eslint-disable spaced-comment, @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types' import type { BulmaJS } from '@cityssm/bulma-js/types' @@ -8,7 +8,6 @@ import type * as recordTypes from '../../types/recordTypes' declare const cityssm: cityssmGlobal declare const bulmaJS: BulmaJS - ;(() => { const los = exports.los as globalTypes.LOS @@ -47,7 +46,7 @@ declare const bulmaJS: BulmaJS if (isCreate) { window.location.href = los.getWorkOrderURL( - responseJSON.workOrderId!, + responseJSON.workOrderId, true ) } else { @@ -59,7 +58,7 @@ declare const bulmaJS: BulmaJS } else { bulmaJS.alert({ title: 'Error Updating Work Order', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -67,9 +66,8 @@ declare const bulmaJS: BulmaJS ) }) - const inputElements = workOrderFormElement.querySelectorAll( - 'input, select' - ) as NodeListOf + const inputElements: NodeListOf = + workOrderFormElement.querySelectorAll('input, select') for (const inputElement of inputElements) { inputElement.addEventListener('change', cityssm.enableNavBlocker) @@ -79,7 +77,7 @@ declare const bulmaJS: BulmaJS * Work Order Options */ - function doClose() { + function doClose(): void { cityssm.postJSON( los.urlPrefix + '/workOrders/doCloseWorkOrder', { @@ -91,7 +89,7 @@ declare const bulmaJS: BulmaJS } else { bulmaJS.alert({ title: 'Error Closing Work Order', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -99,7 +97,7 @@ declare const bulmaJS: BulmaJS ) } - function doDelete() { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/workOrders/doDeleteWorkOrder', { @@ -111,7 +109,7 @@ declare const bulmaJS: BulmaJS } else { bulmaJS.alert({ title: 'Error Deleting Work Order', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } @@ -137,18 +135,18 @@ declare const bulmaJS: BulmaJS }) /* - // Disable closing work orders with open milestones - bulmaJS.confirm({ - title: "Close Work Order with Outstanding Milestones", - message: - "Are you sure you want to close this work order with outstanding milestones?", - contextualColorName: "danger", - okButton: { - text: "Yes, Close Work Order", - callbackFunction: doClose - } - }); - */ + // Disable closing work orders with open milestones + bulmaJS.confirm({ + title: "Close Work Order with Outstanding Milestones", + message: + "Are you sure you want to close this work order with outstanding milestones?", + contextualColorName: "danger", + okButton: { + text: "Yes, Close Work Order", + callbackFunction: doClose + } + }); + */ } else { bulmaJS.confirm({ title: 'Close Work Order', @@ -200,20 +198,20 @@ declare const bulmaJS: BulmaJS success: boolean errorMessage?: string workOrderMilestones?: recordTypes.WorkOrderMilestone[] - }) { + }): void { if (responseJSON.success) { workOrderMilestones = responseJSON.workOrderMilestones! renderMilestones() } else { bulmaJS.alert({ title: 'Error Reopening Milestone', - message: responseJSON.errorMessage || '', + message: responseJSON.errorMessage ?? '', contextualColorName: 'danger' }) } } - function completeMilestone(clickEvent: Event) { + function completeMilestone(clickEvent: Event): void { clickEvent.preventDefault() const currentDateString = cityssm.dateToString(new Date()) @@ -231,7 +229,7 @@ declare const bulmaJS: BulmaJS return currentMilestone.workOrderMilestoneId === workOrderMilestoneId })! - const doComplete = () => { + function doComplete(): void { cityssm.postJSON( los.urlPrefix + '/workOrders/doCompleteWorkOrderMilestone', { @@ -258,7 +256,7 @@ declare const bulmaJS: BulmaJS }) } - function reopenMilestone(clickEvent: Event) { + function reopenMilestone(clickEvent: Event): void { clickEvent.preventDefault() const workOrderMilestoneId = ( @@ -267,7 +265,7 @@ declare const bulmaJS: BulmaJS ) as HTMLElement ).dataset.workOrderMilestoneId - const doReopen = () => { + function doReopen(): void { cityssm.postJSON( los.urlPrefix + '/workOrders/doReopenWorkOrderMilestone', { @@ -290,7 +288,7 @@ declare const bulmaJS: BulmaJS }) } - function deleteMilestone(clickEvent: Event) { + function deleteMilestone(clickEvent: Event): void { clickEvent.preventDefault() const workOrderMilestoneId = ( @@ -299,7 +297,7 @@ declare const bulmaJS: BulmaJS ) as HTMLElement ).dataset.workOrderMilestoneId - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + '/workOrders/doDeleteWorkOrderMilestone', { @@ -321,7 +319,7 @@ declare const bulmaJS: BulmaJS }) } - function editMilestone(clickEvent: Event) { + function editMilestone(clickEvent: Event): void { clickEvent.preventDefault() const workOrderMilestoneId = Number.parseInt( @@ -339,7 +337,7 @@ declare const bulmaJS: BulmaJS let editCloseModalFunction: () => void - const doEdit = (submitEvent: SubmitEvent) => { + function doEdit(submitEvent: SubmitEvent): void { submitEvent.preventDefault() cityssm.postJSON( @@ -365,7 +363,6 @@ declare const bulmaJS: BulmaJS '#milestoneEdit--workOrderId' ) as HTMLInputElement ).value = workOrderId - ;( modalElement.querySelector( '#milestoneEdit--workOrderMilestoneId' @@ -443,7 +440,7 @@ declare const bulmaJS: BulmaJS }) } - function renderMilestones() { + function renderMilestones(): void { // Clear milestones panel const milestonesPanelElement = document.querySelector( '#panel--milestones' @@ -481,7 +478,7 @@ declare const bulmaJS: BulmaJS ('
' + (milestone.workOrderMilestoneTypeId ? '' + - cityssm.escapeHTML(milestone.workOrderMilestoneType || '') + + cityssm.escapeHTML(milestone.workOrderMilestoneType ?? '') + '
' : '') + milestone.workOrderMilestoneDateString + @@ -490,7 +487,7 @@ declare const bulmaJS: BulmaJS : '') + '
' + '' + - cityssm.escapeHTML(milestone.workOrderMilestoneDescription || '') + + cityssm.escapeHTML(milestone.workOrderMilestoneDescription ?? '') + '' + '
') + ('
' + @@ -557,14 +554,14 @@ declare const bulmaJS: BulmaJS let addFormElement: HTMLFormElement let addCloseModalFunction: () => void - const doAdd = (submitEvent: SubmitEvent) => { + function doAdd(submitEvent: SubmitEvent): void { if (submitEvent) { submitEvent.preventDefault() } const currentDateString = cityssm.dateToString(new Date()) - function _doAdd() { + function _doAdd(): void { cityssm.postJSON( los.urlPrefix + '/workOrders/doAddWorkOrderMilestone', addFormElement, @@ -582,17 +579,14 @@ declare const bulmaJS: BulmaJS ) } - if ( - ( - addModalElement.querySelector( - '#milestoneAdd--workOrderMilestoneDateString' - ) as HTMLInputElement - ).value < currentDateString - ) { + if (( + addModalElement.querySelector( + '#milestoneAdd--workOrderMilestoneDateString' + ) as HTMLInputElement + ).value < currentDateString) { bulmaJS.confirm({ title: 'Milestone Date in the Past', - message: - 'Are you sure you want to create a milestone with a date in the past?', + message: 'Are you sure you want to create a milestone with a date in the past?', contextualColorName: 'warning', okButton: { text: 'Yes, Create a Past Milestone', diff --git a/public-typescript/workOrderMilestoneCalendar.js b/public-typescript/workOrderMilestoneCalendar.js index 2d9fdcac..8bf13ade 100644 --- a/public-typescript/workOrderMilestoneCalendar.js +++ b/public-typescript/workOrderMilestoneCalendar.js @@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const workOrderMilestoneDateStringElement = workOrderSearchFiltersFormElement.querySelector('#searchFilter--workOrderMilestoneDateString'); const milestoneCalendarContainerElement = document.querySelector('#container--milestoneCalendar'); function renderMilestones(workOrderMilestones) { + var _a, _b, _c, _d, _e, _f, _g; if (workOrderMilestones.length === 0) { milestoneCalendarContainerElement.innerHTML = `

There are no milestones that meet the search criteria.

@@ -38,12 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const lot of milestone.workOrderLots) { lotOccupancyHTML += '' + ' ' + - cityssm.escapeHTML(lot.lotName || '') + + cityssm.escapeHTML((_b = lot.lotName) !== null && _b !== void 0 ? _b : '') + '' + '
'; } @@ -51,12 +52,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const occupant of lotOccupancy.lotOccupancyOccupants) { lotOccupancyHTML += '' + ' ' + - cityssm.escapeHTML(occupant.occupantName || '') + + cityssm.escapeHTML((_d = occupant.occupantName) !== null && _d !== void 0 ? _d : '') + '' + '
'; } @@ -85,15 +86,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
') + ('
' + '' + ' ' + - cityssm.escapeHTML(milestone.workOrderNumber || '') + + cityssm.escapeHTML((_f = milestone.workOrderNumber) !== null && _f !== void 0 ? _f : '') + '
' + '' + - cityssm.escapeHTML(milestone.workOrderDescription || '') + + cityssm.escapeHTML((_g = milestone.workOrderDescription) !== null && _g !== void 0 ? _g : '') + '' + '
') + ('
' + lotOccupancyHTML + '
') + diff --git a/public-typescript/workOrderMilestoneCalendar.ts b/public-typescript/workOrderMilestoneCalendar.ts index 08af140e..9d528202 100644 --- a/public-typescript/workOrderMilestoneCalendar.ts +++ b/public-typescript/workOrderMilestoneCalendar.ts @@ -28,7 +28,7 @@ declare const cityssm: cityssmGlobal function renderMilestones( workOrderMilestones: recordTypes.WorkOrderMilestone[] - ) { + ): void { if (workOrderMilestones.length === 0) { milestoneCalendarContainerElement.innerHTML = `

There are no milestones that meet the search criteria.

@@ -52,7 +52,7 @@ declare const cityssm: cityssmGlobal currentPanelElement = document.createElement('div') currentPanelElement.className = 'panel' - currentPanelElement.innerHTML = `

${milestone.workOrderMilestoneDateString}

` + currentPanelElement.innerHTML = `

${milestone.workOrderMilestoneDateString!}

` currentPanelDateString = milestone.workOrderMilestoneDateString! } @@ -73,12 +73,12 @@ declare const cityssm: cityssmGlobal for (const lot of milestone.workOrderLots!) { lotOccupancyHTML += '' + ' ' + - cityssm.escapeHTML(lot.lotName || '') + + cityssm.escapeHTML(lot.lotName ?? '') + '' + '
' } @@ -87,12 +87,12 @@ declare const cityssm: cityssmGlobal for (const occupant of lotOccupancy.lotOccupancyOccupants!) { lotOccupancyHTML += '' + ' ' + - cityssm.escapeHTML(occupant.occupantName || '') + + cityssm.escapeHTML(occupant.occupantName ?? '') + '' + '
' } @@ -122,15 +122,15 @@ declare const cityssm: cityssmGlobal '
') + ('
' + '' + ' ' + - cityssm.escapeHTML(milestone.workOrderNumber || '') + + cityssm.escapeHTML(milestone.workOrderNumber ?? '') + '
' + '' + - cityssm.escapeHTML(milestone.workOrderDescription || '') + + cityssm.escapeHTML(milestone.workOrderDescription ?? '') + '' + '
') + ('
' + lotOccupancyHTML + '
') + @@ -141,7 +141,7 @@ declare const cityssm: cityssmGlobal milestoneCalendarContainerElement.append(currentPanelElement!) } - function getMilestones(event?: Event) { + function getMilestones(event?: Event): void { if (event) { event.preventDefault() } diff --git a/public/javascripts/lotOccupancyEdit.min.js b/public/javascripts/lotOccupancyEdit.min.js index 51e59c5c..de1340b6 100644 --- a/public/javascripts/lotOccupancyEdit.min.js +++ b/public/javascripts/lotOccupancyEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t,c;const a=exports.los,o=document.querySelector("#lotOccupancy--lotOccupancyId").value,n=""===o;let s=n;const l=document.querySelector("#form--lotOccupancy");l.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/"+(n?"doCreateLotOccupancy":"doUpdateLotOccupancy"),l,e=>{var t;e.success?(a.clearUnsavedChanges(),n||s?window.location.href=a.getLotOccupancyURL(e.lotOccupancyId,!0,!0):bulmaJS.alert({message:`${a.escapedAliases.Occupancy} Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+a.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",a.setUnsavedChanges);function u(){cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:o},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=a.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(),a.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${a.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 ${a.escapedAliases.Occupancy} Record`,message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:function(){cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:o},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=a.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(a.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{e.success?(t(),bulmaJS.confirm({title:"Work Order Created Successfully",message:"Would you like to open the work order now?",contextualColorName:"success",okButton:{text:"Yes, Open the Work Order",callbackFunction:()=>{window.location.href=a.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=o,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,a){var o;t=a,null===(o=e.querySelector("form"))||void 0===o||o.addEventListener("submit",c)}})});const i=document.querySelector("#lotOccupancy--occupancyTypeId");if(n){const e=document.querySelector("#container--lotOccupancyFields");i.addEventListener("change",()=>{""!==i.value?cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:i.value},t=>{if(0===t.occupancyTypeFields.length)return void(e.innerHTML=`
\n

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

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

Select the ${a.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 ${a.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;d.addEventListener("click",e=>{const t=e.currentTarget.value;let c,o,n,s;function l(e,t){document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,a.setUnsavedChanges(),c()}function r(e){e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)}function u(){s.innerHTML=a.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(a.urlPrefix+"/lots/doSearchLots",n,e=>{var t,c;if(0===e.count)return void(s.innerHTML='
\n

No results.

\n
');const a=document.createElement("div");a.className="panel";for(const o of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=o.lotId.toString(),e.dataset.lotName=o.lotName,e.innerHTML='
'+cityssm.escapeHTML(null!==(t=o.lotName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=o.mapName)&&void 0!==c?c:"")+'
'+cityssm.escapeHTML(o.lotStatus)+'
'+(o.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",r),a.append(e)}s.innerHTML="",s.append(a)})}function i(e){e.preventDefault();const t=o.querySelector("#lotCreate--lotName").value;cityssm.postJSON(a.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{var c;e.success?l(e.lotId,t):bulmaJS.alert({title:`Error Creating ${a.escapedAliases.Lot}`,message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{a.populateAliases(e)},onshown:(e,a)=>{var l;bulmaJS.toggleHtmlClipped(),o=e,c=a,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=""),n=e.querySelector("#form--lotSelect"),s=e.querySelector("#resultsContainer--lotSelect"),n.addEventListener("submit",e=>{e.preventDefault()}),u(),exports.lotNamePattern){const t=exports.lotNamePattern;e.querySelector("#lotCreate--lotName").pattern=t.source}const 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?window.open(a.urlPrefix+"/lots/"+e):bulmaJS.alert({message:`No ${a.escapedAliases.lot} selected.`,contextualColorName:"info"})}),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 ${a.escapedAliases.Lot})`,document.querySelector("#lotOccupancy--lotId").value="",a.setUnsavedChanges())}),a.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()}),a.initializeUnlockFieldButtons(l),Object.defineProperty(exports,"__esModule",{value:!0});const m=e=>{const t=Number.parseInt(e.currentTarget.closest("tr").dataset.lotOccupantIndex,10),c=p.find(e=>e.lotOccupantIndex===t);let n,s;const l=e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",n,e=>{e.success?(p=e.lotOccupancyOccupants,s(),O()):bulmaJS.alert({title:"Error Updating "+exports.aliases.occupant,message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyOccupantEdit--lotOccupantIndex").value=t.toString();const n=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),n.append(t)}if(!s){const e=document.createElement("option");e.value=c.lotOccupantTypeId.toString(),e.textContent=c.lotOccupantType,e.selected=!0,n.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(),(n=e.querySelector("form")).addEventListener("submit",l),s=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},y=e=>{const t=e.currentTarget.closest("tr").dataset.lotOccupantIndex;bulmaJS.confirm({title:"Remove "+exports.aliases.occupant+"?",message:"Are you sure you want to remove this "+exports.aliases.occupant.toLowerCase()+"?",okButton:{text:"Yes, Remove "+exports.aliases.occupant,callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:o,lotOccupantIndex:t},e=>{e.success?(p=e.lotOccupancyOccupants,O()):bulmaJS.alert({title:"Error Removing "+exports.aliases.occupant,message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},O=()=>{const e=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(e),0===p.length)return void(e.innerHTML='

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

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

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

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

There are no fees associated with this record.

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

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

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

There are no transactions associated with this record.

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

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

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

Select the ${a.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 ${a.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(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",o,e=>{var t;e.success?(p=e.lotOccupancyOccupants,s(),O()):bulmaJS.alert({title:"Error Updating "+a.escapedAliases.Occupant,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantEdit--lotOccupancyId").value=n,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 ${a.escapedAliases.Occupant}?`,message:`Are you sure you want to remove this ${a.escapedAliases.occupant}?`,okButton:{text:"Yes, Remove "+a.escapedAliases.Occupant,callbackFunction:function(){cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyOccupant",{lotOccupancyId:n,lotOccupantIndex:t},e=>{var t;e.success?(p=e.lotOccupancyOccupants,O()):bulmaJS.alert({title:"Error Removing "+a.escapedAliases.Occupant,message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function O(){var e,t,c;const n=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(n),0===p.length)return void(n.innerHTML=`
\n

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

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

No results.

\n
');const a=document.createElement("div");a.className="panel";for(const n of e.lots){const e=document.createElement("a");e.className="panel-block is-block",e.href="#",e.dataset.lotId=n.lotId.toString(),e.dataset.lotName=n.lotName,e.innerHTML='
'+cityssm.escapeHTML(null!==(t=n.lotName)&&void 0!==t?t:"")+'
'+cityssm.escapeHTML(null!==(c=n.mapName)&&void 0!==c?c:"")+'
'+cityssm.escapeHTML(n.lotStatus)+'
'+(n.lotOccupancyCount>0?"Currently Occupied":"")+"
",e.addEventListener("click",r),a.append(e)}s.innerHTML="",s.append(a)})}function i(e){e.preventDefault();const t=n.querySelector("#lotCreate--lotName").value;cityssm.postJSON(a.urlPrefix+"/lots/doCreateLot",e.currentTarget,e=>{var c;e.success?l(e.lotId,t):bulmaJS.alert({title:`Error Creating ${a.escapedAliases.Lot}`,message:null!==(c=e.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-selectLot",{onshow:e=>{a.populateAliases(e)},onshown:(e,a)=>{var l;bulmaJS.toggleHtmlClipped(),n=e,c=a,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?window.open(a.urlPrefix+"/lots/"+e):bulmaJS.alert({message:`No ${a.escapedAliases.lot} selected.`,contextualColorName:"info"})}),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 ${a.escapedAliases.Lot})`,document.querySelector("#lotOccupancy--lotId").value="",a.setUnsavedChanges())}),a.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()}),a.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(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",t,t=>{var c;t.success?(p=t.lotOccupancyOccupants,e(),O()):bulmaJS.alert({title:`Error Adding ${a.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 ${a.escapedAliases.Occupant} Type Selected`,message:`Select a type to apply to the newly added ${a.escapedAliases.occupant}.`,contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(o,10),c.lotOccupancyId=Number.parseInt(n,10),s(c))}function i(e){e.preventDefault(),""!==c.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(o.innerHTML=a.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doSearchPastOccupants",c,e=>{var t,c,a,n,s,l;r=e.occupants;const i=document.createElement("div");i.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:"")+"
"+(o.occupantAddress2?cityssm.escapeHTML(o.occupantAddress2)+"
":"")+cityssm.escapeHTML(null!==(a=o.occupantCity)&&void 0!==a?a:"")+", "+cityssm.escapeHTML(null!==(n=o.occupantProvince)&&void 0!==n?n:"")+"
"+cityssm.escapeHTML(null!==(s=o.occupantPostalCode)&&void 0!==s?s:"")+'
'+(o.occupantPhoneNumber?cityssm.escapeHTML(o.occupantPhoneNumber)+"
":"")+cityssm.escapeHTML(null!==(l=o.occupantEmailAddress)&&void 0!==l?l:"")+"
",r.addEventListener("click",u),i.append(r)}o.innerHTML="",o.append(i)})):o.innerHTML='

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

'}cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=n;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const a=document.createElement("option");a.value=e.lotOccupantTypeId.toString(),a.textContent=e.lotOccupantType,t.append(a),c.append(a.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(a,n)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(a),a.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(t=a.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),o=a.querySelector("#lotOccupancyOccupantCopy--searchResults"),(c=a.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),a.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",i),e=n},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),O();if(!o){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;function v(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(a.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=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=n,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(),a.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(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:n,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;const a=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(a.innerHTML='

There are no comments associated with this record.

');const n=document.createElement("table");n.className="table is-fullwidth is-striped is-hoverable",n.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:"")+""+a.lotOccupancyCommentDateString+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(null!==(c=a.lotOccupancyComment)&&void 0!==c?c:"")+'
',e.querySelector(".button--edit").addEventListener("click",v),e.querySelector(".button--delete").addEventListener("click",g),n.querySelector("tbody").append(e)}a.innerHTML="",a.append(n)}delete exports.lotOccupancyComments,document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;function o(n){n.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{var a;t.success?(e=t.lotOccupancyComments,c(),f()):bulmaJS.alert({title:"Error Adding Comment",message:null!==(a=t.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=n},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",o),c=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),f(),Object.defineProperty(exports,"__esModule",{value:!0});let t=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const c=document.querySelector("#container--lotOccupancyFees"),o=()=>{let e=0;for(const c of t)e+=(c.feeAmount+c.taxAmount)*c.quantity;return e},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:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:n,feeId:c},e=>{e.success?(t=e.lotOccupancyFees,l()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},l=()=>{if(0===t.length)return c.innerHTML='

There are no fees associated with this record.

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

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

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

There are no transactions associated with this record.

');u.innerHTML='
Date'+cityssm.escapeHTML(exports.aliases.externalReceiptNumber)+'AmountOptions
Transaction Total
';let e=0;for(const t of r){e+=t.transactionAmount;const c=document.createElement("tr");c.className="container--lotOccupancyTransaction",c.dataset.transactionIndex=t.transactionIndex.toString(),c.innerHTML=""+t.transactionDateString+""+cityssm.escapeHTML(t.externalReceiptNumber||"")+"
"+cityssm.escapeHTML(t.transactionNote||"")+'$'+t.transactionAmount.toFixed(2)+'',c.querySelector("button").addEventListener("click",d),u.querySelector("tbody").append(c)}u.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+e.toFixed(2);const c=o();c>e&&u.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(c-e).toFixed(2)+"
")};document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;const t=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{t.success?(r=t.lotOccupancyTransactions,e(),p()):bulmaJS.confirm({title:"Error Adding Transaction",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=n.toString();const t=o(),c=i(),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,a)=>{bulmaJS.toggleHtmlClipped(),e=a,c.querySelector("form").addEventListener("submit",t)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),l()}})(); \ No newline at end of file diff --git a/public/javascripts/workOrderEdit.min.js b/public/javascripts/workOrderEdit.min.js index 2c8176fa..07fb6ac2 100644 --- a/public/javascripts/workOrderEdit.min.js +++ b/public/javascripts/workOrderEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const t=exports.los,o=document.querySelector("#workOrderEdit--workOrderId").value,r=""===o,s=document.querySelector("#form--workOrderEdit");t.initializeDatePickers(s.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")),t.initializeUnlockFieldButtons(s),s.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/"+(r?"doCreateWorkOrder":"doUpdateWorkOrder"),e.currentTarget,e=>{e.success?(cityssm.disableNavBlocker(),r?window.location.href=t.getWorkOrderURL(e.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:e.errorMessage||"",contextualColorName:"danger"})})});const n=s.querySelectorAll("input, select");for(const e of n)e.addEventListener("change",cityssm.enableNavBlocker);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doCloseWorkOrder",{workOrderId:o},e=>{e.success?window.location.href=t.urlPrefix+"/workOrders/"+o:bulmaJS.alert({title:"Error Closing Work Order",message:e.errorMessage||"",contextualColorName:"danger"})})}function l(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrder",{workOrderId:o},e=>{e.success?window.location.href=t.urlPrefix+"/workOrders":bulmaJS.alert({title:"Error Deleting Work Order",message:e.errorMessage||"",contextualColorName:"danger"})})}let c;if(null===(w=document.querySelector("#button--closeWorkOrder"))||void 0===w||w.addEventListener("click",()=>{c.some(e=>!e.workOrderMilestoneCompletionDate)?bulmaJS.alert({title:"Outstanding Milestones",message:"You cannot close a work order with outstanding milestones.\n Either complete the outstanding milestones, or remove them from the work order.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Close Work Order",message:"Are you sure you want to close this work order?",contextualColorName:"info",okButton:{text:"Yes, Close Work Order",callbackFunction:a}})}),null===(e=document.querySelector("#button--deleteWorkOrder"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete Work Order",message:"Are you sure you want to delete this work order?",contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order",callbackFunction:l}})}),!r){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function i(e){const s=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:s},e=>{e.success?(r=e.workOrderLotOccupancies,y()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function d(r,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:o,lotId:r},o=>{o.success?(e=o.workOrderLots,y()):bulmaJS.alert({title:"Error Adding "+t.escapedAliases.Lot,message:o.errorMessage||"",contextualColorName:"danger"}),s&&s(o.success)})}function u(e){d(e.currentTarget.dataset.lotId)}function m(r){const s=Number.parseInt(r.currentTarget.closest(".container--lot").dataset.lotId,10),n=e.find(e=>e.lotId===s);let a;function l(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateLotStatus",o.currentTarget,t=>{t.success?(e=t.workOrderLots,y(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:t.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(e){t.populateAliases(e),e.querySelector("#lotStatusEdit--lotId").value=s.toString(),e.querySelector("#lotStatusEdit--lotName").value=n.lotName;const r=e.querySelector("#lotStatusEdit--lotStatusId");let a=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===n.lotStatusId&&(a=!0),r.append(t)}if(!a&&n.lotStatusId){const e=document.createElement("option");e.value=n.lotStatusId.toString(),e.textContent=n.lotStatus,r.append(e)}n.lotStatusId&&(r.value=n.lotStatusId.toString()),e.querySelector("form").insertAdjacentHTML("beforeend",``)},onshown(e,t){a=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function p(r){const s=r.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLot",{workOrderId:o,lotId:s},t=>{t.success?(e=t.workOrderLots,y()):bulmaJS.alert({title:"Error Deleting Relationship",message:t.errorMessage||"",contextualColorName:"danger"})})}}})}function y(){!function(){var o,s;const n=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(n.innerHTML=`
\n

There are no ${t.escapedAliases.occupancies} associated with this work order.

\n
`);n.innerHTML=`\n \n \n \n \n \n \n \n
${t.escapedAliases.Occupancy} Type${t.escapedAliases.Lot}${t.escapedAliases.OccupancyStartDate}End Date${t.escapedAliases.Occupants}
`;const a=cityssm.dateToString(new Date);for(const l of r){const r=document.createElement("tr");r.className="container--lotOccupancy",r.dataset.lotOccupancyId=l.lotOccupancyId.toString();const c=!(l.occupancyEndDate&&l.occupancyEndDateStringl.lotId===e.lotId);r.innerHTML=''+(c?'':'')+''+cityssm.escapeHTML(l.occupancyType||"")+"",l.lotId?r.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(l.lotName||"")+(d?"":' ')+""):r.insertAdjacentHTML("beforeend",`(No ${t.escapedAliases.Lot})`),r.insertAdjacentHTML("beforeend",""+l.occupancyStartDateString+""+(l.occupancyEndDate?l.occupancyEndDateString:'(No End Date)')+""+(0===l.lotOccupancyOccupants.length?'(No '+t.escapedAliases.Occupants+")":null===(o=l.lotOccupancyOccupants)||void 0===o?void 0:o.reduce((e,o)=>e+' '+cityssm.escapeHTML(o.occupantName)+"
",""))+''),null===(s=r.querySelector(".button--addLot"))||void 0===s||s.addEventListener("click",u),r.querySelector(".button--deleteLotOccupancy").addEventListener("click",i),n.querySelector("tbody").append(r)}}(),function(){const o=document.querySelector("#container--lots");if(document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent=e.length.toString(),0!==e.length){o.innerHTML=`\n \n \n \n \n \n \n \n \n
${t.escapedAliases.Lot}${t.escapedAliases.Map}${t.escapedAliases.Lot} TypeStatus
`;for(const r of e){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=r.lotId.toString(),e.innerHTML=''+cityssm.escapeHTML(r.lotName||"")+""+cityssm.escapeHTML(r.mapName||"")+""+cityssm.escapeHTML(r.lotType||"")+""+(r.lotStatusId?cityssm.escapeHTML(r.lotStatus||""):'(No Status)')+' ',e.querySelector(".button--editLotStatus").addEventListener("click",m),e.querySelector(".button--deleteLot").addEventListener("click",p),o.querySelector("tbody").append(e)}}else o.innerHTML=`
\n

There are no ${t.escapedAliases.lots} associated with this work order.

\n
`}()}function O(e){const s=e.currentTarget.closest("tr");!function(e,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:e},e=>{e.success?(r=e.workOrderLotOccupancies,y()):bulmaJS.alert({title:"Error Adding "+t.escapedAliases.Occupancy,message:e.errorMessage||"",contextualColorName:"danger"}),s&&s(e.success)})}(s.dataset.lotOccupancyId,e=>{e&&s.remove()})}function h(e){const t=e.currentTarget.closest("tr");d(t.dataset.lotId,e=>{e&&t.remove()})}delete exports.workOrderLotOccupancies,y(),document.querySelector("#button--addLotOccupancy").addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,e=>{if(0!==e.lotOccupancies.length){r.innerHTML=`\n \n \n \n \n \n \n \n \n \n
${t.escapedAliases.Occupancy} Type${t.escapedAliases.Lot}${t.escapedAliases.OccupancyStartDate}End Date${t.escapedAliases.Occupants}
`;for(const o of e.lotOccupancies){const e=document.createElement("tr");e.className="container--lotOccupancy",e.dataset.lotOccupancyId=o.lotOccupancyId.toString(),e.innerHTML=''+cityssm.escapeHTML(o.occupancyType||"")+"",o.lotId?e.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(o.lotName||"")+""):e.insertAdjacentHTML("beforeend",`(No ${t.escapedAliases.Lot})`),e.insertAdjacentHTML("beforeend",""+o.occupancyStartDateString+""+(o.occupancyEndDate?o.occupancyEndDateString:'(No End Date)')+""+(0===o.lotOccupancyOccupants.length?'(No '+cityssm.escapeHTML(exports.aliases.occupants)+")":cityssm.escapeHTML(o.lotOccupancyOccupants[0].occupantName)+(o.lotOccupancyOccupants.length>1?" plus "+(o.lotOccupancyOccupants.length-1):""))+""),e.querySelector(".button--addLotOccupancy").addEventListener("click",O),r.querySelector("tbody").append(e)}}else r.innerHTML='
\n

There are no records that meet the search criteria.

\n
'})}cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow(n){t.populateAliases(n),e=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotOccupancyAdd"),n.querySelector("#lotOccupancySearch--notWorkOrderId").value=o,n.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value=document.querySelector("#workOrderEdit--workOrderOpenDateString").value,s()},onshown(t){bulmaJS.toggleHtmlClipped(),t.querySelector("#lotOccupancySearch--occupantName").addEventListener("change",s),t.querySelector("#lotOccupancySearch--lotName").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped()}})}),document.querySelector("#button--addLot").addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lots/doSearchLots",e,e=>{if(0!==e.lots.length){r.innerHTML=`\n \n \n \n \n \n \n \n \n
${t.escapedAliases.Lot}${t.escapedAliases.Map}${t.escapedAliases.Lot} TypeStatus
`;for(const t of e.lots){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=t.lotId.toString(),e.innerHTML=''+cityssm.escapeHTML(t.lotName||"")+""+cityssm.escapeHTML(t.mapName||"")+""+cityssm.escapeHTML(t.lotType||"")+""+cityssm.escapeHTML(t.lotStatus||"")+"",e.querySelector(".button--addLot").addEventListener("click",h),r.querySelector("tbody").append(e)}}else r.innerHTML='

There are no records that meet the search criteria.

'})}cityssm.openHtmlModal("workOrder-addLot",{onshow(n){t.populateAliases(n),e=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotAdd"),n.querySelector("#lotSearch--notWorkOrderId").value=o;const a=n.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,a.append(t)}s()},onshown(t){bulmaJS.toggleHtmlClipped(),t.querySelector("#lotSearch--lotName").addEventListener("change",s),t.querySelector("#lotSearch--lotStatusId").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped()}})})}var w;Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.workOrderComments;delete exports.workOrderComments;const k=e=>{const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=g.find(e=>e.workOrderCommentId===r);let n,a;function l(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderComment",n,e=>{e.success?(g=e.workOrderComments,a(),b()):bulmaJS.alert({title:"Error Updating Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){e.querySelector("#workOrderCommentEdit--workOrderId").value=o,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=r.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=s.workOrderComment;const t=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");t.value=s.workOrderCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.workOrderCommentDateString<=n?n:s.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=s.workOrderCommentTimeString},onshown(e,o){bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(n=e.querySelector("form")).addEventListener("submit",l),a=o},onremoved(){bulmaJS.toggleHtmlClipped()}})};function S(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,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(t.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:o,workOrderCommentId:r},e=>{e.success?(g=e.workOrderComments,b()):bulmaJS.alert({title:"Error Removing Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function b(){const e=document.querySelector("#container--workOrderComments");if(0===g.length)return void(e.innerHTML='
\n

There are no comments to display.

\n
');const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const e of g){const o=document.createElement("tr");o.dataset.workOrderCommentId=e.workOrderCommentId.toString(),o.innerHTML=""+cityssm.escapeHTML(e.recordCreate_userName||"")+""+e.workOrderCommentDateString+(0===e.workOrderCommentTime?"":" "+e.workOrderCommentTimeString)+""+cityssm.escapeHTML(e.workOrderComment||"")+'
',o.querySelector(".button--edit").addEventListener("click",k),o.querySelector(".button--delete").addEventListener("click",S),t.querySelector("tbody").append(o)}e.innerHTML="",e.append(t)}function f(e){e.success?(c=e.workOrderMilestones,T()):bulmaJS.alert({title:"Error Reopening Milestone",message:e.errorMessage||"",contextualColorName:"danger"})}function M(e){e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=c.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(n.workOrderMilestoneDateString>r?"
Note that this milestone is expected to be completed in the future.":""),messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Complete Milestone",callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/workOrders/doCompleteWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:s},f)}}})}function v(e){e.preventDefault();const r=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Reopen Milestone",message:"Are you sure you want to remove the completion status from this milestone, and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Milestone",callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/workOrders/doReopenWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:r},f)}}})}function L(e){e.preventDefault();const r=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Delete Milestone",message:"Are you sure you want to delete this milestone?",contextualColorName:"warning",okButton:{text:"Yes, Delete Milestone",callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderMilestone",{workOrderMilestoneId:r,workOrderId:o},f)}}})}function C(e){e.preventDefault();const r=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),s=c.find(e=>e.workOrderMilestoneId===r);let n;const a=e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",e.currentTarget,e=>{f(e),e.success&&n()})};cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){e.querySelector("#milestoneEdit--workOrderId").value=o,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=s.workOrderMilestoneId.toString();const t=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let r=!1;for(const e of exports.workOrderMilestoneTypes){const o=document.createElement("option");o.value=e.workOrderMilestoneTypeId.toString(),o.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(o.selected=!0,r=!0),t.append(o)}if(!r&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=s.workOrderMilestoneType,e.selected=!0,t.append(e)}e.querySelector("#milestoneEdit--workOrderMilestoneDateString").value=s.workOrderMilestoneDateString,s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=s.workOrderMilestoneTimeString),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=s.workOrderMilestoneDescription},onshown(e,o){n=o,bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function T(){var e,t,o;const r=document.querySelector("#panel--milestones"),s=r.querySelectorAll(".panel-block");for(const e of s)e.remove();for(const s of c){const n=document.createElement("div");n.className="panel-block is-block container--milestone",n.dataset.workOrderMilestoneId=s.workOrderMilestoneId.toString(),n.innerHTML='
'+(s.workOrderMilestoneCompletionDate?'':'')+'
'+(s.workOrderMilestoneTypeId?""+cityssm.escapeHTML(s.workOrderMilestoneType||"")+"
":"")+s.workOrderMilestoneDateString+(s.workOrderMilestoneTime?" "+s.workOrderMilestoneTimeString:"")+'
'+cityssm.escapeHTML(s.workOrderMilestoneDescription||"")+'
',null===(e=n.querySelector(".button--reopenMilestone"))||void 0===e||e.addEventListener("click",v),null===(t=n.querySelector(".button--editMilestone"))||void 0===t||t.addEventListener("click",C),null===(o=n.querySelector(".button--completeMilestone"))||void 0===o||o.addEventListener("click",M),n.querySelector(".button--deleteMilestone").addEventListener("click",L),r.append(n)}bulmaJS.init(r)}null===(w=document.querySelector("#workOrderComments--add"))||void 0===w||w.addEventListener("click",function(){let e;function r(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderComment",o.currentTarget,t=>{t.success&&(g=t.workOrderComments,b(),e())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#workOrderCommentAdd--workOrderId").value=o,e.querySelector("form").addEventListener("submit",r)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),r||b(),r||(c=exports.workOrderMilestones,delete exports.workOrderMilestones,T(),document.querySelector("#button--addMilestone").addEventListener("click",()=>{let e,r,s;const n=o=>{o&&o.preventDefault();const n=cityssm.dateToString(new Date);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderMilestone",r,e=>{f(e),e.success&&s()})}e.querySelector("#milestoneAdd--workOrderMilestoneDateString").value{var e;const t=exports.los,o=document.querySelector("#workOrderEdit--workOrderId").value,r=""===o,s=document.querySelector("#form--workOrderEdit");t.initializeDatePickers(s.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")),t.initializeUnlockFieldButtons(s),s.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/"+(r?"doCreateWorkOrder":"doUpdateWorkOrder"),e.currentTarget,e=>{var o;e.success?(cityssm.disableNavBlocker(),r?window.location.href=t.getWorkOrderURL(e.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const n=s.querySelectorAll("input, select");for(const e of n)e.addEventListener("change",cityssm.enableNavBlocker);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doCloseWorkOrder",{workOrderId:o},e=>{var r;e.success?window.location.href=t.urlPrefix+"/workOrders/"+o:bulmaJS.alert({title:"Error Closing Work Order",message:null!==(r=e.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}function l(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrder",{workOrderId:o},e=>{var o;e.success?window.location.href=t.urlPrefix+"/workOrders":bulmaJS.alert({title:"Error Deleting Work Order",message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}let c;if(null===(w=document.querySelector("#button--closeWorkOrder"))||void 0===w||w.addEventListener("click",()=>{c.some(e=>!e.workOrderMilestoneCompletionDate)?bulmaJS.alert({title:"Outstanding Milestones",message:"You cannot close a work order with outstanding milestones.\n Either complete the outstanding milestones, or remove them from the work order.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Close Work Order",message:"Are you sure you want to close this work order?",contextualColorName:"info",okButton:{text:"Yes, Close Work Order",callbackFunction:a}})}),null===(e=document.querySelector("#button--deleteWorkOrder"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete Work Order",message:"Are you sure you want to delete this work order?",contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order",callbackFunction:l}})}),!r){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function i(e){const s=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:s},e=>{e.success?(r=e.workOrderLotOccupancies,y()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function d(r,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:o,lotId:r},o=>{o.success?(e=o.workOrderLots,y()):bulmaJS.alert({title:"Error Adding "+t.escapedAliases.Lot,message:o.errorMessage||"",contextualColorName:"danger"}),s&&s(o.success)})}function u(e){d(e.currentTarget.dataset.lotId)}function m(r){const s=Number.parseInt(r.currentTarget.closest(".container--lot").dataset.lotId,10),n=e.find(e=>e.lotId===s);let a;function l(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateLotStatus",o.currentTarget,t=>{t.success?(e=t.workOrderLots,y(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:t.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(e){t.populateAliases(e),e.querySelector("#lotStatusEdit--lotId").value=s.toString(),e.querySelector("#lotStatusEdit--lotName").value=n.lotName;const r=e.querySelector("#lotStatusEdit--lotStatusId");let a=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===n.lotStatusId&&(a=!0),r.append(t)}if(!a&&n.lotStatusId){const e=document.createElement("option");e.value=n.lotStatusId.toString(),e.textContent=n.lotStatus,r.append(e)}n.lotStatusId&&(r.value=n.lotStatusId.toString()),e.querySelector("form").insertAdjacentHTML("beforeend",``)},onshown(e,t){a=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function p(r){const s=r.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLot",{workOrderId:o,lotId:s},t=>{t.success?(e=t.workOrderLots,y()):bulmaJS.alert({title:"Error Deleting Relationship",message:t.errorMessage||"",contextualColorName:"danger"})})}}})}function y(){!function(){var o,s;const n=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(n.innerHTML=`
\n

There are no ${t.escapedAliases.occupancies} associated with this work order.

\n
`);n.innerHTML=`\n \n \n \n \n \n \n \n
${t.escapedAliases.Occupancy} Type${t.escapedAliases.Lot}${t.escapedAliases.OccupancyStartDate}End Date${t.escapedAliases.Occupants}
`;const a=cityssm.dateToString(new Date);for(const l of r){const r=document.createElement("tr");r.className="container--lotOccupancy",r.dataset.lotOccupancyId=l.lotOccupancyId.toString();const c=!(l.occupancyEndDate&&l.occupancyEndDateStringl.lotId===e.lotId);r.innerHTML=''+(c?'':'')+''+cityssm.escapeHTML(l.occupancyType||"")+"",l.lotId?r.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(l.lotName||"")+(d?"":' ')+""):r.insertAdjacentHTML("beforeend",`(No ${t.escapedAliases.Lot})`),r.insertAdjacentHTML("beforeend",""+l.occupancyStartDateString+""+(l.occupancyEndDate?l.occupancyEndDateString:'(No End Date)')+""+(0===l.lotOccupancyOccupants.length?'(No '+t.escapedAliases.Occupants+")":null===(o=l.lotOccupancyOccupants)||void 0===o?void 0:o.reduce((e,o)=>e+' '+cityssm.escapeHTML(o.occupantName)+"
",""))+''),null===(s=r.querySelector(".button--addLot"))||void 0===s||s.addEventListener("click",u),r.querySelector(".button--deleteLotOccupancy").addEventListener("click",i),n.querySelector("tbody").append(r)}}(),function(){const o=document.querySelector("#container--lots");if(document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent=e.length.toString(),0!==e.length){o.innerHTML=`\n \n \n \n \n \n \n \n \n
${t.escapedAliases.Lot}${t.escapedAliases.Map}${t.escapedAliases.Lot} TypeStatus
`;for(const r of e){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=r.lotId.toString(),e.innerHTML=''+cityssm.escapeHTML(r.lotName||"")+""+cityssm.escapeHTML(r.mapName||"")+""+cityssm.escapeHTML(r.lotType||"")+""+(r.lotStatusId?cityssm.escapeHTML(r.lotStatus||""):'(No Status)')+' ',e.querySelector(".button--editLotStatus").addEventListener("click",m),e.querySelector(".button--deleteLot").addEventListener("click",p),o.querySelector("tbody").append(e)}}else o.innerHTML=`
\n

There are no ${t.escapedAliases.lots} associated with this work order.

\n
`}()}function O(e){const s=e.currentTarget.closest("tr");!function(e,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:e},e=>{e.success?(r=e.workOrderLotOccupancies,y()):bulmaJS.alert({title:"Error Adding "+t.escapedAliases.Occupancy,message:e.errorMessage||"",contextualColorName:"danger"}),s&&s(e.success)})}(s.dataset.lotOccupancyId,e=>{e&&s.remove()})}function h(e){const t=e.currentTarget.closest("tr");d(t.dataset.lotId,e=>{e&&t.remove()})}delete exports.workOrderLotOccupancies,y(),document.querySelector("#button--addLotOccupancy").addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,e=>{if(0!==e.lotOccupancies.length){r.innerHTML=`\n \n \n \n \n \n \n \n \n \n
${t.escapedAliases.Occupancy} Type${t.escapedAliases.Lot}${t.escapedAliases.OccupancyStartDate}End Date${t.escapedAliases.Occupants}
`;for(const o of e.lotOccupancies){const e=document.createElement("tr");e.className="container--lotOccupancy",e.dataset.lotOccupancyId=o.lotOccupancyId.toString(),e.innerHTML=''+cityssm.escapeHTML(o.occupancyType||"")+"",o.lotId?e.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(o.lotName||"")+""):e.insertAdjacentHTML("beforeend",`(No ${t.escapedAliases.Lot})`),e.insertAdjacentHTML("beforeend",""+o.occupancyStartDateString+""+(o.occupancyEndDate?o.occupancyEndDateString:'(No End Date)')+""+(0===o.lotOccupancyOccupants.length?'(No '+cityssm.escapeHTML(exports.aliases.occupants)+")":cityssm.escapeHTML(o.lotOccupancyOccupants[0].occupantName)+(o.lotOccupancyOccupants.length>1?" plus "+(o.lotOccupancyOccupants.length-1):""))+""),e.querySelector(".button--addLotOccupancy").addEventListener("click",O),r.querySelector("tbody").append(e)}}else r.innerHTML='
\n

There are no records that meet the search criteria.

\n
'})}cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow(n){t.populateAliases(n),e=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotOccupancyAdd"),n.querySelector("#lotOccupancySearch--notWorkOrderId").value=o,n.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value=document.querySelector("#workOrderEdit--workOrderOpenDateString").value,s()},onshown(t){bulmaJS.toggleHtmlClipped(),t.querySelector("#lotOccupancySearch--occupantName").addEventListener("change",s),t.querySelector("#lotOccupancySearch--lotName").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped()}})}),document.querySelector("#button--addLot").addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lots/doSearchLots",e,e=>{if(0!==e.lots.length){r.innerHTML=`\n \n \n \n \n \n \n \n \n
${t.escapedAliases.Lot}${t.escapedAliases.Map}${t.escapedAliases.Lot} TypeStatus
`;for(const t of e.lots){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=t.lotId.toString(),e.innerHTML=''+cityssm.escapeHTML(t.lotName||"")+""+cityssm.escapeHTML(t.mapName||"")+""+cityssm.escapeHTML(t.lotType||"")+""+cityssm.escapeHTML(t.lotStatus||"")+"",e.querySelector(".button--addLot").addEventListener("click",h),r.querySelector("tbody").append(e)}}else r.innerHTML='

There are no records that meet the search criteria.

'})}cityssm.openHtmlModal("workOrder-addLot",{onshow(n){t.populateAliases(n),e=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotAdd"),n.querySelector("#lotSearch--notWorkOrderId").value=o;const a=n.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,a.append(t)}s()},onshown(t){bulmaJS.toggleHtmlClipped(),t.querySelector("#lotSearch--lotName").addEventListener("change",s),t.querySelector("#lotSearch--lotStatusId").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped()}})})}var w;Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.workOrderComments;delete exports.workOrderComments;const k=e=>{const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=g.find(e=>e.workOrderCommentId===r);let n,a;function l(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderComment",n,e=>{e.success?(g=e.workOrderComments,a(),b()):bulmaJS.alert({title:"Error Updating Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){e.querySelector("#workOrderCommentEdit--workOrderId").value=o,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=r.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=s.workOrderComment;const t=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");t.value=s.workOrderCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.workOrderCommentDateString<=n?n:s.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=s.workOrderCommentTimeString},onshown(e,o){bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(n=e.querySelector("form")).addEventListener("submit",l),a=o},onremoved(){bulmaJS.toggleHtmlClipped()}})};function S(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,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(t.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:o,workOrderCommentId:r},e=>{e.success?(g=e.workOrderComments,b()):bulmaJS.alert({title:"Error Removing Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function b(){const e=document.querySelector("#container--workOrderComments");if(0===g.length)return void(e.innerHTML='
\n

There are no comments to display.

\n
');const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const e of g){const o=document.createElement("tr");o.dataset.workOrderCommentId=e.workOrderCommentId.toString(),o.innerHTML=""+cityssm.escapeHTML(e.recordCreate_userName||"")+""+e.workOrderCommentDateString+(0===e.workOrderCommentTime?"":" "+e.workOrderCommentTimeString)+""+cityssm.escapeHTML(e.workOrderComment||"")+'
',o.querySelector(".button--edit").addEventListener("click",k),o.querySelector(".button--delete").addEventListener("click",S),t.querySelector("tbody").append(o)}e.innerHTML="",e.append(t)}function f(e){var t;e.success?(c=e.workOrderMilestones,T()):bulmaJS.alert({title:"Error Reopening Milestone",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function v(e){e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=c.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(n.workOrderMilestoneDateString>r?"
Note that this milestone is expected to be completed in the future.":""),messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Complete Milestone",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doCompleteWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:s},f)}}})}function M(e){e.preventDefault();const r=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Reopen Milestone",message:"Are you sure you want to remove the completion status from this milestone, and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Milestone",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doReopenWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:r},f)}}})}function L(e){e.preventDefault();const r=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Delete Milestone",message:"Are you sure you want to delete this milestone?",contextualColorName:"warning",okButton:{text:"Yes, Delete Milestone",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderMilestone",{workOrderMilestoneId:r,workOrderId:o},f)}}})}function C(e){e.preventDefault();const r=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),s=c.find(e=>e.workOrderMilestoneId===r);let n;function a(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",e.currentTarget,e=>{f(e),e.success&&n()})}cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){e.querySelector("#milestoneEdit--workOrderId").value=o,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=s.workOrderMilestoneId.toString();const t=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let r=!1;for(const e of exports.workOrderMilestoneTypes){const o=document.createElement("option");o.value=e.workOrderMilestoneTypeId.toString(),o.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(o.selected=!0,r=!0),t.append(o)}if(!r&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=s.workOrderMilestoneType,e.selected=!0,t.append(e)}e.querySelector("#milestoneEdit--workOrderMilestoneDateString").value=s.workOrderMilestoneDateString,s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=s.workOrderMilestoneTimeString),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=s.workOrderMilestoneDescription},onshown(e,o){n=o,bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function T(){var e,t,o,r,s;const n=document.querySelector("#panel--milestones"),a=n.querySelectorAll(".panel-block");for(const e of a)e.remove();for(const a of c){const l=document.createElement("div");l.className="panel-block is-block container--milestone",l.dataset.workOrderMilestoneId=a.workOrderMilestoneId.toString(),l.innerHTML='
'+(a.workOrderMilestoneCompletionDate?'':'')+'
'+(a.workOrderMilestoneTypeId?""+cityssm.escapeHTML(null!==(e=a.workOrderMilestoneType)&&void 0!==e?e:"")+"
":"")+a.workOrderMilestoneDateString+(a.workOrderMilestoneTime?" "+a.workOrderMilestoneTimeString:"")+'
'+cityssm.escapeHTML(null!==(t=a.workOrderMilestoneDescription)&&void 0!==t?t:"")+'
',null===(o=l.querySelector(".button--reopenMilestone"))||void 0===o||o.addEventListener("click",M),null===(r=l.querySelector(".button--editMilestone"))||void 0===r||r.addEventListener("click",C),null===(s=l.querySelector(".button--completeMilestone"))||void 0===s||s.addEventListener("click",v),l.querySelector(".button--deleteMilestone").addEventListener("click",L),n.append(l)}bulmaJS.init(n)}null===(w=document.querySelector("#workOrderComments--add"))||void 0===w||w.addEventListener("click",function(){let e;function r(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderComment",o.currentTarget,t=>{t.success&&(g=t.workOrderComments,b(),e())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#workOrderCommentAdd--workOrderId").value=o,e.querySelector("form").addEventListener("submit",r)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),r||b(),r||(c=exports.workOrderMilestones,delete exports.workOrderMilestones,T(),document.querySelector("#button--addMilestone").addEventListener("click",()=>{let e,r,s;function n(o){o&&o.preventDefault();const n=cityssm.dateToString(new Date);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderMilestone",r,e=>{f(e),e.success&&s()})}e.querySelector("#milestoneAdd--workOrderMilestoneDateString").value{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){if(0===s.length)return void(t.innerHTML='
\n

There are no milestones that meet the search criteria.

\n
');t.innerHTML="";const r=cityssm.dateToString(new Date);let a,i="";for(const o of s){i!==o.workOrderMilestoneDateString&&(a&&t.append(a),(a=document.createElement("div")).className="panel",a.innerHTML=`

${o.workOrderMilestoneDateString}

`,i=o.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!o.workOrderMilestoneCompletionDate&&o.workOrderMilestoneDateString '+cityssm.escapeHTML(s.lotName||"")+"
";for(const s of o.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)n+=' '+cityssm.escapeHTML(r.occupantName||"")+"
";s.innerHTML='
'+(o.workOrderMilestoneCompletionDate?'':'')+'
'+(0===o.workOrderMilestoneTime?"":o.workOrderMilestoneTimeString+"
")+(o.workOrderMilestoneTypeId?""+cityssm.escapeHTML(o.workOrderMilestoneType)+"
":"")+''+cityssm.escapeHTML(o.workOrderMilestoneDescription)+'
'+cityssm.escapeHTML(o.workOrderNumber||"")+'
'+cityssm.escapeHTML(o.workOrderDescription||"")+'
'+n+"
",a.append(s)}t.append(a)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){var r,a,i,o,n,l,c;if(0===s.length)return void(t.innerHTML='
\n

There are no milestones that meet the search criteria.

\n
');t.innerHTML="";const d=cityssm.dateToString(new Date);let p,m="";for(const u of s){m!==u.workOrderMilestoneDateString&&(p&&t.append(p),(p=document.createElement("div")).className="panel",p.innerHTML=`

${u.workOrderMilestoneDateString}

`,m=u.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!u.workOrderMilestoneCompletionDate&&u.workOrderMilestoneDateString '+cityssm.escapeHTML(null!==(a=s.lotName)&&void 0!==a?a:"")+"
";for(const s of u.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)M+=' '+cityssm.escapeHTML(null!==(o=r.occupantName)&&void 0!==o?o:"")+"
";s.innerHTML='
'+(u.workOrderMilestoneCompletionDate?'':'')+'
'+(0===u.workOrderMilestoneTime?"":u.workOrderMilestoneTimeString+"
")+(u.workOrderMilestoneTypeId?""+cityssm.escapeHTML(u.workOrderMilestoneType)+"
":"")+''+cityssm.escapeHTML(u.workOrderMilestoneDescription)+'
'+cityssm.escapeHTML(null!==(l=u.workOrderNumber)&&void 0!==l?l:"")+'
'+cityssm.escapeHTML(null!==(c=u.workOrderDescription)&&void 0!==c?c:"")+'
'+M+"
",p.append(s)}t.append(p)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})(); \ No newline at end of file diff --git a/views/print/pdf/style.css b/views/print/pdf/style.css index 7de610a2..bbd58678 100644 --- a/views/print/pdf/style.css +++ b/views/print/pdf/style.css @@ -1,168 +1,168 @@ * { - font-family: Arial, Helvetica, sans-serif; + font-family: Arial, Helvetica, sans-serif; } body { - margin: 20px; + margin: 20px; } /* Elements */ .box { - border: 1px solid black; - padding: 10px; + border: 1px solid black; + padding: 10px; } .checkbox { - height: 1.5em; - width: 1.5em; - display: inline-block; - border: 1px solid black; - text-align: center; + height: 1.5em; + width: 1.5em; + display: inline-block; + border: 1px solid black; + text-align: center; } .checkbox::before { - content: ' '; + content: ' '; } .checkbox.is-checked::before { - content: '\2714'; + content: '\2714'; } .field { - border-bottom: 1px solid black; - display: inline-block; - width: 100px; - padding: 10px 0; + border-bottom: 1px solid black; + display: inline-block; + width: 100px; + padding: 10px 0; } /* Data Table */ .data-table { - width: 100%; + width: 100%; } .data-table thead th, .data-table tfoot th { - padding: 5px; - text-align: left; + padding: 5px; + text-align: left; } .data-table tbody td, .data-table tfoot td { - padding: 5px; - text-align: left; - border-top: 1px solid black; - vertical-align: top; + padding: 5px; + text-align: left; + border-top: 1px solid black; + vertical-align: top; } /* Layout Table */ .layout-table { - width: 100%; - border: 0; - margin: 0; - padding: 0; + width: 100%; + border: 0; + margin: 0; + padding: 0; } .layout-table td { - vertical-align: top; + vertical-align: top; } /* Table Helpers */ td.is-vcentered { - vertical-align: middle; + vertical-align: middle; } td.is-width-1 { - width: 1px; + width: 1px; } td.has-border-bottom { - border-bottom: 1px solid black; + border-bottom: 1px solid black; } /* Padding / Margins */ .m-0 { - margin: 0; + margin: 0; } .mt-1 { - margin-top: 10px; + margin-top: 10px; } .mt-2 { - margin-top: 20px; + margin-top: 20px; } .mt-4 { - margin-top: 40px; + margin-top: 40px; } .mt-6 { - margin-top: 60px; + margin-top: 60px; } .mb-0 { - margin-bottom: 0; + margin-bottom: 0; } .mb-1 { - margin-bottom: 10px; + margin-bottom: 10px; } .mb-2 { - margin-bottom: 20px; + margin-bottom: 20px; } .mb-4 { - margin-bottom: 40px; + margin-bottom: 40px; } .p-0 { - padding: 0; + padding: 0; } .pl-1 { - padding-left: 10px; + padding-left: 10px; } /* Text Utilities */ .is-8pt { - font-size: 8pt !important; + font-size: 8pt !important; } .is-10pt { - font-size: 10pt !important; + font-size: 10pt !important; } .is-12pt { - font-size: 12pt !important; + font-size: 12pt !important; } .has-text-left { - text-align: left; + text-align: left; } .has-text-right { - text-align: right !important; + text-align: right !important; } .has-text-centered { - text-align: center; + text-align: center; } .is-capitalized { - text-transform: uppercase; + text-transform: uppercase; } .is-italic { - font-style: italic; + font-style: italic; } .has-text-nowrap { - white-space: nowrap; + white-space: nowrap; }