diff --git a/helpers/lotOccupancyDB/getLotStatusSummary.js b/helpers/lotOccupancyDB/getLotStatusSummary.js index 0c6e968c..3fc45a65 100644 --- a/helpers/lotOccupancyDB/getLotStatusSummary.js +++ b/helpers/lotOccupancyDB/getLotStatusSummary.js @@ -8,12 +8,12 @@ export async function getLotStatusSummary(filters) { sqlParameters.push(filters.mapId); } const lotStatuses = database - .prepare('select s.lotStatusId, s.lotStatus, count(l.lotId) as lotCount' + - ' from Lots l' + - ' left join LotStatuses s on l.lotStatusId = s.lotStatusId' + - sqlWhereClause + - ' group by s.lotStatusId, s.lotStatus, s.orderNumber' + - ' order by s.orderNumber') + .prepare(`select s.lotStatusId, s.lotStatus, count(l.lotId) as lotCount + from Lots l + left join LotStatuses s on l.lotStatusId = s.lotStatusId + ${sqlWhereClause} + group by s.lotStatusId, s.lotStatus, s.orderNumber + order by s.orderNumber`) .all(sqlParameters); database.release(); return lotStatuses; diff --git a/helpers/lotOccupancyDB/getLotStatusSummary.ts b/helpers/lotOccupancyDB/getLotStatusSummary.ts index 7c309bb6..a45b48dc 100644 --- a/helpers/lotOccupancyDB/getLotStatusSummary.ts +++ b/helpers/lotOccupancyDB/getLotStatusSummary.ts @@ -25,12 +25,12 @@ export async function getLotStatusSummary( const lotStatuses: LotStatusSummary[] = database .prepare( - 'select s.lotStatusId, s.lotStatus, count(l.lotId) as lotCount' + - ' from Lots l' + - ' left join LotStatuses s on l.lotStatusId = s.lotStatusId' + - sqlWhereClause + - ' group by s.lotStatusId, s.lotStatus, s.orderNumber' + - ' order by s.orderNumber' + `select s.lotStatusId, s.lotStatus, count(l.lotId) as lotCount + from Lots l + left join LotStatuses s on l.lotStatusId = s.lotStatusId + ${sqlWhereClause} + group by s.lotStatusId, s.lotStatus, s.orderNumber + order by s.orderNumber` ) .all(sqlParameters) diff --git a/helpers/lotOccupancyDB/getLotTypeSummary.js b/helpers/lotOccupancyDB/getLotTypeSummary.js index eda091fe..ead072e2 100644 --- a/helpers/lotOccupancyDB/getLotTypeSummary.js +++ b/helpers/lotOccupancyDB/getLotTypeSummary.js @@ -8,12 +8,12 @@ export async function getLotTypeSummary(filters) { sqlParameters.push(filters.mapId); } const lotTypes = database - .prepare('select t.lotTypeId, t.lotType, count(l.lotId) as lotCount' + - ' from Lots l' + - ' left join LotTypes t on l.lotTypeId = t.lotTypeId' + - sqlWhereClause + - ' group by t.lotTypeId, t.lotType, t.orderNumber' + - ' order by t.orderNumber') + .prepare(`select t.lotTypeId, t.lotType, count(l.lotId) as lotCount + from Lots l + left join LotTypes t on l.lotTypeId = t.lotTypeId + ${sqlWhereClause} + group by t.lotTypeId, t.lotType, t.orderNumber + order by t.orderNumber`) .all(sqlParameters); database.release(); return lotTypes; diff --git a/helpers/lotOccupancyDB/getLotTypeSummary.ts b/helpers/lotOccupancyDB/getLotTypeSummary.ts index 3c81e7dd..834de133 100644 --- a/helpers/lotOccupancyDB/getLotTypeSummary.ts +++ b/helpers/lotOccupancyDB/getLotTypeSummary.ts @@ -25,12 +25,12 @@ export async function getLotTypeSummary( const lotTypes: LotTypeSummary[] = database .prepare( - 'select t.lotTypeId, t.lotType, count(l.lotId) as lotCount' + - ' from Lots l' + - ' left join LotTypes t on l.lotTypeId = t.lotTypeId' + - sqlWhereClause + - ' group by t.lotTypeId, t.lotType, t.orderNumber' + - ' order by t.orderNumber' + `select t.lotTypeId, t.lotType, count(l.lotId) as lotCount + from Lots l + left join LotTypes t on l.lotTypeId = t.lotTypeId + ${sqlWhereClause} + group by t.lotTypeId, t.lotType, t.orderNumber + order by t.orderNumber` ) .all(sqlParameters) diff --git a/helpers/lotOccupancyDB/getLots.js b/helpers/lotOccupancyDB/getLots.js index 9fd2513a..cd402b04 100644 --- a/helpers/lotOccupancyDB/getLots.js +++ b/helpers/lotOccupancyDB/getLots.js @@ -51,8 +51,8 @@ export async function getLots(filters, options, connectedDatabase) { left join ( select lotId, count(lotOccupancyId) as lotOccupancyCount from LotOccupancies where recordDelete_timeMillis is null - and occupancyStartDate <= ${currentDate} - and (occupancyEndDate is null or occupancyEndDate >= ${currentDate}) + and occupancyStartDate <= ${currentDate.toString()} + and (occupancyEndDate is null or occupancyEndDate >= ${currentDate.toString()}) group by lotId ) o on l.lotId = o.lotId ${sqlWhereClause}`) @@ -82,7 +82,9 @@ export async function getLots(filters, options, connectedDatabase) { ') o on l.lotId = o.lotId') + sqlWhereClause + ' order by userFn_lotNameSortName(l.lotName), l.lotId' + - (options.limit === -1 ? '' : ` limit ${options.limit} offset ${options.offset}`)) + (options.limit === -1 + ? '' + : ` limit ${options.limit.toString()} offset ${options.offset.toString()}`)) .all(sqlParameters); if (options.limit === -1) { count = lots.length; diff --git a/helpers/lotOccupancyDB/getLots.ts b/helpers/lotOccupancyDB/getLots.ts index 87ee29d9..8cefdb8a 100644 --- a/helpers/lotOccupancyDB/getLots.ts +++ b/helpers/lotOccupancyDB/getLots.ts @@ -97,8 +97,8 @@ export async function getLots( left join ( select lotId, count(lotOccupancyId) as lotOccupancyCount from LotOccupancies where recordDelete_timeMillis is null - and occupancyStartDate <= ${currentDate} - and (occupancyEndDate is null or occupancyEndDate >= ${currentDate}) + and occupancyStartDate <= ${currentDate.toString()} + and (occupancyEndDate is null or occupancyEndDate >= ${currentDate.toString()}) group by lotId ) o on l.lotId = o.lotId ${sqlWhereClause}` @@ -137,7 +137,9 @@ export async function getLots( ') o on l.lotId = o.lotId') + sqlWhereClause + ' order by userFn_lotNameSortName(l.lotName), l.lotId' + - (options.limit === -1 ? '' : ` limit ${options.limit} offset ${options.offset}`) + (options.limit === -1 + ? '' + : ` limit ${options.limit.toString()} offset ${options.offset.toString()}`) ) .all(sqlParameters) diff --git a/helpers/lotOccupancyDB/getNextWorkOrderNumber.js b/helpers/lotOccupancyDB/getNextWorkOrderNumber.js index 2a8560ad..a0fc649d 100644 --- a/helpers/lotOccupancyDB/getNextWorkOrderNumber.js +++ b/helpers/lotOccupancyDB/getNextWorkOrderNumber.js @@ -9,9 +9,9 @@ export async function getNextWorkOrderNumber(connectedDatabase) { return regex.test(workOrderNumber) ? 1 : 0; }); const workOrderNumberRecord = database - .prepare('select workOrderNumber from WorkOrders' + - ' where userFn_matchesWorkOrderNumberSyntax(workOrderNumber) = 1' + - " order by cast(substr(workOrderNumber, instr(workOrderNumber, '-') + 1) as integer) desc") + .prepare(`select workOrderNumber from WorkOrders + where userFn_matchesWorkOrderNumberSyntax(workOrderNumber) = 1 + order by cast(substr(workOrderNumber, instr(workOrderNumber, '-') + 1) as integer) desc`) .get(); if (connectedDatabase === undefined) { database.release(); diff --git a/helpers/lotOccupancyDB/getNextWorkOrderNumber.ts b/helpers/lotOccupancyDB/getNextWorkOrderNumber.ts index 9835bebb..bdb61de6 100644 --- a/helpers/lotOccupancyDB/getNextWorkOrderNumber.ts +++ b/helpers/lotOccupancyDB/getNextWorkOrderNumber.ts @@ -24,9 +24,9 @@ export async function getNextWorkOrderNumber( const workOrderNumberRecord = database .prepare( - 'select workOrderNumber from WorkOrders' + - ' where userFn_matchesWorkOrderNumberSyntax(workOrderNumber) = 1' + - " order by cast(substr(workOrderNumber, instr(workOrderNumber, '-') + 1) as integer) desc" + `select workOrderNumber from WorkOrders + where userFn_matchesWorkOrderNumberSyntax(workOrderNumber) = 1 + order by cast(substr(workOrderNumber, instr(workOrderNumber, '-') + 1) as integer) desc` ) .get() diff --git a/helpers/lotOccupancyDB/getOccupancyTypeFields.js b/helpers/lotOccupancyDB/getOccupancyTypeFields.js index 3af23919..6ee0005f 100644 --- a/helpers/lotOccupancyDB/getOccupancyTypeFields.js +++ b/helpers/lotOccupancyDB/getOccupancyTypeFields.js @@ -3,7 +3,7 @@ import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; export async function getOccupancyTypeFields(occupancyTypeId, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); const sqlParameters = []; - if (occupancyTypeId) { + if ((occupancyTypeId ?? -1) !== -1) { sqlParameters.push(occupancyTypeId); } const occupancyTypeFields = database @@ -13,9 +13,9 @@ export async function getOccupancyTypeFields(occupancyTypeId, connectedDatabase) ' orderNumber' + ' from OccupancyTypeFields' + ' where recordDelete_timeMillis is null' + - (occupancyTypeId - ? ' and occupancyTypeId = ?' - : ' and occupancyTypeId is null') + + ((occupancyTypeId ?? -1) === -1 + ? ' and occupancyTypeId is null' + : ' and occupancyTypeId = ?') + ' order by orderNumber, occupancyTypeField') .all(sqlParameters); let expectedOrderNumber = 0; diff --git a/helpers/lotOccupancyDB/getOccupancyTypeFields.ts b/helpers/lotOccupancyDB/getOccupancyTypeFields.ts index 5180af01..cc0529fc 100644 --- a/helpers/lotOccupancyDB/getOccupancyTypeFields.ts +++ b/helpers/lotOccupancyDB/getOccupancyTypeFields.ts @@ -12,7 +12,7 @@ export async function getOccupancyTypeFields( const sqlParameters: unknown[] = [] - if (occupancyTypeId) { + if ((occupancyTypeId ?? -1) !== -1) { sqlParameters.push(occupancyTypeId) } @@ -24,9 +24,9 @@ export async function getOccupancyTypeFields( ' orderNumber' + ' from OccupancyTypeFields' + ' where recordDelete_timeMillis is null' + - (occupancyTypeId - ? ' and occupancyTypeId = ?' - : ' and occupancyTypeId is null') + + ((occupancyTypeId ?? -1) === -1 + ? ' and occupancyTypeId is null' + : ' and occupancyTypeId = ?') + ' order by orderNumber, occupancyTypeField' ) .all(sqlParameters) diff --git a/helpers/lotOccupancyDB/getReportData.js b/helpers/lotOccupancyDB/getReportData.js index 6523e9b1..aa2e0a97 100644 --- a/helpers/lotOccupancyDB/getReportData.js +++ b/helpers/lotOccupancyDB/getReportData.js @@ -31,16 +31,16 @@ export async function getReportData(reportName, reportParameters = {}) { } case 'maps-formatted': { sql = `select mapName as ${mapNameAlias}, - mapDescription as ${mapDescriptionAlias}, - mapAddress1 as ${mapAddress1Alias}, - mapAddress2 as ${mapAddress2Alias}, - mapCity as ${mapCityAlias}, - mapProvince as ${mapProvinceAlias}, - mapPostalCode as ${mapPostalCodeAlias}, - mapPhoneNumber as ${mapPhoneNumberAlias} - from Maps - where recordDelete_timeMillis is null - order by mapName`; + mapDescription as ${mapDescriptionAlias}, + mapAddress1 as ${mapAddress1Alias}, + mapAddress2 as ${mapAddress2Alias}, + mapCity as ${mapCityAlias}, + mapProvince as ${mapProvinceAlias}, + mapPostalCode as ${mapPostalCodeAlias}, + mapPhoneNumber as ${mapPhoneNumberAlias} + from Maps + where recordDelete_timeMillis is null + order by mapName`; break; } case 'lots-all': { @@ -49,46 +49,46 @@ export async function getReportData(reportName, reportParameters = {}) { } case 'lots-byLotTypeId': { sql = `select l.lotId as ${lotIdAlias}, - m.mapName as ${mapNameAlias}, - l.lotName as ${lotNameAlias}, - t.lotType as ${lotTypeAlias}, - s.lotStatus as ${lotStatusAlias} - from Lots l - left join LotTypes t on l.lotTypeId = t.lotTypeId - left join LotStatuses s on l.lotStatusId = s.lotStatusId - left join Maps m on l.mapId = m.mapId - where l.recordDelete_timeMillis is null - and l.lotTypeId = ?`; + m.mapName as ${mapNameAlias}, + l.lotName as ${lotNameAlias}, + t.lotType as ${lotTypeAlias}, + s.lotStatus as ${lotStatusAlias} + from Lots l + left join LotTypes t on l.lotTypeId = t.lotTypeId + left join LotStatuses s on l.lotStatusId = s.lotStatusId + left join Maps m on l.mapId = m.mapId + where l.recordDelete_timeMillis is null + and l.lotTypeId = ?`; sqlParameters.push(reportParameters.lotTypeId); break; } case 'lots-byLotStatusId': { sql = `select l.lotId as ${lotIdAlias}, - m.mapName as ${mapNameAlias}, - l.lotName as ${lotNameAlias}, - t.lotType as ${lotTypeAlias}, - s.lotStatus as ${lotStatusAlias} - from Lots l - left join LotTypes t on l.lotTypeId = t.lotTypeId - left join LotStatuses s on l.lotStatusId = s.lotStatusId - left join Maps m on l.mapId = m.mapId - where l.recordDelete_timeMillis is null - and l.lotStatusId = ?`; + m.mapName as ${mapNameAlias}, + l.lotName as ${lotNameAlias}, + t.lotType as ${lotTypeAlias}, + s.lotStatus as ${lotStatusAlias} + from Lots l + left join LotTypes t on l.lotTypeId = t.lotTypeId + left join LotStatuses s on l.lotStatusId = s.lotStatusId + left join Maps m on l.mapId = m.mapId + where l.recordDelete_timeMillis is null + and l.lotStatusId = ?`; sqlParameters.push(reportParameters.lotStatusId); break; } case 'lots-byMapId': { sql = `select l.lotId as ${lotIdAlias}, - m.mapName as ${mapNameAlias}, - l.lotName as ${lotNameAlias}, - t.lotType as ${lotTypeAlias}, - s.lotStatus as ${lotStatusAlias} - from Lots l - left join LotTypes t on l.lotTypeId = t.lotTypeId - left join LotStatuses s on l.lotStatusId = s.lotStatusId - left join Maps m on l.mapId = m.mapId - where l.recordDelete_timeMillis is null - and l.mapId = ?`; + m.mapName as ${mapNameAlias}, + l.lotName as ${lotNameAlias}, + t.lotType as ${lotTypeAlias}, + s.lotStatus as ${lotStatusAlias} + from Lots l + left join LotTypes t on l.lotTypeId = t.lotTypeId + left join LotStatuses s on l.lotStatusId = s.lotStatusId + left join Maps m on l.mapId = m.mapId + where l.recordDelete_timeMillis is null + and l.mapId = ?`; sqlParameters.push(reportParameters.mapId); break; } @@ -106,18 +106,18 @@ export async function getReportData(reportName, reportParameters = {}) { } case 'lotOccupancies-current-byMapId': { sql = `select o.lotOccupancyId as ${lotOccupancyIdAlias}, - l.lotName as ${lotNameAlias}, - m.mapName as ${mapNameAlias}, - ot.occupancyType as ${occupancyTypeAlias}, - o.occupancyStartDate as ${occupancyStartDateAlias}, - o.occupancyEndDate as ${occupancyEndDateAlias} - from LotOccupancies o - left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId - left join Lots l on o.lotId = l.lotId - left join Maps m on l.mapId = m.mapId - where o.recordDelete_timeMillis is null - and (o.occupancyEndDate is null or o.occupancyEndDate >= ?) - and l.mapId = ?`; + l.lotName as ${lotNameAlias}, + m.mapName as ${mapNameAlias}, + ot.occupancyType as ${occupancyTypeAlias}, + o.occupancyStartDate as ${occupancyStartDateAlias}, + o.occupancyEndDate as ${occupancyEndDateAlias} + from LotOccupancies o + left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId + left join Lots l on o.lotId = l.lotId + left join Maps m on l.mapId = m.mapId + where o.recordDelete_timeMillis is null + and (o.occupancyEndDate is null or o.occupancyEndDate >= ?) + and l.mapId = ?`; sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId); break; } @@ -143,12 +143,12 @@ export async function getReportData(reportName, reportParameters = {}) { } case 'lotOccupancyTransactions-byTransactionDateString': { sql = `select t.lotOccupancyId, t.transactionIndex, - t.transactionDate, t.transactionTime, - t.transactionAmount, - t.externalReceiptNumber, t.transactionNote - from LotOccupancyTransactions t - where t.recordDelete_timeMillis is null - and t.transactionDate = ?`; + t.transactionDate, t.transactionTime, + t.transactionAmount, + t.externalReceiptNumber, t.transactionNote + from LotOccupancyTransactions t + where t.recordDelete_timeMillis is null + and t.transactionDate = ?`; sqlParameters.push(dateTimeFunctions.dateStringToInteger(reportParameters.transactionDateString)); break; } @@ -164,12 +164,12 @@ export async function getReportData(reportName, reportParameters = {}) { from WorkOrders w left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId left join ( - select m.workOrderId, - count(m.workOrderMilestoneId) as workOrderMilestoneCount, - sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount - from WorkOrderMilestones m - where m.recordDelete_timeMillis is null - group by m.workOrderId + select m.workOrderId, + count(m.workOrderMilestoneId) as workOrderMilestoneCount, + sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount + from WorkOrderMilestones m + where m.recordDelete_timeMillis is null + group by m.workOrderId ) m on w.workOrderId = m.workOrderId where w.recordDelete_timeMillis is null and w.workOrderCloseDate is null`; diff --git a/helpers/lotOccupancyDB/getReportData.ts b/helpers/lotOccupancyDB/getReportData.ts index 9663e15c..bf687218 100644 --- a/helpers/lotOccupancyDB/getReportData.ts +++ b/helpers/lotOccupancyDB/getReportData.ts @@ -48,16 +48,16 @@ export async function getReportData( case 'maps-formatted': { sql = `select mapName as ${mapNameAlias}, - mapDescription as ${mapDescriptionAlias}, - mapAddress1 as ${mapAddress1Alias}, - mapAddress2 as ${mapAddress2Alias}, - mapCity as ${mapCityAlias}, - mapProvince as ${mapProvinceAlias}, - mapPostalCode as ${mapPostalCodeAlias}, - mapPhoneNumber as ${mapPhoneNumberAlias} - from Maps - where recordDelete_timeMillis is null - order by mapName` + mapDescription as ${mapDescriptionAlias}, + mapAddress1 as ${mapAddress1Alias}, + mapAddress2 as ${mapAddress2Alias}, + mapCity as ${mapCityAlias}, + mapProvince as ${mapProvinceAlias}, + mapPostalCode as ${mapPostalCodeAlias}, + mapPhoneNumber as ${mapPhoneNumberAlias} + from Maps + where recordDelete_timeMillis is null + order by mapName` break } @@ -69,16 +69,16 @@ export async function getReportData( case 'lots-byLotTypeId': { sql = `select l.lotId as ${lotIdAlias}, - m.mapName as ${mapNameAlias}, - l.lotName as ${lotNameAlias}, - t.lotType as ${lotTypeAlias}, - s.lotStatus as ${lotStatusAlias} - from Lots l - left join LotTypes t on l.lotTypeId = t.lotTypeId - left join LotStatuses s on l.lotStatusId = s.lotStatusId - left join Maps m on l.mapId = m.mapId - where l.recordDelete_timeMillis is null - and l.lotTypeId = ?` + m.mapName as ${mapNameAlias}, + l.lotName as ${lotNameAlias}, + t.lotType as ${lotTypeAlias}, + s.lotStatus as ${lotStatusAlias} + from Lots l + left join LotTypes t on l.lotTypeId = t.lotTypeId + left join LotStatuses s on l.lotStatusId = s.lotStatusId + left join Maps m on l.mapId = m.mapId + where l.recordDelete_timeMillis is null + and l.lotTypeId = ?` sqlParameters.push(reportParameters.lotTypeId) @@ -87,16 +87,16 @@ export async function getReportData( case 'lots-byLotStatusId': { sql = `select l.lotId as ${lotIdAlias}, - m.mapName as ${mapNameAlias}, - l.lotName as ${lotNameAlias}, - t.lotType as ${lotTypeAlias}, - s.lotStatus as ${lotStatusAlias} - from Lots l - left join LotTypes t on l.lotTypeId = t.lotTypeId - left join LotStatuses s on l.lotStatusId = s.lotStatusId - left join Maps m on l.mapId = m.mapId - where l.recordDelete_timeMillis is null - and l.lotStatusId = ?` + m.mapName as ${mapNameAlias}, + l.lotName as ${lotNameAlias}, + t.lotType as ${lotTypeAlias}, + s.lotStatus as ${lotStatusAlias} + from Lots l + left join LotTypes t on l.lotTypeId = t.lotTypeId + left join LotStatuses s on l.lotStatusId = s.lotStatusId + left join Maps m on l.mapId = m.mapId + where l.recordDelete_timeMillis is null + and l.lotStatusId = ?` sqlParameters.push(reportParameters.lotStatusId) @@ -105,16 +105,16 @@ export async function getReportData( case 'lots-byMapId': { sql = `select l.lotId as ${lotIdAlias}, - m.mapName as ${mapNameAlias}, - l.lotName as ${lotNameAlias}, - t.lotType as ${lotTypeAlias}, - s.lotStatus as ${lotStatusAlias} - from Lots l - left join LotTypes t on l.lotTypeId = t.lotTypeId - left join LotStatuses s on l.lotStatusId = s.lotStatusId - left join Maps m on l.mapId = m.mapId - where l.recordDelete_timeMillis is null - and l.mapId = ?` + m.mapName as ${mapNameAlias}, + l.lotName as ${lotNameAlias}, + t.lotType as ${lotTypeAlias}, + s.lotStatus as ${lotStatusAlias} + from Lots l + left join LotTypes t on l.lotTypeId = t.lotTypeId + left join LotStatuses s on l.lotStatusId = s.lotStatusId + left join Maps m on l.mapId = m.mapId + where l.recordDelete_timeMillis is null + and l.mapId = ?` sqlParameters.push(reportParameters.mapId) @@ -138,18 +138,18 @@ export async function getReportData( case 'lotOccupancies-current-byMapId': { sql = `select o.lotOccupancyId as ${lotOccupancyIdAlias}, - l.lotName as ${lotNameAlias}, - m.mapName as ${mapNameAlias}, - ot.occupancyType as ${occupancyTypeAlias}, - o.occupancyStartDate as ${occupancyStartDateAlias}, - o.occupancyEndDate as ${occupancyEndDateAlias} - from LotOccupancies o - left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId - left join Lots l on o.lotId = l.lotId - left join Maps m on l.mapId = m.mapId - where o.recordDelete_timeMillis is null - and (o.occupancyEndDate is null or o.occupancyEndDate >= ?) - and l.mapId = ?` + l.lotName as ${lotNameAlias}, + m.mapName as ${mapNameAlias}, + ot.occupancyType as ${occupancyTypeAlias}, + o.occupancyStartDate as ${occupancyStartDateAlias}, + o.occupancyEndDate as ${occupancyEndDateAlias} + from LotOccupancies o + left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId + left join Lots l on o.lotId = l.lotId + left join Maps m on l.mapId = m.mapId + where o.recordDelete_timeMillis is null + and (o.occupancyEndDate is null or o.occupancyEndDate >= ?) + and l.mapId = ?` sqlParameters.push( dateTimeFunctions.dateToInteger(new Date()), @@ -186,12 +186,12 @@ export async function getReportData( case 'lotOccupancyTransactions-byTransactionDateString': { sql = `select t.lotOccupancyId, t.transactionIndex, - t.transactionDate, t.transactionTime, - t.transactionAmount, - t.externalReceiptNumber, t.transactionNote - from LotOccupancyTransactions t - where t.recordDelete_timeMillis is null - and t.transactionDate = ?` + t.transactionDate, t.transactionTime, + t.transactionAmount, + t.externalReceiptNumber, t.transactionNote + from LotOccupancyTransactions t + where t.recordDelete_timeMillis is null + and t.transactionDate = ?` sqlParameters.push( dateTimeFunctions.dateStringToInteger( @@ -214,12 +214,12 @@ export async function getReportData( from WorkOrders w left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId left join ( - select m.workOrderId, - count(m.workOrderMilestoneId) as workOrderMilestoneCount, - sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount - from WorkOrderMilestones m - where m.recordDelete_timeMillis is null - group by m.workOrderId + select m.workOrderId, + count(m.workOrderMilestoneId) as workOrderMilestoneCount, + sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount + from WorkOrderMilestones m + where m.recordDelete_timeMillis is null + group by m.workOrderId ) m on w.workOrderId = m.workOrderId where w.recordDelete_timeMillis is null and w.workOrderCloseDate is null` diff --git a/helpers/lotOccupancyDB/moveRecord.ts b/helpers/lotOccupancyDB/moveRecord.ts index 463f6467..5dcaffda 100644 --- a/helpers/lotOccupancyDB/moveRecord.ts +++ b/helpers/lotOccupancyDB/moveRecord.ts @@ -1,4 +1,4 @@ -import sqlite from 'better-sqlite3' +import type sqlite from 'better-sqlite3' import { acquireConnection } from './pool.js' import { clearCacheByTableName } from '../functions.cache.js' diff --git a/helpers/lotOccupancyDB/pool.d.ts b/helpers/lotOccupancyDB/pool.d.ts index 2b34df5d..bc225ff5 100644 --- a/helpers/lotOccupancyDB/pool.d.ts +++ b/helpers/lotOccupancyDB/pool.d.ts @@ -1,2 +1,2 @@ -import { PoolConnection } from 'better-sqlite-pool'; +import { type PoolConnection } from 'better-sqlite-pool'; export declare function acquireConnection(): Promise; diff --git a/helpers/lotOccupancyDB/pool.ts b/helpers/lotOccupancyDB/pool.ts index 9980cc26..1bfa25b4 100644 --- a/helpers/lotOccupancyDB/pool.ts +++ b/helpers/lotOccupancyDB/pool.ts @@ -1,4 +1,4 @@ -import { Pool, PoolConnection } from 'better-sqlite-pool' +import { Pool, type PoolConnection } from 'better-sqlite-pool' import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js' diff --git a/public-typescript/adminFees.js b/public-typescript/adminFees.js index 330df52d..9ae3dfed 100644 --- a/public-typescript/adminFees.js +++ b/public-typescript/adminFees.js @@ -132,7 +132,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); '') + ('
' + (fee.taxPercentage - ? fee.taxPercentage + '%' + ? fee.taxPercentage.toString() + '%' : '$' + fee.taxAmount.toFixed(2)) + '
Tax' + '
') + diff --git a/public-typescript/adminFees.ts b/public-typescript/adminFees.ts index 21476d61..c9db2935 100644 --- a/public-typescript/adminFees.ts +++ b/public-typescript/adminFees.ts @@ -163,7 +163,7 @@ declare const bulmaJS: BulmaJS '') + ('
' + (fee.taxPercentage - ? fee.taxPercentage + '%' + ? fee.taxPercentage.toString() + '%' : '$' + fee.taxAmount!.toFixed(2)) + '
Tax' + '
') + diff --git a/public-typescript/adminOccupancyTypes.js b/public-typescript/adminOccupancyTypes.js index 9c0b9a2f..2c04f653 100644 --- a/public-typescript/adminOccupancyTypes.js +++ b/public-typescript/adminOccupancyTypes.js @@ -432,7 +432,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ('
' + '
' + ('

(All ' + - cityssm.escapeHTML(exports.aliases.occupancy) + + los.escapedAliases.Occupancy + ' Types)

') + '
' + '
') + diff --git a/public-typescript/adminOccupancyTypes.ts b/public-typescript/adminOccupancyTypes.ts index 99b0a199..94b1be77 100644 --- a/public-typescript/adminOccupancyTypes.ts +++ b/public-typescript/adminOccupancyTypes.ts @@ -770,7 +770,7 @@ declare const bulmaJS: BulmaJS ('
' + '
' + ('

(All ' + - cityssm.escapeHTML(exports.aliases.occupancy) + + los.escapedAliases.Occupancy + ' Types)

') + '
' + '
') + diff --git a/public-typescript/lotEdit.js b/public-typescript/lotEdit.js index 7212cae6..0099380c 100644 --- a/public-typescript/lotEdit.js +++ b/public-typescript/lotEdit.js @@ -86,6 +86,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.postJSON(los.urlPrefix + '/lots/doGetLotTypeFields', { lotTypeId: lotTypeIdElement.value }, (responseJSON) => { + var _a; if (responseJSON.lotTypeFields.length === 0) { lotFieldsContainerElement.innerHTML = `

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

@@ -95,13 +96,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); lotFieldsContainerElement.innerHTML = ''; let lotTypeFieldIds = ''; for (const lotTypeField of responseJSON.lotTypeFields) { - lotTypeFieldIds += ',' + lotTypeField.lotTypeFieldId; - const fieldName = 'lotFieldValue_' + lotTypeField.lotTypeFieldId; + lotTypeFieldIds += ',' + lotTypeField.lotTypeFieldId.toString(); + const fieldName = 'lotFieldValue_' + lotTypeField.lotTypeFieldId.toString(); const fieldId = 'lot--' + fieldName; const fieldElement = document.createElement('div'); fieldElement.className = 'field'; fieldElement.innerHTML = ` -
`; +
`; fieldElement.querySelector('label').textContent = lotTypeField.lotTypeField; if (lotTypeField.lotTypeFieldValues === '') { const inputElement = document.createElement('input'); @@ -112,7 +113,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); inputElement.required = lotTypeField.isRequired; inputElement.minLength = lotTypeField.minimumLength; inputElement.maxLength = lotTypeField.maximumLength; - if (lotTypeField.pattern && lotTypeField.pattern !== '') { + if (((_a = lotTypeField.pattern) !== null && _a !== void 0 ? _a : '') !== '') { inputElement.pattern = lotTypeField.pattern; } fieldElement.querySelector('.control').append(inputElement); diff --git a/public-typescript/lotEdit.ts b/public-typescript/lotEdit.ts index b7ff288b..d3cf0707 100644 --- a/public-typescript/lotEdit.ts +++ b/public-typescript/lotEdit.ts @@ -141,16 +141,17 @@ declare const bulmaJS: BulmaJS let lotTypeFieldIds = '' for (const lotTypeField of responseJSON.lotTypeFields) { - lotTypeFieldIds += ',' + lotTypeField.lotTypeFieldId + lotTypeFieldIds += ',' + lotTypeField.lotTypeFieldId.toString() - const fieldName = 'lotFieldValue_' + lotTypeField.lotTypeFieldId + const fieldName = + 'lotFieldValue_' + lotTypeField.lotTypeFieldId.toString() const fieldId = 'lot--' + fieldName const fieldElement = document.createElement('div') fieldElement.className = 'field' fieldElement.innerHTML = ` -
` +
` ;( fieldElement.querySelector('label') as HTMLLabelElement ).textContent = lotTypeField.lotTypeField as string @@ -170,8 +171,8 @@ declare const bulmaJS: BulmaJS inputElement.minLength = lotTypeField.minimumLength as number inputElement.maxLength = lotTypeField.maximumLength as number - if (lotTypeField.pattern && lotTypeField.pattern !== '') { - inputElement.pattern = lotTypeField.pattern + if ((lotTypeField.pattern ?? '') !== '') { + inputElement.pattern = lotTypeField.pattern! } fieldElement.querySelector('.control')!.append(inputElement) @@ -417,10 +418,10 @@ declare const bulmaJS: BulmaJS cityssm.escapeHTML(lotComment.recordCreate_userName ?? '') + '' + '' + - lotComment.lotCommentDateString + + lotComment.lotCommentDateString! + (lotComment.lotCommentTime === 0 ? '' - : ' ' + lotComment.lotCommentTimeString) + + : ' ' + lotComment.lotCommentTimeString!) + '' + '' + cityssm.escapeHTML(lotComment.lotComment ?? '') + diff --git a/public-typescript/lotOccupancySearch.js b/public-typescript/lotOccupancySearch.js index dfecbf2c..2d140ec3 100644 --- a/public-typescript/lotOccupancySearch.js +++ b/public-typescript/lotOccupancySearch.js @@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const limit = Number.parseInt(document.querySelector('#searchFilter--limit').value, 10); const offsetElement = document.querySelector('#searchFilter--offset'); function renderLotOccupancies(responseJSON) { - var _a, _b, _c, _d, _e, _f, _g; + var _a, _b, _c, _d, _e, _f, _g, _h; if (responseJSON.lotOccupancies.length === 0) { searchResultsContainerElement.innerHTML = `

@@ -62,20 +62,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); '' + '') + ('' + - (lotOccupancy.lotName - ? '(No ' + + los.escapedAliases.Lot + + ')' + : '' + cityssm.escapeHTML(lotOccupancy.lotName) + - '' - : '(No ' + - los.escapedAliases.Lot + - ')') + + '') + '
' + ('' + - cityssm.escapeHTML((_e = lotOccupancy.mapName) !== null && _e !== void 0 ? _e : '') + + cityssm.escapeHTML((_f = lotOccupancy.mapName) !== null && _f !== void 0 ? _f : '') + '') + '') + ('' + lotOccupancy.occupancyStartDateString + '') + @@ -101,24 +101,24 @@ Object.defineProperty(exports, "__esModule", { value: true }); ''); } searchResultsContainerElement.innerHTML = ` - - - - - - - - - -
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}Print
`; + + + + + + + + + +
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}Print
`; searchResultsContainerElement .querySelector('table') .append(resultsTbodyElement); searchResultsContainerElement.insertAdjacentHTML('beforeend', los.getSearchResultsPagerHTML(limit, responseJSON.offset, responseJSON.count)); - (_f = searchResultsContainerElement - .querySelector("button[data-page='previous']")) === null || _f === void 0 ? void 0 : _f.addEventListener('click', previousAndGetLotOccupancies); (_g = searchResultsContainerElement - .querySelector("button[data-page='next']")) === null || _g === void 0 ? void 0 : _g.addEventListener('click', nextAndGetLotOccupancies); + .querySelector("button[data-page='previous']")) === null || _g === void 0 ? void 0 : _g.addEventListener('click', previousAndGetLotOccupancies); + (_h = searchResultsContainerElement + .querySelector("button[data-page='next']")) === null || _h === void 0 ? void 0 : _h.addEventListener('click', nextAndGetLotOccupancies); } function getLotOccupancies() { searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Occupancies}...`); @@ -142,7 +142,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); } searchFilterFormElement.addEventListener('submit', (formEvent) => { formEvent.preventDefault(); - resetOffsetAndGetLotOccupancies(); }); getLotOccupancies(); })(); diff --git a/public-typescript/lotOccupancySearch.ts b/public-typescript/lotOccupancySearch.ts index 4b05de8a..4536654a 100644 --- a/public-typescript/lotOccupancySearch.ts +++ b/public-typescript/lotOccupancySearch.ts @@ -96,17 +96,17 @@ declare const cityssm: cityssmGlobal '' + '') + ('
' + - (lotOccupancy.lotName - ? '(No ' + + los.escapedAliases.Lot + + ')' + : '' + - cityssm.escapeHTML(lotOccupancy.lotName) + - '' - : '(No ' + - los.escapedAliases.Lot + - ')') + + cityssm.escapeHTML(lotOccupancy.lotName!) + + '') + '
' + ('' + cityssm.escapeHTML(lotOccupancy.mapName ?? '') + @@ -137,16 +137,16 @@ declare const cityssm: cityssmGlobal } searchResultsContainerElement.innerHTML = ` - - - - - - - - - -
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}Print
` + + + + + + + + + +
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}Print
` searchResultsContainerElement .querySelector('table')! @@ -211,7 +211,6 @@ declare const cityssm: cityssmGlobal searchFilterFormElement.addEventListener('submit', (formEvent) => { formEvent.preventDefault() - resetOffsetAndGetLotOccupancies() }) getLotOccupancies() diff --git a/public-typescript/lotSearch.js b/public-typescript/lotSearch.js index c42434a6..c801c7f9 100644 --- a/public-typescript/lotSearch.js +++ b/public-typescript/lotSearch.js @@ -11,8 +11,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); var _a, _b, _c, _d; if (responseJSON.lots.length === 0) { searchResultsContainerElement.innerHTML = `
-

There are no ${los.escapedAliases.lots} that meet the search criteria.

-
`; +

There are no ${los.escapedAliases.lots} that meet the search criteria.

+ `; return; } const resultsTbodyElement = document.createElement('tbody'); @@ -85,7 +85,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); } searchFilterFormElement.addEventListener('submit', (formEvent) => { formEvent.preventDefault(); - resetOffsetAndGetLots(); }); getLots(); })(); diff --git a/public-typescript/lotSearch.ts b/public-typescript/lotSearch.ts index a9b399c0..9aa83c7f 100644 --- a/public-typescript/lotSearch.ts +++ b/public-typescript/lotSearch.ts @@ -32,8 +32,8 @@ declare const cityssm: cityssmGlobal }): void { if (responseJSON.lots.length === 0) { searchResultsContainerElement.innerHTML = `
-

There are no ${los.escapedAliases.lots} that meet the search criteria.

-
` +

There are no ${los.escapedAliases.lots} that meet the search criteria.

+ ` return } @@ -146,7 +146,6 @@ declare const cityssm: cityssmGlobal searchFilterFormElement.addEventListener('submit', (formEvent) => { formEvent.preventDefault() - resetOffsetAndGetLots() }) getLots() diff --git a/public-typescript/mapSearch.js b/public-typescript/mapSearch.js index 48d70247..3a8822c7 100644 --- a/public-typescript/mapSearch.js +++ b/public-typescript/mapSearch.js @@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const searchFilterElement = document.querySelector('#searchFilter--map'); const searchResultsContainerElement = document.querySelector('#container--searchResults'); function renderResults() { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q; searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Maps}...`); let searchResultCount = 0; const searchResultsTbodyElement = document.createElement('tbody'); @@ -42,28 +42,28 @@ Object.defineProperty(exports, "__esModule", { value: true }); ('') + - ('') + + ('') + '' + '' + diff --git a/public-typescript/mapSearch.ts b/public-typescript/mapSearch.ts index 4346cc34..6673fe2c 100644 --- a/public-typescript/mapSearch.ts +++ b/public-typescript/mapSearch.ts @@ -70,10 +70,10 @@ declare const cityssm: cityssmGlobal ('') + ('') + '\n \n \n \n \n \n ';for(const o of i){const l=document.createElement("tr");l.dataset.lotCommentId=o.lotCommentId.toString(),l.innerHTML="',l.querySelector(".button--edit").addEventListener("click",d),l.querySelector(".button--delete").addEventListener("click",m),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=>{t.success&&(i=t.lotComments,c(),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()}})}),c())})(); \ 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;const s=document.querySelector("#form--lot");s.addEventListener("submit",function(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/"+(n?"doCreateLot":"doUpdateLot"),s,e=>{var o;e.success?(t.clearUnsavedChanges(),n||l?window.location.href=t.getLotURL(e.lotId,!0,!0):bulmaJS.alert({message:t.escapedAliases.Lot+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+t.escapedAliases.Lot,message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const a=s.querySelectorAll("input, select");for(const e of a)e.addEventListener("change",t.setUnsavedChanges);t.initializeUnlockFieldButtons(s),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;e.success?(cityssm.disableNavBlocker(),window.location.href=t.getLotURL()):bulmaJS.alert({title:`Error Deleting ${t.escapedAliases.Lot}`,message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})});const i=document.querySelector("#lot--lotTypeId");if(n){const e=document.querySelector("#container--lotFields");i.addEventListener("change",()=>{""!==i.value?cityssm.postJSON(t.urlPrefix+"/lots/doGetLotTypeFields",{lotTypeId:i.value},o=>{var n;if(0===o.lotTypeFields.length)return void(e.innerHTML=`
\n

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

\n
`);e.innerHTML="";let l="";for(const t of o.lotTypeFields){l+=","+t.lotTypeFieldId.toString();const o="lotFieldValue_"+t.lotTypeFieldId.toString(),s="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=s,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=i.value;i.addEventListener("change",()=>{i.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:()=>{i.value=e}}})})}let r=exports.lotComments;function d(e){const n=Number.parseInt(e.currentTarget.closest("tr").dataset.lotCommentId,10),l=r.find(e=>e.lotCommentId===n);let s,a;function i(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/doUpdateLotComment",s,e=>{var t;e.success?(r=e.lotComments,a(),c()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=e.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 m(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;e.success?(r=e.lotComments,c()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function c(){var e,t;const o=document.querySelector("#container--lotComments");if(0===r.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 \n \n \n \n \n ';for(const o of r){const l=document.createElement("tr");l.dataset.lotCommentId=o.lotCommentId.toString(),l.innerHTML="',l.querySelector(".button--edit").addEventListener("click",d),l.querySelector(".button--delete").addEventListener("click",m),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=>{t.success&&(r=t.lotComments,c(),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()}})}),c())})(); \ No newline at end of file diff --git a/public/javascripts/lotOccupancySearch.min.js b/public/javascripts/lotOccupancySearch.min.js index 35510e9f..5c59a2ff 100644 --- a/public/javascripts/lotOccupancySearch.min.js +++ b/public/javascripts/lotOccupancySearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,e=document.querySelector("#form--searchFilters"),a=document.querySelector("#container--searchResults"),s=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),c=document.querySelector("#searchFilter--offset");function n(e){var c,n,i,l,p,d,u;if(0===e.lotOccupancies.length)return void(a.innerHTML=`
\n

\n There are no ${t.escapedAliases.occupancy} records that meet the search criteria.\n

\n
`);const h=document.createElement("tbody"),y=cityssm.dateToString(new Date);for(const a of e.lotOccupancies){let e="";e=a.occupancyStartDateString<=y&&(""===a.occupancyEndDateString||a.occupancyEndDateString>=y)?`\n \n `:a.occupancyStartDateString>y?`\n \n `:`\n \n `;let s="";for(const t of a.lotOccupancyOccupants)s+=' '+cityssm.escapeHTML(null!==(i=t.occupantName)&&void 0!==i?i:"")+"
";h.insertAdjacentHTML("beforeend",'")}a.innerHTML=`
' + (((_f = map.mapAddress1) !== null && _f !== void 0 ? _f : '') === '' ? '' - : cityssm.escapeHTML(map.mapAddress1) + '
') + - (((_g = map.mapAddress2) !== null && _g !== void 0 ? _g : '') === '' + : cityssm.escapeHTML((_g = map.mapAddress1) !== null && _g !== void 0 ? _g : '') + '
') + + (((_h = map.mapAddress2) !== null && _h !== void 0 ? _h : '') === '' ? '' - : cityssm.escapeHTML(map.mapAddress2) + '
') + + : cityssm.escapeHTML((_j = map.mapAddress2) !== null && _j !== void 0 ? _j : '') + '
') + (map.mapCity || map.mapProvince - ? cityssm.escapeHTML((_h = map.mapCity) !== null && _h !== void 0 ? _h : '') + + ? cityssm.escapeHTML((_k = map.mapCity) !== null && _k !== void 0 ? _k : '') + ', ' + - cityssm.escapeHTML((_j = map.mapProvince) !== null && _j !== void 0 ? _j : '') + + cityssm.escapeHTML((_l = map.mapProvince) !== null && _l !== void 0 ? _l : '') + '
' : '') + - (((_k = map.mapPostalCode) !== null && _k !== void 0 ? _k : '') === '' + (((_m = map.mapPostalCode) !== null && _m !== void 0 ? _m : '') === '' ? '' - : cityssm.escapeHTML(map.mapPostalCode)) + + : cityssm.escapeHTML((_o = map.mapPostalCode) !== null && _o !== void 0 ? _o : '')) + '
' + cityssm.escapeHTML((_l = map.mapPhoneNumber) !== null && _l !== void 0 ? _l : '') + '' + cityssm.escapeHTML((_p = map.mapPhoneNumber) !== null && _p !== void 0 ? _p : '') + '' + (map.mapLatitude && map.mapLongitude ? '' : '') + '' + - (((_m = map.mapSVG) !== null && _m !== void 0 ? _m : '') === '' + (((_q = map.mapSVG) !== null && _q !== void 0 ? _q : '') === '' ? '' : '') + '' + ((map.mapAddress1 ?? '') === '' ? '' - : cityssm.escapeHTML(map.mapAddress1!) + '
') + + : cityssm.escapeHTML(map.mapAddress1 ?? '') + '
') + ((map.mapAddress2 ?? '') === '' ? '' - : cityssm.escapeHTML(map.mapAddress2!) + '
') + + : cityssm.escapeHTML(map.mapAddress2 ?? '') + '
') + (map.mapCity || map.mapProvince ? cityssm.escapeHTML(map.mapCity ?? '') + ', ' + @@ -82,7 +82,7 @@ declare const cityssm: cityssmGlobal : '') + ((map.mapPostalCode ?? '') === '' ? '' - : cityssm.escapeHTML(map.mapPostalCode!)) + + : cityssm.escapeHTML(map.mapPostalCode ?? '')) + '
' + cityssm.escapeHTML(map.mapPhoneNumber ?? '') + '' + diff --git a/public-typescript/workOrderSearch.js b/public-typescript/workOrderSearch.js index babe2e9d..3941fd6b 100644 --- a/public-typescript/workOrderSearch.js +++ b/public-typescript/workOrderSearch.js @@ -159,7 +159,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); } searchFilterFormElement.addEventListener('submit', (formEvent) => { formEvent.preventDefault(); - resetOffsetAndGetWorkOrders(); }); /* const workOrderOpenDateStringElement = document.querySelector("#searchFilter--workOrderOpenDateString") as HTMLInputElement; diff --git a/public-typescript/workOrderSearch.ts b/public-typescript/workOrderSearch.ts index ccc260bb..782dc8fd 100644 --- a/public-typescript/workOrderSearch.ts +++ b/public-typescript/workOrderSearch.ts @@ -231,7 +231,6 @@ declare const cityssm: cityssmGlobal searchFilterFormElement.addEventListener('submit', (formEvent) => { formEvent.preventDefault() - resetOffsetAndGetWorkOrders() }) /* diff --git a/public/javascripts/adminFees.min.js b/public/javascripts/adminFees.min.js index fc7a5b89..b52dcd26 100644 --- a/public/javascripts/adminFees.min.js +++ b/public/javascripts/adminFees.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#container--feeCategories");let s=exports.feeCategories;function o(){var o,d,u,y,f,p,m,g,v,C,S;if(0!==s.length){t.innerHTML="";for(const b of s){const s=document.createElement("section");s.className="panel container--feeCategory",s.dataset.feeCategoryId=b.feeCategoryId.toString(),s.innerHTML='

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

'+(0===b.fees.length?'
':"")+'
'+e.getMoveUpDownButtonFieldHTML("button--moveFeeCategoryUp","button--moveFeeCategoryDown")+"
",0===b.fees.length&&(s.insertAdjacentHTML("beforeend",`
\n
\n

\n There are no fees in the\n "${cityssm.escapeHTML(null!==(d=b.feeCategory)&&void 0!==d?d:"")}"\n category.\n

\n
\n
`),s.querySelector(".button--deleteFeeCategory").addEventListener("click",n));for(const t of b.fees){const o=document.createElement("div");o.className="panel-block is-block container--fee",o.dataset.feeId=t.feeId.toString();const a=null!==(u=t.isRequired)&&void 0!==u&&u||void 0!==t.occupancyTypeId||void 0!==t.lotTypeId;o.innerHTML='

'+cityssm.escapeHTML(null!==(y=t.feeName)&&void 0!==y?y:"")+"
"+cityssm.escapeHTML(null!==(f=t.feeDescription)&&void 0!==f?f:"").replace(/\n/g,"
")+"

"+(a?'

'+(null!==(p=t.isRequired)&&void 0!==p&&p?'Required':"")+(-1===(null!==(m=t.occupancyTypeId)&&void 0!==m?m:-1)?"":' '+cityssm.escapeHTML(null!==(g=t.occupancyType)&&void 0!==g?g:"")+"")+(-1===(null!==(v=t.lotTypeId)&&void 0!==v?v:-1)?"":' '+cityssm.escapeHTML(null!==(C=t.lotType)&&void 0!==C?C:"")+"")+"

":"")+'
'+(t.feeFunction?cityssm.escapeHTML(t.feeFunction)+"
Fee Function":"$"+t.feeAmount.toFixed(2)+"
Fee")+'
'+(t.taxPercentage?t.taxPercentage+"%":"$"+t.taxAmount.toFixed(2))+'
Tax
'+(t.includeQuantity?cityssm.escapeHTML(null!==(S=t.quantityUnit)&&void 0!==S?S:"")+"
Quantity":"")+'
'+e.getMoveUpDownButtonFieldHTML("button--moveFeeUp","button--moveFeeDown")+"
",o.querySelector("a").addEventListener("click",c),o.querySelector(".button--moveFeeUp").addEventListener("click",i),o.querySelector(".button--moveFeeDown").addEventListener("click",i),s.append(o)}s.querySelector(".button--editFeeCategory").addEventListener("click",a),s.querySelector(".button--addFee").addEventListener("click",l),s.querySelector(".button--moveFeeCategoryUp").addEventListener("click",r),s.querySelector(".button--moveFeeCategoryDown").addEventListener("click",r),t.append(s)}}else t.innerHTML='
\n

There are no available fees.

\n
'}function a(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),n=s.find(e=>e.feeCategoryId===a);let r;function l(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFeeCategory",t.currentTarget,e=>{var t;e.success?(s=e.feeCategories,r(),o()):bulmaJS.alert({title:"Error Updating Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-editFeeCategory",{onshow(e){e.querySelector("#feeCategoryEdit--feeCategoryId").value=n.feeCategoryId.toString(),e.querySelector("#feeCategoryEdit--feeCategory").value=n.feeCategory},onshown(e,t){bulmaJS.toggleHtmlClipped(),r=t,e.querySelector("form").addEventListener("submit",l),e.querySelector("#feeCategoryEdit--feeCategory").focus()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function n(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);bulmaJS.confirm({title:"Delete Fee Category?",message:"Are you sure you want to delete this fee category?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee Category",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFeeCategory",{feeCategoryId:a},e=>{var t;e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Updating Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function r(t){const a=t.currentTarget,n=a.closest(".container--feeCategory").dataset.feeCategoryId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===a.dataset.direction?"doMoveFeeCategoryUp":"doMoveFeeCategoryDown"),{feeCategoryId:n,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function l(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);let n;function r(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFee",t.currentTarget,e=>{var t;e.success?(s=e.feeCategories,n(),o()):bulmaJS.alert({title:"Error Adding Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFee",{onshow(t){const o=t.querySelector("#feeAdd--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===a&&(t.selected=!0),o.append(t)}const n=t.querySelector("#feeAdd--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,n.append(t)}const r=t.querySelector("#feeAdd--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,r.append(t)}t.querySelector("#feeAdd--taxPercentage").value=exports.taxPercentageDefault.toString(),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),n=t,e.querySelector("form").addEventListener("submit",r),e.querySelector("#feeAdd--feeName").focus(),e.querySelector("#feeAdd--feeFunction").addEventListener("change",()=>{const t=e.querySelector("#feeAdd--feeAmount"),s=e.querySelector("#feeAdd--feeFunction");""===s.value?(s.closest(".select").classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.closest(".select").classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--taxPercentage").addEventListener("keyup",()=>{const t=e.querySelector("#feeAdd--taxAmount"),s=e.querySelector("#feeAdd--taxPercentage");""===s.value?(s.classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--includeQuantity").addEventListener("change",()=>{e.querySelector("#feeAdd--quantityUnit").disabled=""===e.querySelector("#feeAdd--includeQuantity").value})},onremoved(){bulmaJS.toggleHtmlClipped()}})}function c(t){t.preventDefault();const a=t.currentTarget.closest(".container--fee"),n=Number.parseInt(a.dataset.feeId,10),r=Number.parseInt(a.closest(".container--feeCategory").dataset.feeCategoryId),l=s.find(e=>e.feeCategoryId===r).fees.find(e=>e.feeId===n);let c,i;function d(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFee",t.currentTarget,e=>{var t;e.success?(s=e.feeCategories,c(),o()):bulmaJS.alert({title:"Error Updating Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function u(t){t.preventDefault(),bulmaJS.confirm({title:"Delete Fee?",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFee",{feeId:n},e=>{var t;e.success?(s=e.feeCategories,c(),o()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function y(){const e=i.querySelector("#feeEdit--feeAmount"),t=i.querySelector("#feeEdit--feeFunction");""===t.value?(t.closest(".select").classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.closest(".select").classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)}function f(){const e=i.querySelector("#feeEdit--taxAmount"),t=i.querySelector("#feeEdit--taxPercentage");""===t.value?(t.classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)}function p(){const e=i.querySelector("#feeEdit--includeQuantity").value;i.querySelector("#feeEdit--quantityUnit").disabled=""===e}cityssm.openHtmlModal("adminFees-editFee",{onshow(t){var o,a,n;i=t,t.querySelector("#feeEdit--feeId").value=l.feeId.toString();const c=t.querySelector("#feeEdit--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===r&&(t.selected=!0),c.append(t)}t.querySelector("#feeEdit--feeName").value=l.feeName,t.querySelector("#feeEdit--feeDescription").value=l.feeDescription;const d=t.querySelector("#feeEdit--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,e.occupancyTypeId===l.occupancyTypeId&&(t.selected=!0),d.append(t)}const u=t.querySelector("#feeEdit--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,e.lotTypeId===l.lotTypeId&&(t.selected=!0),u.append(t)}t.querySelector("#feeEdit--feeAmount").value=l.feeAmount?l.feeAmount.toFixed(2):"",t.querySelector("#feeEdit--feeFunction").addEventListener("change",y),y(),t.querySelector("#feeEdit--taxAmount").value=l.taxAmount?l.taxAmount.toFixed(2):"";const m=t.querySelector("#feeEdit--taxPercentage");m.value=l.taxPercentage?l.taxPercentage.toString():"",m.addEventListener("keyup",f),f();const g=t.querySelector("#feeEdit--includeQuantity");null!==(o=l.includeQuantity)&&void 0!==o&&o&&(g.value="1"),g.addEventListener("change",p),t.querySelector("#feeEdit--quantityUnit").value=null!==(a=l.quantityUnit)&&void 0!==a?a:"",p(),null!==(n=l.isRequired)&&void 0!==n&&n&&(t.querySelector("#feeEdit--isRequired").value="1"),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),c=t,e.querySelector("form").addEventListener("submit",d),bulmaJS.init(e),e.querySelector(".button--deleteFee").addEventListener("click",u)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function i(t){const a=t.currentTarget,n=a.closest(".container--fee").dataset.feeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===a.dataset.direction?"doMoveFeeUp":"doMoveFeeDown"),{feeId:n,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}delete exports.feeCategories,document.querySelector("#button--addFeeCategory").addEventListener("click",()=>{let t;function a(a){a.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFeeCategory",a.currentTarget,e=>{var a;e.success?(s=e.feeCategories,t(),o()):bulmaJS.alert({title:"Error Creating Fee Category",message:null!==(a=e.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFeeCategory",{onshown(e,s){bulmaJS.toggleHtmlClipped(),e.querySelector("#feeCategoryAdd--feeCategory").focus(),t=s,e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addFeeCategory").focus()}})}),o()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#container--feeCategories");let s=exports.feeCategories;function o(){var o,d,u,y,f,p,m,g,v,C,S;if(0!==s.length){t.innerHTML="";for(const b of s){const s=document.createElement("section");s.className="panel container--feeCategory",s.dataset.feeCategoryId=b.feeCategoryId.toString(),s.innerHTML='

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

'+(0===b.fees.length?'
':"")+'
'+e.getMoveUpDownButtonFieldHTML("button--moveFeeCategoryUp","button--moveFeeCategoryDown")+"
",0===b.fees.length&&(s.insertAdjacentHTML("beforeend",`
\n
\n

\n There are no fees in the\n "${cityssm.escapeHTML(null!==(d=b.feeCategory)&&void 0!==d?d:"")}"\n category.\n

\n
\n
`),s.querySelector(".button--deleteFeeCategory").addEventListener("click",n));for(const t of b.fees){const o=document.createElement("div");o.className="panel-block is-block container--fee",o.dataset.feeId=t.feeId.toString();const a=null!==(u=t.isRequired)&&void 0!==u&&u||void 0!==t.occupancyTypeId||void 0!==t.lotTypeId;o.innerHTML='

'+cityssm.escapeHTML(null!==(y=t.feeName)&&void 0!==y?y:"")+"
"+cityssm.escapeHTML(null!==(f=t.feeDescription)&&void 0!==f?f:"").replace(/\n/g,"
")+"

"+(a?'

'+(null!==(p=t.isRequired)&&void 0!==p&&p?'Required':"")+(-1===(null!==(m=t.occupancyTypeId)&&void 0!==m?m:-1)?"":' '+cityssm.escapeHTML(null!==(g=t.occupancyType)&&void 0!==g?g:"")+"")+(-1===(null!==(v=t.lotTypeId)&&void 0!==v?v:-1)?"":' '+cityssm.escapeHTML(null!==(C=t.lotType)&&void 0!==C?C:"")+"")+"

":"")+'
'+(t.feeFunction?cityssm.escapeHTML(t.feeFunction)+"
Fee Function":"$"+t.feeAmount.toFixed(2)+"
Fee")+'
'+(t.taxPercentage?t.taxPercentage.toString()+"%":"$"+t.taxAmount.toFixed(2))+'
Tax
'+(t.includeQuantity?cityssm.escapeHTML(null!==(S=t.quantityUnit)&&void 0!==S?S:"")+"
Quantity":"")+'
'+e.getMoveUpDownButtonFieldHTML("button--moveFeeUp","button--moveFeeDown")+"
",o.querySelector("a").addEventListener("click",c),o.querySelector(".button--moveFeeUp").addEventListener("click",i),o.querySelector(".button--moveFeeDown").addEventListener("click",i),s.append(o)}s.querySelector(".button--editFeeCategory").addEventListener("click",a),s.querySelector(".button--addFee").addEventListener("click",l),s.querySelector(".button--moveFeeCategoryUp").addEventListener("click",r),s.querySelector(".button--moveFeeCategoryDown").addEventListener("click",r),t.append(s)}}else t.innerHTML='
\n

There are no available fees.

\n
'}function a(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),n=s.find(e=>e.feeCategoryId===a);let r;function l(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFeeCategory",t.currentTarget,e=>{var t;e.success?(s=e.feeCategories,r(),o()):bulmaJS.alert({title:"Error Updating Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-editFeeCategory",{onshow(e){e.querySelector("#feeCategoryEdit--feeCategoryId").value=n.feeCategoryId.toString(),e.querySelector("#feeCategoryEdit--feeCategory").value=n.feeCategory},onshown(e,t){bulmaJS.toggleHtmlClipped(),r=t,e.querySelector("form").addEventListener("submit",l),e.querySelector("#feeCategoryEdit--feeCategory").focus()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function n(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);bulmaJS.confirm({title:"Delete Fee Category?",message:"Are you sure you want to delete this fee category?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee Category",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFeeCategory",{feeCategoryId:a},e=>{var t;e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Updating Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function r(t){const a=t.currentTarget,n=a.closest(".container--feeCategory").dataset.feeCategoryId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===a.dataset.direction?"doMoveFeeCategoryUp":"doMoveFeeCategoryDown"),{feeCategoryId:n,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee Category",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function l(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);let n;function r(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFee",t.currentTarget,e=>{var t;e.success?(s=e.feeCategories,n(),o()):bulmaJS.alert({title:"Error Adding Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFee",{onshow(t){const o=t.querySelector("#feeAdd--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===a&&(t.selected=!0),o.append(t)}const n=t.querySelector("#feeAdd--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,n.append(t)}const r=t.querySelector("#feeAdd--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,r.append(t)}t.querySelector("#feeAdd--taxPercentage").value=exports.taxPercentageDefault.toString(),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),n=t,e.querySelector("form").addEventListener("submit",r),e.querySelector("#feeAdd--feeName").focus(),e.querySelector("#feeAdd--feeFunction").addEventListener("change",()=>{const t=e.querySelector("#feeAdd--feeAmount"),s=e.querySelector("#feeAdd--feeFunction");""===s.value?(s.closest(".select").classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.closest(".select").classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--taxPercentage").addEventListener("keyup",()=>{const t=e.querySelector("#feeAdd--taxAmount"),s=e.querySelector("#feeAdd--taxPercentage");""===s.value?(s.classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--includeQuantity").addEventListener("change",()=>{e.querySelector("#feeAdd--quantityUnit").disabled=""===e.querySelector("#feeAdd--includeQuantity").value})},onremoved(){bulmaJS.toggleHtmlClipped()}})}function c(t){t.preventDefault();const a=t.currentTarget.closest(".container--fee"),n=Number.parseInt(a.dataset.feeId,10),r=Number.parseInt(a.closest(".container--feeCategory").dataset.feeCategoryId),l=s.find(e=>e.feeCategoryId===r).fees.find(e=>e.feeId===n);let c,i;function d(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFee",t.currentTarget,e=>{var t;e.success?(s=e.feeCategories,c(),o()):bulmaJS.alert({title:"Error Updating Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}function u(t){t.preventDefault(),bulmaJS.confirm({title:"Delete Fee?",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFee",{feeId:n},e=>{var t;e.success?(s=e.feeCategories,c(),o()):bulmaJS.alert({title:"Error Deleting Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}}})}function y(){const e=i.querySelector("#feeEdit--feeAmount"),t=i.querySelector("#feeEdit--feeFunction");""===t.value?(t.closest(".select").classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.closest(".select").classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)}function f(){const e=i.querySelector("#feeEdit--taxAmount"),t=i.querySelector("#feeEdit--taxPercentage");""===t.value?(t.classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)}function p(){const e=i.querySelector("#feeEdit--includeQuantity").value;i.querySelector("#feeEdit--quantityUnit").disabled=""===e}cityssm.openHtmlModal("adminFees-editFee",{onshow(t){var o,a,n;i=t,t.querySelector("#feeEdit--feeId").value=l.feeId.toString();const c=t.querySelector("#feeEdit--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===r&&(t.selected=!0),c.append(t)}t.querySelector("#feeEdit--feeName").value=l.feeName,t.querySelector("#feeEdit--feeDescription").value=l.feeDescription;const d=t.querySelector("#feeEdit--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,e.occupancyTypeId===l.occupancyTypeId&&(t.selected=!0),d.append(t)}const u=t.querySelector("#feeEdit--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,e.lotTypeId===l.lotTypeId&&(t.selected=!0),u.append(t)}t.querySelector("#feeEdit--feeAmount").value=l.feeAmount?l.feeAmount.toFixed(2):"",t.querySelector("#feeEdit--feeFunction").addEventListener("change",y),y(),t.querySelector("#feeEdit--taxAmount").value=l.taxAmount?l.taxAmount.toFixed(2):"";const m=t.querySelector("#feeEdit--taxPercentage");m.value=l.taxPercentage?l.taxPercentage.toString():"",m.addEventListener("keyup",f),f();const g=t.querySelector("#feeEdit--includeQuantity");null!==(o=l.includeQuantity)&&void 0!==o&&o&&(g.value="1"),g.addEventListener("change",p),t.querySelector("#feeEdit--quantityUnit").value=null!==(a=l.quantityUnit)&&void 0!==a?a:"",p(),null!==(n=l.isRequired)&&void 0!==n&&n&&(t.querySelector("#feeEdit--isRequired").value="1"),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),c=t,e.querySelector("form").addEventListener("submit",d),bulmaJS.init(e),e.querySelector(".button--deleteFee").addEventListener("click",u)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function i(t){const a=t.currentTarget,n=a.closest(".container--fee").dataset.feeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===a.dataset.direction?"doMoveFeeUp":"doMoveFeeDown"),{feeId:n,moveToEnd:t.shiftKey?"1":"0"},e=>{var t;e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}delete exports.feeCategories,document.querySelector("#button--addFeeCategory").addEventListener("click",()=>{let t;function a(a){a.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFeeCategory",a.currentTarget,e=>{var a;e.success?(s=e.feeCategories,t(),o()):bulmaJS.alert({title:"Error Creating Fee Category",message:null!==(a=e.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFeeCategory",{onshown(e,s){bulmaJS.toggleHtmlClipped(),e.querySelector("#feeCategoryAdd--feeCategory").focus(),t=s,e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addFeeCategory").focus()}})}),o()})(); \ No newline at end of file diff --git a/public/javascripts/adminOccupancyTypes.min.js b/public/javascripts/adminOccupancyTypes.min.js index b53eb5aa..b538f376 100644 --- a/public/javascripts/adminOccupancyTypes.min.js +++ b/public/javascripts/adminOccupancyTypes.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,c=document.querySelector("#container--occupancyTypes"),t=document.querySelector("#container--occupancyTypePrints");let n=exports.occupancyTypes;delete exports.occupancyTypes;let a=exports.allOccupancyTypeFields;delete exports.allOccupancyTypeFields;const s=new Set;function i(e){const c=e.currentTarget,t=c.closest(".container--occupancyType"),n=Number.parseInt(t.dataset.occupancyTypeId,10);s.has(n)?s.delete(n):s.add(n),c.innerHTML=s.has(n)?'':'';const a=t.querySelectorAll(".panel-block");for(const e of a)e.classList.toggle("is-hidden")}function l(c){var t;c.success?(n=c.occupancyTypes,a=c.allOccupancyTypeFields,S()):bulmaJS.alert({title:"Error Updating "+e.escapedAliases.Occupancy+" Type",message:null!==(t=c.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function o(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);bulmaJS.confirm({title:`Delete ${e.escapedAliases.Occupancy} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.occupancy} type?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Occupancy} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyType",{occupancyTypeId:t},l)}}})}function p(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),a=n.find(e=>t===e.occupancyTypeId);let s;function i(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyType",c.currentTarget,e=>{l(e),e.success&&s()})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyType",{onshow(c){e.populateAliases(c),c.querySelector("#occupancyTypeEdit--occupancyTypeId").value=t.toString(),c.querySelector("#occupancyTypeEdit--occupancyType").value=a.occupancyType},onshown(e,c){s=c,e.querySelector("#occupancyTypeEdit--occupancyType").focus(),e.querySelector("form").addEventListener("submit",i),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function d(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);let n;function a(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypeField",c.currentTarget,e=>{s.add(t),l(e),e.success&&(n(),r(t,e.occupancyTypeFieldId))})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypeField",{onshow(c){e.populateAliases(c),t&&(c.querySelector("#occupancyTypeFieldAdd--occupancyTypeId").value=t.toString())},onshown(e,c){n=c,e.querySelector("#occupancyTypeFieldAdd--occupancyTypeField").focus(),e.querySelector("form").addEventListener("submit",a),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function u(c){const t=c.currentTarget,n=c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypeUp":"doMoveOccupancyTypeDown"),{occupancyTypeId:n,moveToEnd:c.shiftKey?"1":"0"},l)}function r(c,t){let s;c&&(s=n.find(e=>e.occupancyTypeId===c));const i=(s?s.occupancyTypeFields:a).find(e=>e.occupancyTypeFieldId===t);let o,p,d,u,r;function y(){p.min=o.value}function v(){""===u.value?(o.disabled=!1,p.disabled=!1,d.disabled=!1):(o.disabled=!0,p.disabled=!0,d.disabled=!0)}function T(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyTypeField",c.currentTarget,e=>{l(e),e.success&&r()})}function m(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyTypeField",{occupancyTypeFieldId:t},e=>{l(e),e.success&&r()})}function f(){bulmaJS.confirm({title:"Delete Field",message:"Are you sure you want to delete this field? Note that historical records that make use of this field will not be affected.",contextualColorName:"warning",okButton:{text:"Yes, Delete Field",callbackFunction:m}})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField",{onshow:c=>{e.populateAliases(c),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldId").value=i.occupancyTypeFieldId.toString(),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeField").value=i.occupancyTypeField,c.querySelector("#occupancyTypeFieldEdit--isRequired").value=i.isRequired?"1":"0",(o=c.querySelector("#occupancyTypeFieldEdit--minimumLength")).value=i.minimumLength.toString(),(p=c.querySelector("#occupancyTypeFieldEdit--maximumLength")).value=i.maximumLength.toString(),(d=c.querySelector("#occupancyTypeFieldEdit--pattern")).value=i.pattern,(u=c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues")).value=i.occupancyTypeFieldValues,v()},onshown:(e,c)=>{r=c,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),e.querySelector("form").addEventListener("submit",T),o.addEventListener("keyup",y),y(),u.addEventListener("keyup",v),e.querySelector("#button--deleteOccupancyTypeField").addEventListener("click",f)},onremoved:()=>{bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})}function y(e){e.preventDefault();const c=Number.parseInt(e.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId,10);r(Number.parseInt(e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),c)}function v(c){const t=c.currentTarget,n=c.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypeFieldUp":"doMoveOccupancyTypeFieldDown"),{occupancyTypeFieldId:n,moveToEnd:c.shiftKey?"1":"0"},l)}function T(c,t,n){var a;if(0===n.length)c.insertAdjacentHTML("beforeend",'

There are no additional fields.

');else for(const i of n){const n=document.createElement("div");n.className="panel-block is-block container--occupancyTypeField",t&&!s.has(t)&&n.classList.add("is-hidden"),n.dataset.occupancyTypeFieldId=i.occupancyTypeFieldId.toString(),n.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeFieldUp","button--moveOccupancyTypeFieldDown")+"
",n.querySelector(".button--editOccupancyTypeField").addEventListener("click",y),n.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click",v),n.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click",v),c.append(n)}}function m(c){const t=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;let n;function a(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypePrint",c.currentTarget,e=>{e.success&&n(),l(e)})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypePrint",{onshow(c){e.populateAliases(c),c.querySelector("#occupancyTypePrintAdd--occupancyTypeId").value=t;const n=c.querySelector("#occupancyTypePrintAdd--printEJS");for(const[e,c]of Object.entries(exports.occupancyTypePrintTitles)){const t=document.createElement("option");t.value=e,t.textContent=c,n.append(t)}},onshown(e,c){var t;n=c,null===(t=e.querySelector("form"))||void 0===t||t.addEventListener("submit",a)}})}function f(c){const t=c.currentTarget,n=t.closest(".container--occupancyTypePrint").dataset.printEJS,a=t.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypePrintUp":"doMoveOccupancyTypePrintDown"),{occupancyTypeId:a,printEJS:n,moveToEnd:c.shiftKey?"1":"0"},l)}function b(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS,n=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;bulmaJS.confirm({title:"Delete Print",message:"Are you sure you want to remove this print option?",contextualColorName:"warning",okButton:{text:"Yes, Remove Print",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyTypePrint",{occupancyTypeId:n,printEJS:t},l)}}})}function g(c,t,n){if(0===n.length)c.insertAdjacentHTML("beforeend",'
\n
\n

There are no prints associated with this record.

\n
\n
');else for(const t of n){const n=document.createElement("div");n.className="panel-block is-block container--occupancyTypePrint",n.dataset.printEJS=t;const a="*"===t?"(All Available Prints)":exports.occupancyTypePrintTitles[t];let s="fa-star";t.startsWith("pdf/")?s="fa-file-pdf":t.startsWith("screen/")&&(s="fa-file"),n.innerHTML='
'+cityssm.escapeHTML(a||t)+'
'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypePrintUp","button--moveOccupancyTypePrintDown")+'
',n.querySelector(".button--moveOccupancyTypePrintUp").addEventListener("click",f),n.querySelector(".button--moveOccupancyTypePrintDown").addEventListener("click",f),n.querySelector(".button--deleteOccupancyTypePrint").addEventListener("click",b),c.append(n)}}function S(){if(c.innerHTML='

(All '+cityssm.escapeHTML(exports.aliases.occupancy)+' Types)

',t.innerHTML="",T(c.querySelector("#container--allOccupancyTypeFields"),void 0,a),c.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),0===n.length)return c.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.occupancy} types.

\n
`),void t.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.occupancy} types.

\n
`);for(const a of n){{const t=document.createElement("div");t.className="panel container--occupancyType",t.dataset.occupancyTypeId=a.occupancyTypeId.toString(),t.innerHTML='

'+cityssm.escapeHTML(a.occupancyType)+'

'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeUp","button--moveOccupancyTypeDown")+"
",T(t,a.occupancyTypeId,a.occupancyTypeFields),t.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click",i),t.querySelector(".button--deleteOccupancyType").addEventListener("click",o),t.querySelector(".button--editOccupancyType").addEventListener("click",p),t.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),t.querySelector(".button--moveOccupancyTypeUp").addEventListener("click",u),t.querySelector(".button--moveOccupancyTypeDown").addEventListener("click",u),c.append(t)}{const e=document.createElement("div");e.className="panel container--occupancyTypePrintList",e.dataset.occupancyTypeId=a.occupancyTypeId.toString(),e.innerHTML='

'+cityssm.escapeHTML(a.occupancyType)+'

',g(e,a.occupancyTypeId,a.occupancyTypePrints),e.querySelector(".button--addOccupancyTypePrint").addEventListener("click",m),t.append(e)}}}document.querySelector("#button--addOccupancyType").addEventListener("click",()=>{let c;function t(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyType",t.currentTarget,t=>{var a;t.success?(c(),n=t.occupancyTypes,S()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Occupancy} Type`,message:null!==(a=t.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType",{onshow:c=>{e.populateAliases(c)},onshown:(e,n)=>{c=n,e.querySelector("#occupancyTypeAdd--occupancyType").focus(),e.querySelector("form").addEventListener("submit",t),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),S()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,c=document.querySelector("#container--occupancyTypes"),t=document.querySelector("#container--occupancyTypePrints");let n=exports.occupancyTypes;delete exports.occupancyTypes;let a=exports.allOccupancyTypeFields;delete exports.allOccupancyTypeFields;const i=new Set;function s(e){const c=e.currentTarget,t=c.closest(".container--occupancyType"),n=Number.parseInt(t.dataset.occupancyTypeId,10);i.has(n)?i.delete(n):i.add(n),c.innerHTML=i.has(n)?'':'';const a=t.querySelectorAll(".panel-block");for(const e of a)e.classList.toggle("is-hidden")}function l(c){var t;c.success?(n=c.occupancyTypes,a=c.allOccupancyTypeFields,S()):bulmaJS.alert({title:"Error Updating "+e.escapedAliases.Occupancy+" Type",message:null!==(t=c.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})}function o(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);bulmaJS.confirm({title:`Delete ${e.escapedAliases.Occupancy} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.occupancy} type?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Occupancy} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyType",{occupancyTypeId:t},l)}}})}function p(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),a=n.find(e=>t===e.occupancyTypeId);let i;function s(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyType",c.currentTarget,e=>{l(e),e.success&&i()})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyType",{onshow(c){e.populateAliases(c),c.querySelector("#occupancyTypeEdit--occupancyTypeId").value=t.toString(),c.querySelector("#occupancyTypeEdit--occupancyType").value=a.occupancyType},onshown(e,c){i=c,e.querySelector("#occupancyTypeEdit--occupancyType").focus(),e.querySelector("form").addEventListener("submit",s),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function d(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);let n;function a(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypeField",c.currentTarget,e=>{i.add(t),l(e),e.success&&(n(),r(t,e.occupancyTypeFieldId))})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypeField",{onshow(c){e.populateAliases(c),t&&(c.querySelector("#occupancyTypeFieldAdd--occupancyTypeId").value=t.toString())},onshown(e,c){n=c,e.querySelector("#occupancyTypeFieldAdd--occupancyTypeField").focus(),e.querySelector("form").addEventListener("submit",a),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function u(c){const t=c.currentTarget,n=c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypeUp":"doMoveOccupancyTypeDown"),{occupancyTypeId:n,moveToEnd:c.shiftKey?"1":"0"},l)}function r(c,t){let i;c&&(i=n.find(e=>e.occupancyTypeId===c));const s=(i?i.occupancyTypeFields:a).find(e=>e.occupancyTypeFieldId===t);let o,p,d,u,r;function y(){p.min=o.value}function v(){""===u.value?(o.disabled=!1,p.disabled=!1,d.disabled=!1):(o.disabled=!0,p.disabled=!0,d.disabled=!0)}function T(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyTypeField",c.currentTarget,e=>{l(e),e.success&&r()})}function m(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyTypeField",{occupancyTypeFieldId:t},e=>{l(e),e.success&&r()})}function f(){bulmaJS.confirm({title:"Delete Field",message:"Are you sure you want to delete this field? Note that historical records that make use of this field will not be affected.",contextualColorName:"warning",okButton:{text:"Yes, Delete Field",callbackFunction:m}})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField",{onshow:c=>{e.populateAliases(c),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldId").value=s.occupancyTypeFieldId.toString(),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeField").value=s.occupancyTypeField,c.querySelector("#occupancyTypeFieldEdit--isRequired").value=s.isRequired?"1":"0",(o=c.querySelector("#occupancyTypeFieldEdit--minimumLength")).value=s.minimumLength.toString(),(p=c.querySelector("#occupancyTypeFieldEdit--maximumLength")).value=s.maximumLength.toString(),(d=c.querySelector("#occupancyTypeFieldEdit--pattern")).value=s.pattern,(u=c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues")).value=s.occupancyTypeFieldValues,v()},onshown:(e,c)=>{r=c,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),e.querySelector("form").addEventListener("submit",T),o.addEventListener("keyup",y),y(),u.addEventListener("keyup",v),e.querySelector("#button--deleteOccupancyTypeField").addEventListener("click",f)},onremoved:()=>{bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})}function y(e){e.preventDefault();const c=Number.parseInt(e.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId,10);r(Number.parseInt(e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),c)}function v(c){const t=c.currentTarget,n=c.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypeFieldUp":"doMoveOccupancyTypeFieldDown"),{occupancyTypeFieldId:n,moveToEnd:c.shiftKey?"1":"0"},l)}function T(c,t,n){var a;if(0===n.length)c.insertAdjacentHTML("beforeend",'

There are no additional fields.

');else for(const s of n){const n=document.createElement("div");n.className="panel-block is-block container--occupancyTypeField",t&&!i.has(t)&&n.classList.add("is-hidden"),n.dataset.occupancyTypeFieldId=s.occupancyTypeFieldId.toString(),n.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeFieldUp","button--moveOccupancyTypeFieldDown")+"
",n.querySelector(".button--editOccupancyTypeField").addEventListener("click",y),n.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click",v),n.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click",v),c.append(n)}}function m(c){const t=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;let n;function a(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypePrint",c.currentTarget,e=>{e.success&&n(),l(e)})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypePrint",{onshow(c){e.populateAliases(c),c.querySelector("#occupancyTypePrintAdd--occupancyTypeId").value=t;const n=c.querySelector("#occupancyTypePrintAdd--printEJS");for(const[e,c]of Object.entries(exports.occupancyTypePrintTitles)){const t=document.createElement("option");t.value=e,t.textContent=c,n.append(t)}},onshown(e,c){var t;n=c,null===(t=e.querySelector("form"))||void 0===t||t.addEventListener("submit",a)}})}function f(c){const t=c.currentTarget,n=t.closest(".container--occupancyTypePrint").dataset.printEJS,a=t.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypePrintUp":"doMoveOccupancyTypePrintDown"),{occupancyTypeId:a,printEJS:n,moveToEnd:c.shiftKey?"1":"0"},l)}function b(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS,n=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;bulmaJS.confirm({title:"Delete Print",message:"Are you sure you want to remove this print option?",contextualColorName:"warning",okButton:{text:"Yes, Remove Print",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyTypePrint",{occupancyTypeId:n,printEJS:t},l)}}})}function g(c,t,n){if(0===n.length)c.insertAdjacentHTML("beforeend",'
\n
\n

There are no prints associated with this record.

\n
\n
');else for(const t of n){const n=document.createElement("div");n.className="panel-block is-block container--occupancyTypePrint",n.dataset.printEJS=t;const a="*"===t?"(All Available Prints)":exports.occupancyTypePrintTitles[t];let i="fa-star";t.startsWith("pdf/")?i="fa-file-pdf":t.startsWith("screen/")&&(i="fa-file"),n.innerHTML='
'+cityssm.escapeHTML(a||t)+'
'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypePrintUp","button--moveOccupancyTypePrintDown")+'
',n.querySelector(".button--moveOccupancyTypePrintUp").addEventListener("click",f),n.querySelector(".button--moveOccupancyTypePrintDown").addEventListener("click",f),n.querySelector(".button--deleteOccupancyTypePrint").addEventListener("click",b),c.append(n)}}function S(){if(c.innerHTML='

(All '+e.escapedAliases.Occupancy+' Types)

',t.innerHTML="",T(c.querySelector("#container--allOccupancyTypeFields"),void 0,a),c.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),0===n.length)return c.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.occupancy} types.

\n
`),void t.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.occupancy} types.

\n
`);for(const a of n){{const t=document.createElement("div");t.className="panel container--occupancyType",t.dataset.occupancyTypeId=a.occupancyTypeId.toString(),t.innerHTML='

'+cityssm.escapeHTML(a.occupancyType)+'

'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeUp","button--moveOccupancyTypeDown")+"
",T(t,a.occupancyTypeId,a.occupancyTypeFields),t.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click",s),t.querySelector(".button--deleteOccupancyType").addEventListener("click",o),t.querySelector(".button--editOccupancyType").addEventListener("click",p),t.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),t.querySelector(".button--moveOccupancyTypeUp").addEventListener("click",u),t.querySelector(".button--moveOccupancyTypeDown").addEventListener("click",u),c.append(t)}{const e=document.createElement("div");e.className="panel container--occupancyTypePrintList",e.dataset.occupancyTypeId=a.occupancyTypeId.toString(),e.innerHTML='

'+cityssm.escapeHTML(a.occupancyType)+'

',g(e,a.occupancyTypeId,a.occupancyTypePrints),e.querySelector(".button--addOccupancyTypePrint").addEventListener("click",m),t.append(e)}}}document.querySelector("#button--addOccupancyType").addEventListener("click",()=>{let c;function t(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyType",t.currentTarget,t=>{var a;t.success?(c(),n=t.occupancyTypes,S()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Occupancy} Type`,message:null!==(a=t.errorMessage)&&void 0!==a?a:"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType",{onshow:c=>{e.populateAliases(c)},onshown:(e,n)=>{c=n,e.querySelector("#occupancyTypeAdd--occupancyType").focus(),e.querySelector("form").addEventListener("submit",t),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),S()})(); \ No newline at end of file diff --git a/public/javascripts/lotEdit.min.js b/public/javascripts/lotEdit.min.js index 57f73f3a..a8bb895b 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;const s=document.querySelector("#form--lot");s.addEventListener("submit",function(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/"+(n?"doCreateLot":"doUpdateLot"),s,e=>{var o;e.success?(t.clearUnsavedChanges(),n||l?window.location.href=t.getLotURL(e.lotId,!0,!0):bulmaJS.alert({message:t.escapedAliases.Lot+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+t.escapedAliases.Lot,message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})});const a=s.querySelectorAll("input, select");for(const e of a)e.addEventListener("change",t.setUnsavedChanges);t.initializeUnlockFieldButtons(s),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;e.success?(cityssm.disableNavBlocker(),window.location.href=t.getLotURL()):bulmaJS.alert({title:`Error Deleting ${t.escapedAliases.Lot}`,message:null!==(o=e.errorMessage)&&void 0!==o?o:"",contextualColorName:"danger"})})}}})});const r=document.querySelector("#lot--lotTypeId");if(n){const e=document.querySelector("#container--lotFields");r.addEventListener("change",()=>{""!==r.value?cityssm.postJSON(t.urlPrefix+"/lots/doGetLotTypeFields",{lotTypeId:r.value},o=>{if(0===o.lotTypeFields.length)return void(e.innerHTML=`
\n

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

\n
`);e.innerHTML="";let n="";for(const t of o.lotTypeFields){n+=","+t.lotTypeFieldId;const o="lotFieldValue_"+t.lotTypeFieldId,l="lot--"+o,s=document.createElement("div");if(s.className="field",s.innerHTML=`\n
`,s.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,t.pattern&&""!==t.pattern&&(e.pattern=t.pattern),s.querySelector(".control").append(e)}else{s.querySelector(".control").innerHTML=`
\n \n
`;const e=s.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(s)}e.insertAdjacentHTML("beforeend",``)}):e.innerHTML=`
\n

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

\n
`})}else{const e=r.value;r.addEventListener("change",()=>{r.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:()=>{r.value=e}}})})}let i=exports.lotComments;function d(e){const n=Number.parseInt(e.currentTarget.closest("tr").dataset.lotCommentId,10),l=i.find(e=>e.lotCommentId===n);let s,a;function r(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/lots/doUpdateLotComment",s,e=>{var t;e.success?(i=e.lotComments,a(),c()):bulmaJS.alert({title:"Error Updating Comment",message:null!==(t=e.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",r),a=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function m(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;e.success?(i=e.lotComments,c()):bulmaJS.alert({title:"Error Removing Comment",message:null!==(t=e.errorMessage)&&void 0!==t?t:"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function c(){var e,t;const o=document.querySelector("#container--lotComments");if(0===i.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='
CommentorComment DateCommentOptions
"+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:"")+'
CommentorComment DateCommentOptions
"+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:"")+'
'+e+''+cityssm.escapeHTML(a.occupancyType)+""+(a.lotName?''+cityssm.escapeHTML(a.lotName)+"":'(No '+t.escapedAliases.Lot+")")+'
'+cityssm.escapeHTML(null!==(p=a.mapName)&&void 0!==p?p:"")+"
"+a.occupancyStartDateString+""+(a.occupancyEndDate?a.occupancyEndDateString:'(No End Date)')+""+s+""+(a.printEJS?'':"")+"
\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}Print
`,a.querySelector("table").append(h),a.insertAdjacentHTML("beforeend",t.getSearchResultsPagerHTML(s,e.offset,e.count)),null===(d=a.querySelector("button[data-page='previous']"))||void 0===d||d.addEventListener("click",o),null===(u=a.querySelector("button[data-page='next']"))||void 0===u||u.addEventListener("click",r)}function i(){a.innerHTML=t.getLoadingParagraphHTML(`Loading ${t.escapedAliases.Occupancies}...`),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,n)}function l(){c.value="0",i()}function o(){c.value=Math.max(Number.parseInt(c.value,10)-s,0).toString(),i()}function r(){c.value=(Number.parseInt(c.value,10)+s).toString(),i()}const p=e.querySelectorAll("input, select");for(const t of p)t.addEventListener("change",l);e.addEventListener("submit",t=>{t.preventDefault(),l()}),i()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,e=document.querySelector("#form--searchFilters"),a=document.querySelector("#container--searchResults"),s=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),c=document.querySelector("#searchFilter--offset");function n(e){var c,n,i,l,p,d,u,h;if(0===e.lotOccupancies.length)return void(a.innerHTML=`
\n

\n There are no ${t.escapedAliases.occupancy} records that meet the search criteria.\n

\n
`);const y=document.createElement("tbody"),f=cityssm.dateToString(new Date);for(const a of e.lotOccupancies){let e="";e=a.occupancyStartDateString<=f&&(""===a.occupancyEndDateString||a.occupancyEndDateString>=f)?`\n \n `:a.occupancyStartDateString>f?`\n \n `:`\n \n `;let s="";for(const t of a.lotOccupancyOccupants)s+=' '+cityssm.escapeHTML(null!==(i=t.occupantName)&&void 0!==i?i:"")+"
";y.insertAdjacentHTML("beforeend",'")}a.innerHTML=`
'+e+''+cityssm.escapeHTML(a.occupancyType)+""+(-1===(null!==(l=a.lotId)&&void 0!==l?l:-1)?'(No '+t.escapedAliases.Lot+")":''+cityssm.escapeHTML(a.lotName)+"")+'
'+cityssm.escapeHTML(null!==(d=a.mapName)&&void 0!==d?d:"")+"
"+a.occupancyStartDateString+""+(a.occupancyEndDate?a.occupancyEndDateString:'(No End Date)')+""+s+""+(a.printEJS?'':"")+"
\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}Print
`,a.querySelector("table").append(y),a.insertAdjacentHTML("beforeend",t.getSearchResultsPagerHTML(s,e.offset,e.count)),null===(u=a.querySelector("button[data-page='previous']"))||void 0===u||u.addEventListener("click",o),null===(h=a.querySelector("button[data-page='next']"))||void 0===h||h.addEventListener("click",r)}function i(){a.innerHTML=t.getLoadingParagraphHTML(`Loading ${t.escapedAliases.Occupancies}...`),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,n)}function l(){c.value="0",i()}function o(){c.value=Math.max(Number.parseInt(c.value,10)-s,0).toString(),i()}function r(){c.value=(Number.parseInt(c.value,10)+s).toString(),i()}const p=e.querySelectorAll("input, select");for(const t of p)t.addEventListener("change",l);e.addEventListener("submit",t=>{t.preventDefault()}),i()})(); \ No newline at end of file diff --git a/public/javascripts/lotSearch.min.js b/public/javascripts/lotSearch.min.js index aa20488a..e8f3a772 100644 --- a/public/javascripts/lotSearch.min.js +++ b/public/javascripts/lotSearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),n=document.querySelector("#searchFilter--offset");function r(t){var n,r,o,c;if(0===t.lots.length)return void(s.innerHTML=`
\n

There are no ${e.escapedAliases.lots} that meet the search criteria.

\n
`);const d=document.createElement("tbody");for(const s of t.lots)d.insertAdjacentHTML("beforeend",'");s.innerHTML=`
'+cityssm.escapeHTML(null!==(n=s.lotName)&&void 0!==n?n:"")+''+(s.mapName?cityssm.escapeHTML(s.mapName):'(No Name)')+""+cityssm.escapeHTML(null!==(r=s.lotType)&&void 0!==r?r:"")+""+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus):'(No Status)')+"
"+(s.lotOccupancyCount>0?'Currently Occupied':"")+"
\n \n \n \n \n \n \n
${e.escapedAliases.Lot}${e.escapedAliases.Map}${e.escapedAliases.Lot} TypeStatus
`,s.insertAdjacentHTML("beforeend",e.getSearchResultsPagerHTML(a,t.offset,t.count)),s.querySelector("table").append(d),null===(o=s.querySelector("button[data-page='previous']"))||void 0===o||o.addEventListener("click",l),null===(c=s.querySelector("button[data-page='next']"))||void 0===c||c.addEventListener("click",i)}function o(){s.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Lots}...`),cityssm.postJSON(e.urlPrefix+"/lots/doSearchLots",t,r)}function c(){n.value="0",o()}function l(){n.value=Math.max(Number.parseInt(n.value,10)-a,0).toString(),o()}function i(){n.value=(Number.parseInt(n.value,10)+a).toString(),o()}const d=t.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",c);t.addEventListener("submit",e=>{e.preventDefault(),c()}),o()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),n=document.querySelector("#searchFilter--offset");function r(t){var n,r,o,c;if(0===t.lots.length)return void(s.innerHTML=`
\n

