show lot type on occupancy search

deepsource-autofix-76c6eb20
Dan Gowans 2022-10-14 10:34:21 -04:00
parent 58230ae65d
commit 4e3616ce53
7 changed files with 59 additions and 19 deletions

View File

@ -105,13 +105,14 @@ export const getLotOccupancies = (filters, options, connectedDatabase) => {
lotOccupancies = database lotOccupancies = database
.prepare("select o.lotOccupancyId," + .prepare("select o.lotOccupancyId," +
" o.occupancyTypeId, t.occupancyType," + " o.occupancyTypeId, t.occupancyType," +
" o.lotId, l.lotName," + " o.lotId, lt.lotType, l.lotName," +
" l.mapId, m.mapName," + " l.mapId, m.mapName," +
" o.occupancyStartDate, userFn_dateIntegerToString(o.occupancyStartDate) as occupancyStartDateString," + " o.occupancyStartDate, userFn_dateIntegerToString(o.occupancyStartDate) as occupancyStartDateString," +
" o.occupancyEndDate, userFn_dateIntegerToString(o.occupancyEndDate) as occupancyEndDateString" + " o.occupancyEndDate, userFn_dateIntegerToString(o.occupancyEndDate) as occupancyEndDateString" +
" from LotOccupancies o" + " from LotOccupancies o" +
" left join OccupancyTypes t on o.occupancyTypeId = t.occupancyTypeId" + " left join OccupancyTypes t on o.occupancyTypeId = t.occupancyTypeId" +
" left join Lots l on o.lotId = l.lotId" + " left join Lots l on o.lotId = l.lotId" +
" left join LotTypes lt on l.lotTypeId = lt.lotTypeId" +
" left join Maps m on l.mapId = m.mapId" + " left join Maps m on l.mapId = m.mapId" +
sqlWhereClause + sqlWhereClause +
" order by o.occupancyStartDate desc, ifnull(o.occupancyEndDate, 99999999) desc, l.lotName, o.lotId" + " order by o.occupancyStartDate desc, ifnull(o.occupancyEndDate, 99999999) desc, l.lotName, o.lotId" +

View File

@ -168,13 +168,14 @@ export const getLotOccupancies = (
.prepare( .prepare(
"select o.lotOccupancyId," + "select o.lotOccupancyId," +
" o.occupancyTypeId, t.occupancyType," + " o.occupancyTypeId, t.occupancyType," +
" o.lotId, l.lotName," + " o.lotId, lt.lotType, l.lotName," +
" l.mapId, m.mapName," + " l.mapId, m.mapName," +
" o.occupancyStartDate, userFn_dateIntegerToString(o.occupancyStartDate) as occupancyStartDateString," + " o.occupancyStartDate, userFn_dateIntegerToString(o.occupancyStartDate) as occupancyStartDateString," +
" o.occupancyEndDate, userFn_dateIntegerToString(o.occupancyEndDate) as occupancyEndDateString" + " o.occupancyEndDate, userFn_dateIntegerToString(o.occupancyEndDate) as occupancyEndDateString" +
" from LotOccupancies o" + " from LotOccupancies o" +
" left join OccupancyTypes t on o.occupancyTypeId = t.occupancyTypeId" + " left join OccupancyTypes t on o.occupancyTypeId = t.occupancyTypeId" +
" left join Lots l on o.lotId = l.lotId" + " left join Lots l on o.lotId = l.lotId" +
" left join LotTypes lt on l.lotTypeId = lt.lotTypeId" +
" left join Maps m on l.mapId = m.mapId" + " left join Maps m on l.mapId = m.mapId" +
sqlWhereClause + sqlWhereClause +
" order by o.occupancyStartDate desc, ifnull(o.occupancyEndDate, 99999999) desc, l.lotName, o.lotId" + " order by o.occupancyStartDate desc, ifnull(o.occupancyEndDate, 99999999) desc, l.lotName, o.lotId" +

View File

@ -34,21 +34,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
(lotOccupancy.occupancyEndDateString === "" || (lotOccupancy.occupancyEndDateString === "" ||
lotOccupancy.occupancyEndDateString >= nowDateString)) { lotOccupancy.occupancyEndDateString >= nowDateString)) {
occupancyTimeHTML = occupancyTimeHTML =
'<i class="fas fa-play" title="Current ' + '<span class="has-tooltip-right" data-tooltip="Current ' +
exports.aliases.occupancy + exports.aliases.occupancy +
'"></i>'; '">' +
('<i class="fas fa-play" aria-label="Current ' +
exports.aliases.occupancy +
'"></i>') +
"</span>";
} }
else if (lotOccupancy.occupancyStartDateString > nowDateString) { else if (lotOccupancy.occupancyStartDateString > nowDateString) {
occupancyTimeHTML = occupancyTimeHTML =
'<i class="fas fa-fast-forward" title="Future ' + '<span class="has-tooltip-right" data-tooltip="Future ' +
exports.aliases.occupancy + exports.aliases.occupancy +
'"></i>'; '">' +
('<i class="fas fa-fast-forward" aria-label="Future ' +
exports.aliases.occupancy +
'"></i>') +
"</span>";
} }
else { else {
occupancyTimeHTML = occupancyTimeHTML =
'<i class="fas fa-stop" title="Previous ' + '<span class="has-tooltip-right" data-tooltip="Past ' +
exports.aliases.occupancy + exports.aliases.occupancy +
'"></i>'; '">' +
('<i class="fas fa-stop" aria-label="Past ' +
exports.aliases.occupancy +
'"></i>') +
"</span>";
} }
let occupantsHTML = ""; let occupantsHTML = "";
for (const occupant of lotOccupancy.lotOccupancyOccupants) { for (const occupant of lotOccupancy.lotOccupancyOccupants) {
@ -72,7 +84,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</td>") + "</td>") +
("<td>" + ("<td>" +
(lotOccupancy.lotName (lotOccupancy.lotName
? cityssm.escapeHTML(lotOccupancy.lotName) ? '<span class="has-tooltip-right" data-tooltip="' +
cityssm.escapeHTML(lotOccupancy.lotType) +
'">' +
cityssm.escapeHTML(lotOccupancy.lotName) +
"</span>"
: '<span class="has-text-grey">(No ' + : '<span class="has-text-grey">(No ' +
cityssm.escapeHTML(exports.aliases.lot) + cityssm.escapeHTML(exports.aliases.lot) +
")</span>") + ")</span>") +
@ -111,7 +127,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
'<th class="has-width-1"></th>' + '<th class="has-width-1"></th>' +
("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") + ("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") +
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") + ("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
"<th>" + cityssm.escapeHTML(exports.aliases.occupancyStartDate) + "</th>" + "<th>" +
cityssm.escapeHTML(exports.aliases.occupancyStartDate) +
"</th>" +
"<th>End Date</th>" + "<th>End Date</th>" +
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") + ("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
(lotOccupancyPrints.length > 0 ? '<th class="has-width-1"></th>' : "") + (lotOccupancyPrints.length > 0 ? '<th class="has-width-1"></th>' : "") +

View File

@ -64,19 +64,31 @@ declare const cityssm: cityssmGlobal;
lotOccupancy.occupancyEndDateString >= nowDateString) lotOccupancy.occupancyEndDateString >= nowDateString)
) { ) {
occupancyTimeHTML = occupancyTimeHTML =
'<i class="fas fa-play" title="Current ' + '<span class="has-tooltip-right" data-tooltip="Current ' +
exports.aliases.occupancy + exports.aliases.occupancy +
'"></i>'; '">' +
('<i class="fas fa-play" aria-label="Current ' +
exports.aliases.occupancy +
'"></i>') +
"</span>";
} else if (lotOccupancy.occupancyStartDateString > nowDateString) { } else if (lotOccupancy.occupancyStartDateString > nowDateString) {
occupancyTimeHTML = occupancyTimeHTML =
'<i class="fas fa-fast-forward" title="Future ' + '<span class="has-tooltip-right" data-tooltip="Future ' +
exports.aliases.occupancy + exports.aliases.occupancy +
'"></i>'; '">' +
('<i class="fas fa-fast-forward" aria-label="Future ' +
exports.aliases.occupancy +
'"></i>') +
"</span>";
} else { } else {
occupancyTimeHTML = occupancyTimeHTML =
'<i class="fas fa-stop" title="Previous ' + '<span class="has-tooltip-right" data-tooltip="Past ' +
exports.aliases.occupancy + exports.aliases.occupancy +
'"></i>'; '">' +
('<i class="fas fa-stop" aria-label="Past ' +
exports.aliases.occupancy +
'"></i>') +
"</span>";
} }
let occupantsHTML = ""; let occupantsHTML = "";
@ -105,7 +117,11 @@ declare const cityssm: cityssmGlobal;
"</td>") + "</td>") +
("<td>" + ("<td>" +
(lotOccupancy.lotName (lotOccupancy.lotName
? cityssm.escapeHTML(lotOccupancy.lotName) ? '<span class="has-tooltip-right" data-tooltip="' +
cityssm.escapeHTML(lotOccupancy.lotType) +
'">' +
cityssm.escapeHTML(lotOccupancy.lotName) +
"</span>"
: '<span class="has-text-grey">(No ' + : '<span class="has-text-grey">(No ' +
cityssm.escapeHTML(exports.aliases.lot) + cityssm.escapeHTML(exports.aliases.lot) +
")</span>") + ")</span>") +
@ -146,7 +162,9 @@ declare const cityssm: cityssmGlobal;
'<th class="has-width-1"></th>' + '<th class="has-width-1"></th>' +
("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") + ("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") +
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") + ("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
"<th>" + cityssm.escapeHTML(exports.aliases.occupancyStartDate) + "</th>" + "<th>" +
cityssm.escapeHTML(exports.aliases.occupancyStartDate) +
"</th>" +
"<th>End Date</th>" + "<th>End Date</th>" +
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") + ("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
(lotOccupancyPrints.length > 0 ? '<th class="has-width-1"></th>' : "") + (lotOccupancyPrints.length > 0 ? '<th class="has-width-1"></th>' : "") +

View File

@ -1 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=document.querySelector("main").dataset.urlPrefix,e=exports.lotOccupancyPrints,a=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),c=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),n=()=>{const n=Number.parseInt(i.value,10);s.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading '+exports.aliases.occupancies+"...</div>",cityssm.postJSON(t+"/lotOccupancies/doSearchLotOccupancies",a,a=>{if(0===a.lotOccupancies.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase())+" records that meet the search criteria.</p></div>");const i=document.createElement("tbody"),r=cityssm.dateToString(new Date);for(const s of a.lotOccupancies){let a="";a=s.occupancyStartDateString<=r&&(""===s.occupancyEndDateString||s.occupancyEndDateString>=r)?'<i class="fas fa-play" title="Current '+exports.aliases.occupancy+'"></i>':s.occupancyStartDateString>r?'<i class="fas fa-fast-forward" title="Future '+exports.aliases.occupancy+'"></i>':'<i class="fas fa-stop" title="Previous '+exports.aliases.occupancy+'"></i>';let c="";for(const t of s.lotOccupancyOccupants)c+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(t.lotOccupantType)+'">'+cityssm.escapeHTML(t.occupantName)+"</span><br />";i.insertAdjacentHTML("beforeend",'<tr><td class="has-width-1">'+a+'</td><td><a class="has-text-weight-bold" href="'+t+"/lotOccupancies/"+s.lotOccupancyId+'">'+cityssm.escapeHTML(s.occupancyType)+"</a></td><td>"+(s.lotName?cityssm.escapeHTML(s.lotName):'<span class="has-text-grey">(No '+cityssm.escapeHTML(exports.aliases.lot)+")</span>")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(s.mapName||"")+"</span></td><td>"+s.occupancyStartDateString+"</td><td>"+(s.occupancyEndDate?s.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+c+"</td>"+(e.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+t+"/print/"+e[0]+"/?lotOccupancyId="+s.lotOccupancyId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}s.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th class="has-width-1"></th><th>'+cityssm.escapeHTML(exports.aliases.occupancy)+" Type</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>"+cityssm.escapeHTML(exports.aliases.occupancyStartDate)+"</th><th>End Date</th><th>"+cityssm.escapeHTML(exports.aliases.occupants)+"</th>"+(e.length>0?'<th class="has-width-1"></th>':"")+'</tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(n+1).toString()+" to "+Math.min(a.count,c+n)+" of "+a.count+'</div></div><div class="level-right">'+(n>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(c+n<a.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",s.querySelector("table").append(i),n>0&&s.querySelector("button[data-page='previous']").addEventListener("click",o),c+n<a.count&&s.querySelector("button[data-page='next']").addEventListener("click",l)})},r=()=>{i.value="0",n()},o=()=>{i.value=Math.max(Number.parseInt(i.value,10)-c,0).toString(),n()},l=()=>{i.value=(Number.parseInt(i.value,10)+c).toString(),n()},p=a.querySelectorAll("input, select");for(const t of p)t.addEventListener("change",r);a.addEventListener("submit",t=>{t.preventDefault(),r()}),n()})(); "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=document.querySelector("main").dataset.urlPrefix,a=exports.lotOccupancyPrints,e=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),c=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),n=()=>{const n=Number.parseInt(i.value,10);s.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading '+exports.aliases.occupancies+"...</div>",cityssm.postJSON(t+"/lotOccupancies/doSearchLotOccupancies",e,e=>{if(0===e.lotOccupancies.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase())+" records that meet the search criteria.</p></div>");const i=document.createElement("tbody"),o=cityssm.dateToString(new Date);for(const s of e.lotOccupancies){let e="";e=s.occupancyStartDateString<=o&&(""===s.occupancyEndDateString||s.occupancyEndDateString>=o)?'<span class="has-tooltip-right" data-tooltip="Current '+exports.aliases.occupancy+'"><i class="fas fa-play" aria-label="Current '+exports.aliases.occupancy+'"></i></span>':s.occupancyStartDateString>o?'<span class="has-tooltip-right" data-tooltip="Future '+exports.aliases.occupancy+'"><i class="fas fa-fast-forward" aria-label="Future '+exports.aliases.occupancy+'"></i></span>':'<span class="has-tooltip-right" data-tooltip="Past '+exports.aliases.occupancy+'"><i class="fas fa-stop" aria-label="Past '+exports.aliases.occupancy+'"></i></span>';let c="";for(const t of s.lotOccupancyOccupants)c+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(t.lotOccupantType)+'">'+cityssm.escapeHTML(t.occupantName)+"</span><br />";i.insertAdjacentHTML("beforeend",'<tr><td class="has-width-1">'+e+'</td><td><a class="has-text-weight-bold" href="'+t+"/lotOccupancies/"+s.lotOccupancyId+'">'+cityssm.escapeHTML(s.occupancyType)+"</a></td><td>"+(s.lotName?'<span class="has-tooltip-right" data-tooltip="'+cityssm.escapeHTML(s.lotType)+'">'+cityssm.escapeHTML(s.lotName)+"</span>":'<span class="has-text-grey">(No '+cityssm.escapeHTML(exports.aliases.lot)+")</span>")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(s.mapName||"")+"</span></td><td>"+s.occupancyStartDateString+"</td><td>"+(s.occupancyEndDate?s.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+c+"</td>"+(a.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+t+"/print/"+a[0]+"/?lotOccupancyId="+s.lotOccupancyId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}s.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th class="has-width-1"></th><th>'+cityssm.escapeHTML(exports.aliases.occupancy)+" Type</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>"+cityssm.escapeHTML(exports.aliases.occupancyStartDate)+"</th><th>End Date</th><th>"+cityssm.escapeHTML(exports.aliases.occupants)+"</th>"+(a.length>0?'<th class="has-width-1"></th>':"")+'</tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(n+1).toString()+" to "+Math.min(e.count,c+n)+" of "+e.count+'</div></div><div class="level-right">'+(n>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(c+n<e.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",s.querySelector("table").append(i),n>0&&s.querySelector("button[data-page='previous']").addEventListener("click",l),c+n<e.count&&s.querySelector("button[data-page='next']").addEventListener("click",r)})},o=()=>{i.value="0",n()},l=()=>{i.value=Math.max(Number.parseInt(i.value,10)-c,0).toString(),n()},r=()=>{i.value=(Number.parseInt(i.value,10)+c).toString(),n()},p=e.querySelectorAll("input, select");for(const t of p)t.addEventListener("change",o);e.addEventListener("submit",t=>{t.preventDefault(),o()}),n()})();

View File

@ -177,6 +177,7 @@ export interface LotOccupancy extends Record {
occupancyType?: string; occupancyType?: string;
lotId?: number; lotId?: number;
lotTypeId?: number; lotTypeId?: number;
lotType?: string;
lotName?: string; lotName?: string;
mapId?: number; mapId?: number;
mapName?: string; mapName?: string;

View File

@ -235,6 +235,7 @@ export interface LotOccupancy extends Record {
lotId?: number; lotId?: number;
lotTypeId?: number; lotTypeId?: number;
lotType?: string;
lotName?: string; lotName?: string;
mapId?: number; mapId?: number;