deepsource-autofix-76c6eb20
Dan Gowans 2023-01-24 14:45:58 -05:00
parent 6a6081635d
commit c88e4912f8
36 changed files with 259 additions and 259 deletions

View File

@ -8,12 +8,12 @@ export async function getLotStatusSummary(filters) {
sqlParameters.push(filters.mapId); sqlParameters.push(filters.mapId);
} }
const lotStatuses = database const lotStatuses = database
.prepare('select s.lotStatusId, s.lotStatus, count(l.lotId) as lotCount' + .prepare(`select s.lotStatusId, s.lotStatus, count(l.lotId) as lotCount
' from Lots l' + from Lots l
' left join LotStatuses s on l.lotStatusId = s.lotStatusId' + left join LotStatuses s on l.lotStatusId = s.lotStatusId
sqlWhereClause + ${sqlWhereClause}
' group by s.lotStatusId, s.lotStatus, s.orderNumber' + group by s.lotStatusId, s.lotStatus, s.orderNumber
' order by s.orderNumber') order by s.orderNumber`)
.all(sqlParameters); .all(sqlParameters);
database.release(); database.release();
return lotStatuses; return lotStatuses;

View File

@ -25,12 +25,12 @@ export async function getLotStatusSummary(
const lotStatuses: LotStatusSummary[] = database const lotStatuses: LotStatusSummary[] = database
.prepare( .prepare(
'select s.lotStatusId, s.lotStatus, count(l.lotId) as lotCount' + `select s.lotStatusId, s.lotStatus, count(l.lotId) as lotCount
' from Lots l' + from Lots l
' left join LotStatuses s on l.lotStatusId = s.lotStatusId' + left join LotStatuses s on l.lotStatusId = s.lotStatusId
sqlWhereClause + ${sqlWhereClause}
' group by s.lotStatusId, s.lotStatus, s.orderNumber' + group by s.lotStatusId, s.lotStatus, s.orderNumber
' order by s.orderNumber' order by s.orderNumber`
) )
.all(sqlParameters) .all(sqlParameters)

View File

@ -8,12 +8,12 @@ export async function getLotTypeSummary(filters) {
sqlParameters.push(filters.mapId); sqlParameters.push(filters.mapId);
} }
const lotTypes = database const lotTypes = database
.prepare('select t.lotTypeId, t.lotType, count(l.lotId) as lotCount' + .prepare(`select t.lotTypeId, t.lotType, count(l.lotId) as lotCount
' from Lots l' + from Lots l
' left join LotTypes t on l.lotTypeId = t.lotTypeId' + left join LotTypes t on l.lotTypeId = t.lotTypeId
sqlWhereClause + ${sqlWhereClause}
' group by t.lotTypeId, t.lotType, t.orderNumber' + group by t.lotTypeId, t.lotType, t.orderNumber
' order by t.orderNumber') order by t.orderNumber`)
.all(sqlParameters); .all(sqlParameters);
database.release(); database.release();
return lotTypes; return lotTypes;

View File

@ -25,12 +25,12 @@ export async function getLotTypeSummary(
const lotTypes: LotTypeSummary[] = database const lotTypes: LotTypeSummary[] = database
.prepare( .prepare(
'select t.lotTypeId, t.lotType, count(l.lotId) as lotCount' + `select t.lotTypeId, t.lotType, count(l.lotId) as lotCount
' from Lots l' + from Lots l
' left join LotTypes t on l.lotTypeId = t.lotTypeId' + left join LotTypes t on l.lotTypeId = t.lotTypeId
sqlWhereClause + ${sqlWhereClause}
' group by t.lotTypeId, t.lotType, t.orderNumber' + group by t.lotTypeId, t.lotType, t.orderNumber
' order by t.orderNumber' order by t.orderNumber`
) )
.all(sqlParameters) .all(sqlParameters)

View File

@ -51,8 +51,8 @@ export async function getLots(filters, options, connectedDatabase) {
left join ( left join (
select lotId, count(lotOccupancyId) as lotOccupancyCount from LotOccupancies select lotId, count(lotOccupancyId) as lotOccupancyCount from LotOccupancies
where recordDelete_timeMillis is null where recordDelete_timeMillis is null
and occupancyStartDate <= ${currentDate} and occupancyStartDate <= ${currentDate.toString()}
and (occupancyEndDate is null or occupancyEndDate >= ${currentDate}) and (occupancyEndDate is null or occupancyEndDate >= ${currentDate.toString()})
group by lotId group by lotId
) o on l.lotId = o.lotId ) o on l.lotId = o.lotId
${sqlWhereClause}`) ${sqlWhereClause}`)
@ -82,7 +82,9 @@ export async function getLots(filters, options, connectedDatabase) {
') o on l.lotId = o.lotId') + ') o on l.lotId = o.lotId') +
sqlWhereClause + sqlWhereClause +
' order by userFn_lotNameSortName(l.lotName), l.lotId' + ' 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); .all(sqlParameters);
if (options.limit === -1) { if (options.limit === -1) {
count = lots.length; count = lots.length;

View File

@ -97,8 +97,8 @@ export async function getLots(
left join ( left join (
select lotId, count(lotOccupancyId) as lotOccupancyCount from LotOccupancies select lotId, count(lotOccupancyId) as lotOccupancyCount from LotOccupancies
where recordDelete_timeMillis is null where recordDelete_timeMillis is null
and occupancyStartDate <= ${currentDate} and occupancyStartDate <= ${currentDate.toString()}
and (occupancyEndDate is null or occupancyEndDate >= ${currentDate}) and (occupancyEndDate is null or occupancyEndDate >= ${currentDate.toString()})
group by lotId group by lotId
) o on l.lotId = o.lotId ) o on l.lotId = o.lotId
${sqlWhereClause}` ${sqlWhereClause}`
@ -137,7 +137,9 @@ export async function getLots(
') o on l.lotId = o.lotId') + ') o on l.lotId = o.lotId') +
sqlWhereClause + sqlWhereClause +
' order by userFn_lotNameSortName(l.lotName), l.lotId' + ' 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) .all(sqlParameters)

View File

@ -9,9 +9,9 @@ export async function getNextWorkOrderNumber(connectedDatabase) {
return regex.test(workOrderNumber) ? 1 : 0; return regex.test(workOrderNumber) ? 1 : 0;
}); });
const workOrderNumberRecord = database const workOrderNumberRecord = database
.prepare('select workOrderNumber from WorkOrders' + .prepare(`select workOrderNumber from WorkOrders
' where userFn_matchesWorkOrderNumberSyntax(workOrderNumber) = 1' + where userFn_matchesWorkOrderNumberSyntax(workOrderNumber) = 1
" order by cast(substr(workOrderNumber, instr(workOrderNumber, '-') + 1) as integer) desc") order by cast(substr(workOrderNumber, instr(workOrderNumber, '-') + 1) as integer) desc`)
.get(); .get();
if (connectedDatabase === undefined) { if (connectedDatabase === undefined) {
database.release(); database.release();

View File

@ -24,9 +24,9 @@ export async function getNextWorkOrderNumber(
const workOrderNumberRecord = database const workOrderNumberRecord = database
.prepare( .prepare(
'select workOrderNumber from WorkOrders' + `select workOrderNumber from WorkOrders
' where userFn_matchesWorkOrderNumberSyntax(workOrderNumber) = 1' + where userFn_matchesWorkOrderNumberSyntax(workOrderNumber) = 1
" order by cast(substr(workOrderNumber, instr(workOrderNumber, '-') + 1) as integer) desc" order by cast(substr(workOrderNumber, instr(workOrderNumber, '-') + 1) as integer) desc`
) )
.get() .get()

View File

@ -3,7 +3,7 @@ import { updateRecordOrderNumber } from './updateRecordOrderNumber.js';
export async function getOccupancyTypeFields(occupancyTypeId, connectedDatabase) { export async function getOccupancyTypeFields(occupancyTypeId, connectedDatabase) {
const database = connectedDatabase ?? (await acquireConnection()); const database = connectedDatabase ?? (await acquireConnection());
const sqlParameters = []; const sqlParameters = [];
if (occupancyTypeId) { if ((occupancyTypeId ?? -1) !== -1) {
sqlParameters.push(occupancyTypeId); sqlParameters.push(occupancyTypeId);
} }
const occupancyTypeFields = database const occupancyTypeFields = database
@ -13,9 +13,9 @@ export async function getOccupancyTypeFields(occupancyTypeId, connectedDatabase)
' orderNumber' + ' orderNumber' +
' from OccupancyTypeFields' + ' from OccupancyTypeFields' +
' where recordDelete_timeMillis is null' + ' where recordDelete_timeMillis is null' +
(occupancyTypeId ((occupancyTypeId ?? -1) === -1
? ' and occupancyTypeId = ?' ? ' and occupancyTypeId is null'
: ' and occupancyTypeId is null') + : ' and occupancyTypeId = ?') +
' order by orderNumber, occupancyTypeField') ' order by orderNumber, occupancyTypeField')
.all(sqlParameters); .all(sqlParameters);
let expectedOrderNumber = 0; let expectedOrderNumber = 0;

View File

@ -12,7 +12,7 @@ export async function getOccupancyTypeFields(
const sqlParameters: unknown[] = [] const sqlParameters: unknown[] = []
if (occupancyTypeId) { if ((occupancyTypeId ?? -1) !== -1) {
sqlParameters.push(occupancyTypeId) sqlParameters.push(occupancyTypeId)
} }
@ -24,9 +24,9 @@ export async function getOccupancyTypeFields(
' orderNumber' + ' orderNumber' +
' from OccupancyTypeFields' + ' from OccupancyTypeFields' +
' where recordDelete_timeMillis is null' + ' where recordDelete_timeMillis is null' +
(occupancyTypeId ((occupancyTypeId ?? -1) === -1
? ' and occupancyTypeId = ?' ? ' and occupancyTypeId is null'
: ' and occupancyTypeId is null') + : ' and occupancyTypeId = ?') +
' order by orderNumber, occupancyTypeField' ' order by orderNumber, occupancyTypeField'
) )
.all(sqlParameters) .all(sqlParameters)

View File

@ -31,16 +31,16 @@ export async function getReportData(reportName, reportParameters = {}) {
} }
case 'maps-formatted': { case 'maps-formatted': {
sql = `select mapName as ${mapNameAlias}, sql = `select mapName as ${mapNameAlias},
mapDescription as ${mapDescriptionAlias}, mapDescription as ${mapDescriptionAlias},
mapAddress1 as ${mapAddress1Alias}, mapAddress1 as ${mapAddress1Alias},
mapAddress2 as ${mapAddress2Alias}, mapAddress2 as ${mapAddress2Alias},
mapCity as ${mapCityAlias}, mapCity as ${mapCityAlias},
mapProvince as ${mapProvinceAlias}, mapProvince as ${mapProvinceAlias},
mapPostalCode as ${mapPostalCodeAlias}, mapPostalCode as ${mapPostalCodeAlias},
mapPhoneNumber as ${mapPhoneNumberAlias} mapPhoneNumber as ${mapPhoneNumberAlias}
from Maps from Maps
where recordDelete_timeMillis is null where recordDelete_timeMillis is null
order by mapName`; order by mapName`;
break; break;
} }
case 'lots-all': { case 'lots-all': {
@ -49,46 +49,46 @@ export async function getReportData(reportName, reportParameters = {}) {
} }
case 'lots-byLotTypeId': { case 'lots-byLotTypeId': {
sql = `select l.lotId as ${lotIdAlias}, sql = `select l.lotId as ${lotIdAlias},
m.mapName as ${mapNameAlias}, m.mapName as ${mapNameAlias},
l.lotName as ${lotNameAlias}, l.lotName as ${lotNameAlias},
t.lotType as ${lotTypeAlias}, t.lotType as ${lotTypeAlias},
s.lotStatus as ${lotStatusAlias} s.lotStatus as ${lotStatusAlias}
from Lots l from Lots l
left join LotTypes t on l.lotTypeId = t.lotTypeId left join LotTypes t on l.lotTypeId = t.lotTypeId
left join LotStatuses s on l.lotStatusId = s.lotStatusId left join LotStatuses s on l.lotStatusId = s.lotStatusId
left join Maps m on l.mapId = m.mapId left join Maps m on l.mapId = m.mapId
where l.recordDelete_timeMillis is null where l.recordDelete_timeMillis is null
and l.lotTypeId = ?`; and l.lotTypeId = ?`;
sqlParameters.push(reportParameters.lotTypeId); sqlParameters.push(reportParameters.lotTypeId);
break; break;
} }
case 'lots-byLotStatusId': { case 'lots-byLotStatusId': {
sql = `select l.lotId as ${lotIdAlias}, sql = `select l.lotId as ${lotIdAlias},
m.mapName as ${mapNameAlias}, m.mapName as ${mapNameAlias},
l.lotName as ${lotNameAlias}, l.lotName as ${lotNameAlias},
t.lotType as ${lotTypeAlias}, t.lotType as ${lotTypeAlias},
s.lotStatus as ${lotStatusAlias} s.lotStatus as ${lotStatusAlias}
from Lots l from Lots l
left join LotTypes t on l.lotTypeId = t.lotTypeId left join LotTypes t on l.lotTypeId = t.lotTypeId
left join LotStatuses s on l.lotStatusId = s.lotStatusId left join LotStatuses s on l.lotStatusId = s.lotStatusId
left join Maps m on l.mapId = m.mapId left join Maps m on l.mapId = m.mapId
where l.recordDelete_timeMillis is null where l.recordDelete_timeMillis is null
and l.lotStatusId = ?`; and l.lotStatusId = ?`;
sqlParameters.push(reportParameters.lotStatusId); sqlParameters.push(reportParameters.lotStatusId);
break; break;
} }
case 'lots-byMapId': { case 'lots-byMapId': {
sql = `select l.lotId as ${lotIdAlias}, sql = `select l.lotId as ${lotIdAlias},
m.mapName as ${mapNameAlias}, m.mapName as ${mapNameAlias},
l.lotName as ${lotNameAlias}, l.lotName as ${lotNameAlias},
t.lotType as ${lotTypeAlias}, t.lotType as ${lotTypeAlias},
s.lotStatus as ${lotStatusAlias} s.lotStatus as ${lotStatusAlias}
from Lots l from Lots l
left join LotTypes t on l.lotTypeId = t.lotTypeId left join LotTypes t on l.lotTypeId = t.lotTypeId
left join LotStatuses s on l.lotStatusId = s.lotStatusId left join LotStatuses s on l.lotStatusId = s.lotStatusId
left join Maps m on l.mapId = m.mapId left join Maps m on l.mapId = m.mapId
where l.recordDelete_timeMillis is null where l.recordDelete_timeMillis is null
and l.mapId = ?`; and l.mapId = ?`;
sqlParameters.push(reportParameters.mapId); sqlParameters.push(reportParameters.mapId);
break; break;
} }
@ -106,18 +106,18 @@ export async function getReportData(reportName, reportParameters = {}) {
} }
case 'lotOccupancies-current-byMapId': { case 'lotOccupancies-current-byMapId': {
sql = `select o.lotOccupancyId as ${lotOccupancyIdAlias}, sql = `select o.lotOccupancyId as ${lotOccupancyIdAlias},
l.lotName as ${lotNameAlias}, l.lotName as ${lotNameAlias},
m.mapName as ${mapNameAlias}, m.mapName as ${mapNameAlias},
ot.occupancyType as ${occupancyTypeAlias}, ot.occupancyType as ${occupancyTypeAlias},
o.occupancyStartDate as ${occupancyStartDateAlias}, o.occupancyStartDate as ${occupancyStartDateAlias},
o.occupancyEndDate as ${occupancyEndDateAlias} o.occupancyEndDate as ${occupancyEndDateAlias}
from LotOccupancies o from LotOccupancies o
left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId
left join Lots l on o.lotId = l.lotId left join Lots l on o.lotId = l.lotId
left join Maps m on l.mapId = m.mapId left join Maps m on l.mapId = m.mapId
where o.recordDelete_timeMillis is null where o.recordDelete_timeMillis is null
and (o.occupancyEndDate is null or o.occupancyEndDate >= ?) and (o.occupancyEndDate is null or o.occupancyEndDate >= ?)
and l.mapId = ?`; and l.mapId = ?`;
sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId); sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId);
break; break;
} }
@ -143,12 +143,12 @@ export async function getReportData(reportName, reportParameters = {}) {
} }
case 'lotOccupancyTransactions-byTransactionDateString': { case 'lotOccupancyTransactions-byTransactionDateString': {
sql = `select t.lotOccupancyId, t.transactionIndex, sql = `select t.lotOccupancyId, t.transactionIndex,
t.transactionDate, t.transactionTime, t.transactionDate, t.transactionTime,
t.transactionAmount, t.transactionAmount,
t.externalReceiptNumber, t.transactionNote t.externalReceiptNumber, t.transactionNote
from LotOccupancyTransactions t from LotOccupancyTransactions t
where t.recordDelete_timeMillis is null where t.recordDelete_timeMillis is null
and t.transactionDate = ?`; and t.transactionDate = ?`;
sqlParameters.push(dateTimeFunctions.dateStringToInteger(reportParameters.transactionDateString)); sqlParameters.push(dateTimeFunctions.dateStringToInteger(reportParameters.transactionDateString));
break; break;
} }
@ -164,12 +164,12 @@ export async function getReportData(reportName, reportParameters = {}) {
from WorkOrders w from WorkOrders w
left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId
left join ( left join (
select m.workOrderId, select m.workOrderId,
count(m.workOrderMilestoneId) as workOrderMilestoneCount, count(m.workOrderMilestoneId) as workOrderMilestoneCount,
sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount
from WorkOrderMilestones m from WorkOrderMilestones m
where m.recordDelete_timeMillis is null where m.recordDelete_timeMillis is null
group by m.workOrderId group by m.workOrderId
) m on w.workOrderId = m.workOrderId ) m on w.workOrderId = m.workOrderId
where w.recordDelete_timeMillis is null where w.recordDelete_timeMillis is null
and w.workOrderCloseDate is null`; and w.workOrderCloseDate is null`;

View File

@ -48,16 +48,16 @@ export async function getReportData(
case 'maps-formatted': { case 'maps-formatted': {
sql = `select mapName as ${mapNameAlias}, sql = `select mapName as ${mapNameAlias},
mapDescription as ${mapDescriptionAlias}, mapDescription as ${mapDescriptionAlias},
mapAddress1 as ${mapAddress1Alias}, mapAddress1 as ${mapAddress1Alias},
mapAddress2 as ${mapAddress2Alias}, mapAddress2 as ${mapAddress2Alias},
mapCity as ${mapCityAlias}, mapCity as ${mapCityAlias},
mapProvince as ${mapProvinceAlias}, mapProvince as ${mapProvinceAlias},
mapPostalCode as ${mapPostalCodeAlias}, mapPostalCode as ${mapPostalCodeAlias},
mapPhoneNumber as ${mapPhoneNumberAlias} mapPhoneNumber as ${mapPhoneNumberAlias}
from Maps from Maps
where recordDelete_timeMillis is null where recordDelete_timeMillis is null
order by mapName` order by mapName`
break break
} }
@ -69,16 +69,16 @@ export async function getReportData(
case 'lots-byLotTypeId': { case 'lots-byLotTypeId': {
sql = `select l.lotId as ${lotIdAlias}, sql = `select l.lotId as ${lotIdAlias},
m.mapName as ${mapNameAlias}, m.mapName as ${mapNameAlias},
l.lotName as ${lotNameAlias}, l.lotName as ${lotNameAlias},
t.lotType as ${lotTypeAlias}, t.lotType as ${lotTypeAlias},
s.lotStatus as ${lotStatusAlias} s.lotStatus as ${lotStatusAlias}
from Lots l from Lots l
left join LotTypes t on l.lotTypeId = t.lotTypeId left join LotTypes t on l.lotTypeId = t.lotTypeId
left join LotStatuses s on l.lotStatusId = s.lotStatusId left join LotStatuses s on l.lotStatusId = s.lotStatusId
left join Maps m on l.mapId = m.mapId left join Maps m on l.mapId = m.mapId
where l.recordDelete_timeMillis is null where l.recordDelete_timeMillis is null
and l.lotTypeId = ?` and l.lotTypeId = ?`
sqlParameters.push(reportParameters.lotTypeId) sqlParameters.push(reportParameters.lotTypeId)
@ -87,16 +87,16 @@ export async function getReportData(
case 'lots-byLotStatusId': { case 'lots-byLotStatusId': {
sql = `select l.lotId as ${lotIdAlias}, sql = `select l.lotId as ${lotIdAlias},
m.mapName as ${mapNameAlias}, m.mapName as ${mapNameAlias},
l.lotName as ${lotNameAlias}, l.lotName as ${lotNameAlias},
t.lotType as ${lotTypeAlias}, t.lotType as ${lotTypeAlias},
s.lotStatus as ${lotStatusAlias} s.lotStatus as ${lotStatusAlias}
from Lots l from Lots l
left join LotTypes t on l.lotTypeId = t.lotTypeId left join LotTypes t on l.lotTypeId = t.lotTypeId
left join LotStatuses s on l.lotStatusId = s.lotStatusId left join LotStatuses s on l.lotStatusId = s.lotStatusId
left join Maps m on l.mapId = m.mapId left join Maps m on l.mapId = m.mapId
where l.recordDelete_timeMillis is null where l.recordDelete_timeMillis is null
and l.lotStatusId = ?` and l.lotStatusId = ?`
sqlParameters.push(reportParameters.lotStatusId) sqlParameters.push(reportParameters.lotStatusId)
@ -105,16 +105,16 @@ export async function getReportData(
case 'lots-byMapId': { case 'lots-byMapId': {
sql = `select l.lotId as ${lotIdAlias}, sql = `select l.lotId as ${lotIdAlias},
m.mapName as ${mapNameAlias}, m.mapName as ${mapNameAlias},
l.lotName as ${lotNameAlias}, l.lotName as ${lotNameAlias},
t.lotType as ${lotTypeAlias}, t.lotType as ${lotTypeAlias},
s.lotStatus as ${lotStatusAlias} s.lotStatus as ${lotStatusAlias}
from Lots l from Lots l
left join LotTypes t on l.lotTypeId = t.lotTypeId left join LotTypes t on l.lotTypeId = t.lotTypeId
left join LotStatuses s on l.lotStatusId = s.lotStatusId left join LotStatuses s on l.lotStatusId = s.lotStatusId
left join Maps m on l.mapId = m.mapId left join Maps m on l.mapId = m.mapId
where l.recordDelete_timeMillis is null where l.recordDelete_timeMillis is null
and l.mapId = ?` and l.mapId = ?`
sqlParameters.push(reportParameters.mapId) sqlParameters.push(reportParameters.mapId)
@ -138,18 +138,18 @@ export async function getReportData(
case 'lotOccupancies-current-byMapId': { case 'lotOccupancies-current-byMapId': {
sql = `select o.lotOccupancyId as ${lotOccupancyIdAlias}, sql = `select o.lotOccupancyId as ${lotOccupancyIdAlias},
l.lotName as ${lotNameAlias}, l.lotName as ${lotNameAlias},
m.mapName as ${mapNameAlias}, m.mapName as ${mapNameAlias},
ot.occupancyType as ${occupancyTypeAlias}, ot.occupancyType as ${occupancyTypeAlias},
o.occupancyStartDate as ${occupancyStartDateAlias}, o.occupancyStartDate as ${occupancyStartDateAlias},
o.occupancyEndDate as ${occupancyEndDateAlias} o.occupancyEndDate as ${occupancyEndDateAlias}
from LotOccupancies o from LotOccupancies o
left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId
left join Lots l on o.lotId = l.lotId left join Lots l on o.lotId = l.lotId
left join Maps m on l.mapId = m.mapId left join Maps m on l.mapId = m.mapId
where o.recordDelete_timeMillis is null where o.recordDelete_timeMillis is null
and (o.occupancyEndDate is null or o.occupancyEndDate >= ?) and (o.occupancyEndDate is null or o.occupancyEndDate >= ?)
and l.mapId = ?` and l.mapId = ?`
sqlParameters.push( sqlParameters.push(
dateTimeFunctions.dateToInteger(new Date()), dateTimeFunctions.dateToInteger(new Date()),
@ -186,12 +186,12 @@ export async function getReportData(
case 'lotOccupancyTransactions-byTransactionDateString': { case 'lotOccupancyTransactions-byTransactionDateString': {
sql = `select t.lotOccupancyId, t.transactionIndex, sql = `select t.lotOccupancyId, t.transactionIndex,
t.transactionDate, t.transactionTime, t.transactionDate, t.transactionTime,
t.transactionAmount, t.transactionAmount,
t.externalReceiptNumber, t.transactionNote t.externalReceiptNumber, t.transactionNote
from LotOccupancyTransactions t from LotOccupancyTransactions t
where t.recordDelete_timeMillis is null where t.recordDelete_timeMillis is null
and t.transactionDate = ?` and t.transactionDate = ?`
sqlParameters.push( sqlParameters.push(
dateTimeFunctions.dateStringToInteger( dateTimeFunctions.dateStringToInteger(
@ -214,12 +214,12 @@ export async function getReportData(
from WorkOrders w from WorkOrders w
left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId
left join ( left join (
select m.workOrderId, select m.workOrderId,
count(m.workOrderMilestoneId) as workOrderMilestoneCount, count(m.workOrderMilestoneId) as workOrderMilestoneCount,
sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount
from WorkOrderMilestones m from WorkOrderMilestones m
where m.recordDelete_timeMillis is null where m.recordDelete_timeMillis is null
group by m.workOrderId group by m.workOrderId
) m on w.workOrderId = m.workOrderId ) m on w.workOrderId = m.workOrderId
where w.recordDelete_timeMillis is null where w.recordDelete_timeMillis is null
and w.workOrderCloseDate is null` and w.workOrderCloseDate is null`

View File

@ -1,4 +1,4 @@
import sqlite from 'better-sqlite3' import type sqlite from 'better-sqlite3'
import { acquireConnection } from './pool.js' import { acquireConnection } from './pool.js'
import { clearCacheByTableName } from '../functions.cache.js' import { clearCacheByTableName } from '../functions.cache.js'

View File

@ -1,2 +1,2 @@
import { PoolConnection } from 'better-sqlite-pool'; import { type PoolConnection } from 'better-sqlite-pool';
export declare function acquireConnection(): Promise<PoolConnection>; export declare function acquireConnection(): Promise<PoolConnection>;

View File

@ -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' import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js'

View File

@ -132,7 +132,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
'</div>') + '</div>') +
('<div class="column has-text-centered">' + ('<div class="column has-text-centered">' +
(fee.taxPercentage (fee.taxPercentage
? fee.taxPercentage + '%' ? fee.taxPercentage.toString() + '%'
: '$' + fee.taxAmount.toFixed(2)) + : '$' + fee.taxAmount.toFixed(2)) +
'<br /><small>Tax</small>' + '<br /><small>Tax</small>' +
'</div>') + '</div>') +

View File

@ -163,7 +163,7 @@ declare const bulmaJS: BulmaJS
'</div>') + '</div>') +
('<div class="column has-text-centered">' + ('<div class="column has-text-centered">' +
(fee.taxPercentage (fee.taxPercentage
? fee.taxPercentage + '%' ? fee.taxPercentage.toString() + '%'
: '$' + fee.taxAmount!.toFixed(2)) + : '$' + fee.taxAmount!.toFixed(2)) +
'<br /><small>Tax</small>' + '<br /><small>Tax</small>' +
'</div>') + '</div>') +

View File

@ -432,7 +432,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
('<div class="level-left">' + ('<div class="level-left">' +
'<div class="level-item">' + '<div class="level-item">' +
('<h2 class="title is-4">(All ' + ('<h2 class="title is-4">(All ' +
cityssm.escapeHTML(exports.aliases.occupancy) + los.escapedAliases.Occupancy +
' Types)</h2>') + ' Types)</h2>') +
'</div>' + '</div>' +
'</div>') + '</div>') +

View File

@ -770,7 +770,7 @@ declare const bulmaJS: BulmaJS
('<div class="level-left">' + ('<div class="level-left">' +
'<div class="level-item">' + '<div class="level-item">' +
('<h2 class="title is-4">(All ' + ('<h2 class="title is-4">(All ' +
cityssm.escapeHTML(exports.aliases.occupancy) + los.escapedAliases.Occupancy +
' Types)</h2>') + ' Types)</h2>') +
'</div>' + '</div>' +
'</div>') + '</div>') +

View File

@ -86,6 +86,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
cityssm.postJSON(los.urlPrefix + '/lots/doGetLotTypeFields', { cityssm.postJSON(los.urlPrefix + '/lots/doGetLotTypeFields', {
lotTypeId: lotTypeIdElement.value lotTypeId: lotTypeIdElement.value
}, (responseJSON) => { }, (responseJSON) => {
var _a;
if (responseJSON.lotTypeFields.length === 0) { if (responseJSON.lotTypeFields.length === 0) {
lotFieldsContainerElement.innerHTML = `<div class="message is-info"> lotFieldsContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body">There are no additional fields for this ${los.escapedAliases.lot} type.</p> <p class="message-body">There are no additional fields for this ${los.escapedAliases.lot} type.</p>
@ -95,13 +96,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
lotFieldsContainerElement.innerHTML = ''; lotFieldsContainerElement.innerHTML = '';
let lotTypeFieldIds = ''; let lotTypeFieldIds = '';
for (const lotTypeField of responseJSON.lotTypeFields) { 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 fieldId = 'lot--' + fieldName;
const fieldElement = document.createElement('div'); const fieldElement = document.createElement('div');
fieldElement.className = 'field'; fieldElement.className = 'field';
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label> fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label>
<div class="control"></div>`; <div class="control"></div>`;
fieldElement.querySelector('label').textContent = lotTypeField.lotTypeField; fieldElement.querySelector('label').textContent = lotTypeField.lotTypeField;
if (lotTypeField.lotTypeFieldValues === '') { if (lotTypeField.lotTypeFieldValues === '') {
const inputElement = document.createElement('input'); const inputElement = document.createElement('input');
@ -112,7 +113,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
inputElement.required = lotTypeField.isRequired; inputElement.required = lotTypeField.isRequired;
inputElement.minLength = lotTypeField.minimumLength; inputElement.minLength = lotTypeField.minimumLength;
inputElement.maxLength = lotTypeField.maximumLength; inputElement.maxLength = lotTypeField.maximumLength;
if (lotTypeField.pattern && lotTypeField.pattern !== '') { if (((_a = lotTypeField.pattern) !== null && _a !== void 0 ? _a : '') !== '') {
inputElement.pattern = lotTypeField.pattern; inputElement.pattern = lotTypeField.pattern;
} }
fieldElement.querySelector('.control').append(inputElement); fieldElement.querySelector('.control').append(inputElement);

View File

@ -141,16 +141,17 @@ declare const bulmaJS: BulmaJS
let lotTypeFieldIds = '' let lotTypeFieldIds = ''
for (const lotTypeField of responseJSON.lotTypeFields) { 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 fieldId = 'lot--' + fieldName
const fieldElement = document.createElement('div') const fieldElement = document.createElement('div')
fieldElement.className = 'field' fieldElement.className = 'field'
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label> fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label>
<div class="control"></div>` <div class="control"></div>`
;( ;(
fieldElement.querySelector('label') as HTMLLabelElement fieldElement.querySelector('label') as HTMLLabelElement
).textContent = lotTypeField.lotTypeField as string ).textContent = lotTypeField.lotTypeField as string
@ -170,8 +171,8 @@ declare const bulmaJS: BulmaJS
inputElement.minLength = lotTypeField.minimumLength as number inputElement.minLength = lotTypeField.minimumLength as number
inputElement.maxLength = lotTypeField.maximumLength as number inputElement.maxLength = lotTypeField.maximumLength as number
if (lotTypeField.pattern && lotTypeField.pattern !== '') { if ((lotTypeField.pattern ?? '') !== '') {
inputElement.pattern = lotTypeField.pattern inputElement.pattern = lotTypeField.pattern!
} }
fieldElement.querySelector('.control')!.append(inputElement) fieldElement.querySelector('.control')!.append(inputElement)
@ -417,10 +418,10 @@ declare const bulmaJS: BulmaJS
cityssm.escapeHTML(lotComment.recordCreate_userName ?? '') + cityssm.escapeHTML(lotComment.recordCreate_userName ?? '') +
'</td>' + '</td>' +
'<td>' + '<td>' +
lotComment.lotCommentDateString + lotComment.lotCommentDateString! +
(lotComment.lotCommentTime === 0 (lotComment.lotCommentTime === 0
? '' ? ''
: ' ' + lotComment.lotCommentTimeString) + : ' ' + lotComment.lotCommentTimeString!) +
'</td>' + '</td>' +
'<td>' + '<td>' +
cityssm.escapeHTML(lotComment.lotComment ?? '') + cityssm.escapeHTML(lotComment.lotComment ?? '') +

View File

@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const limit = Number.parseInt(document.querySelector('#searchFilter--limit').value, 10); const limit = Number.parseInt(document.querySelector('#searchFilter--limit').value, 10);
const offsetElement = document.querySelector('#searchFilter--offset'); const offsetElement = document.querySelector('#searchFilter--offset');
function renderLotOccupancies(responseJSON) { 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) { if (responseJSON.lotOccupancies.length === 0) {
searchResultsContainerElement.innerHTML = `<div class="message is-info"> searchResultsContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body"> <p class="message-body">
@ -62,20 +62,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
'</a>' + '</a>' +
'</td>') + '</td>') +
('<td>' + ('<td>' +
(lotOccupancy.lotName (((_d = lotOccupancy.lotId) !== null && _d !== void 0 ? _d : -1) === -1
? '<a class="has-tooltip-right" data-tooltip="' + ? '<span class="has-text-grey">(No ' +
cityssm.escapeHTML((_d = lotOccupancy.lotType) !== null && _d !== void 0 ? _d : '') + los.escapedAliases.Lot +
')</span>'
: '<a class="has-tooltip-right" data-tooltip="' +
cityssm.escapeHTML((_e = lotOccupancy.lotType) !== null && _e !== void 0 ? _e : '') +
'" href="' + '" href="' +
los.getLotURL(lotOccupancy.lotId) + los.getLotURL(lotOccupancy.lotId) +
'">' + '">' +
cityssm.escapeHTML(lotOccupancy.lotName) + cityssm.escapeHTML(lotOccupancy.lotName) +
'</a>' '</a>') +
: '<span class="has-text-grey">(No ' +
los.escapedAliases.Lot +
')</span>') +
'<br />' + '<br />' +
('<span class="is-size-7">' + ('<span class="is-size-7">' +
cityssm.escapeHTML((_e = lotOccupancy.mapName) !== null && _e !== void 0 ? _e : '') + cityssm.escapeHTML((_f = lotOccupancy.mapName) !== null && _f !== void 0 ? _f : '') +
'</span>') + '</span>') +
'</td>') + '</td>') +
('<td>' + lotOccupancy.occupancyStartDateString + '</td>') + ('<td>' + lotOccupancy.occupancyStartDateString + '</td>') +
@ -101,24 +101,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
'</tr>'); '</tr>');
} }
searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"> searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">
<thead><tr> <thead><tr>
<th class="has-width-1"></th> <th class="has-width-1"></th>
<th>${los.escapedAliases.Occupancy} Type</th> <th>${los.escapedAliases.Occupancy} Type</th>
<th>${los.escapedAliases.Lot}</th> <th>${los.escapedAliases.Lot}</th>
<th>${los.escapedAliases.OccupancyStartDate}</th> <th>${los.escapedAliases.OccupancyStartDate}</th>
<th>End Date</th> <th>End Date</th>
<th>${los.escapedAliases.Occupants}</th> <th>${los.escapedAliases.Occupants}</th>
<th class="has-width-1"><span class="is-sr-only">Print</span></th> <th class="has-width-1"><span class="is-sr-only">Print</span></th>
</tr></thead> </tr></thead>
<table>`; <table>`;
searchResultsContainerElement searchResultsContainerElement
.querySelector('table') .querySelector('table')
.append(resultsTbodyElement); .append(resultsTbodyElement);
searchResultsContainerElement.insertAdjacentHTML('beforeend', los.getSearchResultsPagerHTML(limit, responseJSON.offset, responseJSON.count)); 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 (_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() { function getLotOccupancies() {
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Occupancies}...`); searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Occupancies}...`);
@ -142,7 +142,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
searchFilterFormElement.addEventListener('submit', (formEvent) => { searchFilterFormElement.addEventListener('submit', (formEvent) => {
formEvent.preventDefault(); formEvent.preventDefault();
resetOffsetAndGetLotOccupancies();
}); });
getLotOccupancies(); getLotOccupancies();
})(); })();

View File

@ -96,17 +96,17 @@ declare const cityssm: cityssmGlobal
'</a>' + '</a>' +
'</td>') + '</td>') +
('<td>' + ('<td>' +
(lotOccupancy.lotName ((lotOccupancy.lotId ?? -1) === -1
? '<a class="has-tooltip-right" data-tooltip="' + ? '<span class="has-text-grey">(No ' +
los.escapedAliases.Lot +
')</span>'
: '<a class="has-tooltip-right" data-tooltip="' +
cityssm.escapeHTML(lotOccupancy.lotType ?? '') + cityssm.escapeHTML(lotOccupancy.lotType ?? '') +
'" href="' + '" href="' +
los.getLotURL(lotOccupancy.lotId) + los.getLotURL(lotOccupancy.lotId) +
'">' + '">' +
cityssm.escapeHTML(lotOccupancy.lotName) + cityssm.escapeHTML(lotOccupancy.lotName!) +
'</a>' '</a>') +
: '<span class="has-text-grey">(No ' +
los.escapedAliases.Lot +
')</span>') +
'<br />' + '<br />' +
('<span class="is-size-7">' + ('<span class="is-size-7">' +
cityssm.escapeHTML(lotOccupancy.mapName ?? '') + cityssm.escapeHTML(lotOccupancy.mapName ?? '') +
@ -137,16 +137,16 @@ declare const cityssm: cityssmGlobal
} }
searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"> searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">
<thead><tr> <thead><tr>
<th class="has-width-1"></th> <th class="has-width-1"></th>
<th>${los.escapedAliases.Occupancy} Type</th> <th>${los.escapedAliases.Occupancy} Type</th>
<th>${los.escapedAliases.Lot}</th> <th>${los.escapedAliases.Lot}</th>
<th>${los.escapedAliases.OccupancyStartDate}</th> <th>${los.escapedAliases.OccupancyStartDate}</th>
<th>End Date</th> <th>End Date</th>
<th>${los.escapedAliases.Occupants}</th> <th>${los.escapedAliases.Occupants}</th>
<th class="has-width-1"><span class="is-sr-only">Print</span></th> <th class="has-width-1"><span class="is-sr-only">Print</span></th>
</tr></thead> </tr></thead>
<table>` <table>`
searchResultsContainerElement searchResultsContainerElement
.querySelector('table')! .querySelector('table')!
@ -211,7 +211,6 @@ declare const cityssm: cityssmGlobal
searchFilterFormElement.addEventListener('submit', (formEvent) => { searchFilterFormElement.addEventListener('submit', (formEvent) => {
formEvent.preventDefault() formEvent.preventDefault()
resetOffsetAndGetLotOccupancies()
}) })
getLotOccupancies() getLotOccupancies()

View File

@ -11,8 +11,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
var _a, _b, _c, _d; var _a, _b, _c, _d;
if (responseJSON.lots.length === 0) { if (responseJSON.lots.length === 0) {
searchResultsContainerElement.innerHTML = `<div class="message is-info"> searchResultsContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body">There are no ${los.escapedAliases.lots} that meet the search criteria.</p> <p class="message-body">There are no ${los.escapedAliases.lots} that meet the search criteria.</p>
</div>`; </div>`;
return; return;
} }
const resultsTbodyElement = document.createElement('tbody'); const resultsTbodyElement = document.createElement('tbody');
@ -85,7 +85,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
searchFilterFormElement.addEventListener('submit', (formEvent) => { searchFilterFormElement.addEventListener('submit', (formEvent) => {
formEvent.preventDefault(); formEvent.preventDefault();
resetOffsetAndGetLots();
}); });
getLots(); getLots();
})(); })();

View File

@ -32,8 +32,8 @@ declare const cityssm: cityssmGlobal
}): void { }): void {
if (responseJSON.lots.length === 0) { if (responseJSON.lots.length === 0) {
searchResultsContainerElement.innerHTML = `<div class="message is-info"> searchResultsContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body">There are no ${los.escapedAliases.lots} that meet the search criteria.</p> <p class="message-body">There are no ${los.escapedAliases.lots} that meet the search criteria.</p>
</div>` </div>`
return return
} }
@ -146,7 +146,6 @@ declare const cityssm: cityssmGlobal
searchFilterFormElement.addEventListener('submit', (formEvent) => { searchFilterFormElement.addEventListener('submit', (formEvent) => {
formEvent.preventDefault() formEvent.preventDefault()
resetOffsetAndGetLots()
}) })
getLots() getLots()

View File

@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const searchFilterElement = document.querySelector('#searchFilter--map'); const searchFilterElement = document.querySelector('#searchFilter--map');
const searchResultsContainerElement = document.querySelector('#container--searchResults'); const searchResultsContainerElement = document.querySelector('#container--searchResults');
function renderResults() { 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}...`); searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Maps}...`);
let searchResultCount = 0; let searchResultCount = 0;
const searchResultsTbodyElement = document.createElement('tbody'); const searchResultsTbodyElement = document.createElement('tbody');
@ -42,28 +42,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
('<td>' + ('<td>' +
(((_f = map.mapAddress1) !== null && _f !== void 0 ? _f : '') === '' (((_f = map.mapAddress1) !== null && _f !== void 0 ? _f : '') === ''
? '' ? ''
: cityssm.escapeHTML(map.mapAddress1) + '<br />') + : cityssm.escapeHTML((_g = map.mapAddress1) !== null && _g !== void 0 ? _g : '') + '<br />') +
(((_g = map.mapAddress2) !== null && _g !== void 0 ? _g : '') === '' (((_h = map.mapAddress2) !== null && _h !== void 0 ? _h : '') === ''
? '' ? ''
: cityssm.escapeHTML(map.mapAddress2) + '<br />') + : cityssm.escapeHTML((_j = map.mapAddress2) !== null && _j !== void 0 ? _j : '') + '<br />') +
(map.mapCity || map.mapProvince (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 : '') +
'<br />' '<br />'
: '') + : '') +
(((_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 : '')) +
'</td>') + '</td>') +
('<td>' + cityssm.escapeHTML((_l = map.mapPhoneNumber) !== null && _l !== void 0 ? _l : '') + '</td>') + ('<td>' + cityssm.escapeHTML((_p = map.mapPhoneNumber) !== null && _p !== void 0 ? _p : '') + '</td>') +
'<td class="has-text-centered">' + '<td class="has-text-centered">' +
(map.mapLatitude && map.mapLongitude (map.mapLatitude && map.mapLongitude
? '<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>' ? '<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>'
: '') + : '') +
'</td>' + '</td>' +
'<td class="has-text-centered">' + '<td class="has-text-centered">' +
(((_m = map.mapSVG) !== null && _m !== void 0 ? _m : '') === '' (((_q = map.mapSVG) !== null && _q !== void 0 ? _q : '') === ''
? '' ? ''
: '<span data-tooltip="Has Image"><i class="fas fa-image" aria-label="Has Image"></i></span>') + : '<span data-tooltip="Has Image"><i class="fas fa-image" aria-label="Has Image"></i></span>') +
'</td>' + '</td>' +

View File

@ -70,10 +70,10 @@ declare const cityssm: cityssmGlobal
('<td>' + ('<td>' +
((map.mapAddress1 ?? '') === '' ((map.mapAddress1 ?? '') === ''
? '' ? ''
: cityssm.escapeHTML(map.mapAddress1!) + '<br />') + : cityssm.escapeHTML(map.mapAddress1 ?? '') + '<br />') +
((map.mapAddress2 ?? '') === '' ((map.mapAddress2 ?? '') === ''
? '' ? ''
: cityssm.escapeHTML(map.mapAddress2!) + '<br />') + : cityssm.escapeHTML(map.mapAddress2 ?? '') + '<br />') +
(map.mapCity || map.mapProvince (map.mapCity || map.mapProvince
? cityssm.escapeHTML(map.mapCity ?? '') + ? cityssm.escapeHTML(map.mapCity ?? '') +
', ' + ', ' +
@ -82,7 +82,7 @@ declare const cityssm: cityssmGlobal
: '') + : '') +
((map.mapPostalCode ?? '') === '' ((map.mapPostalCode ?? '') === ''
? '' ? ''
: cityssm.escapeHTML(map.mapPostalCode!)) + : cityssm.escapeHTML(map.mapPostalCode ?? '')) +
'</td>') + '</td>') +
('<td>' + cityssm.escapeHTML(map.mapPhoneNumber ?? '') + '</td>') + ('<td>' + cityssm.escapeHTML(map.mapPhoneNumber ?? '') + '</td>') +
'<td class="has-text-centered">' + '<td class="has-text-centered">' +

View File

@ -159,7 +159,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
searchFilterFormElement.addEventListener('submit', (formEvent) => { searchFilterFormElement.addEventListener('submit', (formEvent) => {
formEvent.preventDefault(); formEvent.preventDefault();
resetOffsetAndGetWorkOrders();
}); });
/* /*
const workOrderOpenDateStringElement = document.querySelector("#searchFilter--workOrderOpenDateString") as HTMLInputElement; const workOrderOpenDateStringElement = document.querySelector("#searchFilter--workOrderOpenDateString") as HTMLInputElement;

View File

@ -231,7 +231,6 @@ declare const cityssm: cityssmGlobal
searchFilterFormElement.addEventListener('submit', (formEvent) => { searchFilterFormElement.addEventListener('submit', (formEvent) => {
formEvent.preventDefault() formEvent.preventDefault()
resetOffsetAndGetWorkOrders()
}) })
/* /*

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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=`<div class="message is-info">\n <p class="message-body">\n There are no ${t.escapedAliases.occupancy} records that meet the search criteria.\n </p>\n </div>`);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)?`<span class="has-tooltip-right" data-tooltip="Current ${t.escapedAliases.Occupancy}">\n <i class="fas fa-play" aria-label="Current ${t.escapedAliases.Occupancy}"></i>\n </span>`:a.occupancyStartDateString>y?`<span class="has-tooltip-right" data-tooltip="Future ${t.escapedAliases.Occupancy}">\n <i class="fas fa-fast-forward" aria-label="Future ${t.escapedAliases.Occupancy}"></i>\n </span>`:`<span class="has-tooltip-right" data-tooltip="Past ${t.escapedAliases.Occupancy}">\n <i class="fas fa-stop" aria-label="Past ${t.escapedAliases.Occupancy}"></i>\n </span>`;let s="";for(const t of a.lotOccupancyOccupants)s+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(c=t.lotOccupantType)&&void 0!==c?c:"")+'"><i class="fas fa-fw fa-'+cityssm.escapeHTML(""===(null!==(n=t.fontAwesomeIconClass)&&void 0!==n?n:"")?"user":t.fontAwesomeIconClass)+'" aria-hidden="true"></i> '+cityssm.escapeHTML(null!==(i=t.occupantName)&&void 0!==i?i:"")+"</span><br />";h.insertAdjacentHTML("beforeend",'<tr><td class="has-width-1">'+e+'</td><td><a class="has-text-weight-bold" href="'+t.getLotOccupancyURL(a.lotOccupancyId)+'">'+cityssm.escapeHTML(a.occupancyType)+"</a></td><td>"+(a.lotName?'<a class="has-tooltip-right" data-tooltip="'+cityssm.escapeHTML(null!==(l=a.lotType)&&void 0!==l?l:"")+'" href="'+t.getLotURL(a.lotId)+'">'+cityssm.escapeHTML(a.lotName)+"</a>":'<span class="has-text-grey">(No '+t.escapedAliases.Lot+")</span>")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(p=a.mapName)&&void 0!==p?p:"")+"</span></td><td>"+a.occupancyStartDateString+"</td><td>"+(a.occupancyEndDate?a.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+s+"</td><td>"+(a.printEJS?'<a class="button is-small" data-tooltip="Print" href="'+t.urlPrefix+"/print/"+a.printEJS+"/?lotOccupancyId="+a.lotOccupancyId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a>':"")+"</td></tr>")}a.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">\n <thead><tr>\n <th class="has-width-1"></th>\n <th>${t.escapedAliases.Occupancy} Type</th>\n <th>${t.escapedAliases.Lot}</th>\n <th>${t.escapedAliases.OccupancyStartDate}</th>\n <th>End Date</th>\n <th>${t.escapedAliases.Occupants}</th>\n <th class="has-width-1"><span class="is-sr-only">Print</span></th>\n </tr></thead>\n <table>`,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()})(); "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=`<div class="message is-info">\n <p class="message-body">\n There are no ${t.escapedAliases.occupancy} records that meet the search criteria.\n </p>\n </div>`);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)?`<span class="has-tooltip-right" data-tooltip="Current ${t.escapedAliases.Occupancy}">\n <i class="fas fa-play" aria-label="Current ${t.escapedAliases.Occupancy}"></i>\n </span>`:a.occupancyStartDateString>f?`<span class="has-tooltip-right" data-tooltip="Future ${t.escapedAliases.Occupancy}">\n <i class="fas fa-fast-forward" aria-label="Future ${t.escapedAliases.Occupancy}"></i>\n </span>`:`<span class="has-tooltip-right" data-tooltip="Past ${t.escapedAliases.Occupancy}">\n <i class="fas fa-stop" aria-label="Past ${t.escapedAliases.Occupancy}"></i>\n </span>`;let s="";for(const t of a.lotOccupancyOccupants)s+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(c=t.lotOccupantType)&&void 0!==c?c:"")+'"><i class="fas fa-fw fa-'+cityssm.escapeHTML(""===(null!==(n=t.fontAwesomeIconClass)&&void 0!==n?n:"")?"user":t.fontAwesomeIconClass)+'" aria-hidden="true"></i> '+cityssm.escapeHTML(null!==(i=t.occupantName)&&void 0!==i?i:"")+"</span><br />";y.insertAdjacentHTML("beforeend",'<tr><td class="has-width-1">'+e+'</td><td><a class="has-text-weight-bold" href="'+t.getLotOccupancyURL(a.lotOccupancyId)+'">'+cityssm.escapeHTML(a.occupancyType)+"</a></td><td>"+(-1===(null!==(l=a.lotId)&&void 0!==l?l:-1)?'<span class="has-text-grey">(No '+t.escapedAliases.Lot+")</span>":'<a class="has-tooltip-right" data-tooltip="'+cityssm.escapeHTML(null!==(p=a.lotType)&&void 0!==p?p:"")+'" href="'+t.getLotURL(a.lotId)+'">'+cityssm.escapeHTML(a.lotName)+"</a>")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(d=a.mapName)&&void 0!==d?d:"")+"</span></td><td>"+a.occupancyStartDateString+"</td><td>"+(a.occupancyEndDate?a.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+s+"</td><td>"+(a.printEJS?'<a class="button is-small" data-tooltip="Print" href="'+t.urlPrefix+"/print/"+a.printEJS+"/?lotOccupancyId="+a.lotOccupancyId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a>':"")+"</td></tr>")}a.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">\n <thead><tr>\n <th class="has-width-1"></th>\n <th>${t.escapedAliases.Occupancy} Type</th>\n <th>${t.escapedAliases.Lot}</th>\n <th>${t.escapedAliases.OccupancyStartDate}</th>\n <th>End Date</th>\n <th>${t.escapedAliases.Occupants}</th>\n <th class="has-width-1"><span class="is-sr-only">Print</span></th>\n </tr></thead>\n <table>`,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()})();

View File

@ -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=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.lots} that meet the search criteria.</p>\n </div>`);const d=document.createElement("tbody");for(const s of t.lots)d.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.getLotURL(s.lotId)+'">'+cityssm.escapeHTML(null!==(n=s.lotName)&&void 0!==n?n:"")+'</a></td><td><a href="'+e.getMapURL(s.mapId)+'">'+(s.mapName?cityssm.escapeHTML(s.mapName):'<span class="has-text-grey">(No Name)</span>')+"</a></td><td>"+cityssm.escapeHTML(null!==(r=s.lotType)&&void 0!==r?r:"")+"</td><td>"+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus):'<span class="has-text-grey">(No Status)</span>')+"<br />"+(s.lotOccupancyCount>0?'<span class="is-size-7">Currently Occupied</span>':"")+"</td></tr>");s.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">\n <thead><tr>\n <th>${e.escapedAliases.Lot}</th>\n <th>${e.escapedAliases.Map}</th>\n <th>${e.escapedAliases.Lot} Type</th>\n <th>Status</th>\n </tr></thead>\n <table>`,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()})(); "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=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.lots} that meet the search criteria.</p>\n </div>`);const d=document.createElement("tbody");for(const s of t.lots)d.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.getLotURL(s.lotId)+'">'+cityssm.escapeHTML(null!==(n=s.lotName)&&void 0!==n?n:"")+'</a></td><td><a href="'+e.getMapURL(s.mapId)+'">'+(s.mapName?cityssm.escapeHTML(s.mapName):'<span class="has-text-grey">(No Name)</span>')+"</a></td><td>"+cityssm.escapeHTML(null!==(r=s.lotType)&&void 0!==r?r:"")+"</td><td>"+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus):'<span class="has-text-grey">(No Status)</span>')+"<br />"+(s.lotOccupancyCount>0?'<span class="is-size-7">Currently Occupied</span>':"")+"</td></tr>");s.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">\n <thead><tr>\n <th>${e.escapedAliases.Lot}</th>\n <th>${e.escapedAliases.Map}</th>\n <th>${e.escapedAliases.Lot} Type</th>\n <th>Status</th>\n </tr></thead>\n <table>`,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()})();

View File

@ -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",'<tr><td><a class="has-text-weight-bold" href="'+e.getMapURL(s.mapId)+'">'+cityssm.escapeHTML(""===s.mapName?"(No Name)":s.mapName)+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(o=s.mapDescription)&&void 0!==o?o:"")+"</span></td><td>"+(""===(null!==(l=s.mapAddress1)&&void 0!==l?l:"")?"":cityssm.escapeHTML(s.mapAddress1)+"<br />")+(""===(null!==(c=s.mapAddress2)&&void 0!==c?c:"")?"":cityssm.escapeHTML(s.mapAddress2)+"<br />")+(s.mapCity||s.mapProvince?cityssm.escapeHTML(null!==(p=s.mapCity)&&void 0!==p?p:"")+", "+cityssm.escapeHTML(null!==(m=s.mapProvince)&&void 0!==m?m:"")+"<br />":"")+(""===(null!==(h=s.mapPostalCode)&&void 0!==h?h:"")?"":cityssm.escapeHTML(s.mapPostalCode))+"</td><td>"+cityssm.escapeHTML(null!==(u=s.mapPhoneNumber)&&void 0!==u?u:"")+'</td><td class="has-text-centered">'+(s.mapLatitude&&s.mapLongitude?'<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>':"")+'</td><td class="has-text-centered">'+(""===(null!==(L=s.mapSVG)&&void 0!==L?L:"")?"":'<span data-tooltip="Has Image"><i class="fas fa-image" aria-label="Has Image"></i></span>')+"</td>"+`<td class="has-text-right">\n <a href="${e.urlPrefix}/lots?mapId=${s.mapId}">${s.lotCount}</a>\n </td>`+"</tr>"))}if(t.innerHTML="",0===v)t.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.maps} that meet the search criteria.</p>\n </div>`;else{const a=document.createElement("table");a.className="table is-fullwidth is-striped is-hoverable has-sticky-header",a.innerHTML=`<thead><tr>\n <th>${e.escapedAliases.Map}</th>\n <th>Address</th>\n <th>Phone Number</th>\n <th class="has-text-centered">Coordinates</th>\n <th class="has-text-centered">Image</th>\n <th class="has-text-right">${e.escapedAliases.Lot} Count</th>\n </tr></thead>`,a.append(f),t.append(a)}}s.addEventListener("keyup",i),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),i()}),i()})(); "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",'<tr><td><a class="has-text-weight-bold" href="'+e.getMapURL(s.mapId)+'">'+cityssm.escapeHTML(""===s.mapName?"(No Name)":s.mapName)+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(o=s.mapDescription)&&void 0!==o?o:"")+"</span></td><td>"+(""===(null!==(l=s.mapAddress1)&&void 0!==l?l:"")?"":cityssm.escapeHTML(null!==(c=s.mapAddress1)&&void 0!==c?c:"")+"<br />")+(""===(null!==(p=s.mapAddress2)&&void 0!==p?p:"")?"":cityssm.escapeHTML(null!==(m=s.mapAddress2)&&void 0!==m?m:"")+"<br />")+(s.mapCity||s.mapProvince?cityssm.escapeHTML(null!==(h=s.mapCity)&&void 0!==h?h:"")+", "+cityssm.escapeHTML(null!==(u=s.mapProvince)&&void 0!==u?u:"")+"<br />":"")+(""===(null!==(v=s.mapPostalCode)&&void 0!==v?v:"")?"":cityssm.escapeHTML(null!==(L=s.mapPostalCode)&&void 0!==L?L:""))+"</td><td>"+cityssm.escapeHTML(null!==(f=s.mapPhoneNumber)&&void 0!==f?f:"")+'</td><td class="has-text-centered">'+(s.mapLatitude&&s.mapLongitude?'<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>':"")+'</td><td class="has-text-centered">'+(""===(null!==(b=s.mapSVG)&&void 0!==b?b:"")?"":'<span data-tooltip="Has Image"><i class="fas fa-image" aria-label="Has Image"></i></span>')+"</td>"+`<td class="has-text-right">\n <a href="${e.urlPrefix}/lots?mapId=${s.mapId}">${s.lotCount}</a>\n </td>`+"</tr>"))}if(t.innerHTML="",0===y)t.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.maps} that meet the search criteria.</p>\n </div>`;else{const a=document.createElement("table");a.className="table is-fullwidth is-striped is-hoverable has-sticky-header",a.innerHTML=`<thead><tr>\n <th>${e.escapedAliases.Map}</th>\n <th>Address</th>\n <th>Phone Number</th>\n <th class="has-text-centered">Coordinates</th>\n <th class="has-text-centered">Image</th>\n <th class="has-text-right">${e.escapedAliases.Lot} Count</th>\n </tr></thead>`,a.append(H),t.append(a)}}s.addEventListener("keyup",i),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),i()}),i()})();

View File

@ -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='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const k=document.createElement("tbody");for(const a of s.workOrders){let s="";for(const t of a.workOrderLots)s+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(o=t.mapName)&&void 0!==o?o:"")+'"><i class="fas fa-fw fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(""===(null!==(l=t.lotName)&&void 0!==l?l:"")?"(No "+e.escapedAliases.Lot+" Name)":t.lotName)+"</span><br />";for(const t of a.workOrderLotOccupancies)for(const a of t.lotOccupancyOccupants)s+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(i=a.lotOccupantType)&&void 0!==i?i:"")+'"><i class="fas fa-fw fa-'+cityssm.escapeHTML(""===(null!==(n=a.fontAwesomeIconClass)&&void 0!==n?n:"")?"user":a.fontAwesomeIconClass)+'" aria-label="'+e.escapedAliases.occupant+'"></i> '+cityssm.escapeHTML(""===(null!==(p=a.occupantName)&&void 0!==p?p:"")?"(No Name)":a.occupantName)+"</span><br />";k.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.getWorkOrderURL(a.workOrderId)+'">'+(a.workOrderNumber.trim()?cityssm.escapeHTML(null!==(u=a.workOrderNumber)&&void 0!==u?u:""):"(No Number)")+"</a></td><td>"+cityssm.escapeHTML(null!==(f=a.workOrderType)&&void 0!==f?f:"")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(h=a.workOrderDescription)&&void 0!==h?h:"")+'</span></td><td class="is-nowrap"><span class="is-size-7">'+s+'</span></td><td class="is-nowrap"><span class="has-tooltip-left" data-tooltip="'+e.escapedAliases.WorkOrderOpenDate+'"><i class="fas fa-fw fa-play" aria-label="'+e.escapedAliases.WorkOrderOpenDate+'"></i> '+a.workOrderOpenDateString+'</span><br /><span class="has-tooltip-left" data-tooltip="'+e.escapedAliases.WorkOrderCloseDate+'"><i class="fas fa-fw fa-stop" aria-label="'+e.escapedAliases.WorkOrderCloseDate+'"></i> '+(a.workOrderCloseDate?a.workOrderCloseDateString:'<span class="has-text-grey">(No '+e.escapedAliases.WorkOrderCloseDate+")</span>")+"</span></td><td>"+(0===a.workOrderMilestoneCount?"-":a.workOrderMilestoneCompletionCount+" / "+a.workOrderMilestoneCount)+"</td>"+(t.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+e.urlPrefix+"/print/"+t[0]+"/?workOrderId="+a.workOrderId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}a.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th>Work Order Number</th><th>Description</th><th>Related</th><th>Date</th><th class="has-tooltip-bottom" data-tooltip="Completed / Total Milestones">Progress</th>'+(t.length>0?'<th class="has-width-1"></th>':"")+"</tr></thead><table>",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()})(); "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='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const k=document.createElement("tbody");for(const a of s.workOrders){let s="";for(const t of a.workOrderLots)s+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(o=t.mapName)&&void 0!==o?o:"")+'"><i class="fas fa-fw fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(""===(null!==(l=t.lotName)&&void 0!==l?l:"")?"(No "+e.escapedAliases.Lot+" Name)":t.lotName)+"</span><br />";for(const t of a.workOrderLotOccupancies)for(const a of t.lotOccupancyOccupants)s+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(i=a.lotOccupantType)&&void 0!==i?i:"")+'"><i class="fas fa-fw fa-'+cityssm.escapeHTML(""===(null!==(n=a.fontAwesomeIconClass)&&void 0!==n?n:"")?"user":a.fontAwesomeIconClass)+'" aria-label="'+e.escapedAliases.occupant+'"></i> '+cityssm.escapeHTML(""===(null!==(p=a.occupantName)&&void 0!==p?p:"")?"(No Name)":a.occupantName)+"</span><br />";k.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.getWorkOrderURL(a.workOrderId)+'">'+(a.workOrderNumber.trim()?cityssm.escapeHTML(null!==(u=a.workOrderNumber)&&void 0!==u?u:""):"(No Number)")+"</a></td><td>"+cityssm.escapeHTML(null!==(f=a.workOrderType)&&void 0!==f?f:"")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(h=a.workOrderDescription)&&void 0!==h?h:"")+'</span></td><td class="is-nowrap"><span class="is-size-7">'+s+'</span></td><td class="is-nowrap"><span class="has-tooltip-left" data-tooltip="'+e.escapedAliases.WorkOrderOpenDate+'"><i class="fas fa-fw fa-play" aria-label="'+e.escapedAliases.WorkOrderOpenDate+'"></i> '+a.workOrderOpenDateString+'</span><br /><span class="has-tooltip-left" data-tooltip="'+e.escapedAliases.WorkOrderCloseDate+'"><i class="fas fa-fw fa-stop" aria-label="'+e.escapedAliases.WorkOrderCloseDate+'"></i> '+(a.workOrderCloseDate?a.workOrderCloseDateString:'<span class="has-text-grey">(No '+e.escapedAliases.WorkOrderCloseDate+")</span>")+"</span></td><td>"+(0===a.workOrderMilestoneCount?"-":a.workOrderMilestoneCompletionCount+" / "+a.workOrderMilestoneCount)+"</td>"+(t.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+e.urlPrefix+"/print/"+t[0]+"/?workOrderId="+a.workOrderId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}a.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th>Work Order Number</th><th>Description</th><th>Related</th><th>Date</th><th class="has-tooltip-bottom" data-tooltip="Completed / Total Milestones">Progress</th>'+(t.length>0?'<th class="has-width-1"></th>':"")+"</tr></thead><table>",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()})();