There are no ${e.escapedAliases.lots} that meet the search criteria.

\n
`);const d=document.createElement("tbody");for(const s of t.lots)d.insertAdjacentHTML("beforeend",'");s.innerHTML=`
'+cityssm.escapeHTML(null!==(n=s.lotName)&&void 0!==n?n:"")+''+(s.mapName?cityssm.escapeHTML(s.mapName):'(No Name)')+""+cityssm.escapeHTML(null!==(r=s.lotType)&&void 0!==r?r:"")+""+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus):'(No Status)')+"
"+(s.lotOccupancyCount>0?'Currently Occupied':"")+"
\n \n \n \n \n \n \n
${e.escapedAliases.Lot}${e.escapedAliases.Map}${e.escapedAliases.Lot} TypeStatus
`,s.insertAdjacentHTML("beforeend",e.getSearchResultsPagerHTML(a,t.offset,t.count)),s.querySelector("table").append(d),null===(o=s.querySelector("button[data-page='previous']"))||void 0===o||o.addEventListener("click",l),null===(c=s.querySelector("button[data-page='next']"))||void 0===c||c.addEventListener("click",i)}function o(){s.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Lots}...`),cityssm.postJSON(e.urlPrefix+"/lots/doSearchLots",t,r)}function c(){n.value="0",o()}function l(){n.value=Math.max(Number.parseInt(n.value,10)-a,0).toString(),o()}function i(){n.value=(Number.parseInt(n.value,10)+a).toString(),o()}const d=t.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",c);t.addEventListener("submit",e=>{e.preventDefault()}),o()})(); \ No newline at end of file diff --git a/public/javascripts/mapSearch.min.js b/public/javascripts/mapSearch.min.js index 064e2ce8..72cac76f 100644 --- a/public/javascripts/mapSearch.min.js +++ b/public/javascripts/mapSearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,a=exports.maps,s=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function i(){var i,r,d,n,o,l,c,p,m,h,u,L;t.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Maps}...`);let v=0;const f=document.createElement("tbody"),b=s.value.trim().toLowerCase().split(" ");for(const s of a){const a=`${null!==(i=s.mapName)&&void 0!==i?i:""} ${null!==(r=s.mapDescription)&&void 0!==r?r:""} ${null!==(d=s.mapAddress1)&&void 0!==d?d:""} ${null!==(n=s.mapAddress2)&&void 0!==n?n:""}`.toLowerCase();let t=!0;for(const e of b)if(!a.includes(e)){t=!1;break}t&&(v+=1,f.insertAdjacentHTML("beforeend",'"+``+""))}if(t.innerHTML="",0===v)t.innerHTML=`
\n

There are no ${e.escapedAliases.maps} that meet the search criteria.

\n
`;else{const a=document.createElement("table");a.className="table is-fullwidth is-striped is-hoverable has-sticky-header",a.innerHTML=`\n \n \n \n \n \n \n `,a.append(f),t.append(a)}}s.addEventListener("keyup",i),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),i()}),i()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,a=exports.maps,s=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function i(){var i,d,n,r,o,l,c,p,m,h,u,v,L,f,b;t.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Maps}...`);let y=0;const H=document.createElement("tbody"),M=s.value.trim().toLowerCase().split(" ");for(const s of a){const a=`${null!==(i=s.mapName)&&void 0!==i?i:""} ${null!==(d=s.mapDescription)&&void 0!==d?d:""} ${null!==(n=s.mapAddress1)&&void 0!==n?n:""} ${null!==(r=s.mapAddress2)&&void 0!==r?r:""}`.toLowerCase();let t=!0;for(const e of M)if(!a.includes(e)){t=!1;break}t&&(y+=1,H.insertAdjacentHTML("beforeend",'"+``+""))}if(t.innerHTML="",0===y)t.innerHTML=`
\n

