diff --git a/app.js b/app.js index 2d9522f4..27f91c3f 100644 --- a/app.js +++ b/app.js @@ -21,7 +21,7 @@ import routerReports from './routes/reports.js'; import routerAdmin from './routes/admin.js'; import * as configFunctions from './helpers/functions.config.js'; import * as printFunctions from './helpers/functions.print.js'; -import * as dateTimeFns from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import * as dateTimeFns from '@cityssm/utils-datetime'; import * as stringFns from '@cityssm/expressjs-server-js/stringFns.js'; import * as htmlFns from '@cityssm/expressjs-server-js/htmlFns.js'; import { version } from './version.js'; diff --git a/app.ts b/app.ts index d242fb46..b79d88f2 100644 --- a/app.ts +++ b/app.ts @@ -26,7 +26,7 @@ import routerAdmin from './routes/admin.js' import * as configFunctions from './helpers/functions.config.js' import * as printFunctions from './helpers/functions.print.js' -import * as dateTimeFns from '@cityssm/expressjs-server-js/dateTimeFns.js' +import * as dateTimeFns from '@cityssm/utils-datetime' import * as stringFns from '@cityssm/expressjs-server-js/stringFns.js' import * as htmlFns from '@cityssm/expressjs-server-js/htmlFns.js' diff --git a/handlers/dashboard-get/dashboard.js b/handlers/dashboard-get/dashboard.js index 3961a7d7..1fa2db79 100644 --- a/handlers/dashboard-get/dashboard.js +++ b/handlers/dashboard-get/dashboard.js @@ -1,4 +1,4 @@ -import { dateToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateToString } from '@cityssm/utils-datetime'; import { getWorkOrderMilestones } from '../../helpers/lotOccupancyDB/getWorkOrderMilestones.js'; import { getWorkOrders } from '../../helpers/lotOccupancyDB/getWorkOrders.js'; import { getLotOccupancies } from '../../helpers/lotOccupancyDB/getLotOccupancies.js'; diff --git a/handlers/dashboard-get/dashboard.ts b/handlers/dashboard-get/dashboard.ts index 27b5399f..3ff07f93 100644 --- a/handlers/dashboard-get/dashboard.ts +++ b/handlers/dashboard-get/dashboard.ts @@ -1,6 +1,6 @@ import type { Request, Response } from 'express' -import { dateToString } from '@cityssm/expressjs-server-js/dateTimeFns.js' +import { dateToString } from '@cityssm/utils-datetime' import { getWorkOrderMilestones } from '../../helpers/lotOccupancyDB/getWorkOrderMilestones.js' import { getWorkOrders } from '../../helpers/lotOccupancyDB/getWorkOrders.js' diff --git a/handlers/lotOccupancies-get/new.js b/handlers/lotOccupancies-get/new.js index cc7e8e1e..652ed88a 100644 --- a/handlers/lotOccupancies-get/new.js +++ b/handlers/lotOccupancies-get/new.js @@ -1,4 +1,4 @@ -import { dateToInteger, dateToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateToInteger, dateToString } from '@cityssm/utils-datetime'; import { getLotOccupantTypes, getLotStatuses, getLotTypes, getOccupancyTypes } from '../../helpers/functions.cache.js'; import { getLot } from '../../helpers/lotOccupancyDB/getLot.js'; import { getMaps } from '../../helpers/lotOccupancyDB/getMaps.js'; diff --git a/handlers/lotOccupancies-get/new.ts b/handlers/lotOccupancies-get/new.ts index d9241469..f86c799e 100644 --- a/handlers/lotOccupancies-get/new.ts +++ b/handlers/lotOccupancies-get/new.ts @@ -3,7 +3,7 @@ import type { Request, Response } from 'express' import { dateToInteger, dateToString -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import { getLotOccupantTypes, diff --git a/handlers/lotOccupancies-post/doUpdateLotOccupancyFeeQuantity.ts b/handlers/lotOccupancies-post/doUpdateLotOccupancyFeeQuantity.ts index e07e844c..64f3aa6b 100644 --- a/handlers/lotOccupancies-post/doUpdateLotOccupancyFeeQuantity.ts +++ b/handlers/lotOccupancies-post/doUpdateLotOccupancyFeeQuantity.ts @@ -13,7 +13,9 @@ export async function handler( request.session ) - const lotOccupancyFees = await getLotOccupancyFees(request.body.lotOccupancyId) + const lotOccupancyFees = await getLotOccupancyFees( + request.body.lotOccupancyId + ) response.json({ success, diff --git a/handlers/print-get/pdf.js b/handlers/print-get/pdf.js index 24bd3783..74b844be 100644 --- a/handlers/print-get/pdf.js +++ b/handlers/print-get/pdf.js @@ -1,7 +1,7 @@ import path from 'node:path'; import * as ejs from 'ejs'; import * as configFunctions from '../../helpers/functions.config.js'; -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import * as dateTimeFunctions from '@cityssm/utils-datetime'; import * as lotOccupancyFunctions from '../../helpers/functions.lotOccupancy.js'; import { getReportData, getPdfPrintConfig } from '../../helpers/functions.print.js'; import { convertHTMLToPDF } from '@cityssm/pdf-puppeteer'; diff --git a/handlers/print-get/pdf.ts b/handlers/print-get/pdf.ts index a4e708e7..d879df9e 100644 --- a/handlers/print-get/pdf.ts +++ b/handlers/print-get/pdf.ts @@ -4,7 +4,7 @@ import path from 'node:path' import * as ejs from 'ejs' import * as configFunctions from '../../helpers/functions.config.js' -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js' +import * as dateTimeFunctions from '@cityssm/utils-datetime' import * as lotOccupancyFunctions from '../../helpers/functions.lotOccupancy.js' import { diff --git a/handlers/reports-get/search.js b/handlers/reports-get/search.js index d30de383..9a0684a9 100644 --- a/handlers/reports-get/search.js +++ b/handlers/reports-get/search.js @@ -1,4 +1,4 @@ -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import * as dateTimeFunctions from '@cityssm/utils-datetime'; import { getMaps } from '../../helpers/lotOccupancyDB/getMaps.js'; import { getLotStatuses, getLotTypes } from '../../helpers/functions.cache.js'; export async function handler(_request, response) { diff --git a/handlers/reports-get/search.ts b/handlers/reports-get/search.ts index 4211acf7..92ac2ac8 100644 --- a/handlers/reports-get/search.ts +++ b/handlers/reports-get/search.ts @@ -1,6 +1,6 @@ import type { Request, Response } from 'express' -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js' +import * as dateTimeFunctions from '@cityssm/utils-datetime' import { getMaps } from '../../helpers/lotOccupancyDB/getMaps.js' import { getLotStatuses, getLotTypes } from '../../helpers/functions.cache.js' diff --git a/handlers/workOrders-get/new.js b/handlers/workOrders-get/new.js index ee425a64..fb5dcf6c 100644 --- a/handlers/workOrders-get/new.js +++ b/handlers/workOrders-get/new.js @@ -1,4 +1,4 @@ -import { dateToInteger, dateToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateToInteger, dateToString } from '@cityssm/utils-datetime'; import { getWorkOrderTypes } from '../../helpers/functions.cache.js'; export async function handler(request, response) { const currentDate = new Date(); diff --git a/handlers/workOrders-get/new.ts b/handlers/workOrders-get/new.ts index e65263a7..0c56f2ed 100644 --- a/handlers/workOrders-get/new.ts +++ b/handlers/workOrders-get/new.ts @@ -1,12 +1,12 @@ import { dateToInteger, dateToString -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type { Request, Response } from 'express' import { getWorkOrderTypes } from '../../helpers/functions.cache.js' -import * as recordTypes from '../../types/recordTypes' +import type * as recordTypes from '../../types/recordTypes' export async function handler( request: Request, diff --git a/handlers/workOrders-post/doAddWorkOrderComment.js b/handlers/workOrders-post/doAddWorkOrderComment.js index 405da701..36e0f14b 100644 --- a/handlers/workOrders-post/doAddWorkOrderComment.js +++ b/handlers/workOrders-post/doAddWorkOrderComment.js @@ -2,7 +2,7 @@ import { addWorkOrderComment } from '../../helpers/lotOccupancyDB/addWorkOrderCo import { getWorkOrderComments } from '../../helpers/lotOccupancyDB/getWorkOrderComments.js'; export async function handler(request, response) { await addWorkOrderComment(request.body, request.session); - const workOrderComments = getWorkOrderComments(request.body.workOrderId); + const workOrderComments = await getWorkOrderComments(request.body.workOrderId); response.json({ success: true, workOrderComments diff --git a/handlers/workOrders-post/doAddWorkOrderComment.ts b/handlers/workOrders-post/doAddWorkOrderComment.ts index 9a5405c4..39ed78ed 100644 --- a/handlers/workOrders-post/doAddWorkOrderComment.ts +++ b/handlers/workOrders-post/doAddWorkOrderComment.ts @@ -10,7 +10,7 @@ export async function handler( ): Promise { await addWorkOrderComment(request.body, request.session) - const workOrderComments = getWorkOrderComments(request.body.workOrderId) + const workOrderComments = await getWorkOrderComments(request.body.workOrderId) response.json({ success: true, diff --git a/helpers/functions.sqlFilters.js b/helpers/functions.sqlFilters.js index 73ca4fbc..ac62ad56 100644 --- a/helpers/functions.sqlFilters.js +++ b/helpers/functions.sqlFilters.js @@ -1,4 +1,4 @@ -import { dateToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateToInteger } from '@cityssm/utils-datetime'; export function getLotNameWhereClause(lotName = '', lotNameSearchType, lotsTableAlias = 'l') { let sqlWhereClause = ''; const sqlParameters = []; diff --git a/helpers/functions.sqlFilters.ts b/helpers/functions.sqlFilters.ts index d801111f..7272eb7b 100644 --- a/helpers/functions.sqlFilters.ts +++ b/helpers/functions.sqlFilters.ts @@ -1,4 +1,4 @@ -import { dateToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js' +import { dateToInteger } from '@cityssm/utils-datetime' type LotNameSearchType = 'startsWith' | 'endsWith' | '' diff --git a/helpers/lotOccupancyDB/addLotComment.js b/helpers/lotOccupancyDB/addLotComment.js index 474cac76..ed63e99e 100644 --- a/helpers/lotOccupancyDB/addLotComment.js +++ b/helpers/lotOccupancyDB/addLotComment.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import * as dateTimeFunctions from '@cityssm/utils-datetime'; export async function addLotComment(lotCommentForm, requestSession) { const database = await acquireConnection(); const rightNow = new Date(); diff --git a/helpers/lotOccupancyDB/addLotComment.ts b/helpers/lotOccupancyDB/addLotComment.ts index a702d9cf..e77ddf9c 100644 --- a/helpers/lotOccupancyDB/addLotComment.ts +++ b/helpers/lotOccupancyDB/addLotComment.ts @@ -1,6 +1,6 @@ import { acquireConnection } from './pool.js' -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js' +import * as dateTimeFunctions from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/addLotOccupancy.js b/helpers/lotOccupancyDB/addLotOccupancy.js index fb43e7dc..36419f1c 100644 --- a/helpers/lotOccupancyDB/addLotOccupancy.js +++ b/helpers/lotOccupancyDB/addLotOccupancy.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import * as dateTimeFunctions from '@cityssm/utils-datetime'; import { addOrUpdateLotOccupancyField } from './addOrUpdateLotOccupancyField.js'; import { addLotOccupancyOccupant } from './addLotOccupancyOccupant.js'; export async function addLotOccupancy(lotOccupancyForm, requestSession, connectedDatabase) { diff --git a/helpers/lotOccupancyDB/addLotOccupancy.ts b/helpers/lotOccupancyDB/addLotOccupancy.ts index b736844a..a38d9576 100644 --- a/helpers/lotOccupancyDB/addLotOccupancy.ts +++ b/helpers/lotOccupancyDB/addLotOccupancy.ts @@ -1,7 +1,7 @@ import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js' +import * as dateTimeFunctions from '@cityssm/utils-datetime' import { addOrUpdateLotOccupancyField } from './addOrUpdateLotOccupancyField.js' import { addLotOccupancyOccupant } from './addLotOccupancyOccupant.js' diff --git a/helpers/lotOccupancyDB/addLotOccupancyComment.js b/helpers/lotOccupancyDB/addLotOccupancyComment.js index 4a6d8e80..41dc4272 100644 --- a/helpers/lotOccupancyDB/addLotOccupancyComment.js +++ b/helpers/lotOccupancyDB/addLotOccupancyComment.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function addLotOccupancyComment(commentForm, requestSession) { const rightNow = new Date(); let lotOccupancyCommentDate; diff --git a/helpers/lotOccupancyDB/addLotOccupancyComment.ts b/helpers/lotOccupancyDB/addLotOccupancyComment.ts index 81657a0a..4577e0ac 100644 --- a/helpers/lotOccupancyDB/addLotOccupancyComment.ts +++ b/helpers/lotOccupancyDB/addLotOccupancyComment.ts @@ -5,7 +5,7 @@ import { dateToInteger, dateToTimeInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/addLotOccupancyTransaction.js b/helpers/lotOccupancyDB/addLotOccupancyTransaction.js index 10da63c6..cd92d95e 100644 --- a/helpers/lotOccupancyDB/addLotOccupancyTransaction.js +++ b/helpers/lotOccupancyDB/addLotOccupancyTransaction.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function addLotOccupancyTransaction(lotOccupancyTransactionForm, requestSession) { const database = await acquireConnection(); let transactionIndex = 0; diff --git a/helpers/lotOccupancyDB/addLotOccupancyTransaction.ts b/helpers/lotOccupancyDB/addLotOccupancyTransaction.ts index 3aae315e..81fe934c 100644 --- a/helpers/lotOccupancyDB/addLotOccupancyTransaction.ts +++ b/helpers/lotOccupancyDB/addLotOccupancyTransaction.ts @@ -5,7 +5,7 @@ import { dateToInteger, dateToTimeInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/addWorkOrder.js b/helpers/lotOccupancyDB/addWorkOrder.js index a0f17848..f445e8e7 100644 --- a/helpers/lotOccupancyDB/addWorkOrder.js +++ b/helpers/lotOccupancyDB/addWorkOrder.js @@ -1,7 +1,7 @@ import { acquireConnection } from './pool.js'; import { getNextWorkOrderNumber } from './getNextWorkOrderNumber.js'; import { addWorkOrderLotOccupancy } from './addWorkOrderLotOccupancy.js'; -import { dateStringToInteger, dateToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, dateToInteger } from '@cityssm/utils-datetime'; export async function addWorkOrder(workOrderForm, requestSession) { const database = await acquireConnection(); const rightNow = new Date(); diff --git a/helpers/lotOccupancyDB/addWorkOrder.ts b/helpers/lotOccupancyDB/addWorkOrder.ts index 973386e7..7b61ca64 100644 --- a/helpers/lotOccupancyDB/addWorkOrder.ts +++ b/helpers/lotOccupancyDB/addWorkOrder.ts @@ -6,7 +6,7 @@ import { addWorkOrderLotOccupancy } from './addWorkOrderLotOccupancy.js' import { dateStringToInteger, dateToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/addWorkOrderComment.js b/helpers/lotOccupancyDB/addWorkOrderComment.js index 4aeb72b5..80b9a636 100644 --- a/helpers/lotOccupancyDB/addWorkOrderComment.js +++ b/helpers/lotOccupancyDB/addWorkOrderComment.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import * as dateTimeFunctions from '@cityssm/utils-datetime'; export async function addWorkOrderComment(workOrderCommentForm, requestSession) { const database = await acquireConnection(); const rightNow = new Date(); diff --git a/helpers/lotOccupancyDB/addWorkOrderComment.ts b/helpers/lotOccupancyDB/addWorkOrderComment.ts index ee44ca54..0a8fa0c2 100644 --- a/helpers/lotOccupancyDB/addWorkOrderComment.ts +++ b/helpers/lotOccupancyDB/addWorkOrderComment.ts @@ -1,6 +1,6 @@ import { acquireConnection } from './pool.js' -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js' +import * as dateTimeFunctions from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/addWorkOrderMilestone.js b/helpers/lotOccupancyDB/addWorkOrderMilestone.js index 5ed2c8bb..6391c611 100644 --- a/helpers/lotOccupancyDB/addWorkOrderMilestone.js +++ b/helpers/lotOccupancyDB/addWorkOrderMilestone.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function addWorkOrderMilestone(milestoneForm, requestSession) { const rightNow = new Date(); const database = await acquireConnection(); diff --git a/helpers/lotOccupancyDB/addWorkOrderMilestone.ts b/helpers/lotOccupancyDB/addWorkOrderMilestone.ts index d7b44bb3..915241a5 100644 --- a/helpers/lotOccupancyDB/addWorkOrderMilestone.ts +++ b/helpers/lotOccupancyDB/addWorkOrderMilestone.ts @@ -5,7 +5,7 @@ import { acquireConnection } from './pool.js' import { dateStringToInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/closeWorkOrder.js b/helpers/lotOccupancyDB/closeWorkOrder.js index dc31c161..77ad4e20 100644 --- a/helpers/lotOccupancyDB/closeWorkOrder.js +++ b/helpers/lotOccupancyDB/closeWorkOrder.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, dateToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, dateToInteger } from '@cityssm/utils-datetime'; export async function closeWorkOrder(workOrderForm, requestSession) { const database = await acquireConnection(); const rightNow = new Date(); diff --git a/helpers/lotOccupancyDB/closeWorkOrder.ts b/helpers/lotOccupancyDB/closeWorkOrder.ts index 885a61ad..546bd490 100644 --- a/helpers/lotOccupancyDB/closeWorkOrder.ts +++ b/helpers/lotOccupancyDB/closeWorkOrder.ts @@ -3,7 +3,7 @@ import { acquireConnection } from './pool.js' import { dateStringToInteger, dateToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/completeWorkOrderMilestone.js b/helpers/lotOccupancyDB/completeWorkOrderMilestone.js index b591bb76..05baf2d2 100644 --- a/helpers/lotOccupancyDB/completeWorkOrderMilestone.js +++ b/helpers/lotOccupancyDB/completeWorkOrderMilestone.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function completeWorkOrderMilestone(milestoneForm, requestSession) { const rightNow = new Date(); const database = await acquireConnection(); diff --git a/helpers/lotOccupancyDB/completeWorkOrderMilestone.ts b/helpers/lotOccupancyDB/completeWorkOrderMilestone.ts index c5256d4c..698b812c 100644 --- a/helpers/lotOccupancyDB/completeWorkOrderMilestone.ts +++ b/helpers/lotOccupancyDB/completeWorkOrderMilestone.ts @@ -7,7 +7,7 @@ import { dateToInteger, dateToTimeInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/copyLotOccupancy.js b/helpers/lotOccupancyDB/copyLotOccupancy.js index 2c4f6349..8b517e78 100644 --- a/helpers/lotOccupancyDB/copyLotOccupancy.js +++ b/helpers/lotOccupancyDB/copyLotOccupancy.js @@ -2,7 +2,7 @@ import { acquireConnection } from './pool.js'; import { getLotOccupancy } from './getLotOccupancy.js'; import { addLotOccupancy } from './addLotOccupancy.js'; import { addLotOccupancyOccupant } from './addLotOccupancyOccupant.js'; -import { dateToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateToString } from '@cityssm/utils-datetime'; export async function copyLotOccupancy(oldLotOccupancyId, requestSession) { const database = await acquireConnection(); const oldLotOccupancy = (await getLotOccupancy(oldLotOccupancyId, database)); diff --git a/helpers/lotOccupancyDB/copyLotOccupancy.ts b/helpers/lotOccupancyDB/copyLotOccupancy.ts index c020939d..ac1cfe5e 100644 --- a/helpers/lotOccupancyDB/copyLotOccupancy.ts +++ b/helpers/lotOccupancyDB/copyLotOccupancy.ts @@ -4,7 +4,7 @@ import { getLotOccupancy } from './getLotOccupancy.js' import { addLotOccupancy } from './addLotOccupancy.js' import { addLotOccupancyOccupant } from './addLotOccupancyOccupant.js' -import { dateToString } from '@cityssm/expressjs-server-js/dateTimeFns.js' +import { dateToString } from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/getLotComments.js b/helpers/lotOccupancyDB/getLotComments.js index d0648ff0..b0de8d4e 100644 --- a/helpers/lotOccupancyDB/getLotComments.js +++ b/helpers/lotOccupancyDB/getLotComments.js @@ -1,13 +1,16 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString, timeIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime'; export async function getLotComments(lotId, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); database.function('userFn_dateIntegerToString', dateIntegerToString); database.function('userFn_timeIntegerToString', timeIntegerToString); + database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString); const lotComments = database .prepare(`select lotCommentId, lotCommentDate, userFn_dateIntegerToString(lotCommentDate) as lotCommentDateString, - lotCommentTime, userFn_timeIntegerToString(lotCommentTime) as lotCommentTimeString, + lotCommentTime, + userFn_timeIntegerToString(lotCommentTime) as lotCommentTimeString, + userFn_timeIntegerToPeriodString(lotCommentTime) as lotCommentTimePeriodString, lotComment, recordCreate_userName, recordUpdate_userName from LotComments diff --git a/helpers/lotOccupancyDB/getLotComments.ts b/helpers/lotOccupancyDB/getLotComments.ts index 5817fae9..697c9a77 100644 --- a/helpers/lotOccupancyDB/getLotComments.ts +++ b/helpers/lotOccupancyDB/getLotComments.ts @@ -3,8 +3,9 @@ import type { PoolConnection } from 'better-sqlite-pool' import { dateIntegerToString, - timeIntegerToString -} from '@cityssm/expressjs-server-js/dateTimeFns.js' + timeIntegerToString, + timeIntegerToPeriodString +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' @@ -16,12 +17,15 @@ export async function getLotComments( database.function('userFn_dateIntegerToString', dateIntegerToString) database.function('userFn_timeIntegerToString', timeIntegerToString) + database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString) const lotComments = database .prepare( `select lotCommentId, lotCommentDate, userFn_dateIntegerToString(lotCommentDate) as lotCommentDateString, - lotCommentTime, userFn_timeIntegerToString(lotCommentTime) as lotCommentTimeString, + lotCommentTime, + userFn_timeIntegerToString(lotCommentTime) as lotCommentTimeString, + userFn_timeIntegerToPeriodString(lotCommentTime) as lotCommentTimePeriodString, lotComment, recordCreate_userName, recordUpdate_userName from LotComments diff --git a/helpers/lotOccupancyDB/getLotOccupancies.js b/helpers/lotOccupancyDB/getLotOccupancies.js index 15e389c3..383dc0bf 100644 --- a/helpers/lotOccupancyDB/getLotOccupancies.js +++ b/helpers/lotOccupancyDB/getLotOccupancies.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString, dateStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString, dateStringToInteger } from '@cityssm/utils-datetime'; import * as configFunctions from '../functions.config.js'; import { getOccupancyTypeById } from '../functions.cache.js'; import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js'; diff --git a/helpers/lotOccupancyDB/getLotOccupancies.ts b/helpers/lotOccupancyDB/getLotOccupancies.ts index 48e4ea95..7342adba 100644 --- a/helpers/lotOccupancyDB/getLotOccupancies.ts +++ b/helpers/lotOccupancyDB/getLotOccupancies.ts @@ -6,7 +6,7 @@ import type { PoolConnection } from 'better-sqlite-pool' import { dateIntegerToString, dateStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import * as configFunctions from '../functions.config.js' diff --git a/helpers/lotOccupancyDB/getLotOccupancy.js b/helpers/lotOccupancyDB/getLotOccupancy.js index 45839a14..69e28213 100644 --- a/helpers/lotOccupancyDB/getLotOccupancy.js +++ b/helpers/lotOccupancyDB/getLotOccupancy.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString } from '@cityssm/utils-datetime'; import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js'; import { getLotOccupancyComments } from './getLotOccupancyComments.js'; import { getLotOccupancyFields } from './getLotOccupancyFields.js'; diff --git a/helpers/lotOccupancyDB/getLotOccupancy.ts b/helpers/lotOccupancyDB/getLotOccupancy.ts index 04333ae2..527ecb7a 100644 --- a/helpers/lotOccupancyDB/getLotOccupancy.ts +++ b/helpers/lotOccupancyDB/getLotOccupancy.ts @@ -1,7 +1,7 @@ import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import { dateIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js' +import { dateIntegerToString } from '@cityssm/utils-datetime' import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js' import { getLotOccupancyComments } from './getLotOccupancyComments.js' diff --git a/helpers/lotOccupancyDB/getLotOccupancyComments.js b/helpers/lotOccupancyDB/getLotOccupancyComments.js index 5a71061a..8100aa3b 100644 --- a/helpers/lotOccupancyDB/getLotOccupancyComments.js +++ b/helpers/lotOccupancyDB/getLotOccupancyComments.js @@ -1,13 +1,16 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString, timeIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime'; export async function getLotOccupancyComments(lotOccupancyId, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); database.function('userFn_dateIntegerToString', dateIntegerToString); database.function('userFn_timeIntegerToString', timeIntegerToString); + database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString); const lotComments = database .prepare(`select lotOccupancyCommentId, lotOccupancyCommentDate, userFn_dateIntegerToString(lotOccupancyCommentDate) as lotOccupancyCommentDateString, - lotOccupancyCommentTime, userFn_timeIntegerToString(lotOccupancyCommentTime) as lotOccupancyCommentTimeString, + lotOccupancyCommentTime, + userFn_timeIntegerToString(lotOccupancyCommentTime) as lotOccupancyCommentTimeString, + userFn_timeIntegerToPeriodString(lotOccupancyCommentTime) as lotOccupancyCommentTimePeriodString, lotOccupancyComment, recordCreate_userName, recordUpdate_userName from LotOccupancyComments diff --git a/helpers/lotOccupancyDB/getLotOccupancyComments.ts b/helpers/lotOccupancyDB/getLotOccupancyComments.ts index 8b1ee2b9..ed1b09bf 100644 --- a/helpers/lotOccupancyDB/getLotOccupancyComments.ts +++ b/helpers/lotOccupancyDB/getLotOccupancyComments.ts @@ -3,8 +3,9 @@ import type { PoolConnection } from 'better-sqlite-pool' import { dateIntegerToString, - timeIntegerToString -} from '@cityssm/expressjs-server-js/dateTimeFns.js' + timeIntegerToString, + timeIntegerToPeriodString +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' @@ -16,12 +17,15 @@ export async function getLotOccupancyComments( database.function('userFn_dateIntegerToString', dateIntegerToString) database.function('userFn_timeIntegerToString', timeIntegerToString) + database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString) const lotComments = database .prepare( `select lotOccupancyCommentId, lotOccupancyCommentDate, userFn_dateIntegerToString(lotOccupancyCommentDate) as lotOccupancyCommentDateString, - lotOccupancyCommentTime, userFn_timeIntegerToString(lotOccupancyCommentTime) as lotOccupancyCommentTimeString, + lotOccupancyCommentTime, + userFn_timeIntegerToString(lotOccupancyCommentTime) as lotOccupancyCommentTimeString, + userFn_timeIntegerToPeriodString(lotOccupancyCommentTime) as lotOccupancyCommentTimePeriodString, lotOccupancyComment, recordCreate_userName, recordUpdate_userName from LotOccupancyComments diff --git a/helpers/lotOccupancyDB/getLotOccupancyTransactions.js b/helpers/lotOccupancyDB/getLotOccupancyTransactions.js index b17806e2..555ece15 100644 --- a/helpers/lotOccupancyDB/getLotOccupancyTransactions.js +++ b/helpers/lotOccupancyDB/getLotOccupancyTransactions.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString, timeIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString, timeIntegerToString } from '@cityssm/utils-datetime'; import * as configFunctions from '../functions.config.js'; import * as gpFunctions from '../functions.dynamicsGP.js'; export async function getLotOccupancyTransactions(lotOccupancyId, connectedDatabase) { diff --git a/helpers/lotOccupancyDB/getLotOccupancyTransactions.ts b/helpers/lotOccupancyDB/getLotOccupancyTransactions.ts index 09bde741..fa3a982e 100644 --- a/helpers/lotOccupancyDB/getLotOccupancyTransactions.ts +++ b/helpers/lotOccupancyDB/getLotOccupancyTransactions.ts @@ -4,7 +4,7 @@ import type { PoolConnection } from 'better-sqlite-pool' import { dateIntegerToString, timeIntegerToString -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import * as configFunctions from '../functions.config.js' import * as gpFunctions from '../functions.dynamicsGP.js' diff --git a/helpers/lotOccupancyDB/getLots.js b/helpers/lotOccupancyDB/getLots.js index cd402b04..daccb8f1 100644 --- a/helpers/lotOccupancyDB/getLots.js +++ b/helpers/lotOccupancyDB/getLots.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateToInteger } from '@cityssm/utils-datetime'; import * as configFunctions from '../functions.config.js'; import { getLotNameWhereClause } from '../functions.sqlFilters.js'; function buildWhereClause(filters) { diff --git a/helpers/lotOccupancyDB/getLots.ts b/helpers/lotOccupancyDB/getLots.ts index 8cefdb8a..4349e654 100644 --- a/helpers/lotOccupancyDB/getLots.ts +++ b/helpers/lotOccupancyDB/getLots.ts @@ -3,7 +3,7 @@ import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import { dateToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js' +import { dateToInteger } from '@cityssm/utils-datetime' import * as configFunctions from '../functions.config.js' diff --git a/helpers/lotOccupancyDB/getReportData.js b/helpers/lotOccupancyDB/getReportData.js index cae23cec..221b040a 100644 --- a/helpers/lotOccupancyDB/getReportData.js +++ b/helpers/lotOccupancyDB/getReportData.js @@ -1,6 +1,6 @@ import { acquireConnection } from './pool.js'; import * as configFunctions from '../functions.config.js'; -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import * as dateTimeFunctions from '@cityssm/utils-datetime'; import camelCase from 'camelcase'; const mapCamelCase = camelCase(configFunctions.getProperty('aliases.map')); const mapNameAlias = mapCamelCase + 'Name'; diff --git a/helpers/lotOccupancyDB/getReportData.ts b/helpers/lotOccupancyDB/getReportData.ts index 26572a4e..8ecfcd99 100644 --- a/helpers/lotOccupancyDB/getReportData.ts +++ b/helpers/lotOccupancyDB/getReportData.ts @@ -3,7 +3,7 @@ import { acquireConnection } from './pool.js' import * as configFunctions from '../functions.config.js' -import * as dateTimeFunctions from '@cityssm/expressjs-server-js/dateTimeFns.js' +import * as dateTimeFunctions from '@cityssm/utils-datetime' import camelCase from 'camelcase' diff --git a/helpers/lotOccupancyDB/getWorkOrder.js b/helpers/lotOccupancyDB/getWorkOrder.js index 6b4d1e2f..d7b0f81c 100644 --- a/helpers/lotOccupancyDB/getWorkOrder.js +++ b/helpers/lotOccupancyDB/getWorkOrder.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString } from '@cityssm/utils-datetime'; import { getLots } from './getLots.js'; import { getLotOccupancies } from './getLotOccupancies.js'; import { getWorkOrderComments } from './getWorkOrderComments.js'; diff --git a/helpers/lotOccupancyDB/getWorkOrder.ts b/helpers/lotOccupancyDB/getWorkOrder.ts index 56d1c4fb..58c8d356 100644 --- a/helpers/lotOccupancyDB/getWorkOrder.ts +++ b/helpers/lotOccupancyDB/getWorkOrder.ts @@ -1,7 +1,7 @@ import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import { dateIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js' +import { dateIntegerToString } from '@cityssm/utils-datetime' import { getLots } from './getLots.js' diff --git a/helpers/lotOccupancyDB/getWorkOrderComments.js b/helpers/lotOccupancyDB/getWorkOrderComments.js index f489357c..d4725343 100644 --- a/helpers/lotOccupancyDB/getWorkOrderComments.js +++ b/helpers/lotOccupancyDB/getWorkOrderComments.js @@ -1,13 +1,16 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString, timeIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime'; export async function getWorkOrderComments(workOrderId, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); database.function('userFn_dateIntegerToString', dateIntegerToString); database.function('userFn_timeIntegerToString', timeIntegerToString); + database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString); const workOrderComments = database .prepare(`select workOrderCommentId, workOrderCommentDate, userFn_dateIntegerToString(workOrderCommentDate) as workOrderCommentDateString, - workOrderCommentTime, userFn_timeIntegerToString(workOrderCommentTime) as workOrderCommentTimeString, + workOrderCommentTime, + userFn_timeIntegerToString(workOrderCommentTime) as workOrderCommentTimeString, + userFn_timeIntegerToPeriodString(workOrderCommentTime) as workOrderCommentTimePeriodString, workOrderComment, recordCreate_userName, recordUpdate_userName from WorkOrderComments diff --git a/helpers/lotOccupancyDB/getWorkOrderComments.ts b/helpers/lotOccupancyDB/getWorkOrderComments.ts index 12197e83..e7f43d2d 100644 --- a/helpers/lotOccupancyDB/getWorkOrderComments.ts +++ b/helpers/lotOccupancyDB/getWorkOrderComments.ts @@ -3,8 +3,9 @@ import type { PoolConnection } from 'better-sqlite-pool' import { dateIntegerToString, - timeIntegerToString -} from '@cityssm/expressjs-server-js/dateTimeFns.js' + timeIntegerToString, + timeIntegerToPeriodString +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' @@ -16,12 +17,15 @@ export async function getWorkOrderComments( database.function('userFn_dateIntegerToString', dateIntegerToString) database.function('userFn_timeIntegerToString', timeIntegerToString) + database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString) const workOrderComments = database .prepare( `select workOrderCommentId, workOrderCommentDate, userFn_dateIntegerToString(workOrderCommentDate) as workOrderCommentDateString, - workOrderCommentTime, userFn_timeIntegerToString(workOrderCommentTime) as workOrderCommentTimeString, + workOrderCommentTime, + userFn_timeIntegerToString(workOrderCommentTime) as workOrderCommentTimeString, + userFn_timeIntegerToPeriodString(workOrderCommentTime) as workOrderCommentTimePeriodString, workOrderComment, recordCreate_userName, recordUpdate_userName from WorkOrderComments diff --git a/helpers/lotOccupancyDB/getWorkOrderMilestones.js b/helpers/lotOccupancyDB/getWorkOrderMilestones.js index fa4eee76..62f68cd0 100644 --- a/helpers/lotOccupancyDB/getWorkOrderMilestones.js +++ b/helpers/lotOccupancyDB/getWorkOrderMilestones.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString, dateStringToInteger, dateToInteger, timeIntegerToString } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString, dateStringToInteger, dateToInteger, timeIntegerToString } from '@cityssm/utils-datetime'; import * as configFunctions from '../functions.config.js'; import { getLots } from './getLots.js'; import { getLotOccupancies } from './getLotOccupancies.js'; diff --git a/helpers/lotOccupancyDB/getWorkOrderMilestones.ts b/helpers/lotOccupancyDB/getWorkOrderMilestones.ts index 8a7fc205..d8cfd981 100644 --- a/helpers/lotOccupancyDB/getWorkOrderMilestones.ts +++ b/helpers/lotOccupancyDB/getWorkOrderMilestones.ts @@ -6,7 +6,7 @@ import { dateStringToInteger, dateToInteger, timeIntegerToString -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import * as configFunctions from '../functions.config.js' diff --git a/helpers/lotOccupancyDB/getWorkOrders.js b/helpers/lotOccupancyDB/getWorkOrders.js index 21c7d2bb..caccd19d 100644 --- a/helpers/lotOccupancyDB/getWorkOrders.js +++ b/helpers/lotOccupancyDB/getWorkOrders.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateIntegerToString, dateStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateIntegerToString, dateStringToInteger } from '@cityssm/utils-datetime'; import { getWorkOrderComments } from './getWorkOrderComments.js'; import { getLots } from './getLots.js'; import { getLotOccupancies } from './getLotOccupancies.js'; diff --git a/helpers/lotOccupancyDB/getWorkOrders.ts b/helpers/lotOccupancyDB/getWorkOrders.ts index 10dd6704..b1b8a71f 100644 --- a/helpers/lotOccupancyDB/getWorkOrders.ts +++ b/helpers/lotOccupancyDB/getWorkOrders.ts @@ -6,7 +6,7 @@ import type { PoolConnection } from 'better-sqlite-pool' import { dateIntegerToString, dateStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import { getWorkOrderComments } from './getWorkOrderComments.js' import { getLots } from './getLots.js' diff --git a/helpers/lotOccupancyDB/updateLotComment.js b/helpers/lotOccupancyDB/updateLotComment.js index e9cb592c..59459637 100644 --- a/helpers/lotOccupancyDB/updateLotComment.js +++ b/helpers/lotOccupancyDB/updateLotComment.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function updateLotComment(commentForm, requestSession) { const rightNowMillis = Date.now(); const database = await acquireConnection(); diff --git a/helpers/lotOccupancyDB/updateLotComment.ts b/helpers/lotOccupancyDB/updateLotComment.ts index 80c5e68e..b1c5aa96 100644 --- a/helpers/lotOccupancyDB/updateLotComment.ts +++ b/helpers/lotOccupancyDB/updateLotComment.ts @@ -3,7 +3,7 @@ import { acquireConnection } from './pool.js' import { dateStringToInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/updateLotOccupancy.js b/helpers/lotOccupancyDB/updateLotOccupancy.js index eeab4e3a..42c98af2 100644 --- a/helpers/lotOccupancyDB/updateLotOccupancy.js +++ b/helpers/lotOccupancyDB/updateLotOccupancy.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger } from '@cityssm/utils-datetime'; import { addOrUpdateLotOccupancyField } from './addOrUpdateLotOccupancyField.js'; import { deleteLotOccupancyField } from './deleteLotOccupancyField.js'; export async function updateLotOccupancy(lotOccupancyForm, requestSession) { diff --git a/helpers/lotOccupancyDB/updateLotOccupancy.ts b/helpers/lotOccupancyDB/updateLotOccupancy.ts index 310cd1d6..c3afcf1d 100644 --- a/helpers/lotOccupancyDB/updateLotOccupancy.ts +++ b/helpers/lotOccupancyDB/updateLotOccupancy.ts @@ -2,7 +2,7 @@ import { acquireConnection } from './pool.js' -import { dateStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js' +import { dateStringToInteger } from '@cityssm/utils-datetime' import { addOrUpdateLotOccupancyField } from './addOrUpdateLotOccupancyField.js' diff --git a/helpers/lotOccupancyDB/updateLotOccupancyComment.js b/helpers/lotOccupancyDB/updateLotOccupancyComment.js index ed3b2152..8f48fe02 100644 --- a/helpers/lotOccupancyDB/updateLotOccupancyComment.js +++ b/helpers/lotOccupancyDB/updateLotOccupancyComment.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function updateLotOccupancyComment(commentForm, requestSession) { const rightNowMillis = Date.now(); const database = await acquireConnection(); diff --git a/helpers/lotOccupancyDB/updateLotOccupancyComment.ts b/helpers/lotOccupancyDB/updateLotOccupancyComment.ts index edfeec5e..9cd52961 100644 --- a/helpers/lotOccupancyDB/updateLotOccupancyComment.ts +++ b/helpers/lotOccupancyDB/updateLotOccupancyComment.ts @@ -3,7 +3,7 @@ import { acquireConnection } from './pool.js' import { dateStringToInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/updateLotOccupancyTransaction.js b/helpers/lotOccupancyDB/updateLotOccupancyTransaction.js index da7ac0a0..1c1ae03d 100644 --- a/helpers/lotOccupancyDB/updateLotOccupancyTransaction.js +++ b/helpers/lotOccupancyDB/updateLotOccupancyTransaction.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function updateLotOccupancyTransaction(lotOccupancyTransactionForm, requestSession) { const database = await acquireConnection(); const result = database diff --git a/helpers/lotOccupancyDB/updateLotOccupancyTransaction.ts b/helpers/lotOccupancyDB/updateLotOccupancyTransaction.ts index e3e6eb53..ff6caa29 100644 --- a/helpers/lotOccupancyDB/updateLotOccupancyTransaction.ts +++ b/helpers/lotOccupancyDB/updateLotOccupancyTransaction.ts @@ -3,7 +3,7 @@ import { acquireConnection } from './pool.js' import { dateStringToInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/updateWorkOrder.js b/helpers/lotOccupancyDB/updateWorkOrder.js index 5fd11ccf..b11d7d33 100644 --- a/helpers/lotOccupancyDB/updateWorkOrder.js +++ b/helpers/lotOccupancyDB/updateWorkOrder.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger } from '@cityssm/utils-datetime'; export async function updateWorkOrder(workOrderForm, requestSession) { const database = await acquireConnection(); const rightNowMillis = Date.now(); diff --git a/helpers/lotOccupancyDB/updateWorkOrder.ts b/helpers/lotOccupancyDB/updateWorkOrder.ts index bf11633f..fe2bf729 100644 --- a/helpers/lotOccupancyDB/updateWorkOrder.ts +++ b/helpers/lotOccupancyDB/updateWorkOrder.ts @@ -1,6 +1,6 @@ import { acquireConnection } from './pool.js' -import { dateStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js' +import { dateStringToInteger } from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/updateWorkOrderComment.js b/helpers/lotOccupancyDB/updateWorkOrderComment.js index ca097b7b..e4c253de 100644 --- a/helpers/lotOccupancyDB/updateWorkOrderComment.js +++ b/helpers/lotOccupancyDB/updateWorkOrderComment.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function updateWorkOrderComment(commentForm, requestSession) { const rightNowMillis = Date.now(); const database = await acquireConnection(); diff --git a/helpers/lotOccupancyDB/updateWorkOrderComment.ts b/helpers/lotOccupancyDB/updateWorkOrderComment.ts index 7968be10..43c3f184 100644 --- a/helpers/lotOccupancyDB/updateWorkOrderComment.ts +++ b/helpers/lotOccupancyDB/updateWorkOrderComment.ts @@ -3,7 +3,7 @@ import { acquireConnection } from './pool.js' import { dateStringToInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/helpers/lotOccupancyDB/updateWorkOrderMilestone.js b/helpers/lotOccupancyDB/updateWorkOrderMilestone.js index 1faf079c..4df72701 100644 --- a/helpers/lotOccupancyDB/updateWorkOrderMilestone.js +++ b/helpers/lotOccupancyDB/updateWorkOrderMilestone.js @@ -1,5 +1,5 @@ import { acquireConnection } from './pool.js'; -import { dateStringToInteger, timeStringToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js'; +import { dateStringToInteger, timeStringToInteger } from '@cityssm/utils-datetime'; export async function updateWorkOrderMilestone(milestoneForm, requestSession) { const rightNow = new Date(); const database = await acquireConnection(); diff --git a/helpers/lotOccupancyDB/updateWorkOrderMilestone.ts b/helpers/lotOccupancyDB/updateWorkOrderMilestone.ts index d265448e..02850e35 100644 --- a/helpers/lotOccupancyDB/updateWorkOrderMilestone.ts +++ b/helpers/lotOccupancyDB/updateWorkOrderMilestone.ts @@ -3,7 +3,7 @@ import { acquireConnection } from './pool.js' import { dateStringToInteger, timeStringToInteger -} from '@cityssm/expressjs-server-js/dateTimeFns.js' +} from '@cityssm/utils-datetime' import type * as recordTypes from '../../types/recordTypes' diff --git a/public-typescript/lotEdit.js b/public-typescript/lotEdit.js index 44f4f080..5607226b 100644 --- a/public-typescript/lotEdit.js +++ b/public-typescript/lotEdit.js @@ -299,7 +299,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); lotComment.lotCommentDateString + (lotComment.lotCommentTime === 0 ? '' - : ' ' + lotComment.lotCommentTimeString) + + : ' ' + lotComment.lotCommentTimePeriodString) + '' + '' + cityssm.escapeHTML((_b = lotComment.lotComment) !== null && _b !== void 0 ? _b : '') + diff --git a/public-typescript/lotEdit.ts b/public-typescript/lotEdit.ts index 42f3d249..ebec7a4e 100644 --- a/public-typescript/lotEdit.ts +++ b/public-typescript/lotEdit.ts @@ -450,7 +450,7 @@ declare const bulmaJS: BulmaJS lotComment.lotCommentDateString! + (lotComment.lotCommentTime === 0 ? '' - : ' ' + lotComment.lotCommentTimeString!) + + : ' ' + lotComment.lotCommentTimePeriodString!) + '' + '' + cityssm.escapeHTML(lotComment.lotComment ?? '') + diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index 8217949c..f610d054 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -1020,7 +1020,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ((_b = lotOccupancyComment.lotOccupancyCommentDateString) !== null && _b !== void 0 ? _b : '') + (lotOccupancyComment.lotOccupancyCommentTime === 0 ? '' - : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString) + + : ' ' + lotOccupancyComment.lotOccupancyCommentTimePeriodString) + '' + '' + cityssm.escapeHTML((_c = lotOccupancyComment.lotOccupancyComment) !== null && _c !== void 0 ? _c : '') + diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js index e8da1f91..77b2b1d4 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.js @@ -124,7 +124,7 @@ function renderLotOccupancyComments() { ((_b = lotOccupancyComment.lotOccupancyCommentDateString) !== null && _b !== void 0 ? _b : '') + (lotOccupancyComment.lotOccupancyCommentTime === 0 ? '' - : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString) + + : ' ' + lotOccupancyComment.lotOccupancyCommentTimePeriodString) + '' + '' + cityssm.escapeHTML((_c = lotOccupancyComment.lotOccupancyComment) !== null && _c !== void 0 ? _c : '') + diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts index 1f5e6920..dd962572 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEditComments.ts @@ -203,7 +203,7 @@ function renderLotOccupancyComments(): void { (lotOccupancyComment.lotOccupancyCommentDateString ?? '') + (lotOccupancyComment.lotOccupancyCommentTime === 0 ? '' - : ' ' + lotOccupancyComment.lotOccupancyCommentTimeString!) + + : ' ' + lotOccupancyComment.lotOccupancyCommentTimePeriodString!) + '' + '' + cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment ?? '') + diff --git a/public-typescript/workOrderEdit.js b/public-typescript/workOrderEdit.js index 74fe370e..169a0ee8 100644 --- a/public-typescript/workOrderEdit.js +++ b/public-typescript/workOrderEdit.js @@ -854,7 +854,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); workOrderComment.workOrderCommentDateString + (workOrderComment.workOrderCommentTime === 0 ? '' - : ' ' + workOrderComment.workOrderCommentTimeString) + + : ' ' + workOrderComment.workOrderCommentTimePeriodString) + '' + '' + cityssm.escapeHTML((_b = workOrderComment.workOrderComment) !== null && _b !== void 0 ? _b : '') + diff --git a/public-typescript/workOrderEdit/workOrderEditComments.js b/public-typescript/workOrderEdit/workOrderEditComments.js index 7e000fa3..ecaf71d4 100644 --- a/public-typescript/workOrderEdit/workOrderEditComments.js +++ b/public-typescript/workOrderEdit/workOrderEditComments.js @@ -119,7 +119,7 @@ function renderWorkOrderComments() { workOrderComment.workOrderCommentDateString + (workOrderComment.workOrderCommentTime === 0 ? '' - : ' ' + workOrderComment.workOrderCommentTimeString) + + : ' ' + workOrderComment.workOrderCommentTimePeriodString) + '' + '' + cityssm.escapeHTML((_b = workOrderComment.workOrderComment) !== null && _b !== void 0 ? _b : '') + diff --git a/public-typescript/workOrderEdit/workOrderEditComments.ts b/public-typescript/workOrderEdit/workOrderEditComments.ts index 1dcc6d1a..9cfdb677 100644 --- a/public-typescript/workOrderEdit/workOrderEditComments.ts +++ b/public-typescript/workOrderEdit/workOrderEditComments.ts @@ -193,7 +193,7 @@ function renderWorkOrderComments(): void { workOrderComment.workOrderCommentDateString + (workOrderComment.workOrderCommentTime === 0 ? '' - : ' ' + workOrderComment.workOrderCommentTimeString) + + : ' ' + workOrderComment.workOrderCommentTimePeriodString!) + '' + '' + cityssm.escapeHTML(workOrderComment.workOrderComment ?? '') + diff --git a/public/javascripts/lotEdit.min.js b/public/javascripts/lotEdit.min.js index caaa26b9..f7967112 100644 --- a/public/javascripts/lotEdit.min.js +++ b/public/javascripts/lotEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const t=exports.los,o=document.querySelector("#lot--lotId").value,n=""===o;let l=n;function s(){var e;t.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--lot']"))||void 0===e||e.classList.remove("is-light")}function a(){var e;t.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--lot']"))||void 0===e||e.classList.add("is-light")}const i=document.querySelector("#form--lot");i.addEventListener("submit",function(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/"+(n?"doCreateLot":"doUpdateLot"),i,e=>{var o;const s=e;s.success?(a(),n||l?window.location.href=t.getLotURL(s.lotId,!0,!0):bulmaJS.alert({message:t.escapedAliases.Lot+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+t.escapedAliases.Lot,message:null!==(o=s.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const r=i.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",s);t.initializeUnlockFieldButtons(i),null===(e=document.querySelector("#button--deleteLot"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete "+t.escapedAliases.Lot,message:`Are you sure you want to delete this ${t.escapedAliases.lot}?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${t.escapedAliases.Lot}`,callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/lots/doDeleteLot",{lotId:o},e=>{var o;const n=e;n.success?(a(),window.location.href=t.getLotURL()):bulmaJS.alert({title:`Error Deleting ${t.escapedAliases.Lot}`,message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})});const m=document.querySelector("#lot--lotTypeId");if(n){const e=document.querySelector("#container--lotFields");m.addEventListener("change",()=>{""!==m.value?cityssm.postJSON(t.urlPrefix+"/lots/doGetLotTypeFields",{lotTypeId:m.value},o=>{var n;const l=o;if(0===l.lotTypeFields.length)return void(e.innerHTML=`
\n

There are no additional fields for this ${t.escapedAliases.lot} type.

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

Select the ${t.escapedAliases.lot} type to load the available fields.

\n
`})}else{const e=m.value;m.addEventListener("change",()=>{m.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${t.escapedAliases.lot} type?\n\n This change affects the additional fields associated with this record.`,contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{l=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{m.value=e}}})})}let d=exports.lotComments;function c(e){const n=Number.parseInt(e.currentTarget.closest("tr").dataset.lotCommentId,10),l=d.find(e=>e.lotCommentId===n);let s,a;function i(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/doUpdateLotComment",s,e=>{var t;const o=e;o.success?(d=o.lotComments,a(),p()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editComment",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotCommentEdit--lotId").value=o,e.querySelector("#lotCommentEdit--lotCommentId").value=n.toString(),e.querySelector("#lotCommentEdit--lotComment").value=l.lotComment;const s=e.querySelector("#lotCommentEdit--lotCommentDateString");s.value=l.lotCommentDateString;const a=cityssm.dateToString(new Date);s.max=l.lotCommentDateString<=a?a:l.lotCommentDateString,e.querySelector("#lotCommentEdit--lotCommentTimeString").value=l.lotCommentTimeString},onshown:(e,o)=>{bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("#lotCommentEdit--lotComment").focus(),(s=e.querySelector("form")).addEventListener("submit",i),a=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function u(e){const n=Number.parseInt(e.currentTarget.closest("tr").dataset.lotCommentId,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+"/lots/doDeleteLotComment",{lotId:o,lotCommentId:n},e=>{var t;const o=e;o.success?(d=o.lotComments,p()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function p(){var e,t;const o=document.querySelector("#container--lotComments");if(0===d.length)return void(o.innerHTML='
\n

There are no comments to display.

\n
');const n=document.createElement("table");n.className="table is-fullwidth is-striped is-hoverable",n.innerHTML='\n Commentor\n Comment Date\n Comment\n Options\n \n ';for(const o of d){const l=document.createElement("tr");l.dataset.lotCommentId=o.lotCommentId.toString(),l.innerHTML=""+cityssm.escapeHTML(null!==(e=o.recordCreate_userName)&&void 0!==e?e:"")+""+o.lotCommentDateString+(0===o.lotCommentTime?"":" "+o.lotCommentTimeString)+""+cityssm.escapeHTML(null!==(t=o.lotComment)&&void 0!==t?t:"")+'
',l.querySelector(".button--edit").addEventListener("click",c),l.querySelector(".button--delete").addEventListener("click",u),n.querySelector("tbody").append(l)}o.innerHTML="",o.append(n)}delete exports.lotComments,n||(document.querySelector("#lotComments--add").addEventListener("click",function(){let e;function n(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/doAddLotComment",o.currentTarget,t=>{const o=t;o.success&&(d=o.lotComments,p(),e())})}cityssm.openHtmlModal("lot-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#lotCommentAdd--lotId").value=o,e.querySelector("form").addEventListener("submit",n)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#lotCommentAdd--lotComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#lotComments--add").focus()}})}),p())})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const t=exports.los,o=document.querySelector("#lot--lotId").value,n=""===o;let l=n;function s(){var e;t.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--lot']"))||void 0===e||e.classList.remove("is-light")}function a(){var e;t.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--lot']"))||void 0===e||e.classList.add("is-light")}const i=document.querySelector("#form--lot");i.addEventListener("submit",function(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/"+(n?"doCreateLot":"doUpdateLot"),i,e=>{var o;const s=e;s.success?(a(),n||l?window.location.href=t.getLotURL(s.lotId,!0,!0):bulmaJS.alert({message:t.escapedAliases.Lot+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+t.escapedAliases.Lot,message:null!==(o=s.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const r=i.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",s);t.initializeUnlockFieldButtons(i),null===(e=document.querySelector("#button--deleteLot"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete "+t.escapedAliases.Lot,message:`Are you sure you want to delete this ${t.escapedAliases.lot}?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${t.escapedAliases.Lot}`,callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/lots/doDeleteLot",{lotId:o},e=>{var o;const n=e;n.success?(a(),window.location.href=t.getLotURL()):bulmaJS.alert({title:`Error Deleting ${t.escapedAliases.Lot}`,message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})});const d=document.querySelector("#lot--lotTypeId");if(n){const e=document.querySelector("#container--lotFields");d.addEventListener("change",()=>{""!==d.value?cityssm.postJSON(t.urlPrefix+"/lots/doGetLotTypeFields",{lotTypeId:d.value},o=>{var n;const l=o;if(0===l.lotTypeFields.length)return void(e.innerHTML=`
\n

There are no additional fields for this ${t.escapedAliases.lot} type.

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

Select the ${t.escapedAliases.lot} type to load the available fields.

\n
`})}else{const e=d.value;d.addEventListener("change",()=>{d.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${t.escapedAliases.lot} type?\n\n This change affects the additional fields associated with this record.`,contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{l=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{d.value=e}}})})}let m=exports.lotComments;function c(e){const n=Number.parseInt(e.currentTarget.closest("tr").dataset.lotCommentId,10),l=m.find(e=>e.lotCommentId===n);let s,a;function i(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/doUpdateLotComment",s,e=>{var t;const o=e;o.success?(m=o.lotComments,a(),p()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editComment",{onshow:e=>{t.populateAliases(e),e.querySelector("#lotCommentEdit--lotId").value=o,e.querySelector("#lotCommentEdit--lotCommentId").value=n.toString(),e.querySelector("#lotCommentEdit--lotComment").value=l.lotComment;const s=e.querySelector("#lotCommentEdit--lotCommentDateString");s.value=l.lotCommentDateString;const a=cityssm.dateToString(new Date);s.max=l.lotCommentDateString<=a?a:l.lotCommentDateString,e.querySelector("#lotCommentEdit--lotCommentTimeString").value=l.lotCommentTimeString},onshown:(e,o)=>{bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("#lotCommentEdit--lotComment").focus(),(s=e.querySelector("form")).addEventListener("submit",i),a=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function u(e){const n=Number.parseInt(e.currentTarget.closest("tr").dataset.lotCommentId,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+"/lots/doDeleteLotComment",{lotId:o,lotCommentId:n},e=>{var t;const o=e;o.success?(m=o.lotComments,p()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function p(){var e,t;const o=document.querySelector("#container--lotComments");if(0===m.length)return void(o.innerHTML='
\n

There are no comments to display.

\n
');const n=document.createElement("table");n.className="table is-fullwidth is-striped is-hoverable",n.innerHTML='\n Commentor\n Comment Date\n Comment\n Options\n \n ';for(const o of m){const l=document.createElement("tr");l.dataset.lotCommentId=o.lotCommentId.toString(),l.innerHTML=""+cityssm.escapeHTML(null!==(e=o.recordCreate_userName)&&void 0!==e?e:"")+""+o.lotCommentDateString+(0===o.lotCommentTime?"":" "+o.lotCommentTimePeriodString)+""+cityssm.escapeHTML(null!==(t=o.lotComment)&&void 0!==t?t:"")+'
',l.querySelector(".button--edit").addEventListener("click",c),l.querySelector(".button--delete").addEventListener("click",u),n.querySelector("tbody").append(l)}o.innerHTML="",o.append(n)}delete exports.lotComments,n||(document.querySelector("#lotComments--add").addEventListener("click",function(){let e;function n(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/doAddLotComment",o.currentTarget,t=>{const o=t;o.success&&(m=o.lotComments,p(),e())})}cityssm.openHtmlModal("lot-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#lotCommentAdd--lotId").value=o,e.querySelector("form").addEventListener("submit",n)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#lotCommentAdd--lotComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#lotComments--add").focus()}})}),p())})(); \ No newline at end of file diff --git a/public/javascripts/lotOccupancyEdit.min.js b/public/javascripts/lotOccupancyEdit.min.js index caa4a3a3..8754e6c6 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,n,c,a;const o=exports.los,s=document.querySelector("#lotOccupancy--lotOccupancyId").value,l=""===s;let r=l;function i(){var e;o.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--lotOccupancy']"))||void 0===e||e.classList.remove("is-light")}function u(){var e;o.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--lotOccupancy']"))||void 0===e||e.classList.add("is-light")}const d=document.querySelector("#form--lotOccupancy");d.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/"+(l?"doCreateLotOccupancy":"doUpdateLotOccupancy"),d,e=>{var t;const n=e;n.success?(u(),l||r?window.location.href=o.getLotOccupancyURL(n.lotOccupancyId,!0,!0):bulmaJS.alert({message:`${o.escapedAliases.Occupancy} Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+o.escapedAliases.Occupancy,message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const p=d.querySelectorAll("input, select");for(const e of p)e.addEventListener("change",i);function m(){cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:s},e=>{var t;const n=e;n.success?(u(),window.location.href=o.getLotOccupancyURL(n.lotOccupancyId,!0)):bulmaJS.alert({title:"Error Copying Record",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}null===(S=document.querySelector("#button--copyLotOccupancy"))||void 0===S||S.addEventListener("click",e=>{e.preventDefault(),o.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${o.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:m}})}),null===(e=document.querySelector("#button--deleteLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:`Delete ${o.escapedAliases.Occupancy} Record`,message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:s},e=>{var t;const n=e;n.success?(u(),window.location.href=o.getLotOccupancyURL()):bulmaJS.alert({title:"Error Deleting Record",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}),null===(t=document.querySelector("#button--createWorkOrder"))||void 0===t||t.addEventListener("click",e=>{let t;function n(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{const n=e;n.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=o.getWorkOrderURL(n.workOrderId,!0)}}})):bulmaJS.alert({title:"Error Creating Work Order",message:n.errorMessage,contextualColorName:"danger"})})}e.preventDefault(),cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow(e){var t;e.querySelector("#workOrderCreate--lotOccupancyId").value=s,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const n=e.querySelector("#workOrderCreate--workOrderTypeId"),c=exports.workOrderTypes;1===c.length&&(n.innerHTML="");for(const e of c){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=null!==(t=e.workOrderType)&&void 0!==t?t:"",n.append(c)}},onshown(e,c){var a;t=c,bulmaJS.toggleHtmlClipped(),e.querySelector("#workOrderCreate--workOrderTypeId").focus(),null===(a=e.querySelector("form"))||void 0===a||a.addEventListener("submit",n)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--createWorkOrder").focus()}})});const y=document.querySelector("#lotOccupancy--occupancyTypeId");if(l){const e=document.querySelector("#container--lotOccupancyFields");y.addEventListener("change",()=>{""!==y.value?cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:y.value},t=>{var n,c;const a=t;if(0===a.occupancyTypeFields.length)return void(e.innerHTML=`
\n

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

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

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

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

No results.

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

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

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

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

'}cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow(e){o.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=s;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),n=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const c=document.createElement("option");c.value=e.lotOccupantTypeId.toString(),c.textContent=e.lotOccupantType,c.dataset.occupantCommentTitle=e.occupantCommentTitle,c.dataset.fontAwesomeIconClass=e.fontAwesomeIconClass,t.append(c),n.append(c.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown(a,o){bulmaJS.toggleHtmlClipped(),bulmaJS.init(a);const s=a.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId");s.focus(),s.addEventListener("change",()=>{var e,t;const n=null!==(e=s.selectedOptions[0].dataset.fontAwesomeIconClass)&&void 0!==e?e:"user";a.querySelector("#lotOccupancyOccupantAdd--fontAwesomeIconClass").innerHTML=``;let c=null!==(t=s.selectedOptions[0].dataset.occupantCommentTitle)&&void 0!==t?t:"";""===c&&(c="Comment"),a.querySelector("#lotOccupancyOccupantAdd--occupantCommentTitle").textContent=c}),(t=a.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),c=a.querySelector("#lotOccupancyOccupantCopy--searchResults"),(n=a.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),a.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",u),e=o},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addOccupant").focus()}})}),!l){var S;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;function b(t){const n=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),c=e.find(e=>e.lotOccupancyCommentId===n);let a,l;function r(t){t.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",a,t=>{var n;t.success?(e=t.lotOccupancyComments,l(),T()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editComment",{onshow(e){o.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=s,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=n.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=c.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=c.lotOccupancyCommentDateString;const a=cityssm.dateToString(new Date);t.max=c.lotOccupancyCommentDateString<=a?a:c.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=c.lotOccupancyCommentTimeString},onshown(e,t){bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(a=e.querySelector("form")).addEventListener("submit",r),l=t},onremoved(){bulmaJS.toggleHtmlClipped()}})}function C(t){const n=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(o.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:s,lotOccupancyCommentId:n},t=>{var n;t.success?(e=t.lotOccupancyComments,T()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function T(){var t,n,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:"")+""+(null!==(n=a.lotOccupancyCommentDateString)&&void 0!==n?n:"")+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(null!==(c=a.lotOccupancyComment)&&void 0!==c?c:"")+'
',e.querySelector(".button--edit").addEventListener("click",b),e.querySelector(".button--delete").addEventListener("click",C),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)}delete exports.lotOccupancyComments,null===(S=document.querySelector("#button--addComment"))||void 0===S||S.addEventListener("click",()=>{let t,n;function c(c){c.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{var c;t.success?(e=t.lotOccupancyComments,n(),T()):bulmaJS.alert({title:"Error Adding Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addComment",{onshow(e){o.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=s},onshown(e,a){bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",c),n=a},onremoved:()=>{bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addComment").focus()}})}),T(),Object.defineProperty(exports,"__esModule",{value:!0});let t=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const n=document.querySelector("#container--lotOccupancyFees");function x(){let e=0;for(const n of t)e+=(n.feeAmount+n.taxAmount)*n.quantity;return e}function L(e){const n=Number.parseInt(e.currentTarget.closest("tr").dataset.feeId,10),c=t.find(e=>e.feeId===n);let a;function l(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyFeeQuantity",e.currentTarget,e=>{const n=e;n.success?(t=n.lotOccupancyFees,N(),a()):bulmaJS.alert({title:"Error Updating Quantity",message:"Please try again.",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editFeeQuantity",{onshow(e){e.querySelector("#lotOccupancyFeeQuantity--lotOccupancyId").value=s,e.querySelector("#lotOccupancyFeeQuantity--feeId").value=c.feeId.toString(),e.querySelector("#lotOccupancyFeeQuantity--quantity").valueAsNumber=c.quantity,e.querySelector("#lotOccupancyFeeQuantity--quantityUnit").textContent=c.quantityUnit},onshown(e,t){var n;bulmaJS.toggleHtmlClipped(),a=t,e.querySelector("#lotOccupancyFeeQuantity--quantity").focus(),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function q(e){const n=e.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:s,feeId:n},e=>{var n;const c=e;c.success?(t=c.lotOccupancyFees,N()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(n=c.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}}})}function N(){var e,c,a,o,s,l,r;if(0===t.length)return n.innerHTML='
\n

There are no fees associated with this record.

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

';let p=!1;for(const t of a.fees){if(null!==n.querySelector(`.container--lotOccupancyFee[data-fee-id='${t.feeId}'][data-include-quantity='0']`))continue;let l=!0;const m=((null!==(c=a.feeCategory)&&void 0!==c?c:"")+" "+(null!==(o=t.feeName)&&void 0!==o?o:"")+" "+(null!==(s=t.feeDescription)&&void 0!==s?s:"")).toLowerCase();for(const e of d)if(!m.includes(e)){l=!1;break}if(!l)continue;p=!0;const y=document.createElement("a");y.className="panel-block is-block container--fee",y.dataset.feeId=t.feeId.toString(),y.dataset.feeCategoryId=a.feeCategoryId.toString(),y.href="#",y.innerHTML=""+cityssm.escapeHTML(null!==(r=t.feeName)&&void 0!==r?r:"")+"
"+cityssm.escapeHTML(null!==(u=t.feeDescription)&&void 0!==u?u:"").replace(/\n/g,"
")+"
",y.addEventListener("click",i),e.querySelector(".panel").append(y)}p&&l.append(e)}}cityssm.openHtmlModal("lotOccupancy-addFee",{onshow(t){a=t.querySelector("#feeSelect--feeName"),l=t.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:s},t=>{e=t.feeCategories,a.disabled=!1,a.addEventListener("keyup",u),a.focus(),u()})},onshown(){bulmaJS.toggleHtmlClipped()},onhidden(){N()},onremoved(){bulmaJS.toggleHtmlClipped(),c.focus()}})});let a=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const l=document.querySelector("#container--lotOccupancyTransactions");function E(e){const t=Number.parseInt(e.currentTarget.closest("tr").dataset.transactionIndex,10),n=a.find(e=>e.transactionIndex===t);let c;function l(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyTransaction",e.currentTarget,e=>{const t=e;t.success?(a=t.lotOccupancyTransactions,M(),c()):bulmaJS.alert({title:"Error Updating Transaction",message:"Please try again.",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editTransaction",{onshow(e){var t,c,a,l;o.populateAliases(e),e.querySelector("#lotOccupancyTransactionEdit--lotOccupancyId").value=s,e.querySelector("#lotOccupancyTransactionEdit--transactionIndex").value=n.transactionIndex.toString(),e.querySelector("#lotOccupancyTransactionEdit--transactionAmount").value=n.transactionAmount.toFixed(2),e.querySelector("#lotOccupancyTransactionEdit--externalReceiptNumber").value=null!==(t=n.externalReceiptNumber)&&void 0!==t?t:"",e.querySelector("#lotOccupancyTransactionEdit--transactionNote").value=null!==(c=n.transactionNote)&&void 0!==c?c:"",e.querySelector("#lotOccupancyTransactionEdit--transactionDateString").value=null!==(a=n.transactionDateString)&&void 0!==a?a:"",e.querySelector("#lotOccupancyTransactionEdit--transactionTimeString").value=null!==(l=n.transactionTimeString)&&void 0!==l?l:""},onshown(e,t){var n;bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),e.querySelector("#lotOccupancyTransactionEdit--transactionAmount").focus(),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",l),c=t},onremoved(){bulmaJS.toggleHtmlClipped()}})}function I(e){const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:s,transactionIndex:t},e=>{var t;const n=e;n.success?(a=n.lotOccupancyTransactions,M()):bulmaJS.alert({title:"Error Deleting Transaction",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function M(){var e,n,c,s,r;if(0===a.length)return void(l.innerHTML='

There are no transactions associated with this record.

');l.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n
Date${o.escapedAliases.ExternalReceiptNumber}AmountOptions
Transaction Total
`;let i=0;for(const t of a){i+=t.transactionAmount;const a=document.createElement("tr");a.className="container--lotOccupancyTransaction",a.dataset.transactionIndex=t.transactionIndex.toString();let u="";""!==t.externalReceiptNumber&&(u=cityssm.escapeHTML(null!==(e=t.externalReceiptNumber)&&void 0!==e?e:""),o.dynamicsGPIntegrationIsEnabled&&(void 0===t.dynamicsGPDocument?u+=' \n \n ':t.dynamicsGPDocument.documentTotal.toFixed(2)===t.transactionAmount.toFixed(2)?u+=' \n \n ':u+=` \n \n `),u+="
"),a.innerHTML=""+(null!==(n=t.transactionDateString)&&void 0!==n?n:"")+""+u+""+cityssm.escapeHTML(null!==(c=t.transactionNote)&&void 0!==c?c:"")+'$'+t.transactionAmount.toFixed(2)+'
',null===(s=a.querySelector(".button--edit"))||void 0===s||s.addEventListener("click",E),null===(r=a.querySelector(".button--delete"))||void 0===r||r.addEventListener("click",I),l.querySelector("tbody").append(a)}l.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+i.toFixed(2);const u=x();u.toFixed(2)!==i.toFixed(2)&&l.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(u-i).toFixed(2)+"
")}const r=document.querySelector("#button--addTransaction");r.addEventListener("click",()=>{let e,t,n;function c(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",e.currentTarget,e=>{var t;const c=e;c.success?(a=c.lotOccupancyTransactions,n(),M()):bulmaJS.confirm({title:"Error Adding Transaction",message:null!==(t=c.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function l(){const n=t.value,c=t.closest(".control").querySelector(".icon"),a=t.closest(".field").querySelector(".help");if(""===n)return a.innerHTML=" ",void(c.innerHTML='');cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doGetDynamicsGPDocument",{externalReceiptNumber:n},t=>{const n=t;n.success&&void 0!==n.dynamicsGPDocument?e.valueAsNumber===n.dynamicsGPDocument.documentTotal?(a.textContent="Matching Document Found",c.innerHTML=''):(a.textContent="Matching Document: $"+n.dynamicsGPDocument.documentTotal.toFixed(2),c.innerHTML=''):(a.textContent="No Matching Document Found",c.innerHTML='')})}cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow(n){o.populateAliases(n),n.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=s.toString();const c=x(),r=function(){let e=0;for(const t of a)e+=t.transactionAmount;return e}();if((e=n.querySelector("#lotOccupancyTransactionAdd--transactionAmount")).min=(-1*r).toFixed(2),e.max=Math.max(c-r,0).toFixed(2),e.value=Math.max(c-r,0).toFixed(2),o.dynamicsGPIntegrationIsEnabled){const c=(t=n.querySelector("#lotOccupancyTransactionAdd--externalReceiptNumber")).closest(".control");c.classList.add("has-icons-right"),c.insertAdjacentHTML("beforeend",''),c.insertAdjacentHTML("afterend",'

'),t.addEventListener("change",l),e.addEventListener("change",l),l()}},onshown(t,a){bulmaJS.toggleHtmlClipped(),e.focus(),n=a,t.querySelector("form").addEventListener("submit",c)},onremoved(){bulmaJS.toggleHtmlClipped(),r.focus()}})}),N()}})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t,n,c,a;const o=exports.los,s=document.querySelector("#lotOccupancy--lotOccupancyId").value,l=""===s;let r=l;function i(){var e;o.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--lotOccupancy']"))||void 0===e||e.classList.remove("is-light")}function u(){var e;o.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--lotOccupancy']"))||void 0===e||e.classList.add("is-light")}const d=document.querySelector("#form--lotOccupancy");d.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/"+(l?"doCreateLotOccupancy":"doUpdateLotOccupancy"),d,e=>{var t;const n=e;n.success?(u(),l||r?window.location.href=o.getLotOccupancyURL(n.lotOccupancyId,!0,!0):bulmaJS.alert({message:`${o.escapedAliases.Occupancy} Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+o.escapedAliases.Occupancy,message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})});const p=d.querySelectorAll("input, select");for(const e of p)e.addEventListener("change",i);function m(){cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:s},e=>{var t;const n=e;n.success?(u(),window.location.href=o.getLotOccupancyURL(n.lotOccupancyId,!0)):bulmaJS.alert({title:"Error Copying Record",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}null===(S=document.querySelector("#button--copyLotOccupancy"))||void 0===S||S.addEventListener("click",e=>{e.preventDefault(),o.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${o.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:m}})}),null===(e=document.querySelector("#button--deleteLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:`Delete ${o.escapedAliases.Occupancy} Record`,message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:s},e=>{var t;const n=e;n.success?(u(),window.location.href=o.getLotOccupancyURL()):bulmaJS.alert({title:"Error Deleting Record",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}),null===(t=document.querySelector("#button--createWorkOrder"))||void 0===t||t.addEventListener("click",e=>{let t;function n(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{const n=e;n.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=o.getWorkOrderURL(n.workOrderId,!0)}}})):bulmaJS.alert({title:"Error Creating Work Order",message:n.errorMessage,contextualColorName:"danger"})})}e.preventDefault(),cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow(e){var t;e.querySelector("#workOrderCreate--lotOccupancyId").value=s,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const n=e.querySelector("#workOrderCreate--workOrderTypeId"),c=exports.workOrderTypes;1===c.length&&(n.innerHTML="");for(const e of c){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=null!==(t=e.workOrderType)&&void 0!==t?t:"",n.append(c)}},onshown(e,c){var a;t=c,bulmaJS.toggleHtmlClipped(),e.querySelector("#workOrderCreate--workOrderTypeId").focus(),null===(a=e.querySelector("form"))||void 0===a||a.addEventListener("submit",n)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--createWorkOrder").focus()}})});const y=document.querySelector("#lotOccupancy--occupancyTypeId");if(l){const e=document.querySelector("#container--lotOccupancyFields");y.addEventListener("change",()=>{""!==y.value?cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:y.value},t=>{var n,c;const a=t;if(0===a.occupancyTypeFields.length)return void(e.innerHTML=`
\n

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

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

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

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

No results.

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

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

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

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

'}cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow(e){o.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=s;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),n=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const c=document.createElement("option");c.value=e.lotOccupantTypeId.toString(),c.textContent=e.lotOccupantType,c.dataset.occupantCommentTitle=e.occupantCommentTitle,c.dataset.fontAwesomeIconClass=e.fontAwesomeIconClass,t.append(c),n.append(c.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown(a,o){bulmaJS.toggleHtmlClipped(),bulmaJS.init(a);const s=a.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId");s.focus(),s.addEventListener("change",()=>{var e,t;const n=null!==(e=s.selectedOptions[0].dataset.fontAwesomeIconClass)&&void 0!==e?e:"user";a.querySelector("#lotOccupancyOccupantAdd--fontAwesomeIconClass").innerHTML=``;let c=null!==(t=s.selectedOptions[0].dataset.occupantCommentTitle)&&void 0!==t?t:"";""===c&&(c="Comment"),a.querySelector("#lotOccupancyOccupantAdd--occupantCommentTitle").textContent=c}),(t=a.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),c=a.querySelector("#lotOccupancyOccupantCopy--searchResults"),(n=a.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),a.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",u),e=o},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addOccupant").focus()}})}),!l){var S;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;function b(t){const n=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),c=e.find(e=>e.lotOccupancyCommentId===n);let a,l;function r(t){t.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",a,t=>{var n;t.success?(e=t.lotOccupancyComments,l(),T()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editComment",{onshow(e){o.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=s,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=n.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=c.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=c.lotOccupancyCommentDateString;const a=cityssm.dateToString(new Date);t.max=c.lotOccupancyCommentDateString<=a?a:c.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=c.lotOccupancyCommentTimeString},onshown(e,t){bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(a=e.querySelector("form")).addEventListener("submit",r),l=t},onremoved(){bulmaJS.toggleHtmlClipped()}})}function C(t){const n=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(o.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:s,lotOccupancyCommentId:n},t=>{var n;t.success?(e=t.lotOccupancyComments,T()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(n=t.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function T(){var t,n,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:"")+""+(null!==(n=a.lotOccupancyCommentDateString)&&void 0!==n?n:"")+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimePeriodString)+""+cityssm.escapeHTML(null!==(c=a.lotOccupancyComment)&&void 0!==c?c:"")+'
',e.querySelector(".button--edit").addEventListener("click",b),e.querySelector(".button--delete").addEventListener("click",C),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)}delete exports.lotOccupancyComments,null===(S=document.querySelector("#button--addComment"))||void 0===S||S.addEventListener("click",()=>{let t,n;function c(c){c.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{var c;t.success?(e=t.lotOccupancyComments,n(),T()):bulmaJS.alert({title:"Error Adding Comment",message:null!==(c=t.errorMessage)&&void 0!==c?c:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-addComment",{onshow(e){o.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=s},onshown(e,a){bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",c),n=a},onremoved:()=>{bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addComment").focus()}})}),T(),Object.defineProperty(exports,"__esModule",{value:!0});let t=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const n=document.querySelector("#container--lotOccupancyFees");function x(){let e=0;for(const n of t)e+=(n.feeAmount+n.taxAmount)*n.quantity;return e}function L(e){const n=Number.parseInt(e.currentTarget.closest("tr").dataset.feeId,10),c=t.find(e=>e.feeId===n);let a;function l(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyFeeQuantity",e.currentTarget,e=>{const n=e;n.success?(t=n.lotOccupancyFees,N(),a()):bulmaJS.alert({title:"Error Updating Quantity",message:"Please try again.",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editFeeQuantity",{onshow(e){e.querySelector("#lotOccupancyFeeQuantity--lotOccupancyId").value=s,e.querySelector("#lotOccupancyFeeQuantity--feeId").value=c.feeId.toString(),e.querySelector("#lotOccupancyFeeQuantity--quantity").valueAsNumber=c.quantity,e.querySelector("#lotOccupancyFeeQuantity--quantityUnit").textContent=c.quantityUnit},onshown(e,t){var n;bulmaJS.toggleHtmlClipped(),a=t,e.querySelector("#lotOccupancyFeeQuantity--quantity").focus(),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function q(e){const n=e.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:s,feeId:n},e=>{var n;const c=e;c.success?(t=c.lotOccupancyFees,N()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(n=c.errorMessage)&&void 0!==n?n:"",contextualColorName:"danger"})})}}})}function N(){var e,c,a,o,s,l,r;if(0===t.length)return n.innerHTML='
\n

There are no fees associated with this record.

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

';let p=!1;for(const t of a.fees){if(null!==n.querySelector(`.container--lotOccupancyFee[data-fee-id='${t.feeId}'][data-include-quantity='0']`))continue;let l=!0;const m=((null!==(c=a.feeCategory)&&void 0!==c?c:"")+" "+(null!==(o=t.feeName)&&void 0!==o?o:"")+" "+(null!==(s=t.feeDescription)&&void 0!==s?s:"")).toLowerCase();for(const e of d)if(!m.includes(e)){l=!1;break}if(!l)continue;p=!0;const y=document.createElement("a");y.className="panel-block is-block container--fee",y.dataset.feeId=t.feeId.toString(),y.dataset.feeCategoryId=a.feeCategoryId.toString(),y.href="#",y.innerHTML=""+cityssm.escapeHTML(null!==(r=t.feeName)&&void 0!==r?r:"")+"
"+cityssm.escapeHTML(null!==(u=t.feeDescription)&&void 0!==u?u:"").replace(/\n/g,"
")+"
",y.addEventListener("click",i),e.querySelector(".panel").append(y)}p&&l.append(e)}}cityssm.openHtmlModal("lotOccupancy-addFee",{onshow(t){a=t.querySelector("#feeSelect--feeName"),l=t.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:s},t=>{e=t.feeCategories,a.disabled=!1,a.addEventListener("keyup",u),a.focus(),u()})},onshown(){bulmaJS.toggleHtmlClipped()},onhidden(){N()},onremoved(){bulmaJS.toggleHtmlClipped(),c.focus()}})});let a=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const l=document.querySelector("#container--lotOccupancyTransactions");function E(e){const t=Number.parseInt(e.currentTarget.closest("tr").dataset.transactionIndex,10),n=a.find(e=>e.transactionIndex===t);let c;function l(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyTransaction",e.currentTarget,e=>{const t=e;t.success?(a=t.lotOccupancyTransactions,M(),c()):bulmaJS.alert({title:"Error Updating Transaction",message:"Please try again.",contextualColorName:"danger"})})}cityssm.openHtmlModal("lotOccupancy-editTransaction",{onshow(e){var t,c,a,l;o.populateAliases(e),e.querySelector("#lotOccupancyTransactionEdit--lotOccupancyId").value=s,e.querySelector("#lotOccupancyTransactionEdit--transactionIndex").value=n.transactionIndex.toString(),e.querySelector("#lotOccupancyTransactionEdit--transactionAmount").value=n.transactionAmount.toFixed(2),e.querySelector("#lotOccupancyTransactionEdit--externalReceiptNumber").value=null!==(t=n.externalReceiptNumber)&&void 0!==t?t:"",e.querySelector("#lotOccupancyTransactionEdit--transactionNote").value=null!==(c=n.transactionNote)&&void 0!==c?c:"",e.querySelector("#lotOccupancyTransactionEdit--transactionDateString").value=null!==(a=n.transactionDateString)&&void 0!==a?a:"",e.querySelector("#lotOccupancyTransactionEdit--transactionTimeString").value=null!==(l=n.transactionTimeString)&&void 0!==l?l:""},onshown(e,t){var n;bulmaJS.toggleHtmlClipped(),o.initializeDatePickers(e),e.querySelector("#lotOccupancyTransactionEdit--transactionAmount").focus(),null===(n=e.querySelector("form"))||void 0===n||n.addEventListener("submit",l),c=t},onremoved(){bulmaJS.toggleHtmlClipped()}})}function I(e){const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:function(){cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:s,transactionIndex:t},e=>{var t;const n=e;n.success?(a=n.lotOccupancyTransactions,M()):bulmaJS.alert({title:"Error Deleting Transaction",message:null!==(t=n.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function M(){var e,n,c,s,r;if(0===a.length)return void(l.innerHTML='

There are no transactions associated with this record.

');l.innerHTML=`\n \n \n \n \n \n \n \n \n \n \n \n \n
Date${o.escapedAliases.ExternalReceiptNumber}AmountOptions
Transaction Total
`;let i=0;for(const t of a){i+=t.transactionAmount;const a=document.createElement("tr");a.className="container--lotOccupancyTransaction",a.dataset.transactionIndex=t.transactionIndex.toString();let u="";""!==t.externalReceiptNumber&&(u=cityssm.escapeHTML(null!==(e=t.externalReceiptNumber)&&void 0!==e?e:""),o.dynamicsGPIntegrationIsEnabled&&(void 0===t.dynamicsGPDocument?u+=' \n \n ':t.dynamicsGPDocument.documentTotal.toFixed(2)===t.transactionAmount.toFixed(2)?u+=' \n \n ':u+=` \n \n `),u+="
"),a.innerHTML=""+(null!==(n=t.transactionDateString)&&void 0!==n?n:"")+""+u+""+cityssm.escapeHTML(null!==(c=t.transactionNote)&&void 0!==c?c:"")+'$'+t.transactionAmount.toFixed(2)+'
',null===(s=a.querySelector(".button--edit"))||void 0===s||s.addEventListener("click",E),null===(r=a.querySelector(".button--delete"))||void 0===r||r.addEventListener("click",I),l.querySelector("tbody").append(a)}l.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+i.toFixed(2);const u=x();u.toFixed(2)!==i.toFixed(2)&&l.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(u-i).toFixed(2)+"
")}const r=document.querySelector("#button--addTransaction");r.addEventListener("click",()=>{let e,t,n;function c(e){e.preventDefault(),cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",e.currentTarget,e=>{var t;const c=e;c.success?(a=c.lotOccupancyTransactions,n(),M()):bulmaJS.confirm({title:"Error Adding Transaction",message:null!==(t=c.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function l(){const n=t.value,c=t.closest(".control").querySelector(".icon"),a=t.closest(".field").querySelector(".help");if(""===n)return a.innerHTML=" ",void(c.innerHTML='');cityssm.postJSON(o.urlPrefix+"/lotOccupancies/doGetDynamicsGPDocument",{externalReceiptNumber:n},t=>{const n=t;n.success&&void 0!==n.dynamicsGPDocument?e.valueAsNumber===n.dynamicsGPDocument.documentTotal?(a.textContent="Matching Document Found",c.innerHTML=''):(a.textContent="Matching Document: $"+n.dynamicsGPDocument.documentTotal.toFixed(2),c.innerHTML=''):(a.textContent="No Matching Document Found",c.innerHTML='')})}cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow(n){o.populateAliases(n),n.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=s.toString();const c=x(),r=function(){let e=0;for(const t of a)e+=t.transactionAmount;return e}();if((e=n.querySelector("#lotOccupancyTransactionAdd--transactionAmount")).min=(-1*r).toFixed(2),e.max=Math.max(c-r,0).toFixed(2),e.value=Math.max(c-r,0).toFixed(2),o.dynamicsGPIntegrationIsEnabled){const c=(t=n.querySelector("#lotOccupancyTransactionAdd--externalReceiptNumber")).closest(".control");c.classList.add("has-icons-right"),c.insertAdjacentHTML("beforeend",''),c.insertAdjacentHTML("afterend",'

'),t.addEventListener("change",l),e.addEventListener("change",l),l()}},onshown(t,a){bulmaJS.toggleHtmlClipped(),e.focus(),n=a,t.querySelector("form").addEventListener("submit",c)},onremoved(){bulmaJS.toggleHtmlClipped(),r.focus()}})}),N()}})(); \ No newline at end of file diff --git a/public/javascripts/workOrderEdit.min.js b/public/javascripts/workOrderEdit.min.js index 43d65f34..5ae889d1 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");function n(){var e;t.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.remove("is-light")}function a(){var e;t.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.add("is-light")}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;const s=e;s.success?(a(),r?window.location.href=t.getWorkOrderURL(s.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:null!==(o=s.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const l=s.querySelectorAll("input, select, textarea");for(const e of l)e.addEventListener("change",n);function c(){cityssm.postJSON(t.urlPrefix+"/workOrders/doCloseWorkOrder",{workOrderId:o},e=>{var r;const s=e;s.success?(a(),window.location.href=t.getWorkOrderURL(o)):bulmaJS.alert({title:"Error Closing Work Order",message:null!==(r=s.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}function i(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrder",{workOrderId:o},e=>{var o;const r=e;r.success?(a(),window.location.href=t.urlPrefix+"/workOrders"):bulmaJS.alert({title:"Error Deleting Work Order",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}let d;if(null===(k=document.querySelector("#button--closeWorkOrder"))||void 0===k||k.addEventListener("click",()=>{d.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:t.hasUnsavedChanges()?"Are you sure you want to close this work order with unsaved changes?":"Are you sure you want to close this work order?",contextualColorName:t.hasUnsavedChanges()?"warning":"info",okButton:{text:"Yes, Close Work Order",callbackFunction:c}})}),null===(u=document.querySelector("#button--deleteWorkOrder"))||void 0===u||u.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:i}})}),!r){var u;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function m(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=>{var t;const o=e;o.success?(r=o.workOrderLotOccupancies,g()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function p(r,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:o,lotId:r},o=>{var r;const n=o;n.success?(e=n.workOrderLots,g()):bulmaJS.alert({title:`Error Adding ${t.escapedAliases.Lot}`,message:null!==(r=n.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"}),void 0!==s&&s(n.success)})}function y(e){p(e.currentTarget.dataset.lotId)}function O(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=>{var o;const r=t;r.success?(e=r.workOrderLots,g(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",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 h(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=>{var o;const r=t;r.success?(e=r.workOrderLots,g()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function g(){!function(){var o,s,n,a;const l=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(l.innerHTML=`
\n

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

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

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

\n
`}()}function w(e){const s=e.currentTarget.closest("tr");!function(e,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:e},e=>{var o;const n=e;n.success?(r=n.workOrderLotOccupancies,g()):bulmaJS.alert({title:"Error Adding "+t.escapedAliases.Occupancy,message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"}),void 0!==s&&s(n.success)})}(s.dataset.lotOccupancyId,e=>{e&&s.remove()})}function S(e){const t=e.currentTarget.closest("tr");p(t.dataset.lotId,e=>{e&&t.remove()})}delete exports.workOrderLotOccupancies,g(),null===(k=document.querySelector("#button--addLotOccupancy"))||void 0===k||k.addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,e=>{var o,s;const n=e;if(0!==n.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 e of n.lotOccupancies){const n=document.createElement("tr");n.className="container--lotOccupancy",n.dataset.lotOccupancyId=e.lotOccupancyId.toString(),n.innerHTML=`\n \n \n \n ${cityssm.escapeHTML(null!==(o=e.occupancyType)&&void 0!==o?o:"")}\n `,e.lotId?n.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(null!==(s=e.lotName)&&void 0!==s?s:"")+""):n.insertAdjacentHTML("beforeend",`(No ${t.escapedAliases.Lot})`),n.insertAdjacentHTML("beforeend",`${e.occupancyStartDateString}`+""+(e.occupancyEndDate?e.occupancyEndDateString:'(No End Date)')+""+(0===e.lotOccupancyOccupants.length?`(No ${cityssm.escapeHTML(t.escapedAliases.Occupants)})`:cityssm.escapeHTML(e.lotOccupancyOccupants[0].occupantName+" "+e.lotOccupancyOccupants[0].occupantFamilyName)+(e.lotOccupancyOccupants.length>1?" plus "+(e.lotOccupancyOccupants.length-1):""))+""),n.querySelector(".button--addLotOccupancy").addEventListener("click",w),r.querySelector("tbody").append(n)}}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();const o=t.querySelector("#lotOccupancySearch--occupantName");o.addEventListener("change",s),o.focus(),t.querySelector("#lotOccupancySearch--lotName").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLotOccupancy").focus()}})}),null===(u=document.querySelector("#button--addLot"))||void 0===u||u.addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lots/doSearchLots",e,e=>{var o,s,n,a;const l=e;if(0!==l.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 e of l.lots){const t=document.createElement("tr");t.className="container--lot",t.dataset.lotId=e.lotId.toString(),t.innerHTML=''+cityssm.escapeHTML(null!==(o=e.lotName)&&void 0!==o?o:"")+""+cityssm.escapeHTML(null!==(s=e.mapName)&&void 0!==s?s:"")+""+cityssm.escapeHTML(null!==(n=e.lotType)&&void 0!==n?n:"")+""+cityssm.escapeHTML(null!==(a=e.lotStatus)&&void 0!==a?a:"")+"",t.querySelector(".button--addLot").addEventListener("click",S),r.querySelector("tbody").append(t)}}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();const o=t.querySelector("#lotSearch--lotName");o.addEventListener("change",s),o.focus(),t.querySelector("#lotSearch--lotStatusId").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLot").focus()}})})}var k;Object.defineProperty(exports,"__esModule",{value:!0});let f=exports.workOrderComments;function b(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=f.find(e=>e.workOrderCommentId===r);let n,a;function l(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderComment",n,e=>{var t;e.success?(f=e.workOrderComments,a(),M()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",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 v(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=>{var t;e.success?(f=e.workOrderComments,M()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function M(){var e,t;const o=document.querySelector("#container--workOrderComments");if(0===f.length)return void(o.innerHTML='
\n

There are no comments to display.

\n
');const r=document.createElement("table");r.className="table is-fullwidth is-striped is-hoverable",r.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const o of f){const s=document.createElement("tr");s.dataset.workOrderCommentId=o.workOrderCommentId.toString(),s.innerHTML=""+cityssm.escapeHTML(null!==(e=o.recordCreate_userName)&&void 0!==e?e:"")+""+o.workOrderCommentDateString+(0===o.workOrderCommentTime?"":" "+o.workOrderCommentTimeString)+""+cityssm.escapeHTML(null!==(t=o.workOrderComment)&&void 0!==t?t:"")+'
',s.querySelector(".button--edit").addEventListener("click",b),s.querySelector(".button--delete").addEventListener("click",v),r.querySelector("tbody").append(s)}o.innerHTML="",o.append(r)}function L(e){var t;const o=e;o.success?(d=o.workOrderMilestones,E()):bulmaJS.alert({title:"Error Reopening Milestone",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function C(e){e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=d.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(""!==n.workOrderMilestoneDateString&&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},L)}}})}function T(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},L)}}})}function I(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},L)}}})}function x(e){e.preventDefault();const r=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),s=d.find(e=>e.workOrderMilestoneId===r);let n;function a(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",e.currentTarget,e=>{const t=e;L(t),t.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 E(){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 d){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:"")+"
":"")+(0===a.workOrderMilestoneDate?'(No Set Date)':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",T),null===(r=l.querySelector(".button--editMilestone"))||void 0===r||r.addEventListener("click",x),null===(s=l.querySelector(".button--completeMilestone"))||void 0===s||s.addEventListener("click",C),l.querySelector(".button--deleteMilestone").addEventListener("click",I),n.append(l)}bulmaJS.init(n)}delete exports.workOrderComments,null===(k=document.querySelector("#workOrderComments--add"))||void 0===k||k.addEventListener("click",function(){let e;function r(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderComment",o.currentTarget,t=>{t.success&&(f=t.workOrderComments,M(),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||M(),r||(d=exports.workOrderMilestones,delete exports.workOrderMilestones,E(),null===(e=document.querySelector("#button--addMilestone"))||void 0===e||e.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=>{const t=e;L(t),t.success&&s()})}const l=e.querySelector("#milestoneAdd--workOrderMilestoneDateString").value;""!==l&&l{var e;const t=exports.los,o=document.querySelector("#workOrderEdit--workOrderId").value,r=""===o,s=document.querySelector("#form--workOrderEdit");function n(){var e;t.setUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.remove("is-light")}function a(){var e;t.clearUnsavedChanges(),null===(e=document.querySelector("button[type='submit'][form='form--workOrderEdit']"))||void 0===e||e.classList.add("is-light")}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;const s=e;s.success?(a(),r?window.location.href=t.getWorkOrderURL(s.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:null!==(o=s.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const l=s.querySelectorAll("input, select, textarea");for(const e of l)e.addEventListener("change",n);function c(){cityssm.postJSON(t.urlPrefix+"/workOrders/doCloseWorkOrder",{workOrderId:o},e=>{var r;const s=e;s.success?(a(),window.location.href=t.getWorkOrderURL(o)):bulmaJS.alert({title:"Error Closing Work Order",message:null!==(r=s.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"})})}function i(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrder",{workOrderId:o},e=>{var o;const r=e;r.success?(a(),window.location.href=t.urlPrefix+"/workOrders"):bulmaJS.alert({title:"Error Deleting Work Order",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}let d;if(null===(k=document.querySelector("#button--closeWorkOrder"))||void 0===k||k.addEventListener("click",()=>{d.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:t.hasUnsavedChanges()?"Are you sure you want to close this work order with unsaved changes?":"Are you sure you want to close this work order?",contextualColorName:t.hasUnsavedChanges()?"warning":"info",okButton:{text:"Yes, Close Work Order",callbackFunction:c}})}),null===(u=document.querySelector("#button--deleteWorkOrder"))||void 0===u||u.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:i}})}),!r){var u;Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function m(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=>{var t;const o=e;o.success?(r=o.workOrderLotOccupancies,g()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function p(r,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:o,lotId:r},o=>{var r;const n=o;n.success?(e=n.workOrderLots,g()):bulmaJS.alert({title:`Error Adding ${t.escapedAliases.Lot}`,message:null!==(r=n.errorMessage)&&void 0!==r?r:"",contextualColorName:"danger"}),void 0!==s&&s(n.success)})}function y(e){p(e.currentTarget.dataset.lotId)}function O(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=>{var o;const r=t;r.success?(e=r.workOrderLots,g(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",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 h(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=>{var o;const r=t;r.success?(e=r.workOrderLots,g()):bulmaJS.alert({title:"Error Deleting Relationship",message:null!==(o=r.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})}function g(){!function(){var o,s,n,a;const l=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(l.innerHTML=`
\n

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

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

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

\n
`}()}function w(e){const s=e.currentTarget.closest("tr");!function(e,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:e},e=>{var o;const n=e;n.success?(r=n.workOrderLotOccupancies,g()):bulmaJS.alert({title:"Error Adding "+t.escapedAliases.Occupancy,message:null!==(o=n.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"}),void 0!==s&&s(n.success)})}(s.dataset.lotOccupancyId,e=>{e&&s.remove()})}function S(e){const t=e.currentTarget.closest("tr");p(t.dataset.lotId,e=>{e&&t.remove()})}delete exports.workOrderLotOccupancies,g(),null===(k=document.querySelector("#button--addLotOccupancy"))||void 0===k||k.addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,e=>{var o,s;const n=e;if(0!==n.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 e of n.lotOccupancies){const n=document.createElement("tr");n.className="container--lotOccupancy",n.dataset.lotOccupancyId=e.lotOccupancyId.toString(),n.innerHTML=`\n \n \n \n ${cityssm.escapeHTML(null!==(o=e.occupancyType)&&void 0!==o?o:"")}\n `,e.lotId?n.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(null!==(s=e.lotName)&&void 0!==s?s:"")+""):n.insertAdjacentHTML("beforeend",`(No ${t.escapedAliases.Lot})`),n.insertAdjacentHTML("beforeend",`${e.occupancyStartDateString}`+""+(e.occupancyEndDate?e.occupancyEndDateString:'(No End Date)')+""+(0===e.lotOccupancyOccupants.length?`(No ${cityssm.escapeHTML(t.escapedAliases.Occupants)})`:cityssm.escapeHTML(e.lotOccupancyOccupants[0].occupantName+" "+e.lotOccupancyOccupants[0].occupantFamilyName)+(e.lotOccupancyOccupants.length>1?" plus "+(e.lotOccupancyOccupants.length-1):""))+""),n.querySelector(".button--addLotOccupancy").addEventListener("click",w),r.querySelector("tbody").append(n)}}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();const o=t.querySelector("#lotOccupancySearch--occupantName");o.addEventListener("change",s),o.focus(),t.querySelector("#lotOccupancySearch--lotName").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLotOccupancy").focus()}})}),null===(u=document.querySelector("#button--addLot"))||void 0===u||u.addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lots/doSearchLots",e,e=>{var o,s,n,a;const l=e;if(0!==l.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 e of l.lots){const t=document.createElement("tr");t.className="container--lot",t.dataset.lotId=e.lotId.toString(),t.innerHTML=''+cityssm.escapeHTML(null!==(o=e.lotName)&&void 0!==o?o:"")+""+cityssm.escapeHTML(null!==(s=e.mapName)&&void 0!==s?s:"")+""+cityssm.escapeHTML(null!==(n=e.lotType)&&void 0!==n?n:"")+""+cityssm.escapeHTML(null!==(a=e.lotStatus)&&void 0!==a?a:"")+"",t.querySelector(".button--addLot").addEventListener("click",S),r.querySelector("tbody").append(t)}}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();const o=t.querySelector("#lotSearch--lotName");o.addEventListener("change",s),o.focus(),t.querySelector("#lotSearch--lotStatusId").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addLot").focus()}})})}var k;Object.defineProperty(exports,"__esModule",{value:!0});let f=exports.workOrderComments;function b(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=f.find(e=>e.workOrderCommentId===r);let n,a;function l(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderComment",n,e=>{var t;e.success?(f=e.workOrderComments,a(),M()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",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 v(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=>{var t;e.success?(f=e.workOrderComments,M()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function M(){var e,t;const o=document.querySelector("#container--workOrderComments");if(0===f.length)return void(o.innerHTML='
\n

There are no comments to display.

\n
');const r=document.createElement("table");r.className="table is-fullwidth is-striped is-hoverable",r.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const o of f){const s=document.createElement("tr");s.dataset.workOrderCommentId=o.workOrderCommentId.toString(),s.innerHTML=""+cityssm.escapeHTML(null!==(e=o.recordCreate_userName)&&void 0!==e?e:"")+""+o.workOrderCommentDateString+(0===o.workOrderCommentTime?"":" "+o.workOrderCommentTimePeriodString)+""+cityssm.escapeHTML(null!==(t=o.workOrderComment)&&void 0!==t?t:"")+'
',s.querySelector(".button--edit").addEventListener("click",b),s.querySelector(".button--delete").addEventListener("click",v),r.querySelector("tbody").append(s)}o.innerHTML="",o.append(r)}function L(e){var t;const o=e;o.success?(d=o.workOrderMilestones,E()):bulmaJS.alert({title:"Error Reopening Milestone",message:null!==(t=o.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function C(e){e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=d.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(""!==n.workOrderMilestoneDateString&&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},L)}}})}function T(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},L)}}})}function I(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},L)}}})}function x(e){e.preventDefault();const r=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),s=d.find(e=>e.workOrderMilestoneId===r);let n;function a(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",e.currentTarget,e=>{const t=e;L(t),t.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 E(){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 d){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:"")+"
":"")+(0===a.workOrderMilestoneDate?'(No Set Date)':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",T),null===(r=l.querySelector(".button--editMilestone"))||void 0===r||r.addEventListener("click",x),null===(s=l.querySelector(".button--completeMilestone"))||void 0===s||s.addEventListener("click",C),l.querySelector(".button--deleteMilestone").addEventListener("click",I),n.append(l)}bulmaJS.init(n)}delete exports.workOrderComments,null===(k=document.querySelector("#workOrderComments--add"))||void 0===k||k.addEventListener("click",function(){let e;function r(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderComment",o.currentTarget,t=>{t.success&&(f=t.workOrderComments,M(),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||M(),r||(d=exports.workOrderMilestones,delete exports.workOrderMilestones,E(),null===(e=document.querySelector("#button--addMilestone"))||void 0===e||e.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=>{const t=e;L(t),t.success&&s()})}const l=e.querySelector("#milestoneAdd--workOrderMilestoneDateString").value;""!==l&&l - <% for (const lotComment of lot.lotComments) { %> - - <%= lotComment.recordCreate_userName %> - - <%= lotComment.lotCommentDateString %> - <%= (lotComment.lotCommentTime === 0 ? "" : lotComment.lotCommentTimeString) %> - - <%= lotComment.lotComment %> - - <% } %> + <% for (const lotComment of lot.lotComments) { %> + + <%= lotComment.recordCreate_userName %> + + <%= lotComment.lotCommentDateString %> + <%= (lotComment.lotCommentTime === 0 ? "" : lotComment.lotCommentTimePeriodString) %> + + <%= lotComment.lotComment %> + + <% } %> diff --git a/views/lotOccupancy-view.ejs b/views/lotOccupancy-view.ejs index ba94ff62..42c2eba5 100644 --- a/views/lotOccupancy-view.ejs +++ b/views/lotOccupancy-view.ejs @@ -226,25 +226,25 @@

Comments

- - - - - - - - - <% for (const lotOccupancyComment of lotOccupancy.lotOccupancyComments) { %> - - - - - - <% } %> - + + + + + + + + + <% for (const lotOccupancyComment of lotOccupancy.lotOccupancyComments) { %> + + + + + + <% } %> +
CommentorComment DateComment
<%= lotOccupancyComment.recordCreate_userName %> - <%= lotOccupancyComment.lotOccupancyCommentDateString %> - <%= (lotOccupancyComment.lotOccupancyCommentTime === 0 ? "" : lotOccupancyComment.lotOccupancyCommentTimeString) %> - <%= lotOccupancyComment.lotOccupancyComment %>
CommentorComment DateComment
<%= lotOccupancyComment.recordCreate_userName %> + <%= lotOccupancyComment.lotOccupancyCommentDateString %> + <%= (lotOccupancyComment.lotOccupancyCommentTime === 0 ? "" : lotOccupancyComment.lotOccupancyCommentTimePeriodString) %> + <%= lotOccupancyComment.lotOccupancyComment %>
@@ -252,8 +252,8 @@ <% if (lotOccupancy.workOrders.length > 0) { %> <% - const workOrderOpenDateAlias = configFunctions.getProperty("aliases.workOrderOpenDate"); - const workOrderCloseDateAlias = configFunctions.getProperty("aliases.workOrderCloseDate"); + const workOrderOpenDateAlias = configFunctions.getProperty("aliases.workOrderOpenDate"); + const workOrderCloseDateAlias = configFunctions.getProperty("aliases.workOrderCloseDate"); %>

Work Orders

@@ -267,33 +267,33 @@ - <% for (const workOrder of lotOccupancy.workOrders) { %> - - - - <%= workOrder.workOrderNumber %> - - - - <%= workOrder.workOrderType %>
- <%= workOrder.workOrderDescription %> - - - - - <%= workOrder.workOrderOpenDateString %> -
- - - <% if (workOrder.workOrderCloseDate) { %> - <%= workOrder.workOrderCloseDateString %> - <% } else { %> - (No <%= workOrderCloseDateAlias %>) - <% } %> - - - - <% } %> + <% for (const workOrder of lotOccupancy.workOrders) { %> + + + + <%= workOrder.workOrderNumber %> + + + + <%= workOrder.workOrderType %>
+ <%= workOrder.workOrderDescription %> + + + + + <%= workOrder.workOrderOpenDateString %> +
+ + + <% if (workOrder.workOrderCloseDate) { %> + <%= workOrder.workOrderCloseDateString %> + <% } else { %> + (No <%= workOrderCloseDateAlias %>) + <% } %> + + + + <% } %>
diff --git a/views/print/pdf/workOrder-commentLog.ejs b/views/print/pdf/workOrder-commentLog.ejs index cf967b1a..e90a3582 100644 --- a/views/print/pdf/workOrder-commentLog.ejs +++ b/views/print/pdf/workOrder-commentLog.ejs @@ -20,13 +20,13 @@ Comment - - <% for (const comment of workOrder.workOrderComments) { %> - - <%= comment.recordUpdate_userName %> - <%= comment.workOrderCommentDateString %> <%= comment.workOrderCommentTimeString %> - <%= comment.workOrderComment %> - + + <% for (const comment of workOrder.workOrderComments) { %> + + <%= comment.recordUpdate_userName %> + <%= comment.workOrderCommentDateString %> <%= comment.workOrderCommentTimePeriodString %> + <%= comment.workOrderComment %> + <% } %> diff --git a/views/workOrder-view.ejs b/views/workOrder-view.ejs index dcd8a244..ccc7f38d 100644 --- a/views/workOrder-view.ejs +++ b/views/workOrder-view.ejs @@ -279,7 +279,7 @@ <%= workOrderComment.recordCreate_userName %> <%= workOrderComment.workOrderCommentDateString %> - <%= (workOrderComment.workOrderCommentTime === 0 ? "" : workOrderComment.workOrderCommentTimeString) %> + <%= (workOrderComment.workOrderCommentTime === 0 ? "" : workOrderComment.workOrderCommentTimePeriodString) %> <%= workOrderComment.workOrderComment %>