sanitize html

deepsource-autofix-76c6eb20
Dan Gowans 2022-09-22 10:53:27 -04:00
parent f364280f2d
commit 1cbfce9279
9 changed files with 64 additions and 140 deletions

View File

@ -4,8 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
const searchFilterFormElement = document.querySelector("#form--searchFilters");
const searchResultsContainerElement = document.querySelector("#container--searchResults");
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 getLotOccupancies = () => {
const offset = Number.parseInt(offsetElement.value, 10);
@ -21,7 +20,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
searchResultsContainerElement.innerHTML =
'<div class="message is-info">' +
'<p class="message-body">There are no ' +
exports.aliases.occupancy.toLowerCase() +
cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase()) +
" records that meet the search criteria.</p>" +
"</div>";
return;
@ -30,11 +29,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
const nowDateString = cityssm.dateToString(new Date());
for (const lotOccupancy of responseJSON.lotOccupancies) {
let occupancyTimeHTML = "";
if (lotOccupancy.occupancyStartDateString <=
nowDateString &&
if (lotOccupancy.occupancyStartDateString <= nowDateString &&
(lotOccupancy.occupancyEndDateString === "" ||
lotOccupancy.occupancyEndDateString >=
nowDateString)) {
lotOccupancy.occupancyEndDateString >= nowDateString)) {
occupancyTimeHTML =
'<i class="fas fa-play" title="Current ' +
exports.aliases.occupancy +
@ -54,14 +51,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
}
let occupantsHTML = "";
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
occupantsHTML +=
cityssm.escapeHTML(occupant.occupantName) +
"<br />";
occupantsHTML += cityssm.escapeHTML(occupant.occupantName) + "<br />";
}
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
"<td>" +
occupancyTimeHTML +
"</td>" +
("<td>" + occupancyTimeHTML + "</td>") +
("<td>" +
'<a class="has-text-weight-bold" href="' +
urlPrefix +
@ -82,9 +75,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
cityssm.escapeHTML(lotOccupancy.mapName || "") +
"</span>" +
"</td>") +
("<td>" +
lotOccupancy.occupancyStartDateString +
"</td>") +
("<td>" + lotOccupancy.occupancyStartDateString + "</td>") +
("<td>" +
(lotOccupancy.occupancyEndDate
? lotOccupancy.occupancyEndDateString
@ -99,17 +90,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
'<table class="table is-fullwidth is-striped is-hoverable">' +
"<thead><tr>" +
"<th></th>" +
"<th>" +
exports.aliases.occupancy +
" Type</th>" +
"<th>" +
exports.aliases.lot +
"</th>" +
("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") +
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
"<th>Start Date</th>" +
"<th>End Date</th>" +
"<th>" +
exports.aliases.occupants +
"</th>" +
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
"</tr></thead>" +
"<table>" +
'<div class="level">' +
@ -141,9 +126,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
: "") +
"</div>") +
"</div>";
searchResultsContainerElement
.querySelector("table")
.append(resultsTbodyElement);
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
if (offset > 0) {
searchResultsContainerElement
.querySelector("button[data-page='previous']")

View File

@ -17,13 +17,10 @@ declare const cityssm: cityssmGlobal;
) as HTMLElement;
const limit = Number.parseInt(
(document.querySelector("#searchFilter--limit") as HTMLInputElement)
.value,
(document.querySelector("#searchFilter--limit") as HTMLInputElement).value,
10
);
const offsetElement = document.querySelector(
"#searchFilter--offset"
) as HTMLInputElement;
const offsetElement = document.querySelector("#searchFilter--offset") as HTMLInputElement;
const getLotOccupancies = () => {
const offset = Number.parseInt(offsetElement.value, 10);
@ -39,15 +36,12 @@ declare const cityssm: cityssmGlobal;
cityssm.postJSON(
urlPrefix + "/lotOccupancies/doSearchLotOccupancies",
searchFilterFormElement,
(responseJSON: {
count: number;
lotOccupancies: recordTypes.LotOccupancy[];
}) => {
(responseJSON: { count: number; lotOccupancies: recordTypes.LotOccupancy[] }) => {
if (responseJSON.lotOccupancies.length === 0) {
searchResultsContainerElement.innerHTML =
'<div class="message is-info">' +
'<p class="message-body">There are no ' +
exports.aliases.occupancy.toLowerCase() +
cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase()) +
" records that meet the search criteria.</p>" +
"</div>";
@ -62,19 +56,15 @@ declare const cityssm: cityssmGlobal;
let occupancyTimeHTML = "";
if (
lotOccupancy.occupancyStartDateString <=
nowDateString &&
lotOccupancy.occupancyStartDateString <= nowDateString &&
(lotOccupancy.occupancyEndDateString === "" ||
lotOccupancy.occupancyEndDateString >=
nowDateString)
lotOccupancy.occupancyEndDateString >= nowDateString)
) {
occupancyTimeHTML =
'<i class="fas fa-play" title="Current ' +
exports.aliases.occupancy +
'"></i>';
} else if (
lotOccupancy.occupancyStartDateString > nowDateString
) {
} else if (lotOccupancy.occupancyStartDateString > nowDateString) {
occupancyTimeHTML =
'<i class="fas fa-fast-forward" title="Future ' +
exports.aliases.occupancy +
@ -89,26 +79,20 @@ declare const cityssm: cityssmGlobal;
let occupantsHTML = "";
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
occupantsHTML +=
cityssm.escapeHTML(occupant.occupantName) +
"<br />";
occupantsHTML += cityssm.escapeHTML(occupant.occupantName) + "<br />";
}
resultsTbodyElement.insertAdjacentHTML(
"beforeend",
"<tr>" +
"<td>" +
occupancyTimeHTML +
"</td>" +
("<td>" + occupancyTimeHTML + "</td>") +
("<td>" +
'<a class="has-text-weight-bold" href="' +
urlPrefix +
"/lotOccupancies/" +
lotOccupancy.lotOccupancyId +
'">' +
cityssm.escapeHTML(
lotOccupancy.occupancyType as string
) +
cityssm.escapeHTML(lotOccupancy.occupancyType as string) +
"</a>" +
"</td>") +
("<td>" +
@ -122,9 +106,7 @@ declare const cityssm: cityssmGlobal;
cityssm.escapeHTML(lotOccupancy.mapName || "") +
"</span>" +
"</td>") +
("<td>" +
lotOccupancy.occupancyStartDateString +
"</td>") +
("<td>" + lotOccupancy.occupancyStartDateString + "</td>") +
("<td>" +
(lotOccupancy.occupancyEndDate
? lotOccupancy.occupancyEndDateString
@ -141,17 +123,11 @@ declare const cityssm: cityssmGlobal;
'<table class="table is-fullwidth is-striped is-hoverable">' +
"<thead><tr>" +
"<th></th>" +
"<th>" +
exports.aliases.occupancy +
" Type</th>" +
"<th>" +
exports.aliases.lot +
"</th>" +
("<th>" + cityssm.escapeHTML(exports.aliases.occupancy) + " Type</th>") +
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
"<th>Start Date</th>" +
"<th>End Date</th>" +
"<th>" +
exports.aliases.occupants +
"</th>" +
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
"</tr></thead>" +
"<table>" +
'<div class="level">' +
@ -184,17 +160,12 @@ declare const cityssm: cityssmGlobal;
"</div>") +
"</div>";
searchResultsContainerElement
.querySelector("table")
.append(resultsTbodyElement);
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
if (offset > 0) {
searchResultsContainerElement
.querySelector("button[data-page='previous']")
.addEventListener(
"click",
previousAndGetLotOccupancies
);
.addEventListener("click", previousAndGetLotOccupancies);
}
if (limit + offset < responseJSON.count) {
@ -220,21 +191,16 @@ declare const cityssm: cityssmGlobal;
};
const nextAndGetLotOccupancies = () => {
offsetElement.value = (
Number.parseInt(offsetElement.value, 10) + limit
).toString();
offsetElement.value = (Number.parseInt(offsetElement.value, 10) + limit).toString();
getLotOccupancies();
};
const filterElements = searchFilterFormElement.querySelectorAll(
"input, select"
) as NodeListOf<HTMLInputElement | HTMLSelectElement>;
const filterElements = searchFilterFormElement.querySelectorAll("input, select") as NodeListOf<
HTMLInputElement | HTMLSelectElement
>;
for (const filterElement of filterElements) {
filterElement.addEventListener(
"change",
resetOffsetAndGetLotOccupancies
);
filterElement.addEventListener("change", resetOffsetAndGetLotOccupancies);
}
searchFilterFormElement.addEventListener("submit", (formEvent) => {

View File

@ -4,8 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
const searchFilterFormElement = document.querySelector("#form--searchFilters");
const searchResultsContainerElement = document.querySelector("#container--searchResults");
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 getLots = () => {
const offset = Number.parseInt(offsetElement.value, 10);
@ -35,7 +34,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
"/lots/" +
lot.lotId +
'">' +
lot.lotName +
cityssm.escapeHTML(lot.lotName) +
"</a>" +
"</td>") +
("<td>" +
@ -44,14 +43,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
"/maps/" +
lot.mapId +
'">' +
lot.mapName +
(lot.mapName
? cityssm.escapeHTML(lot.mapName)
: '<span class="has-text-grey">(No Name)</span>') +
"</a>" +
"</td>") +
"<td>" +
lot.lotType +
"</td>" +
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
("<td>" +
lot.lotStatus +
cityssm.escapeHTML(lot.lotStatus) +
"<br />" +
(lot.lotOccupancyCount > 0
? '<span class="is-size-7">Currently Occupied</span>'
@ -62,15 +61,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
searchResultsContainerElement.innerHTML =
'<table class="table is-fullwidth is-striped is-hoverable">' +
"<thead><tr>" +
"<th>" +
exports.aliases.lot +
"</th>" +
"<th>" +
exports.aliases.map +
"</th>" +
"<th>" +
exports.aliases.lot +
" Type</th>" +
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
("<th>" + cityssm.escapeHTML(exports.aliases.map) + "</th>") +
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + " Type</th>") +
"<th>Status</th>" +
"</tr></thead>" +
"<table>" +
@ -103,9 +96,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
: "") +
"</div>") +
"</div>";
searchResultsContainerElement
.querySelector("table")
.append(resultsTbodyElement);
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
if (offset > 0) {
searchResultsContainerElement
.querySelector("button[data-page='previous']")

View File

@ -17,13 +17,10 @@ declare const cityssm: cityssmGlobal;
) as HTMLElement;
const limit = Number.parseInt(
(document.querySelector("#searchFilter--limit") as HTMLInputElement)
.value,
(document.querySelector("#searchFilter--limit") as HTMLInputElement).value,
10
);
const offsetElement = document.querySelector(
"#searchFilter--offset"
) as HTMLInputElement;
const offsetElement = document.querySelector("#searchFilter--offset") as HTMLInputElement;
const getLots = () => {
const offset = Number.parseInt(offsetElement.value, 10);
@ -63,7 +60,7 @@ declare const cityssm: cityssmGlobal;
"/lots/" +
lot.lotId +
'">' +
lot.lotName +
cityssm.escapeHTML(lot.lotName) +
"</a>" +
"</td>") +
("<td>" +
@ -72,14 +69,14 @@ declare const cityssm: cityssmGlobal;
"/maps/" +
lot.mapId +
'">' +
lot.mapName +
(lot.mapName
? cityssm.escapeHTML(lot.mapName)
: '<span class="has-text-grey">(No Name)</span>') +
"</a>" +
"</td>") +
"<td>" +
lot.lotType +
"</td>" +
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
("<td>" +
lot.lotStatus +
cityssm.escapeHTML(lot.lotStatus) +
"<br />" +
(lot.lotOccupancyCount > 0
? '<span class="is-size-7">Currently Occupied</span>'
@ -92,15 +89,9 @@ declare const cityssm: cityssmGlobal;
searchResultsContainerElement.innerHTML =
'<table class="table is-fullwidth is-striped is-hoverable">' +
"<thead><tr>" +
"<th>" +
exports.aliases.lot +
"</th>" +
"<th>" +
exports.aliases.map +
"</th>" +
"<th>" +
exports.aliases.lot +
" Type</th>" +
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + "</th>") +
("<th>" + cityssm.escapeHTML(exports.aliases.map) + "</th>") +
("<th>" + cityssm.escapeHTML(exports.aliases.lot) + " Type</th>") +
"<th>Status</th>" +
"</tr></thead>" +
"<table>" +
@ -134,9 +125,7 @@ declare const cityssm: cityssmGlobal;
"</div>") +
"</div>";
searchResultsContainerElement
.querySelector("table")
.append(resultsTbodyElement);
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
if (offset > 0) {
searchResultsContainerElement
@ -167,15 +156,13 @@ declare const cityssm: cityssmGlobal;
};
const nextAndGetLots = () => {
offsetElement.value = (
Number.parseInt(offsetElement.value, 10) + limit
).toString();
offsetElement.value = (Number.parseInt(offsetElement.value, 10) + limit).toString();
getLots();
};
const filterElements = searchFilterFormElement.querySelectorAll(
"input, select"
) as NodeListOf<HTMLInputElement | HTMLSelectElement>;
const filterElements = searchFilterFormElement.querySelectorAll("input, select") as NodeListOf<
HTMLInputElement | HTMLSelectElement
>;
for (const filterElement of filterElements) {
filterElement.addEventListener("change", resetOffsetAndGetLots);

View File

@ -38,7 +38,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
continue;
}
searchResultCount += 1;
const mapName = map.mapName === "" ? "(No Name)" : map.mapName;
searchResultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
("<td>" +
'<a class="has-text-weight-bold" href="' +
@ -46,7 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
"/maps/" +
map.mapId +
'">' +
cityssm.escapeHTML(mapName) +
cityssm.escapeHTML(map.mapName || "(No Name)") +
"</a><br />" +
cityssm.escapeHTML(map.mapAddress1) +
"</td>") +

View File

@ -62,8 +62,6 @@ declare const cityssm: cityssmGlobal;
searchResultCount += 1;
const mapName = map.mapName === "" ? "(No Name)" : map.mapName;
searchResultsTbodyElement.insertAdjacentHTML(
"beforeend",
"<tr>" +
@ -73,7 +71,7 @@ declare const cityssm: cityssmGlobal;
"/maps/" +
map.mapId +
'">' +
cityssm.escapeHTML(mapName) +
cityssm.escapeHTML(map.mapName || "(No Name)") +
"</a><br />" +
cityssm.escapeHTML(map.mapAddress1) +
"</td>") +

View File

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

View File

@ -1 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),r=document.querySelector("#searchFilter--offset"),i=()=>{const i=Number.parseInt(r.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.lots+"...</div>",cityssm.postJSON(e+"/lots/doSearchLots",t,t=>{if(0===t.lots.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.lots.toLowerCase()+" that meet the search criteria.</p></div>");const r=document.createElement("tbody");for(const s of t.lots)r.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e+"/lots/"+s.lotId+'">'+s.lotName+'</a></td><td><a href="'+e+"/maps/"+s.mapId+'">'+s.mapName+"</a></td><td>"+s.lotType+"</td><td>"+s.lotStatus+"<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"><thead><tr><th>'+exports.aliases.lot+"</th><th>"+exports.aliases.map+"</th><th>"+exports.aliases.lot+' Type</th><th>Status</th></tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(i+1).toString()+" to "+Math.min(t.count,a+i)+" of "+t.count+'</div></div><div class="level-right">'+(i>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>':"")+(a+i<t.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(r),i>0&&s.querySelector("button[data-page='previous']").addEventListener("click",o),a+i<t.count&&s.querySelector("button[data-page='next']").addEventListener("click",n)})},l=()=>{r.value="0",i()},o=()=>{r.value=Math.max(Number.parseInt(r.value,10)-a,0).toString(),i()},n=()=>{r.value=(Number.parseInt(r.value,10)+a).toString(),i()},d=t.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",l);t.addEventListener("submit",e=>{e.preventDefault(),l()}),i()})();
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),r=()=>{const r=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.lots+"...</div>",cityssm.postJSON(e+"/lots/doSearchLots",t,t=>{if(0===t.lots.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.lots.toLowerCase()+" that meet the search criteria.</p></div>");const i=document.createElement("tbody");for(const s of t.lots)i.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName)+'</a></td><td><a href="'+e+"/maps/"+s.mapId+'">'+(s.mapName?cityssm.escapeHTML(s.mapName):'<span class="has-text-grey">(No Name)</span>')+"</a></td><td>"+cityssm.escapeHTML(s.lotType)+"</td><td>"+cityssm.escapeHTML(s.lotStatus)+"<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"><thead><tr><th>'+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>"+cityssm.escapeHTML(exports.aliases.map)+"</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+' Type</th><th>Status</th></tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(r+1).toString()+" to "+Math.min(t.count,a+r)+" of "+t.count+'</div></div><div class="level-right">'+(r>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>':"")+(a+r<t.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),r>0&&s.querySelector("button[data-page='previous']").addEventListener("click",o),a+r<t.count&&s.querySelector("button[data-page='next']").addEventListener("click",n)})},l=()=>{i.value="0",r()},o=()=>{i.value=Math.max(Number.parseInt(i.value,10)-a,0).toString(),r()},n=()=>{i.value=(Number.parseInt(i.value,10)+a).toString(),r()},c=t.querySelectorAll("input, select");for(const e of c)e.addEventListener("change",l);t.addEventListener("submit",e=>{e.preventDefault(),l()}),r()})();

View File

@ -1 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=exports.maps,a=document.querySelector("#searchFilter--map"),s=document.querySelector("#container--searchResults"),r=()=>{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.maps+"...</div>";let r=0;const i=document.createElement("tbody"),o=a.value.trim().toLowerCase().split(" ");for(const a of t){const t=(a.mapName+" "+a.mapDescription+" "+a.mapAddress1+" "+a.mapAddress2).toLowerCase();let s=!0;for(const e of o)if(!t.includes(e)){s=!1;break}if(!s)continue;r+=1;const c=""===a.mapName?"(No Name)":a.mapName;i.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e+"/maps/"+a.mapId+'">'+cityssm.escapeHTML(c)+"</a><br />"+cityssm.escapeHTML(a.mapAddress1)+'</td><td class="has-text-centered">'+(a.mapLatitude&&a.mapLongitude?'<i class="fas fa-map-marker-alt" title="Has Geographic Coordinates"></i>':"")+'</td><td class="has-text-centered">'+(a.mapSVG?'<i class="fas fa-image" title="Has Image"></i>':"")+'</td><td class="has-text-right"><a href="'+e+"/lots?mapId="+a.mapId+'">'+a.lotCount+"</a></td></tr>")}if(s.innerHTML="",0===r)s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.maps.toLowerCase()+" that meet the search criteria.</p></div>";else{const e=document.createElement("table");e.className="table is-fullwidth is-striped is-hoverable",e.innerHTML="<thead><tr><th>"+exports.aliases.map+'</th><th class="has-text-centered">Coordinates</th><th class="has-text-centered">Image</th><th class="has-text-right">'+exports.aliases.lot+" Count</th></tr></thead>",e.append(i),s.append(e)}};a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})();
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=exports.maps,a=document.querySelector("#searchFilter--map"),s=document.querySelector("#container--searchResults"),r=()=>{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.maps+"...</div>";let r=0;const i=document.createElement("tbody"),d=a.value.trim().toLowerCase().split(" ");for(const a of t){const t=(a.mapName+" "+a.mapDescription+" "+a.mapAddress1+" "+a.mapAddress2).toLowerCase();let s=!0;for(const e of d)if(!t.includes(e)){s=!1;break}s&&(r+=1,i.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e+"/maps/"+a.mapId+'">'+cityssm.escapeHTML(a.mapName||"(No Name)")+"</a><br />"+cityssm.escapeHTML(a.mapAddress1)+'</td><td class="has-text-centered">'+(a.mapLatitude&&a.mapLongitude?'<i class="fas fa-map-marker-alt" title="Has Geographic Coordinates"></i>':"")+'</td><td class="has-text-centered">'+(a.mapSVG?'<i class="fas fa-image" title="Has Image"></i>':"")+'</td><td class="has-text-right"><a href="'+e+"/lots?mapId="+a.mapId+'">'+a.lotCount+"</a></td></tr>"))}if(s.innerHTML="",0===r)s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.maps.toLowerCase()+" that meet the search criteria.</p></div>";else{const e=document.createElement("table");e.className="table is-fullwidth is-striped is-hoverable",e.innerHTML="<thead><tr><th>"+exports.aliases.map+'</th><th class="has-text-centered">Coordinates</th><th class="has-text-centered">Image</th><th class="has-text-right">'+exports.aliases.lot+" Count</th></tr></thead>",e.append(i),s.append(e)}};a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})();