There are no ${e.escapedAliases.maps} that meet the search criteria.

\n
`;else{const a=document.createElement("table");a.className="table is-fullwidth is-striped is-hoverable has-sticky-header",a.innerHTML=`\n \n \n \n \n \n \n `,a.append(H),t.append(a)}}s.addEventListener("keyup",i),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),i()}),i()})(); \ No newline at end of file diff --git a/public/javascripts/workOrderSearch.min.js b/public/javascripts/workOrderSearch.min.js index 8fc16a46..7d341370 100644 --- a/public/javascripts/workOrderSearch.min.js +++ b/public/javascripts/workOrderSearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=exports.workOrderPrints,s=document.querySelector("#form--searchFilters");e.initializeDatePickers(s);const a=document.querySelector("#container--searchResults"),r=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),o=document.querySelector("#searchFilter--offset");function l(s){var o,l,i,n,p,u,f,h,m,O;if(0===s.workOrders.length)return void(a.innerHTML='

There are no work orders that meet the search criteria.

');const k=document.createElement("tbody");for(const a of s.workOrders){let s="";for(const t of a.workOrderLots)s+=' '+cityssm.escapeHTML(""===(null!==(l=t.lotName)&&void 0!==l?l:"")?"(No "+e.escapedAliases.Lot+" Name)":t.lotName)+"
";for(const t of a.workOrderLotOccupancies)for(const a of t.lotOccupancyOccupants)s+=' '+cityssm.escapeHTML(""===(null!==(p=a.occupantName)&&void 0!==p?p:"")?"(No Name)":a.occupantName)+"
";k.insertAdjacentHTML("beforeend",'"+(t.length>0?'':"")+"")}a.innerHTML='
'+cityssm.escapeHTML(""===s.mapName?"(No Name)":s.mapName)+'
'+cityssm.escapeHTML(null!==(o=s.mapDescription)&&void 0!==o?o:"")+"
"+(""===(null!==(l=s.mapAddress1)&&void 0!==l?l:"")?"":cityssm.escapeHTML(s.mapAddress1)+"
")+(""===(null!==(c=s.mapAddress2)&&void 0!==c?c:"")?"":cityssm.escapeHTML(s.mapAddress2)+"
")+(s.mapCity||s.mapProvince?cityssm.escapeHTML(null!==(p=s.mapCity)&&void 0!==p?p:"")+", "+cityssm.escapeHTML(null!==(m=s.mapProvince)&&void 0!==m?m:"")+"
":"")+(""===(null!==(h=s.mapPostalCode)&&void 0!==h?h:"")?"":cityssm.escapeHTML(s.mapPostalCode))+"
"+cityssm.escapeHTML(null!==(u=s.mapPhoneNumber)&&void 0!==u?u:"")+''+(s.mapLatitude&&s.mapLongitude?'':"")+''+(""===(null!==(L=s.mapSVG)&&void 0!==L?L:"")?"":'')+"\n ${s.lotCount}\n
${e.escapedAliases.Map}AddressPhone NumberCoordinatesImage${e.escapedAliases.Lot} Count
'+cityssm.escapeHTML(""===s.mapName?"(No Name)":s.mapName)+'
'+cityssm.escapeHTML(null!==(o=s.mapDescription)&&void 0!==o?o:"")+"
"+(""===(null!==(l=s.mapAddress1)&&void 0!==l?l:"")?"":cityssm.escapeHTML(null!==(c=s.mapAddress1)&&void 0!==c?c:"")+"
")+(""===(null!==(p=s.mapAddress2)&&void 0!==p?p:"")?"":cityssm.escapeHTML(null!==(m=s.mapAddress2)&&void 0!==m?m:"")+"
")+(s.mapCity||s.mapProvince?cityssm.escapeHTML(null!==(h=s.mapCity)&&void 0!==h?h:"")+", "+cityssm.escapeHTML(null!==(u=s.mapProvince)&&void 0!==u?u:"")+"
":"")+(""===(null!==(v=s.mapPostalCode)&&void 0!==v?v:"")?"":cityssm.escapeHTML(null!==(L=s.mapPostalCode)&&void 0!==L?L:""))+"
"+cityssm.escapeHTML(null!==(f=s.mapPhoneNumber)&&void 0!==f?f:"")+''+(s.mapLatitude&&s.mapLongitude?'':"")+''+(""===(null!==(b=s.mapSVG)&&void 0!==b?b:"")?"":'')+"\n ${s.lotCount}\n
${e.escapedAliases.Map}AddressPhone NumberCoordinatesImage${e.escapedAliases.Lot} Count
'+(a.workOrderNumber.trim()?cityssm.escapeHTML(null!==(u=a.workOrderNumber)&&void 0!==u?u:""):"(No Number)")+""+cityssm.escapeHTML(null!==(f=a.workOrderType)&&void 0!==f?f:"")+'
'+cityssm.escapeHTML(null!==(h=a.workOrderDescription)&&void 0!==h?h:"")+'
'+s+' '+a.workOrderOpenDateString+'
'+(a.workOrderCloseDate?a.workOrderCloseDateString:'(No '+e.escapedAliases.WorkOrderCloseDate+")")+"
"+(0===a.workOrderMilestoneCount?"-":a.workOrderMilestoneCompletionCount+" / "+a.workOrderMilestoneCount)+"
'+(t.length>0?'':"")+"
Work Order NumberDescriptionRelatedDateProgress
",a.insertAdjacentHTML("beforeend",e.getSearchResultsPagerHTML(r,s.offset,s.count)),a.querySelector("table").append(k),null===(m=a.querySelector("button[data-page='previous']"))||void 0===m||m.addEventListener("click",c),null===(O=a.querySelector("button[data-page='next']"))||void 0===O||O.addEventListener("click",d)}function i(){a.innerHTML=e.getLoadingParagraphHTML("Loading Work Orders..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doSearchWorkOrders",s,l)}function n(){o.value="0",i()}function c(){o.value=Math.max(Number.parseInt(o.value,10)-r,0).toString(),i()}function d(){o.value=(Number.parseInt(o.value,10)+r).toString(),i()}const p=s.querySelectorAll("input, select");for(const e of p)e.addEventListener("change",n);s.addEventListener("submit",e=>{e.preventDefault(),n()}),i()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=exports.workOrderPrints,s=document.querySelector("#form--searchFilters");e.initializeDatePickers(s);const a=document.querySelector("#container--searchResults"),r=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),o=document.querySelector("#searchFilter--offset");function l(s){var o,l,i,n,p,u,f,h,m,O;if(0===s.workOrders.length)return void(a.innerHTML='

There are no work orders that meet the search criteria.

');const k=document.createElement("tbody");for(const a of s.workOrders){let s="";for(const t of a.workOrderLots)s+=' '+cityssm.escapeHTML(""===(null!==(l=t.lotName)&&void 0!==l?l:"")?"(No "+e.escapedAliases.Lot+" Name)":t.lotName)+"
";for(const t of a.workOrderLotOccupancies)for(const a of t.lotOccupancyOccupants)s+=' '+cityssm.escapeHTML(""===(null!==(p=a.occupantName)&&void 0!==p?p:"")?"(No Name)":a.occupantName)+"
";k.insertAdjacentHTML("beforeend",'"+(t.length>0?'':"")+"")}a.innerHTML='
'+(a.workOrderNumber.trim()?cityssm.escapeHTML(null!==(u=a.workOrderNumber)&&void 0!==u?u:""):"(No Number)")+""+cityssm.escapeHTML(null!==(f=a.workOrderType)&&void 0!==f?f:"")+'
'+cityssm.escapeHTML(null!==(h=a.workOrderDescription)&&void 0!==h?h:"")+'
'+s+' '+a.workOrderOpenDateString+'
'+(a.workOrderCloseDate?a.workOrderCloseDateString:'(No '+e.escapedAliases.WorkOrderCloseDate+")")+"
"+(0===a.workOrderMilestoneCount?"-":a.workOrderMilestoneCompletionCount+" / "+a.workOrderMilestoneCount)+"
'+(t.length>0?'':"")+"
Work Order NumberDescriptionRelatedDateProgress
",a.insertAdjacentHTML("beforeend",e.getSearchResultsPagerHTML(r,s.offset,s.count)),a.querySelector("table").append(k),null===(m=a.querySelector("button[data-page='previous']"))||void 0===m||m.addEventListener("click",c),null===(O=a.querySelector("button[data-page='next']"))||void 0===O||O.addEventListener("click",d)}function i(){a.innerHTML=e.getLoadingParagraphHTML("Loading Work Orders..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doSearchWorkOrders",s,l)}function n(){o.value="0",i()}function c(){o.value=Math.max(Number.parseInt(o.value,10)-r,0).toString(),i()}function d(){o.value=(Number.parseInt(o.value,10)+r).toString(),i()}const p=s.querySelectorAll("input, select");for(const e of p)e.addEventListener("change",n);s.addEventListener("submit",e=>{e.preventDefault()}),i()})(); \ No newline at end of file