diff --git a/public-typescript/adminLotTypes.js b/public-typescript/adminLotTypes.js index e7a9cdfd..07758065 100644 --- a/public-typescript/adminLotTypes.js +++ b/public-typescript/adminLotTypes.js @@ -297,7 +297,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); containerElement.innerHTML = ""; if (lotTypes.length === 0) { containerElement.insertAdjacentHTML("afterbegin", `
There are no active ${exports.aliases.lot.toLowerCase()} types.

+

There are no active ${los.escapedAliases.lot} types.

`); return; } diff --git a/public-typescript/adminLotTypes.ts b/public-typescript/adminLotTypes.ts index b53a56f7..38b062b9 100644 --- a/public-typescript/adminLotTypes.ts +++ b/public-typescript/adminLotTypes.ts @@ -472,7 +472,7 @@ declare const bulmaJS: BulmaJS; containerElement.insertAdjacentHTML( "afterbegin", `
There are no active ${exports.aliases.lot.toLowerCase()} types.

+

There are no active ${los.escapedAliases.lot} types.

` ); diff --git a/public-typescript/lotEdit.js b/public-typescript/lotEdit.js index 5dcb3726..97ee3304 100644 --- a/public-typescript/lotEdit.js +++ b/public-typescript/lotEdit.js @@ -2,6 +2,7 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { + var _a; const los = exports.los; const lotId = document.querySelector("#lot--lotId").value; const isCreate = lotId === ""; @@ -39,39 +40,35 @@ Object.defineProperty(exports, "__esModule", { value: true }); formInputElement.addEventListener("change", los.setUnsavedChanges); } los.initializeUnlockFieldButtons(formElement); - if (!isCreate) { - document.querySelector("#button--deleteLot").addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); - const doDelete = () => { - cityssm.postJSON(los.urlPrefix + "/lots/doDeleteLot", { - lotId - }, (responseJSON) => { - if (responseJSON.success) { - cityssm.disableNavBlocker(); - window.location.href = los.urlPrefix + "/lots/?t=" + Date.now(); - } - else { - bulmaJS.alert({ - title: "Error Deleting " + exports.aliases.lot, - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } - }); - }; - bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot, - message: "Are you sure you want to delete this " + - exports.aliases.lot.toLowerCase() + - "?", - contextualColorName: "warning", - okButton: { - text: "Yes, Delete " + exports.aliases.lot, - callbackFunction: doDelete + (_a = document.querySelector("#button--deleteLot")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + const doDelete = () => { + cityssm.postJSON(los.urlPrefix + "/lots/doDeleteLot", { + lotId + }, (responseJSON) => { + if (responseJSON.success) { + cityssm.disableNavBlocker(); + window.location.href = los.urlPrefix + "/lots/?t=" + Date.now(); + } + else { + bulmaJS.alert({ + title: `Error Deleting ${los.escapedAliases.Lot}`, + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); } }); + }; + bulmaJS.confirm({ + title: "Delete " + exports.aliases.lot, + message: `Are you sure you want to delete this ${los.escapedAliases.lot}?`, + contextualColorName: "warning", + okButton: { + text: `Yes, Delete ${los.escapedAliases.Lot}`, + callbackFunction: doDelete + } }); - } + }); // Lot Type const lotTypeIdElement = document.querySelector("#lot--lotTypeId"); if (isCreate) { @@ -194,10 +191,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.openHtmlModal("lot-editComment", { onshow: (modalElement) => { los.populateAliases(modalElement); - modalElement.querySelector("#lotCommentEdit--lotId").value = - lotId; - modalElement.querySelector("#lotCommentEdit--lotCommentId").value = lotCommentId.toString(); - modalElement.querySelector("#lotCommentEdit--lotComment").value = lotComment.lotComment; + modalElement.querySelector("#lotCommentEdit--lotId").value = lotId; + modalElement.querySelector("#lotCommentEdit--lotCommentId").value = + lotCommentId.toString(); + modalElement.querySelector("#lotCommentEdit--lotComment").value = + lotComment.lotComment; const lotCommentDateStringElement = modalElement.querySelector("#lotCommentEdit--lotCommentDateString"); lotCommentDateStringElement.value = lotComment.lotCommentDateString; const currentDateString = cityssm.dateToString(new Date()); @@ -293,12 +291,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); "") + "" + ""); - tableRowElement - .querySelector(".button--edit") - .addEventListener("click", openEditLotComment); - tableRowElement - .querySelector(".button--delete") - .addEventListener("click", deleteLotComment); + tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotComment); + tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotComment); tableElement.querySelector("tbody").append(tableRowElement); } containerElement.innerHTML = ""; @@ -319,8 +313,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.openHtmlModal("lot-addComment", { onshow(modalElement) { los.populateAliases(modalElement); - modalElement.querySelector("#lotCommentAdd--lotId").value = - lotId; + modalElement.querySelector("#lotCommentAdd--lotId").value = lotId; modalElement.querySelector("form").addEventListener("submit", doAddComment); }, onshown(modalElement, closeModalFunction) { diff --git a/public-typescript/lotEdit.ts b/public-typescript/lotEdit.ts index a015e2a3..8dcd742f 100644 --- a/public-typescript/lotEdit.ts +++ b/public-typescript/lotEdit.ts @@ -62,54 +62,47 @@ declare const bulmaJS: BulmaJS; los.initializeUnlockFieldButtons(formElement); - if (!isCreate) { - document.querySelector("#button--deleteLot")!.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); + document.querySelector("#button--deleteLot")?.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); - const doDelete = () => { - cityssm.postJSON( - los.urlPrefix + "/lots/doDeleteLot", - { - lotId - }, - (responseJSON: { success: boolean; errorMessage?: string }) => { - if (responseJSON.success) { - cityssm.disableNavBlocker(); - window.location.href = los.urlPrefix + "/lots/?t=" + Date.now(); - } else { - bulmaJS.alert({ - title: "Error Deleting " + exports.aliases.lot, - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } + const doDelete = () => { + cityssm.postJSON( + los.urlPrefix + "/lots/doDeleteLot", + { + lotId + }, + (responseJSON: { success: boolean; errorMessage?: string }) => { + if (responseJSON.success) { + cityssm.disableNavBlocker(); + window.location.href = los.urlPrefix + "/lots/?t=" + Date.now(); + } else { + bulmaJS.alert({ + title: `Error Deleting ${los.escapedAliases.Lot}`, + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); } - ); - }; - - bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot, - message: - "Are you sure you want to delete this " + - exports.aliases.lot.toLowerCase() + - "?", - contextualColorName: "warning", - okButton: { - text: "Yes, Delete " + exports.aliases.lot, - callbackFunction: doDelete } - }); + ); + }; + + bulmaJS.confirm({ + title: "Delete " + exports.aliases.lot, + message: `Are you sure you want to delete this ${los.escapedAliases.lot}?`, + contextualColorName: "warning", + okButton: { + text: `Yes, Delete ${los.escapedAliases.Lot}`, + callbackFunction: doDelete + } }); - } + }); // Lot Type const lotTypeIdElement = document.querySelector("#lot--lotTypeId") as HTMLSelectElement; if (isCreate) { - const lotFieldsContainerElement = document.querySelector( - "#container--lotFields" - ) as HTMLElement; + const lotFieldsContainerElement = document.querySelector("#container--lotFields") as HTMLElement; lotTypeIdElement.addEventListener("change", () => { if (lotTypeIdElement.value === "") { @@ -180,15 +173,11 @@ declare const bulmaJS: BulmaJS; `; - const selectElement = fieldElement.querySelector( - "select" - ) as HTMLSelectElement; + const selectElement = fieldElement.querySelector("select") as HTMLSelectElement; selectElement.required = lotTypeField.isRequired as boolean; - const optionValues = (lotTypeField.lotTypeFieldValues as string).split( - "\n" - ); + const optionValues = (lotTypeField.lotTypeFieldValues as string).split("\n"); for (const optionValue of optionValues) { const optionElement = document.createElement("option"); @@ -284,16 +273,13 @@ declare const bulmaJS: BulmaJS; onshow: (modalElement) => { los.populateAliases(modalElement); - (modalElement.querySelector("#lotCommentEdit--lotId") as HTMLInputElement).value = - lotId; + (modalElement.querySelector("#lotCommentEdit--lotId") as HTMLInputElement).value = lotId; - ( - modalElement.querySelector("#lotCommentEdit--lotCommentId") as HTMLInputElement - ).value = lotCommentId.toString(); + (modalElement.querySelector("#lotCommentEdit--lotCommentId") as HTMLInputElement).value = + lotCommentId.toString(); - ( - modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLInputElement - ).value = lotComment.lotComment!; + (modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLInputElement).value = + lotComment.lotComment!; const lotCommentDateStringElement = modalElement.querySelector( "#lotCommentEdit--lotCommentDateString" @@ -309,9 +295,7 @@ declare const bulmaJS: BulmaJS; : lotComment.lotCommentDateString!; ( - modalElement.querySelector( - "#lotCommentEdit--lotCommentTimeString" - ) as HTMLInputElement + modalElement.querySelector("#lotCommentEdit--lotCommentTimeString") as HTMLInputElement ).value = lotComment.lotCommentTimeString!; }, onshown: (modalElement, closeModalFunction) => { @@ -320,9 +304,7 @@ declare const bulmaJS: BulmaJS; los.initializeDatePickers(modalElement); // los.initializeTimePickers(modalElement); - ( - modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLTextAreaElement - ).focus(); + (modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLTextAreaElement).focus(); editFormElement = modalElement.querySelector("form")!; editFormElement.addEventListener("submit", editComment); @@ -425,13 +407,9 @@ declare const bulmaJS: BulmaJS; "" + ""); - tableRowElement - .querySelector(".button--edit")! - .addEventListener("click", openEditLotComment); + tableRowElement.querySelector(".button--edit")!.addEventListener("click", openEditLotComment); - tableRowElement - .querySelector(".button--delete")! - .addEventListener("click", deleteLotComment); + tableRowElement.querySelector(".button--delete")!.addEventListener("click", deleteLotComment); tableElement.querySelector("tbody")!.append(tableRowElement); } @@ -462,16 +440,13 @@ declare const bulmaJS: BulmaJS; cityssm.openHtmlModal("lot-addComment", { onshow(modalElement) { los.populateAliases(modalElement); - (modalElement.querySelector("#lotCommentAdd--lotId") as HTMLInputElement).value = - lotId; + (modalElement.querySelector("#lotCommentAdd--lotId") as HTMLInputElement).value = lotId; modalElement.querySelector("form")!.addEventListener("submit", doAddComment); }, onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); addCommentCloseModalFunction = closeModalFunction; - ( - modalElement.querySelector("#lotCommentAdd--lotComment") as HTMLTextAreaElement - ).focus(); + (modalElement.querySelector("#lotCommentAdd--lotComment") as HTMLTextAreaElement).focus(); }, onremoved() { bulmaJS.toggleHtmlClipped(); diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index bd6a3ec4..4b1230b7 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -78,7 +78,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.confirm({ - title: "Copy " + los.escapedAliases.Occupancy + " Record as New", + title: `Copy ${los.escapedAliases.Occupancy} Record as New`, message: "Are you sure you want to copy this record to a new record?", contextualColorName: "info", okButton: { diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js index b482e6c8..d1288cb7 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js @@ -78,7 +78,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.confirm({ - title: "Copy " + los.escapedAliases.Occupancy + " Record as New", + title: `Copy ${los.escapedAliases.Occupancy} Record as New`, message: "Are you sure you want to copy this record to a new record?", contextualColorName: "info", okButton: { diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts index 45a4a748..6bd636ff 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts @@ -101,7 +101,7 @@ declare const bulmaJS: BulmaJS; }); } else { bulmaJS.confirm({ - title: "Copy " + los.escapedAliases.Occupancy + " Record as New", + title: `Copy ${los.escapedAliases.Occupancy} Record as New`, message: "Are you sure you want to copy this record to a new record?", contextualColorName: "info", okButton: { diff --git a/public-typescript/lotOccupancySearch.js b/public-typescript/lotOccupancySearch.js index 0fffd4ae..3f8646ed 100644 --- a/public-typescript/lotOccupancySearch.js +++ b/public-typescript/lotOccupancySearch.js @@ -54,9 +54,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ('' + occupancyTimeHTML + "") + ("" + '' + cityssm.escapeHTML(lotOccupancy.occupancyType) + "" + @@ -66,9 +64,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ? '' + cityssm.escapeHTML(lotOccupancy.lotName) + "" diff --git a/public-typescript/lotOccupancySearch.ts b/public-typescript/lotOccupancySearch.ts index 32a40c8b..8aae4705 100644 --- a/public-typescript/lotOccupancySearch.ts +++ b/public-typescript/lotOccupancySearch.ts @@ -81,9 +81,7 @@ declare const cityssm: cityssmGlobal; ('' + occupancyTimeHTML + "") + ("" + '' + cityssm.escapeHTML(lotOccupancy.occupancyType as string) + "" + @@ -93,9 +91,7 @@ declare const cityssm: cityssmGlobal; ? '' + cityssm.escapeHTML(lotOccupancy.lotName) + "" diff --git a/public-typescript/lotSearch.js b/public-typescript/lotSearch.js index 0e4e0141..2f5cf91f 100644 --- a/public-typescript/lotSearch.js +++ b/public-typescript/lotSearch.js @@ -20,18 +20,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); resultsTbodyElement.insertAdjacentHTML("beforeend", "" + ("" + '' + cityssm.escapeHTML(lot.lotName || "") + "" + "") + ("" + '' + (lot.mapName ? cityssm.escapeHTML(lot.mapName) diff --git a/public-typescript/lotSearch.ts b/public-typescript/lotSearch.ts index 07683d36..d5055e8e 100644 --- a/public-typescript/lotSearch.ts +++ b/public-typescript/lotSearch.ts @@ -37,18 +37,14 @@ declare const cityssm: cityssmGlobal; "" + ("" + '' + cityssm.escapeHTML(lot.lotName || "") + "" + "") + ("" + '' + (lot.mapName ? cityssm.escapeHTML(lot.mapName) diff --git a/public-typescript/main.js b/public-typescript/main.js index 17729670..dd647972 100644 --- a/public-typescript/main.js +++ b/public-typescript/main.js @@ -19,6 +19,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); function hasUnsavedChanges() { return _hasUnsavedChanges; } + /* + * Mapping + */ function highlightMap(mapContainerElement, mapKey, contextualClass) { // Search for ID let svgId = mapKey; @@ -272,6 +275,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); WorkOrderCloseDate: cityssm.escapeHTML(exports.aliases.workOrderCloseDate), workOrderCloseDate: cityssm.escapeHTML(exports.aliases.workOrderCloseDate.toLowerCase()) }); + /* + * Colours + */ const hues = ["red", "green", "orange", "blue", "pink", "yellow", "purple"]; const luminosity = ["bright", "light", "dark"]; function getRandomColor(seedString) { @@ -343,11 +349,35 @@ Object.defineProperty(exports, "__esModule", { value: true }); "") + ""); } + /* + * URLs + */ + const urlPrefix = document.querySelector("main").dataset.urlPrefix; + function getMapURL(mapId, edit = false, time = false) { + return urlPrefix + "/maps/" + mapId + (edit ? "/edit" : "") + (time ? "/?t=" + Date.now() : ""); + } + function getLotURL(lotId, edit = false, time = false) { + return urlPrefix + "/lots/" + lotId + (edit ? "/edit" : "") + (time ? "/?t=" + Date.now() : ""); + } + function getLotOccupancyURL(lotOccupancyId, edit = false, time = false) { + return (urlPrefix + + "/lotOccupancies/" + + lotOccupancyId + + (edit ? "/edit" : "") + + (time ? "/?t=" + Date.now() : "")); + } + function getWorkOrderURL(workOrderId, edit = false, time = false) { + return (urlPrefix + + "/workOrders/" + + workOrderId + + (edit ? "/edit" : "") + + (time ? "/?t=" + Date.now() : "")); + } /* * Declare LOS */ const los = { - urlPrefix: document.querySelector("main").dataset.urlPrefix, + urlPrefix, apiKey: document.querySelector("main").dataset.apiKey, highlightMap, initializeUnlockFieldButtons, @@ -360,7 +390,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); hasUnsavedChanges, getMoveUpDownButtonFieldHTML, getLoadingParagraphHTML, - getSearchResultsPagerHTML + getSearchResultsPagerHTML, + getMapURL, + getLotURL, + getLotOccupancyURL, + getWorkOrderURL }; exports.los = los; })(); diff --git a/public-typescript/main.ts b/public-typescript/main.ts index 43caa9ad..e018f732 100644 --- a/public-typescript/main.ts +++ b/public-typescript/main.ts @@ -31,6 +31,10 @@ declare const bulmaJS: BulmaJS; return _hasUnsavedChanges; } + /* + * Mapping + */ + function highlightMap( mapContainerElement: HTMLElement, mapKey: string, @@ -88,8 +92,7 @@ declare const bulmaJS: BulmaJS; } function initializeUnlockFieldButtons(containerElement: HTMLElement): void { - const unlockFieldButtonElements = - containerElement.querySelectorAll(".is-unlock-field-button"); + const unlockFieldButtonElements = containerElement.querySelectorAll(".is-unlock-field-button"); for (const unlockFieldButtonElement of unlockFieldButtonElements) { unlockFieldButtonElement.addEventListener("click", unlockField); @@ -265,9 +268,7 @@ declare const bulmaJS: BulmaJS; */ function populateAliases(containerElement: HTMLElement): void { - const aliasElements = containerElement.querySelectorAll( - ".alias" - ) as NodeListOf; + const aliasElements = containerElement.querySelectorAll(".alias") as NodeListOf; for (const aliasElement of aliasElements) { switch (aliasElement.dataset.alias) { @@ -329,9 +330,7 @@ declare const bulmaJS: BulmaJS; occupants: cityssm.escapeHTML(exports.aliases.occupants.toLowerCase()), ExternalReceiptNumber: cityssm.escapeHTML(exports.aliases.externalReceiptNumber), - externalReceiptNumber: cityssm.escapeHTML( - exports.aliases.externalReceiptNumber.toLowerCase() - ), + externalReceiptNumber: cityssm.escapeHTML(exports.aliases.externalReceiptNumber.toLowerCase()), OccupancyStartDate: cityssm.escapeHTML(exports.aliases.occupancyStartDate), occupancyStartDate: cityssm.escapeHTML(exports.aliases.occupancyStartDate.toLowerCase()), @@ -343,6 +342,10 @@ declare const bulmaJS: BulmaJS; workOrderCloseDate: cityssm.escapeHTML(exports.aliases.workOrderCloseDate.toLowerCase()) }); + /* + * Colours + */ + const hues = ["red", "green", "orange", "blue", "pink", "yellow", "purple"]; const luminosity = ["bright", "light", "dark"]; @@ -357,9 +360,7 @@ declare const bulmaJS: BulmaJS; seed: actualSeedString + actualSeedString, hue: hues[actualSeedString.codePointAt(actualSeedString.length - 1)! % hues.length], luminosity: - luminosity[ - actualSeedString.codePointAt(actualSeedString.length - 2)! % luminosity.length - ] + luminosity[actualSeedString.codePointAt(actualSeedString.length - 2)! % luminosity.length] }); } @@ -431,12 +432,46 @@ declare const bulmaJS: BulmaJS; ); } + /* + * URLs + */ + + const urlPrefix = document.querySelector("main")!.dataset.urlPrefix!; + + function getMapURL(mapId: number | string, edit = false, time = false) { + return urlPrefix + "/maps/" + mapId + (edit ? "/edit" : "") + (time ? "/?t=" + Date.now() : ""); + } + + function getLotURL(lotId: number | string, edit = false, time = false) { + return urlPrefix + "/lots/" + lotId + (edit ? "/edit" : "") + (time ? "/?t=" + Date.now() : ""); + } + + function getLotOccupancyURL(lotOccupancyId: number | string, edit = false, time = false) { + return ( + urlPrefix + + "/lotOccupancies/" + + lotOccupancyId + + (edit ? "/edit" : "") + + (time ? "/?t=" + Date.now() : "") + ); + } + + function getWorkOrderURL(workOrderId: number | string, edit = false, time = false) { + return ( + urlPrefix + + "/workOrders/" + + workOrderId + + (edit ? "/edit" : "") + + (time ? "/?t=" + Date.now() : "") + ); + } + /* * Declare LOS */ const los: globalTypes.LOS = { - urlPrefix: document.querySelector("main")!.dataset.urlPrefix!, + urlPrefix, apiKey: document.querySelector("main")!.dataset.apiKey!, highlightMap, initializeUnlockFieldButtons, @@ -453,7 +488,12 @@ declare const bulmaJS: BulmaJS; getMoveUpDownButtonFieldHTML, getLoadingParagraphHTML, - getSearchResultsPagerHTML + getSearchResultsPagerHTML, + + getMapURL, + getLotURL, + getLotOccupancyURL, + getWorkOrderURL }; exports.los = los; diff --git a/public-typescript/mapEdit.js b/public-typescript/mapEdit.js index caa33582..40f3acc2 100644 --- a/public-typescript/mapEdit.js +++ b/public-typescript/mapEdit.js @@ -2,6 +2,7 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { + var _a; const los = exports.los; const mapId = document.querySelector("#map--mapId").value; const isCreate = mapId === ""; @@ -12,8 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (responseJSON.success) { cityssm.disableNavBlocker(); if (isCreate) { - window.location.href = - los.urlPrefix + "/maps/" + responseJSON.mapId + "/edit"; + window.location.href = los.urlPrefix + "/maps/" + responseJSON.mapId + "/edit"; } else { bulmaJS.alert({ @@ -36,34 +36,32 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const inputElement of inputElements) { inputElement.addEventListener("change", cityssm.enableNavBlocker); } - if (!isCreate) { - document.querySelector("#button--deleteMap").addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); - function doDelete() { - cityssm.postJSON(los.urlPrefix + "/maps/doDeleteMap", { - mapId - }, (responseJSON) => { - if (responseJSON.success) { - window.location.href = los.urlPrefix + "/maps?t=" + Date.now(); - } - else { - bulmaJS.alert({ - title: "Error Deleting " + exports.aliases.map, - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } - }); - } - bulmaJS.confirm({ - title: "Delete " + exports.aliases.map, - message: `Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`, - contextualColorName: "warning", - okButton: { - text: `Yes, Delete ${exports.aliases.map}`, - callbackFunction: doDelete + (_a = document.querySelector("#button--deleteMap")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + function doDelete() { + cityssm.postJSON(los.urlPrefix + "/maps/doDeleteMap", { + mapId + }, (responseJSON) => { + if (responseJSON.success) { + window.location.href = los.urlPrefix + "/maps?t=" + Date.now(); + } + else { + bulmaJS.alert({ + title: "Error Deleting " + exports.aliases.map, + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); } }); + } + bulmaJS.confirm({ + title: "Delete " + exports.aliases.map, + message: `Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`, + contextualColorName: "warning", + okButton: { + text: `Yes, Delete ${exports.aliases.map}`, + callbackFunction: doDelete + } }); - } + }); })(); diff --git a/public-typescript/mapEdit.ts b/public-typescript/mapEdit.ts index 75700dcd..50525fe7 100644 --- a/public-typescript/mapEdit.ts +++ b/public-typescript/mapEdit.ts @@ -27,8 +27,7 @@ declare const bulmaJS: BulmaJS; cityssm.disableNavBlocker(); if (isCreate) { - window.location.href = - los.urlPrefix + "/maps/" + responseJSON.mapId + "/edit"; + window.location.href = los.urlPrefix + "/maps/" + responseJSON.mapId + "/edit"; } else { bulmaJS.alert({ message: exports.aliases.map + " Updated Successfully", @@ -56,40 +55,37 @@ declare const bulmaJS: BulmaJS; inputElement.addEventListener("change", cityssm.enableNavBlocker); } - if (!isCreate) { - document.querySelector("#button--deleteMap")!.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); + document.querySelector("#button--deleteMap")?.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); - function doDelete() { - cityssm.postJSON( - los.urlPrefix + "/maps/doDeleteMap", - { - mapId - }, - (responseJSON: { success: boolean; errorMessage?: string; }) => { - if (responseJSON.success) { - window.location.href = los.urlPrefix + "/maps?t=" + Date.now(); - } else { - bulmaJS.alert({ - title: "Error Deleting " + exports.aliases.map, - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } + function doDelete() { + cityssm.postJSON( + los.urlPrefix + "/maps/doDeleteMap", + { + mapId + }, + (responseJSON: { success: boolean; errorMessage?: string }) => { + if (responseJSON.success) { + window.location.href = los.urlPrefix + "/maps?t=" + Date.now(); + } else { + bulmaJS.alert({ + title: "Error Deleting " + exports.aliases.map, + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); } - ); - } - - bulmaJS.confirm({ - title: "Delete " + exports.aliases.map, - message: - `Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`, - contextualColorName: "warning", - okButton: { - text: `Yes, Delete ${exports.aliases.map}`, - callbackFunction: doDelete } - }); + ); + } + + bulmaJS.confirm({ + title: "Delete " + exports.aliases.map, + message: `Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`, + contextualColorName: "warning", + okButton: { + text: `Yes, Delete ${exports.aliases.map}`, + callbackFunction: doDelete + } }); - } + }); })(); diff --git a/public-typescript/mapSearch.js b/public-typescript/mapSearch.js index 4836be2c..8d3af172 100644 --- a/public-typescript/mapSearch.js +++ b/public-typescript/mapSearch.js @@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const searchFilterElement = document.querySelector("#searchFilter--map"); const searchResultsContainerElement = document.querySelector("#container--searchResults"); function renderResults() { - searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${exports.aliases.maps}...`); + searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${los.escapedAliases.Maps}...`); let searchResultCount = 0; const searchResultsTbodyElement = document.createElement("tbody"); const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" "); diff --git a/public-typescript/mapSearch.ts b/public-typescript/mapSearch.ts index 98ec80c0..3d5db3e5 100644 --- a/public-typescript/mapSearch.ts +++ b/public-typescript/mapSearch.ts @@ -18,7 +18,7 @@ declare const cityssm: cityssmGlobal; function renderResults(): void { searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML( - `Loading ${exports.aliases.maps}...` + `Loading ${los.escapedAliases.Maps}...` ); let searchResultCount = 0; diff --git a/public-typescript/workOrderEdit.js b/public-typescript/workOrderEdit.js index 178cf93e..d6fa60bf 100644 --- a/public-typescript/workOrderEdit.js +++ b/public-typescript/workOrderEdit.js @@ -2,6 +2,7 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { + var _a, _b; const los = exports.los; const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value; const isCreate = workOrderId === ""; @@ -14,8 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (responseJSON.success) { cityssm.disableNavBlocker(); if (isCreate) { - window.location.href = - los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit"; + window.location.href = los.getWorkOrderURL(responseJSON.workOrderId, true); } else { bulmaJS.alert({ @@ -73,19 +73,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } let workOrderMilestones; - if (!isCreate) { - document.querySelector("#button--closeWorkOrder").addEventListener("click", () => { - const hasOpenMilestones = workOrderMilestones.some((milestone) => { - return !milestone.workOrderMilestoneCompletionDate; - }); - if (hasOpenMilestones) { - bulmaJS.alert({ - title: "Outstanding Milestones", - message: `You cannot close a work order with outstanding milestones. + (_a = document.querySelector("#button--closeWorkOrder")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", () => { + const hasOpenMilestones = workOrderMilestones.some((milestone) => { + return !milestone.workOrderMilestoneCompletionDate; + }); + if (hasOpenMilestones) { + bulmaJS.alert({ + title: "Outstanding Milestones", + message: `You cannot close a work order with outstanding milestones. Either complete the outstanding milestones, or remove them from the work order.`, - contextualColorName: "warning" - }); - /* + contextualColorName: "warning" + }); + /* // Disable closing work orders with open milestones bulmaJS.confirm({ title: "Close Work Order with Outstanding Milestones", @@ -98,32 +97,31 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); */ - } - else { - bulmaJS.confirm({ - title: "Close Work Order", - message: "Are you sure you want to close this work order?", - contextualColorName: "info", - okButton: { - text: "Yes, Close Work Order", - callbackFunction: doClose - } - }); - } - }); - document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); + } + else { bulmaJS.confirm({ - title: "Delete Work Order", - message: "Are you sure you want to delete this work order?", - contextualColorName: "warning", + title: "Close Work Order", + message: "Are you sure you want to close this work order?", + contextualColorName: "info", okButton: { - text: "Yes, Delete Work Order", - callbackFunction: doDelete + text: "Yes, Close Work Order", + callbackFunction: doClose } }); + } + }); + (_b = document.querySelector("#button--deleteWorkOrder")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + bulmaJS.confirm({ + title: "Delete Work Order", + message: "Are you sure you want to delete this work order?", + contextualColorName: "warning", + okButton: { + text: "Yes, Delete Work Order", + callbackFunction: doDelete + } }); - } + }); /* * Related Lots */ @@ -660,6 +658,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); */ "use strict"; /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ + var _a; Object.defineProperty(exports, "__esModule", { value: true }); let workOrderComments = exports.workOrderComments; delete exports.workOrderComments; @@ -825,8 +824,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); } + (_a = document.querySelector("#workOrderComments--add")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", openAddCommentModal); if (!isCreate) { - document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal); renderWorkOrderComments(); } diff --git a/public-typescript/workOrderEdit/workOrderEdit.js b/public-typescript/workOrderEdit/workOrderEdit.js index 8acd7835..2fc93502 100644 --- a/public-typescript/workOrderEdit/workOrderEdit.js +++ b/public-typescript/workOrderEdit/workOrderEdit.js @@ -2,6 +2,7 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { + var _a, _b; const los = exports.los; const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value; const isCreate = workOrderId === ""; @@ -14,8 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (responseJSON.success) { cityssm.disableNavBlocker(); if (isCreate) { - window.location.href = - los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit"; + window.location.href = los.getWorkOrderURL(responseJSON.workOrderId, true); } else { bulmaJS.alert({ @@ -73,19 +73,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } let workOrderMilestones; - if (!isCreate) { - document.querySelector("#button--closeWorkOrder").addEventListener("click", () => { - const hasOpenMilestones = workOrderMilestones.some((milestone) => { - return !milestone.workOrderMilestoneCompletionDate; - }); - if (hasOpenMilestones) { - bulmaJS.alert({ - title: "Outstanding Milestones", - message: `You cannot close a work order with outstanding milestones. + (_a = document.querySelector("#button--closeWorkOrder")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", () => { + const hasOpenMilestones = workOrderMilestones.some((milestone) => { + return !milestone.workOrderMilestoneCompletionDate; + }); + if (hasOpenMilestones) { + bulmaJS.alert({ + title: "Outstanding Milestones", + message: `You cannot close a work order with outstanding milestones. Either complete the outstanding milestones, or remove them from the work order.`, - contextualColorName: "warning" - }); - /* + contextualColorName: "warning" + }); + /* // Disable closing work orders with open milestones bulmaJS.confirm({ title: "Close Work Order with Outstanding Milestones", @@ -98,32 +97,31 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); */ - } - else { - bulmaJS.confirm({ - title: "Close Work Order", - message: "Are you sure you want to close this work order?", - contextualColorName: "info", - okButton: { - text: "Yes, Close Work Order", - callbackFunction: doClose - } - }); - } - }); - document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); + } + else { bulmaJS.confirm({ - title: "Delete Work Order", - message: "Are you sure you want to delete this work order?", - contextualColorName: "warning", + title: "Close Work Order", + message: "Are you sure you want to close this work order?", + contextualColorName: "info", okButton: { - text: "Yes, Delete Work Order", - callbackFunction: doDelete + text: "Yes, Close Work Order", + callbackFunction: doClose } }); + } + }); + (_b = document.querySelector("#button--deleteWorkOrder")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + bulmaJS.confirm({ + title: "Delete Work Order", + message: "Are you sure you want to delete this work order?", + contextualColorName: "warning", + okButton: { + text: "Yes, Delete Work Order", + callbackFunction: doDelete + } }); - } + }); /* * Related Lots */ diff --git a/public-typescript/workOrderEdit/workOrderEdit.ts b/public-typescript/workOrderEdit/workOrderEdit.ts index 832ee1e8..ff1d8ed8 100644 --- a/public-typescript/workOrderEdit/workOrderEdit.ts +++ b/public-typescript/workOrderEdit/workOrderEdit.ts @@ -36,8 +36,7 @@ declare const bulmaJS: BulmaJS; cityssm.disableNavBlocker(); if (isCreate) { - window.location.href = - los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit"; + window.location.href = los.getWorkOrderURL(responseJSON.workOrderId!, true); } else { bulmaJS.alert({ message: "Work Order Updated Successfully", @@ -109,21 +108,20 @@ declare const bulmaJS: BulmaJS; let workOrderMilestones: recordTypes.WorkOrderMilestone[]; - if (!isCreate) { - document.querySelector("#button--closeWorkOrder")!.addEventListener("click", () => { - const hasOpenMilestones = workOrderMilestones.some((milestone) => { - return !milestone.workOrderMilestoneCompletionDate; + document.querySelector("#button--closeWorkOrder")?.addEventListener("click", () => { + const hasOpenMilestones = workOrderMilestones.some((milestone) => { + return !milestone.workOrderMilestoneCompletionDate; + }); + + if (hasOpenMilestones) { + bulmaJS.alert({ + title: "Outstanding Milestones", + message: `You cannot close a work order with outstanding milestones. + Either complete the outstanding milestones, or remove them from the work order.`, + contextualColorName: "warning" }); - if (hasOpenMilestones) { - bulmaJS.alert({ - title: "Outstanding Milestones", - message: `You cannot close a work order with outstanding milestones. - Either complete the outstanding milestones, or remove them from the work order.`, - contextualColorName: "warning" - }); - - /* + /* // Disable closing work orders with open milestones bulmaJS.confirm({ title: "Close Work Order with Outstanding Milestones", @@ -136,33 +134,32 @@ declare const bulmaJS: BulmaJS; } }); */ - } else { - bulmaJS.confirm({ - title: "Close Work Order", - message: "Are you sure you want to close this work order?", - contextualColorName: "info", - okButton: { - text: "Yes, Close Work Order", - callbackFunction: doClose - } - }); - } - }); - - document.querySelector("#button--deleteWorkOrder")!.addEventListener("click", (clickEvent: Event) => { - clickEvent.preventDefault(); - + } else { bulmaJS.confirm({ - title: "Delete Work Order", - message: "Are you sure you want to delete this work order?", - contextualColorName: "warning", + title: "Close Work Order", + message: "Are you sure you want to close this work order?", + contextualColorName: "info", okButton: { - text: "Yes, Delete Work Order", - callbackFunction: doDelete + text: "Yes, Close Work Order", + callbackFunction: doClose } }); + } + }); + + document.querySelector("#button--deleteWorkOrder")?.addEventListener("click", (clickEvent: Event) => { + clickEvent.preventDefault(); + + bulmaJS.confirm({ + title: "Delete Work Order", + message: "Are you sure you want to delete this work order?", + contextualColorName: "warning", + okButton: { + text: "Yes, Delete Work Order", + callbackFunction: doDelete + } }); - } + }); /* * Related Lots diff --git a/public-typescript/workOrderEdit/workOrderEditComments.js b/public-typescript/workOrderEdit/workOrderEditComments.js index 5806af13..c20ce8a1 100644 --- a/public-typescript/workOrderEdit/workOrderEditComments.js +++ b/public-typescript/workOrderEdit/workOrderEditComments.js @@ -1,5 +1,6 @@ "use strict"; /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ +var _a; Object.defineProperty(exports, "__esModule", { value: true }); let workOrderComments = exports.workOrderComments; delete exports.workOrderComments; @@ -165,7 +166,7 @@ function openAddCommentModal() { } }); } +(_a = document.querySelector("#workOrderComments--add")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", openAddCommentModal); if (!isCreate) { - document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal); renderWorkOrderComments(); } diff --git a/public-typescript/workOrderEdit/workOrderEditComments.ts b/public-typescript/workOrderEdit/workOrderEditComments.ts index aa611f6d..4420fc39 100644 --- a/public-typescript/workOrderEdit/workOrderEditComments.ts +++ b/public-typescript/workOrderEdit/workOrderEditComments.ts @@ -249,8 +249,8 @@ function openAddCommentModal() { }); } -if (!isCreate) { - document.querySelector("#workOrderComments--add")!.addEventListener("click", openAddCommentModal); +document.querySelector("#workOrderComments--add")?.addEventListener("click", openAddCommentModal); +if (!isCreate) { renderWorkOrderComments(); } diff --git a/public-typescript/workOrderEdit/workOrderEditLots.ts b/public-typescript/workOrderEdit/workOrderEditLots.ts index 4e5aec7c..45cd75c7 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.ts +++ b/public-typescript/workOrderEdit/workOrderEditLots.ts @@ -720,15 +720,9 @@ document.querySelector("#button--addLot")!.addEventListener("click", () => { onshown(modalElement) { bulmaJS.toggleHtmlClipped(); - (modalElement.querySelector("#lotSearch--lotName") as HTMLInputElement).addEventListener( - "change", - doSearch - ); + modalElement.querySelector("#lotSearch--lotName")!.addEventListener("change", doSearch); - (modalElement.querySelector("#lotSearch--lotStatusId") as HTMLSelectElement).addEventListener( - "change", - doSearch - ); + modalElement.querySelector("#lotSearch--lotStatusId")!.addEventListener("change", doSearch); searchFormElement.addEventListener("submit", doSearch); }, diff --git a/public-typescript/workOrderMilestoneCalendar.js b/public-typescript/workOrderMilestoneCalendar.js index 033a4f20..3d25ca77 100644 --- a/public-typescript/workOrderMilestoneCalendar.js +++ b/public-typescript/workOrderMilestoneCalendar.js @@ -88,9 +88,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); los.getRandomColor(milestone.workOrderNumber || "") + '" aria-hidden="true">' + ' ' + cityssm.escapeHTML(milestone.workOrderNumber || "") + "
" + diff --git a/public-typescript/workOrderMilestoneCalendar.ts b/public-typescript/workOrderMilestoneCalendar.ts index 041e5f7f..6584ade8 100644 --- a/public-typescript/workOrderMilestoneCalendar.ts +++ b/public-typescript/workOrderMilestoneCalendar.ts @@ -122,9 +122,7 @@ declare const cityssm: cityssmGlobal; los.getRandomColor(milestone.workOrderNumber || "") + '" aria-hidden="true">' + ' ' + cityssm.escapeHTML(milestone.workOrderNumber || "") + "
" + diff --git a/public-typescript/workOrderSearch.js b/public-typescript/workOrderSearch.js index b22de585..95c5aed0 100644 --- a/public-typescript/workOrderSearch.js +++ b/public-typescript/workOrderSearch.js @@ -50,9 +50,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); resultsTbodyElement.insertAdjacentHTML("beforeend", "" + ("" + '' + (workOrder.workOrderNumber.trim() ? cityssm.escapeHTML(workOrder.workOrderNumber || "") diff --git a/public-typescript/workOrderSearch.ts b/public-typescript/workOrderSearch.ts index 5e8f698f..0e669c75 100644 --- a/public-typescript/workOrderSearch.ts +++ b/public-typescript/workOrderSearch.ts @@ -76,9 +76,7 @@ declare const cityssm: cityssmGlobal; "" + ("" + '' + (workOrder.workOrderNumber!.trim() ? cityssm.escapeHTML(workOrder.workOrderNumber || "") diff --git a/public-typescript/workOrderView.js b/public-typescript/workOrderView.js index a073270c..aec0f026 100644 --- a/public-typescript/workOrderView.js +++ b/public-typescript/workOrderView.js @@ -1,5 +1,5 @@ "use strict"; -/* eslint-disable unicorn/prefer-module */ +/* eslint-disable unicorn/prefer-module, @typescript-eslint/no-non-null-assertion */ Object.defineProperty(exports, "__esModule", { value: true }); (() => { const los = exports.los; @@ -13,11 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }, (responseJSON) => { if (responseJSON.success) { window.location.href = - los.urlPrefix + - "/workOrders/" + - workOrderId + - "/edit/?t=" + - Date.now(); + los.getWorkOrderURL(workOrderId, true, true); } else { bulmaJS.alert({ diff --git a/public-typescript/workOrderView.ts b/public-typescript/workOrderView.ts index 57af2da9..0903e4c1 100644 --- a/public-typescript/workOrderView.ts +++ b/public-typescript/workOrderView.ts @@ -1,4 +1,4 @@ -/* eslint-disable unicorn/prefer-module */ +/* eslint-disable unicorn/prefer-module, @typescript-eslint/no-non-null-assertion */ import type * as globalTypes from "../types/globalTypes"; @@ -17,7 +17,7 @@ declare const bulmaJS: BulmaJS; ) as HTMLButtonElement; if (reopenWorkOrderButtonElement) { - const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId; + const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId!; reopenWorkOrderButtonElement.addEventListener("click", () => { function doReopen() { @@ -29,11 +29,7 @@ declare const bulmaJS: BulmaJS; (responseJSON: { success: boolean; errorMessage?: string }) => { if (responseJSON.success) { window.location.href = - los.urlPrefix + - "/workOrders/" + - workOrderId + - "/edit/?t=" + - Date.now(); + los.getWorkOrderURL(workOrderId, true, true); } else { bulmaJS.alert({ title: "Error Reopening Work Order", diff --git a/public/javascripts/adminLotTypes.min.js b/public/javascripts/adminLotTypes.min.js index e03c80ab..dc489de6 100644 --- a/public/javascripts/adminLotTypes.min.js +++ b/public/javascripts/adminLotTypes.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#container--lotTypes");let l=exports.lotTypes;delete exports.lotTypes;const o=new Set;function s(e){const t=e.currentTarget,l=t.closest(".container--lotType"),s=Number.parseInt(l.dataset.lotTypeId,10);o.has(s)?o.delete(s):o.add(s),t.innerHTML=o.has(s)?'':'';const i=l.querySelectorAll(".panel-block");for(const e of i)e.classList.toggle("is-hidden")}function i(e){e.success?(l=e.lotTypes,T()):bulmaJS.alert({title:`Error Updating ${exports.aliases.lot} Type`,message:e.errorMessage||"",contextualColorName:"danger"})}function a(t){const l=Number.parseInt(t.currentTarget.closest(".container--lotType").dataset.lotTypeId,10);bulmaJS.confirm({title:`Delete ${exports.aliases.lot} Type`,message:`Are you sure you want to delete this ${exports.aliases.lot.toLowerCase()} type?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${exports.aliases.lot} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotType",{lotTypeId:l},i)}}})}function d(t){const o=Number.parseInt(t.currentTarget.closest(".container--lotType").dataset.lotTypeId,10),s=l.find(e=>o===e.lotTypeId);let a;const d=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotType",t.currentTarget,e=>{i(e),e.success&&a()})};cityssm.openHtmlModal("adminLotTypes-editLotType",{onshow(t){e.populateAliases(t),t.querySelector("#lotTypeEdit--lotTypeId").value=o.toString(),t.querySelector("#lotTypeEdit--lotType").value=s.lotType},onshown(e,t){a=t,e.querySelector("#lotTypeEdit--lotType").focus(),e.querySelector("form").addEventListener("submit",d),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function n(t){const l=Number.parseInt(t.currentTarget.closest(".container--lotType").dataset.lotTypeId,10);let s;const a=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddLotTypeField",t.currentTarget,e=>{o.add(l),i(e),e.success&&(s(),c(l,e.lotTypeFieldId))})};cityssm.openHtmlModal("adminLotTypes-addLotTypeField",{onshow(t){e.populateAliases(t),l&&(t.querySelector("#lotTypeFieldAdd--lotTypeId").value=l.toString())},onshown(e,t){s=t,e.querySelector("#lotTypeFieldAdd--lotTypeField").focus(),e.querySelector("form").addEventListener("submit",a),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function r(t){const l=t.currentTarget,o=l.closest(".container--lotType").dataset.lotTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===l.dataset.direction?"doMoveLotTypeUp":"doMoveLotTypeDown"),{lotTypeId:o,moveToEnd:t.shiftKey?"1":"0"},i)}function c(t,o){const s=l.find(e=>e.lotTypeId===t).lotTypeFields.find(e=>e.lotTypeFieldId===o);let a,d,n,r,c;function p(){d.min=a.value}function u(){""===r.value?(a.disabled=!1,d.disabled=!1,n.disabled=!1):(a.disabled=!0,d.disabled=!0,n.disabled=!0)}function y(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotTypeField",t.currentTarget,e=>{i(e),e.success&&c()})}function T(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotTypeField",{lotTypeFieldId:o},e=>{i(e),e.success&&c()})}function m(){bulmaJS.confirm({title:"Delete Field",message:"Are you sure you want to delete this field? Note that historical records that make use of this field will not be affected.",contextualColorName:"warning",okButton:{text:"Yes, Delete Field",callbackFunction:T}})}cityssm.openHtmlModal("adminLotTypes-editLotTypeField",{onshow(t){e.populateAliases(t),t.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value=s.lotTypeFieldId.toString(),t.querySelector("#lotTypeFieldEdit--lotTypeField").value=s.lotTypeField,t.querySelector("#lotTypeFieldEdit--isRequired").value=s.isRequired?"1":"0",(a=t.querySelector("#lotTypeFieldEdit--minimumLength")).value=s.minimumLength.toString(),(d=t.querySelector("#lotTypeFieldEdit--maximumLength")).value=s.maximumLength.toString(),(n=t.querySelector("#lotTypeFieldEdit--pattern")).value=s.pattern,(r=t.querySelector("#lotTypeFieldEdit--lotTypeFieldValues")).value=s.lotTypeFieldValues,u()},onshown(e,t){c=t,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),e.querySelector("form").addEventListener("submit",y),a.addEventListener("keyup",p),p(),r.addEventListener("keyup",u),e.querySelector("#button--deleteLotTypeField").addEventListener("click",m)},onremoved(){bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})}function p(e){e.preventDefault();const t=Number.parseInt(e.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId,10);c(Number.parseInt(e.currentTarget.closest(".container--lotType").dataset.lotTypeId,10),t)}function u(t){const l=t.currentTarget,o=l.closest(".container--lotTypeField").dataset.lotTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===l.dataset.direction?"doMoveLotTypeFieldUp":"doMoveLotTypeFieldDown"),{lotTypeFieldId:o,moveToEnd:t.shiftKey?"1":"0"},i)}function y(t,l,s){if(0===s.length)t.insertAdjacentHTML("beforeend",'

There are no additional fields.

');else for(const i of s){const s=document.createElement("div");s.className="panel-block is-block container--lotTypeField",o.has(l)||s.classList.add("is-hidden"),s.dataset.lotTypeFieldId=i.lotTypeFieldId.toString(),s.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveLotTypeFieldUp","button--moveLotTypeFieldDown")+"
",s.querySelector(".button--editLotTypeField").addEventListener("click",p),s.querySelector(".button--moveLotTypeFieldUp").addEventListener("click",u),s.querySelector(".button--moveLotTypeFieldDown").addEventListener("click",u),t.append(s)}}function T(){if(t.innerHTML="",0!==l.length)for(const i of l){const l=document.createElement("div");l.className="panel container--lotType",l.dataset.lotTypeId=i.lotTypeId.toString(),l.innerHTML='

'+cityssm.escapeHTML(i.lotType)+'

'+e.getMoveUpDownButtonFieldHTML("button--moveLotTypeUp","button--moveLotTypeDown")+"
",y(l,i.lotTypeId,i.lotTypeFields),l.querySelector(".button--toggleLotTypeFields").addEventListener("click",s),l.querySelector(".button--deleteLotType").addEventListener("click",a),l.querySelector(".button--editLotType").addEventListener("click",d),l.querySelector(".button--addLotTypeField").addEventListener("click",n),l.querySelector(".button--moveLotTypeUp").addEventListener("click",r),l.querySelector(".button--moveLotTypeDown").addEventListener("click",r),t.append(l)}else t.insertAdjacentHTML("afterbegin",`
There are no active ${exports.aliases.lot.toLowerCase()} types.

\n
`)}document.querySelector("#button--addLotType").addEventListener("click",()=>{let t;function o(o){o.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddLotType",o.currentTarget,o=>{o.success?(t(),l=o.lotTypes,T()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Type`,message:o.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminLotTypes-addLotType",{onshow(t){e.populateAliases(t)},onshown(e,l){t=l,e.querySelector("#lotTypeAdd--lotType").focus(),e.querySelector("form").addEventListener("submit",o),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}),T()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#container--lotTypes");let l=exports.lotTypes;delete exports.lotTypes;const o=new Set;function s(e){const t=e.currentTarget,l=t.closest(".container--lotType"),s=Number.parseInt(l.dataset.lotTypeId,10);o.has(s)?o.delete(s):o.add(s),t.innerHTML=o.has(s)?'':'';const i=l.querySelectorAll(".panel-block");for(const e of i)e.classList.toggle("is-hidden")}function i(e){e.success?(l=e.lotTypes,T()):bulmaJS.alert({title:`Error Updating ${exports.aliases.lot} Type`,message:e.errorMessage||"",contextualColorName:"danger"})}function a(t){const l=Number.parseInt(t.currentTarget.closest(".container--lotType").dataset.lotTypeId,10);bulmaJS.confirm({title:`Delete ${exports.aliases.lot} Type`,message:`Are you sure you want to delete this ${exports.aliases.lot.toLowerCase()} type?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${exports.aliases.lot} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotType",{lotTypeId:l},i)}}})}function d(t){const o=Number.parseInt(t.currentTarget.closest(".container--lotType").dataset.lotTypeId,10),s=l.find(e=>o===e.lotTypeId);let a;const d=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotType",t.currentTarget,e=>{i(e),e.success&&a()})};cityssm.openHtmlModal("adminLotTypes-editLotType",{onshow(t){e.populateAliases(t),t.querySelector("#lotTypeEdit--lotTypeId").value=o.toString(),t.querySelector("#lotTypeEdit--lotType").value=s.lotType},onshown(e,t){a=t,e.querySelector("#lotTypeEdit--lotType").focus(),e.querySelector("form").addEventListener("submit",d),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function n(t){const l=Number.parseInt(t.currentTarget.closest(".container--lotType").dataset.lotTypeId,10);let s;const a=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddLotTypeField",t.currentTarget,e=>{o.add(l),i(e),e.success&&(s(),c(l,e.lotTypeFieldId))})};cityssm.openHtmlModal("adminLotTypes-addLotTypeField",{onshow(t){e.populateAliases(t),l&&(t.querySelector("#lotTypeFieldAdd--lotTypeId").value=l.toString())},onshown(e,t){s=t,e.querySelector("#lotTypeFieldAdd--lotTypeField").focus(),e.querySelector("form").addEventListener("submit",a),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function r(t){const l=t.currentTarget,o=l.closest(".container--lotType").dataset.lotTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===l.dataset.direction?"doMoveLotTypeUp":"doMoveLotTypeDown"),{lotTypeId:o,moveToEnd:t.shiftKey?"1":"0"},i)}function c(t,o){const s=l.find(e=>e.lotTypeId===t).lotTypeFields.find(e=>e.lotTypeFieldId===o);let a,d,n,r,c;function p(){d.min=a.value}function u(){""===r.value?(a.disabled=!1,d.disabled=!1,n.disabled=!1):(a.disabled=!0,d.disabled=!0,n.disabled=!0)}function y(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotTypeField",t.currentTarget,e=>{i(e),e.success&&c()})}function T(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotTypeField",{lotTypeFieldId:o},e=>{i(e),e.success&&c()})}function m(){bulmaJS.confirm({title:"Delete Field",message:"Are you sure you want to delete this field? Note that historical records that make use of this field will not be affected.",contextualColorName:"warning",okButton:{text:"Yes, Delete Field",callbackFunction:T}})}cityssm.openHtmlModal("adminLotTypes-editLotTypeField",{onshow(t){e.populateAliases(t),t.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value=s.lotTypeFieldId.toString(),t.querySelector("#lotTypeFieldEdit--lotTypeField").value=s.lotTypeField,t.querySelector("#lotTypeFieldEdit--isRequired").value=s.isRequired?"1":"0",(a=t.querySelector("#lotTypeFieldEdit--minimumLength")).value=s.minimumLength.toString(),(d=t.querySelector("#lotTypeFieldEdit--maximumLength")).value=s.maximumLength.toString(),(n=t.querySelector("#lotTypeFieldEdit--pattern")).value=s.pattern,(r=t.querySelector("#lotTypeFieldEdit--lotTypeFieldValues")).value=s.lotTypeFieldValues,u()},onshown(e,t){c=t,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),e.querySelector("form").addEventListener("submit",y),a.addEventListener("keyup",p),p(),r.addEventListener("keyup",u),e.querySelector("#button--deleteLotTypeField").addEventListener("click",m)},onremoved(){bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})}function p(e){e.preventDefault();const t=Number.parseInt(e.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId,10);c(Number.parseInt(e.currentTarget.closest(".container--lotType").dataset.lotTypeId,10),t)}function u(t){const l=t.currentTarget,o=l.closest(".container--lotTypeField").dataset.lotTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===l.dataset.direction?"doMoveLotTypeFieldUp":"doMoveLotTypeFieldDown"),{lotTypeFieldId:o,moveToEnd:t.shiftKey?"1":"0"},i)}function y(t,l,s){if(0===s.length)t.insertAdjacentHTML("beforeend",'

There are no additional fields.

');else for(const i of s){const s=document.createElement("div");s.className="panel-block is-block container--lotTypeField",o.has(l)||s.classList.add("is-hidden"),s.dataset.lotTypeFieldId=i.lotTypeFieldId.toString(),s.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveLotTypeFieldUp","button--moveLotTypeFieldDown")+"
",s.querySelector(".button--editLotTypeField").addEventListener("click",p),s.querySelector(".button--moveLotTypeFieldUp").addEventListener("click",u),s.querySelector(".button--moveLotTypeFieldDown").addEventListener("click",u),t.append(s)}}function T(){if(t.innerHTML="",0!==l.length)for(const i of l){const l=document.createElement("div");l.className="panel container--lotType",l.dataset.lotTypeId=i.lotTypeId.toString(),l.innerHTML='

'+cityssm.escapeHTML(i.lotType)+'

'+e.getMoveUpDownButtonFieldHTML("button--moveLotTypeUp","button--moveLotTypeDown")+"
",y(l,i.lotTypeId,i.lotTypeFields),l.querySelector(".button--toggleLotTypeFields").addEventListener("click",s),l.querySelector(".button--deleteLotType").addEventListener("click",a),l.querySelector(".button--editLotType").addEventListener("click",d),l.querySelector(".button--addLotTypeField").addEventListener("click",n),l.querySelector(".button--moveLotTypeUp").addEventListener("click",r),l.querySelector(".button--moveLotTypeDown").addEventListener("click",r),t.append(l)}else t.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.lot} types.

\n
`)}document.querySelector("#button--addLotType").addEventListener("click",()=>{let t;function o(o){o.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddLotType",o.currentTarget,o=>{o.success?(t(),l=o.lotTypes,T()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Type`,message:o.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminLotTypes-addLotType",{onshow(t){e.populateAliases(t)},onshown(e,l){t=l,e.querySelector("#lotTypeAdd--lotType").focus(),e.querySelector("form").addEventListener("submit",o),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}),T()})(); \ No newline at end of file diff --git a/public/javascripts/lotEdit.min.js b/public/javascripts/lotEdit.min.js index 84acffbc..6c6dfebc 100644 --- a/public/javascripts/lotEdit.min.js +++ b/public/javascripts/lotEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#lot--lotId").value,o=""===t;let n=o;const l=document.querySelector("#form--lot");l.addEventListener("submit",function(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/lots/"+(o?"doCreateLot":"doUpdateLot"),l,t=>{t.success?(e.clearUnsavedChanges(),o||n?window.location.href=e.urlPrefix+"/lots/"+t.lotId+"/edit?t="+Date.now():bulmaJS.alert({message:exports.aliases.lot+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot,message:t.errorMessage||"",contextualColorName:"danger"})})});const s=l.querySelectorAll("input, select");for(const t of s)t.addEventListener("change",e.setUnsavedChanges);e.initializeUnlockFieldButtons(l),o||document.querySelector("#button--deleteLot").addEventListener("click",o=>{o.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.lot,message:"Are you sure you want to delete this "+exports.aliases.lot.toLowerCase()+"?",contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.lot,callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/lots/doDeleteLot",{lotId:t},t=>{t.success?(cityssm.disableNavBlocker(),window.location.href=e.urlPrefix+"/lots/?t="+Date.now()):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot,message:t.errorMessage||"",contextualColorName:"danger"})})}}})});const a=document.querySelector("#lot--lotTypeId");if(o){const t=document.querySelector("#container--lotFields");a.addEventListener("change",()=>{""!==a.value?cityssm.postJSON(e.urlPrefix+"/lots/doGetLotTypeFields",{lotTypeId:a.value},o=>{if(0===o.lotTypeFields.length)return void(t.innerHTML=`
\n

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

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

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

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

There are no comments to display.

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

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

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

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

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

There are no comments to display.

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

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

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

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

\n
`})}else{const e=i.value;i.addEventListener("change",()=>{i.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${a.escapedAliases.occupancy} type?\n\n This change affects the additional fields associated with this record, and may also affect the available fees.`,contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{s=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{i.value=e}}})})}const d=document.querySelector("#lotOccupancy--lotName");let p;d.addEventListener("click",e=>{const t=e.currentTarget.value;let c,o,n,s;const l=(e,t)=>{document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,a.setUnsavedChanges(),c()},r=e=>{e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)},u=()=>{s.innerHTML=a.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(a.urlPrefix+"/lots/doSearchLots",n,e=>{if(0===e.count)return void(s.innerHTML='
\n

No results.

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

There are no '+exports.aliases.occupants.toLowerCase()+" associated with this record.

");const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML=""+exports.aliases.occupant+'AddressOther ContactCommentOptions';for(const e of p){const c=document.createElement("tr");c.dataset.lotOccupantIndex=e.lotOccupantIndex.toString(),c.innerHTML=""+cityssm.escapeHTML(e.occupantName||"(No Name)")+'
'+cityssm.escapeHTML(e.lotOccupantType)+""+(e.occupantAddress1?cityssm.escapeHTML(e.occupantAddress1)+"
":"")+(e.occupantAddress2?cityssm.escapeHTML(e.occupantAddress2)+"
":"")+(e.occupantCity?cityssm.escapeHTML(e.occupantCity)+", ":"")+cityssm.escapeHTML(e.occupantProvince||"")+"
"+cityssm.escapeHTML(e.occupantPostalCode||"")+""+(e.occupantPhoneNumber?cityssm.escapeHTML(e.occupantPhoneNumber)+"
":"")+(e.occupantEmailAddress?cityssm.escapeHTML(e.occupantEmailAddress):"")+""+cityssm.escapeHTML(e.occupantComment)+'
',c.querySelector(".button--edit").addEventListener("click",m),c.querySelector(".button--delete").addEventListener("click",y),t.querySelector("tbody").append(c)}e.append(t)};if(n){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=l.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else p=exports.lotOccupancyOccupants,delete exports.lotOccupancyOccupants,document.querySelector("#button--addOccupant").addEventListener("click",()=>{let e,t,c,n;const s=t=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",t,t=>{t.success?(p=t.lotOccupancyOccupants,e(),O()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupant,message:t.errorMessage||"",contextualColorName:"danger"})})},l=e=>{e.preventDefault(),s(t)};let r=[];const u=e=>{e.preventDefault();const t=e.currentTarget,c=r[Number.parseInt(t.dataset.index,10)],a=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===a?bulmaJS.alert({title:"No "+exports.aliases.occupant+" Type Selected",message:"Select a type to apply to the newly added "+exports.aliases.occupant.toLowerCase()+".",contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(a,10),c.lotOccupancyId=Number.parseInt(o,10),s(c))},i=e=>{e.preventDefault(),""!==c.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(n.innerHTML=a.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doSearchPastOccupants",c,e=>{r=e.occupants;const t=document.createElement("div");t.className="panel";for(const[e,c]of r.entries()){const a=document.createElement("a");a.className="panel-block is-block",a.dataset.index=e.toString(),a.innerHTML=""+cityssm.escapeHTML(c.occupantName||"")+'
'+cityssm.escapeHTML(c.occupantAddress1||"")+"
"+(c.occupantAddress2?cityssm.escapeHTML(c.occupantAddress2)+"
":"")+cityssm.escapeHTML(c.occupantCity||"")+", "+cityssm.escapeHTML(c.occupantProvince||"")+"
"+cityssm.escapeHTML(c.occupantPostalCode||"")+'
'+(c.occupantPhoneNumber?cityssm.escapeHTML(c.occupantPhoneNumber)+"
":"")+cityssm.escapeHTML(c.occupantEmailAddress||"")+"
",a.addEventListener("click",u),t.append(a)}n.innerHTML="",n.append(t)})):n.innerHTML='

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

'};cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=o;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const a=document.createElement("option");a.value=e.lotOccupantTypeId.toString(),a.textContent=e.lotOccupantType,t.append(a),c.append(a.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(a,o)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(a),a.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(t=a.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),n=a.querySelector("#lotOccupancyOccupantCopy--searchResults"),(c=a.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),a.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",i),e=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),O();if(!n){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;delete exports.lotOccupancyComments;const t=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),s=e.find(e=>e.lotOccupancyCommentId===c);let l,r;const u=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",l,t=>{t.success?(e=t.lotOccupancyComments,r(),n()):bulmaJS.alert({title:"Error Updating Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=c.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=s.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=s.lotOccupancyCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.lotOccupancyCommentDateString<=n?n:s.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=s.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),a.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(l=e.querySelector("form")).addEventListener("submit",u),r=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},c=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:o,lotOccupancyCommentId:c},t=>{t.success?(e=t.lotOccupancyComments,n()):bulmaJS.alert({title:"Error Removing Comment",message:t.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},n=()=>{const a=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(a.innerHTML='

There are no comments associated with this record.

');const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML='CommentorComment DateCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=a.lotOccupancyCommentId.toString(),e.innerHTML=""+cityssm.escapeHTML(a.recordCreate_userName||"")+""+a.lotOccupancyCommentDateString+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(a.lotOccupancyComment||"")+'
',e.querySelector(".button--edit").addEventListener("click",t),e.querySelector(".button--delete").addEventListener("click",c),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)};document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;const s=o=>{o.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{t.success?(e=t.lotOccupancyComments,c(),n()):bulmaJS.alert({title:"Error Adding Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=o},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",s),c=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),n(),Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const l=document.querySelector("#container--lotOccupancyFees"),r=()=>{let e=0;for(const t of s)e+=(t.feeAmount+t.taxAmount)*t.quantity;return e},u=e=>{const t=e.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:o,feeId:t},e=>{e.success?(s=e.lotOccupancyFees,i()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},i=()=>{if(0===s.length)return l.innerHTML='

There are no fees associated with this record.

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

'+cityssm.escapeHTML(t.feeCategory||"")+'

';let o=!1;for(const c of t.fees){if(l.querySelector(".container--lotOccupancyFee[data-fee-id='"+c.feeId+"'][data-include-quantity='0']"))continue;let t=!0;for(const e of a)if(!c.feeName.toLowerCase().includes(e)){t=!1;break}if(!t)continue;o=!0;const n=document.createElement("a");n.className="panel-block is-block container--fee",n.dataset.feeId=c.feeId.toString(),n.href="#",n.innerHTML=""+cityssm.escapeHTML(c.feeName||"")+"
"+cityssm.escapeHTML(c.feeDescription||"").replace(/\n/g,"
")+"
",n.addEventListener("click",r),e.querySelector(".panel").append(n)}o&&c.append(e)}};cityssm.openHtmlModal("lotOccupancy-addFee",{onshow:n=>{t=n.querySelector("#feeSelect--feeName"),c=n.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:o},c=>{e=c.feeCategories,t.disabled=!1,t.addEventListener("keyup",u),t.focus(),u()})},onshown:()=>{bulmaJS.toggleHtmlClipped()},onhidden:()=>{i()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})});let d=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const p=document.querySelector("#container--lotOccupancyTransactions"),m=()=>{let e=0;for(const t of d)e+=t.transactionAmount;return e},y=e=>{const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:o,transactionIndex:t},e=>{e.success?(d=e.lotOccupancyTransactions,O()):bulmaJS.alert({title:"Error Deleting Transaction",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},O=()=>{if(0===d.length)return void(p.innerHTML='

There are no transactions associated with this record.

');p.innerHTML='
Date'+cityssm.escapeHTML(exports.aliases.externalReceiptNumber)+'AmountOptions
Transaction Total
';let e=0;for(const t of d){e+=t.transactionAmount;const c=document.createElement("tr");c.className="container--lotOccupancyTransaction",c.dataset.transactionIndex=t.transactionIndex.toString(),c.innerHTML=""+t.transactionDateString+""+cityssm.escapeHTML(t.externalReceiptNumber||"")+"
"+cityssm.escapeHTML(t.transactionNote||"")+'$'+t.transactionAmount.toFixed(2)+'',c.querySelector("button").addEventListener("click",y),p.querySelector("tbody").append(c)}p.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+e.toFixed(2);const t=r();t>e&&p.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(t-e).toFixed(2)+"
")};document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;const t=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{t.success?(d=t.lotOccupancyTransactions,e(),O()):bulmaJS.confirm({title:"Error Adding Transaction",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=o.toString();const t=r(),c=m(),n=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");n.min=(-1*c).toFixed(2),n.max=Math.max(t-c,0).toFixed(2),n.value=Math.max(t-c,0).toFixed(2)},onshown:(c,a)=>{bulmaJS.toggleHtmlClipped(),e=a,c.querySelector("form").addEventListener("submit",t)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),i()}})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e,t,c;const a=exports.los,o=document.querySelector("#lotOccupancy--lotOccupancyId").value,n=""===o;let s=n;const l=document.querySelector("#form--lotOccupancy");l.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/"+(n?"doCreateLotOccupancy":"doUpdateLotOccupancy"),l,e=>{e.success?(a.clearUnsavedChanges(),n||s?window.location.href=a.urlPrefix+"/lotOccupancies/"+e.lotOccupancyId+"/edit?t="+Date.now():bulmaJS.alert({message:exports.aliases.occupancy+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Saving "+exports.aliases.occupancy,message:e.errorMessage||"",contextualColorName:"danger"})})});const r=l.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",a.setUnsavedChanges);const u=()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doCopyLotOccupancy",{lotOccupancyId:o},e=>{var t;e.success?(cityssm.disableNavBlocker(),window.location.href=a.urlPrefix+"/lotOccupancies/"+(null===(t=e.lotOccupancyId)||void 0===t?void 0:t.toString())+"/edit"):bulmaJS.alert({title:"Error Copying Record",message:e.errorMessage||"",contextualColorName:"danger"})})};null===(e=document.querySelector("#button--copyLotOccupancy"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),a.hasUnsavedChanges()?bulmaJS.alert({title:"Unsaved Changes",message:"Please save all unsaved changes before continuing.",contextualColorName:"warning"}):bulmaJS.confirm({title:`Copy ${a.escapedAliases.Occupancy} Record as New`,message:"Are you sure you want to copy this record to a new record?",contextualColorName:"info",okButton:{text:"Yes, Copy",callbackFunction:u}})}),null===(t=document.querySelector("#button--deleteLotOccupancy"))||void 0===t||t.addEventListener("click",e=>{e.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.occupancy+" Record",message:"Are you sure you want to delete this record?",contextualColorName:"warning",okButton:{text:"Yes, Delete",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancy",{lotOccupancyId:o},e=>{e.success?(cityssm.disableNavBlocker(),window.location.href=a.urlPrefix+"/lotOccupancies?t="+Date.now()):bulmaJS.alert({title:"Error Deleting Record",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}),null===(c=document.querySelector("#button--createWorkOrder"))||void 0===c||c.addEventListener("click",e=>{let t;e.preventDefault();const c=e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/workOrders/doCreateWorkOrder",e.currentTarget,e=>{e.success?(t(),bulmaJS.confirm({title:"Work Order Created Successfully",message:"Would you like to open the work order now?",contextualColorName:"success",okButton:{text:"Yes, Open the Work Order",callbackFunction:()=>{window.location.href=a.urlPrefix+"/workOrders/"+e.workOrderId+"/edit"}}})):bulmaJS.alert({title:"Error Creating Work Order",message:e.errorMessage,contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-createWorkOrder",{onshow(e){e.querySelector("#workOrderCreate--lotOccupancyId").value=o,e.querySelector("#workOrderCreate--workOrderOpenDateString").value=cityssm.dateToString(new Date);const t=e.querySelector("#workOrderCreate--workOrderTypeId"),c=exports.workOrderTypes;1===c.length&&(t.innerHTML="");for(const e of c){const c=document.createElement("option");c.value=e.workOrderTypeId.toString(),c.textContent=e.workOrderType,t.append(c)}},onshown(e,a){var o;t=a,null===(o=e.querySelector("form"))||void 0===o||o.addEventListener("submit",c)}})});const i=document.querySelector("#lotOccupancy--occupancyTypeId");if(n){const e=document.querySelector("#container--lotOccupancyFields");i.addEventListener("change",()=>{""!==i.value?cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:i.value},t=>{if(0===t.occupancyTypeFields.length)return void(e.innerHTML=`
\n

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

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

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

\n
`})}else{const e=i.value;i.addEventListener("change",()=>{i.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:`Are you sure you want to change the ${a.escapedAliases.occupancy} type?\n\n This change affects the additional fields associated with this record, and may also affect the available fees.`,contextualColorName:"warning",okButton:{text:"Yes, Keep the Change",callbackFunction:()=>{s=!0}},cancelButton:{text:"Revert the Change",callbackFunction:()=>{i.value=e}}})})}const d=document.querySelector("#lotOccupancy--lotName");let p;d.addEventListener("click",e=>{const t=e.currentTarget.value;let c,o,n,s;const l=(e,t)=>{document.querySelector("#lotOccupancy--lotId").value=e.toString(),document.querySelector("#lotOccupancy--lotName").value=t,a.setUnsavedChanges(),c()},r=e=>{e.preventDefault();const t=e.currentTarget;l(t.dataset.lotId,t.dataset.lotName)},u=()=>{s.innerHTML=a.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(a.urlPrefix+"/lots/doSearchLots",n,e=>{if(0===e.count)return void(s.innerHTML='
\n

No results.

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

There are no '+exports.aliases.occupants.toLowerCase()+" associated with this record.

");const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML=""+exports.aliases.occupant+'AddressOther ContactCommentOptions';for(const e of p){const c=document.createElement("tr");c.dataset.lotOccupantIndex=e.lotOccupantIndex.toString(),c.innerHTML=""+cityssm.escapeHTML(e.occupantName||"(No Name)")+'
'+cityssm.escapeHTML(e.lotOccupantType)+""+(e.occupantAddress1?cityssm.escapeHTML(e.occupantAddress1)+"
":"")+(e.occupantAddress2?cityssm.escapeHTML(e.occupantAddress2)+"
":"")+(e.occupantCity?cityssm.escapeHTML(e.occupantCity)+", ":"")+cityssm.escapeHTML(e.occupantProvince||"")+"
"+cityssm.escapeHTML(e.occupantPostalCode||"")+""+(e.occupantPhoneNumber?cityssm.escapeHTML(e.occupantPhoneNumber)+"
":"")+(e.occupantEmailAddress?cityssm.escapeHTML(e.occupantEmailAddress):"")+""+cityssm.escapeHTML(e.occupantComment)+'
',c.querySelector(".button--edit").addEventListener("click",m),c.querySelector(".button--delete").addEventListener("click",y),t.querySelector("tbody").append(c)}e.append(t)};if(n){const e=document.querySelector("#lotOccupancy--lotOccupantTypeId");e.addEventListener("change",()=>{const t=l.querySelectorAll("[data-table='LotOccupancyOccupant']");for(const c of t)c.disabled=""===e.value})}else p=exports.lotOccupancyOccupants,delete exports.lotOccupancyOccupants,document.querySelector("#button--addOccupant").addEventListener("click",()=>{let e,t,c,n;const s=t=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyOccupant",t,t=>{t.success?(p=t.lotOccupancyOccupants,e(),O()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupant,message:t.errorMessage||"",contextualColorName:"danger"})})},l=e=>{e.preventDefault(),s(t)};let r=[];const u=e=>{e.preventDefault();const t=e.currentTarget,c=r[Number.parseInt(t.dataset.index,10)],a=t.closest(".modal").querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId").value;""===a?bulmaJS.alert({title:"No "+exports.aliases.occupant+" Type Selected",message:"Select a type to apply to the newly added "+exports.aliases.occupant.toLowerCase()+".",contextualColorName:"warning"}):(c.lotOccupantTypeId=Number.parseInt(a,10),c.lotOccupancyId=Number.parseInt(o,10),s(c))},i=e=>{e.preventDefault(),""!==c.querySelector("#lotOccupancyOccupantCopy--searchFilter").value?(n.innerHTML=a.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doSearchPastOccupants",c,e=>{r=e.occupants;const t=document.createElement("div");t.className="panel";for(const[e,c]of r.entries()){const a=document.createElement("a");a.className="panel-block is-block",a.dataset.index=e.toString(),a.innerHTML=""+cityssm.escapeHTML(c.occupantName||"")+'
'+cityssm.escapeHTML(c.occupantAddress1||"")+"
"+(c.occupantAddress2?cityssm.escapeHTML(c.occupantAddress2)+"
":"")+cityssm.escapeHTML(c.occupantCity||"")+", "+cityssm.escapeHTML(c.occupantProvince||"")+"
"+cityssm.escapeHTML(c.occupantPostalCode||"")+'
'+(c.occupantPhoneNumber?cityssm.escapeHTML(c.occupantPhoneNumber)+"
":"")+cityssm.escapeHTML(c.occupantEmailAddress||"")+"
",a.addEventListener("click",u),t.append(a)}n.innerHTML="",n.append(t)})):n.innerHTML='

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

'};cityssm.openHtmlModal("lotOccupancy-addOccupant",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyOccupantAdd--lotOccupancyId").value=o;const t=e.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId"),c=e.querySelector("#lotOccupancyOccupantCopy--lotOccupantTypeId");for(const e of exports.lotOccupantTypes){const a=document.createElement("option");a.value=e.lotOccupantTypeId.toString(),a.textContent=e.lotOccupantType,t.append(a),c.append(a.cloneNode(!0))}e.querySelector("#lotOccupancyOccupantAdd--occupantCity").value=exports.occupantCityDefault,e.querySelector("#lotOccupancyOccupantAdd--occupantProvince").value=exports.occupantProvinceDefault},onshown:(a,o)=>{bulmaJS.toggleHtmlClipped(),bulmaJS.init(a),a.querySelector("#lotOccupancyOccupantAdd--lotOccupantTypeId").focus(),(t=a.querySelector("#form--lotOccupancyOccupantAdd")).addEventListener("submit",l),n=a.querySelector("#lotOccupancyOccupantCopy--searchResults"),(c=a.querySelector("#form--lotOccupancyOccupantCopy")).addEventListener("submit",e=>{e.preventDefault()}),a.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change",i),e=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),O();if(!n){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.lotOccupancyComments;delete exports.lotOccupancyComments;const t=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10),s=e.find(e=>e.lotOccupancyCommentId===c);let l,r;const u=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyComment",l,t=>{t.success?(e=t.lotOccupancyComments,r(),n()):bulmaJS.alert({title:"Error Updating Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-editComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyId").value=o,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentId").value=c.toString(),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").value=s.lotOccupancyComment;const t=e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentDateString");t.value=s.lotOccupancyCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.lotOccupancyCommentDateString<=n?n:s.lotOccupancyCommentDateString,e.querySelector("#lotOccupancyCommentEdit--lotOccupancyCommentTimeString").value=s.lotOccupancyCommentTimeString},onshown:(e,t)=>{bulmaJS.toggleHtmlClipped(),a.initializeDatePickers(e),e.querySelector("#lotOccupancyCommentEdit--lotOccupancyComment").focus(),(l=e.querySelector("form")).addEventListener("submit",u),r=t},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},c=t=>{const c=Number.parseInt(t.currentTarget.closest("tr").dataset.lotOccupancyCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyComment",{lotOccupancyId:o,lotOccupancyCommentId:c},t=>{t.success?(e=t.lotOccupancyComments,n()):bulmaJS.alert({title:"Error Removing Comment",message:t.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},n=()=>{const a=document.querySelector("#container--lotOccupancyComments");if(0===e.length)return void(a.innerHTML='

There are no comments associated with this record.

');const o=document.createElement("table");o.className="table is-fullwidth is-striped is-hoverable",o.innerHTML='CommentorComment DateCommentOptions';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=a.lotOccupancyCommentId.toString(),e.innerHTML=""+cityssm.escapeHTML(a.recordCreate_userName||"")+""+a.lotOccupancyCommentDateString+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(a.lotOccupancyComment||"")+'
',e.querySelector(".button--edit").addEventListener("click",t),e.querySelector(".button--delete").addEventListener("click",c),o.querySelector("tbody").append(e)}a.innerHTML="",a.append(o)};document.querySelector("#button--addComment").addEventListener("click",()=>{let t,c;const s=o=>{o.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyComment",t,t=>{t.success?(e=t.lotOccupancyComments,c(),n()):bulmaJS.alert({title:"Error Adding Comment",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addComment",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyId").value=o},onshown:(e,a)=>{bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancyCommentAdd--lotOccupancyComment").focus(),(t=e.querySelector("form")).addEventListener("submit",s),c=a},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),n(),Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.lotOccupancyFees;delete exports.lotOccupancyFees;const l=document.querySelector("#container--lotOccupancyFees"),r=()=>{let e=0;for(const t of s)e+=(t.feeAmount+t.taxAmount)*t.quantity;return e},u=e=>{const t=e.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;bulmaJS.confirm({title:"Delete Fee",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete Fee",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyFee",{lotOccupancyId:o,feeId:t},e=>{e.success?(s=e.lotOccupancyFees,i()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},i=()=>{if(0===s.length)return l.innerHTML='

There are no fees associated with this record.

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

'+cityssm.escapeHTML(t.feeCategory||"")+'

';let o=!1;for(const c of t.fees){if(l.querySelector(".container--lotOccupancyFee[data-fee-id='"+c.feeId+"'][data-include-quantity='0']"))continue;let t=!0;for(const e of a)if(!c.feeName.toLowerCase().includes(e)){t=!1;break}if(!t)continue;o=!0;const n=document.createElement("a");n.className="panel-block is-block container--fee",n.dataset.feeId=c.feeId.toString(),n.href="#",n.innerHTML=""+cityssm.escapeHTML(c.feeName||"")+"
"+cityssm.escapeHTML(c.feeDescription||"").replace(/\n/g,"
")+"
",n.addEventListener("click",r),e.querySelector(".panel").append(n)}o&&c.append(e)}};cityssm.openHtmlModal("lotOccupancy-addFee",{onshow:n=>{t=n.querySelector("#feeSelect--feeName"),c=n.querySelector("#resultsContainer--feeSelect"),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetFees",{lotOccupancyId:o},c=>{e=c.feeCategories,t.disabled=!1,t.addEventListener("keyup",u),t.focus(),u()})},onshown:()=>{bulmaJS.toggleHtmlClipped()},onhidden:()=>{i()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})});let d=exports.lotOccupancyTransactions;delete exports.lotOccupancyTransactions;const p=document.querySelector("#container--lotOccupancyTransactions"),m=()=>{let e=0;for(const t of d)e+=t.transactionAmount;return e},y=e=>{const t=e.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;bulmaJS.confirm({title:"Delete Trasnaction",message:"Are you sure you want to delete this transaction?",contextualColorName:"warning",okButton:{text:"Yes, Delete Transaction",callbackFunction:()=>{cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doDeleteLotOccupancyTransaction",{lotOccupancyId:o,transactionIndex:t},e=>{e.success?(d=e.lotOccupancyTransactions,O()):bulmaJS.alert({title:"Error Deleting Transaction",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},O=()=>{if(0===d.length)return void(p.innerHTML='

There are no transactions associated with this record.

');p.innerHTML='
Date'+cityssm.escapeHTML(exports.aliases.externalReceiptNumber)+'AmountOptions
Transaction Total
';let e=0;for(const t of d){e+=t.transactionAmount;const c=document.createElement("tr");c.className="container--lotOccupancyTransaction",c.dataset.transactionIndex=t.transactionIndex.toString(),c.innerHTML=""+t.transactionDateString+""+cityssm.escapeHTML(t.externalReceiptNumber||"")+"
"+cityssm.escapeHTML(t.transactionNote||"")+'$'+t.transactionAmount.toFixed(2)+'',c.querySelector("button").addEventListener("click",y),p.querySelector("tbody").append(c)}p.querySelector("#lotOccupancyTransactions--grandTotal").textContent="$"+e.toFixed(2);const t=r();t>e&&p.insertAdjacentHTML("afterbegin",'
Outstanding Balance
$'+(t-e).toFixed(2)+"
")};document.querySelector("#button--addTransaction").addEventListener("click",()=>{let e;const t=t=>{t.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doAddLotOccupancyTransaction",t.currentTarget,t=>{t.success?(d=t.lotOccupancyTransactions,e(),O()):bulmaJS.confirm({title:"Error Adding Transaction",message:t.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("lotOccupancy-addTransaction",{onshow:e=>{a.populateAliases(e),e.querySelector("#lotOccupancyTransactionAdd--lotOccupancyId").value=o.toString();const t=r(),c=m(),n=e.querySelector("#lotOccupancyTransactionAdd--transactionAmount");n.min=(-1*c).toFixed(2),n.max=Math.max(t-c,0).toFixed(2),n.value=Math.max(t-c,0).toFixed(2)},onshown:(c,a)=>{bulmaJS.toggleHtmlClipped(),e=a,c.querySelector("form").addEventListener("submit",t)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),i()}})(); \ No newline at end of file diff --git a/public/javascripts/lotOccupancySearch.min.js b/public/javascripts/lotOccupancySearch.min.js index f961179a..3dbe19c6 100644 --- a/public/javascripts/lotOccupancySearch.min.js +++ b/public/javascripts/lotOccupancySearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,e=document.querySelector("#form--searchFilters"),a=document.querySelector("#container--searchResults"),s=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),c=document.querySelector("#searchFilter--offset");function n(e){var c,n;if(0===e.lotOccupancies.length)return void(a.innerHTML=`
\n

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

\n
`);const i=document.createElement("tbody"),r=cityssm.dateToString(new Date);for(const a of e.lotOccupancies){let e="";e=a.occupancyStartDateString<=r&&(""===a.occupancyEndDateString||a.occupancyEndDateString>=r)?`\n \n `:a.occupancyStartDateString>r?`\n \n `:`\n \n `;let s="";for(const t of a.lotOccupancyOccupants)s+=' '+cityssm.escapeHTML(t.occupantName||"")+"
";i.insertAdjacentHTML("beforeend",''+e+''+cityssm.escapeHTML(a.occupancyType)+""+(a.lotName?''+cityssm.escapeHTML(a.lotName)+"":'(No '+t.escapedAliases.Lot+")")+'
'+cityssm.escapeHTML(a.mapName||"")+""+a.occupancyStartDateString+""+(a.occupancyEndDate?a.occupancyEndDateString:'(No End Date)')+""+s+""+(a.printEJS?'':"")+"")}a.innerHTML=`\n \n \n \n \n \n \n \n \n \n
${t.escapedAliases.Occupancy} Type${t.escapedAliases.Lot}${t.escapedAliases.OccupancyStartDate}End Date${t.escapedAliases.Occupants}Print
`,a.querySelector("table").append(i),a.insertAdjacentHTML("beforeend",t.getSearchResultsPagerHTML(s,e.offset,e.count)),null===(c=a.querySelector("button[data-page='previous']"))||void 0===c||c.addEventListener("click",l),null===(n=a.querySelector("button[data-page='next']"))||void 0===n||n.addEventListener("click",o)}function i(){a.innerHTML=t.getLoadingParagraphHTML(`Loading ${exports.aliases.occupancies}...`),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,n)}function r(){c.value="0",i()}function l(){c.value=Math.max(Number.parseInt(c.value,10)-s,0).toString(),i()}function o(){c.value=(Number.parseInt(c.value,10)+s).toString(),i()}const p=e.querySelectorAll("input, select");for(const t of p)t.addEventListener("change",r);e.addEventListener("submit",t=>{t.preventDefault(),r()}),i()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,a=document.querySelector("#form--searchFilters"),e=document.querySelector("#container--searchResults"),s=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),c=document.querySelector("#searchFilter--offset");function n(a){var c,n;if(0===a.lotOccupancies.length)return void(e.innerHTML=`
\n

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

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

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

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

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

\n
`);const o=document.createElement("tbody");for(const s of t.lots)o.insertAdjacentHTML("beforeend",'");s.innerHTML=`
'+cityssm.escapeHTML(s.lotName||"")+''+(s.mapName?cityssm.escapeHTML(s.mapName):'(No Name)')+""+cityssm.escapeHTML(s.lotType||"")+""+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus||""):'(No Status)')+"
"+(s.lotOccupancyCount>0?'Currently Occupied':"")+"
\n \n \n \n \n \n \n
${e.escapedAliases.Lot}${e.escapedAliases.Map}${e.escapedAliases.Lot} TypeStatus
`,s.insertAdjacentHTML("beforeend",e.getSearchResultsPagerHTML(a,t.offset,t.count)),s.querySelector("table").append(o),null===(n=s.querySelector("button[data-page='previous']"))||void 0===n||n.addEventListener("click",l),null===(r=s.querySelector("button[data-page='next']"))||void 0===r||r.addEventListener("click",i)}function o(){s.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Lots}...`),cityssm.postJSON(e.urlPrefix+"/lots/doSearchLots",t,r)}function c(){n.value="0",o()}function l(){n.value=Math.max(Number.parseInt(n.value,10)-a,0).toString(),o()}function i(){n.value=(Number.parseInt(n.value,10)+a).toString(),o()}const d=t.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",c);t.addEventListener("submit",e=>{e.preventDefault(),c()}),o()})(); \ No newline at end of file diff --git a/public/javascripts/main.min.js b/public/javascripts/main.min.js index 9df6b7cb..0c501e18 100644 --- a/public/javascripts/main.min.js +++ b/public/javascripts/main.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{let e=!1;function t(){return e}function s(e){const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()}const a={type:"date",dateFormat:"yyyy-MM-dd",showFooter:!1,color:"info",displayMode:"dialog"};const o=Object.freeze({Map:cityssm.escapeHTML(exports.aliases.map),map:cityssm.escapeHTML(exports.aliases.map.toLowerCase()),Maps:cityssm.escapeHTML(exports.aliases.maps),maps:cityssm.escapeHTML(exports.aliases.maps.toLowerCase()),Lot:cityssm.escapeHTML(exports.aliases.lot),lot:cityssm.escapeHTML(exports.aliases.lot.toLowerCase()),Lots:cityssm.escapeHTML(exports.aliases.lots),lots:cityssm.escapeHTML(exports.aliases.lots.toLowerCase()),Occupancy:cityssm.escapeHTML(exports.aliases.occupancy),occupancy:cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase()),Occupancies:cityssm.escapeHTML(exports.aliases.occupancies),occupancies:cityssm.escapeHTML(exports.aliases.occupancies.toLowerCase()),Occupant:cityssm.escapeHTML(exports.aliases.occupant),occupant:cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()),Occupants:cityssm.escapeHTML(exports.aliases.occupants),occupants:cityssm.escapeHTML(exports.aliases.occupants.toLowerCase()),ExternalReceiptNumber:cityssm.escapeHTML(exports.aliases.externalReceiptNumber),externalReceiptNumber:cityssm.escapeHTML(exports.aliases.externalReceiptNumber.toLowerCase()),OccupancyStartDate:cityssm.escapeHTML(exports.aliases.occupancyStartDate),occupancyStartDate:cityssm.escapeHTML(exports.aliases.occupancyStartDate.toLowerCase()),WorkOrderOpenDate:cityssm.escapeHTML(exports.aliases.workOrderOpenDate),workOrderOpenDate:cityssm.escapeHTML(exports.aliases.workOrderOpenDate.toLowerCase()),WorkOrderCloseDate:cityssm.escapeHTML(exports.aliases.workOrderCloseDate),workOrderCloseDate:cityssm.escapeHTML(exports.aliases.workOrderCloseDate.toLowerCase())}),c=["red","green","orange","blue","pink","yellow","purple"],i=["bright","light","dark"];const n={urlPrefix:document.querySelector("main").dataset.urlPrefix,apiKey:document.querySelector("main").dataset.apiKey,highlightMap:function(e,t,s){let a,o=t;for(;!(a=e.querySelector("#"+o))&&o.includes("-");)o=o.slice(0,Math.max(0,o.lastIndexOf("-")));if(a){a.style.fill="",a.classList.add("highlight","is-"+s);const e=a.querySelectorAll("path");for(const t of e)t.style.fill=""}},initializeUnlockFieldButtons:function(e){const t=e.querySelectorAll(".is-unlock-field-button");for(const e of t)e.addEventListener("click",s)},initializeDatePickers:function(e){const t=e.querySelectorAll("input[type='date']");for(const s of t){const t=Object.assign({},a);s.required&&(t.showClearButton=!1),s.min&&(t.minDate=cityssm.dateStringToDate(s.min)),s.max&&(t.maxDate=cityssm.dateStringToDate(s.max));const o=exports.bulmaCalendar.attach(s,t)[0];o.on("save",()=>{s.value=o.value(),s.dispatchEvent(new Event("change"))}),o.on("show",()=>{document.querySelector("html").classList.add("is-clipped")}),o.on("hide",()=>{bulmaJS.toggleHtmlClipped()});const c=e.querySelector("#"+o._id),i=c.querySelectorAll(".datepicker-nav button.is-text");for(const e of i)e.classList.add("is-"+a.color),e.classList.remove("is-text");const n=c.querySelector(".datetimepicker-clear-button");n&&(s.required?n.remove():(n.dataset.tooltip="Clear",n.ariaLabel="Clear",n.innerHTML=''));const r=document.querySelector("label[for='"+s.id+"']");r&&(c.querySelector(".datetimepicker-dummy-input").ariaLabel=r.textContent)}},populateAliases:function(e){const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Map":e.textContent=exports.aliases.map;break;case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},escapedAliases:o,getRandomColor:function(e){let t=e;return t.length<2&&(t+="a1"),exports.randomColor({seed:t+t,hue:c[t.codePointAt(t.length-1)%c.length],luminosity:i[t.codePointAt(t.length-2)%i.length]})},setUnsavedChanges:function(){t()||(e=!0,cityssm.enableNavBlocker())},clearUnsavedChanges:function(){e=!1,cityssm.disableNavBlocker()},hasUnsavedChanges:t,getMoveUpDownButtonFieldHTML:function(e,t,s=!0){return`
\n
\n \n \n \n
\n
\n \n \n \n
\n
`},getLoadingParagraphHTML:function(e="Loading..."){return`

\n
\n ${cityssm.escapeHTML(e)}\n

`},getSearchResultsPagerHTML:function(e,t,s){return'
Displaying '+(t+1).toString()+" to "+Math.min(s,e+t)+" of "+s+'
'+(t>0?'
':"")+(e+t
':"")+"
"}};exports.los=n})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{let e=!1;function t(){return e}function s(e){const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()}const a={type:"date",dateFormat:"yyyy-MM-dd",showFooter:!1,color:"info",displayMode:"dialog"};const o=Object.freeze({Map:cityssm.escapeHTML(exports.aliases.map),map:cityssm.escapeHTML(exports.aliases.map.toLowerCase()),Maps:cityssm.escapeHTML(exports.aliases.maps),maps:cityssm.escapeHTML(exports.aliases.maps.toLowerCase()),Lot:cityssm.escapeHTML(exports.aliases.lot),lot:cityssm.escapeHTML(exports.aliases.lot.toLowerCase()),Lots:cityssm.escapeHTML(exports.aliases.lots),lots:cityssm.escapeHTML(exports.aliases.lots.toLowerCase()),Occupancy:cityssm.escapeHTML(exports.aliases.occupancy),occupancy:cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase()),Occupancies:cityssm.escapeHTML(exports.aliases.occupancies),occupancies:cityssm.escapeHTML(exports.aliases.occupancies.toLowerCase()),Occupant:cityssm.escapeHTML(exports.aliases.occupant),occupant:cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()),Occupants:cityssm.escapeHTML(exports.aliases.occupants),occupants:cityssm.escapeHTML(exports.aliases.occupants.toLowerCase()),ExternalReceiptNumber:cityssm.escapeHTML(exports.aliases.externalReceiptNumber),externalReceiptNumber:cityssm.escapeHTML(exports.aliases.externalReceiptNumber.toLowerCase()),OccupancyStartDate:cityssm.escapeHTML(exports.aliases.occupancyStartDate),occupancyStartDate:cityssm.escapeHTML(exports.aliases.occupancyStartDate.toLowerCase()),WorkOrderOpenDate:cityssm.escapeHTML(exports.aliases.workOrderOpenDate),workOrderOpenDate:cityssm.escapeHTML(exports.aliases.workOrderOpenDate.toLowerCase()),WorkOrderCloseDate:cityssm.escapeHTML(exports.aliases.workOrderCloseDate),workOrderCloseDate:cityssm.escapeHTML(exports.aliases.workOrderCloseDate.toLowerCase())}),c=["red","green","orange","blue","pink","yellow","purple"],i=["bright","light","dark"];const n=document.querySelector("main").dataset.urlPrefix;const r={urlPrefix:n,apiKey:document.querySelector("main").dataset.apiKey,highlightMap:function(e,t,s){let a,o=t;for(;!(a=e.querySelector("#"+o))&&o.includes("-");)o=o.slice(0,Math.max(0,o.lastIndexOf("-")));if(a){a.style.fill="",a.classList.add("highlight","is-"+s);const e=a.querySelectorAll("path");for(const t of e)t.style.fill=""}},initializeUnlockFieldButtons:function(e){const t=e.querySelectorAll(".is-unlock-field-button");for(const e of t)e.addEventListener("click",s)},initializeDatePickers:function(e){const t=e.querySelectorAll("input[type='date']");for(const s of t){const t=Object.assign({},a);s.required&&(t.showClearButton=!1),s.min&&(t.minDate=cityssm.dateStringToDate(s.min)),s.max&&(t.maxDate=cityssm.dateStringToDate(s.max));const o=exports.bulmaCalendar.attach(s,t)[0];o.on("save",()=>{s.value=o.value(),s.dispatchEvent(new Event("change"))}),o.on("show",()=>{document.querySelector("html").classList.add("is-clipped")}),o.on("hide",()=>{bulmaJS.toggleHtmlClipped()});const c=e.querySelector("#"+o._id),i=c.querySelectorAll(".datepicker-nav button.is-text");for(const e of i)e.classList.add("is-"+a.color),e.classList.remove("is-text");const n=c.querySelector(".datetimepicker-clear-button");n&&(s.required?n.remove():(n.dataset.tooltip="Clear",n.ariaLabel="Clear",n.innerHTML=''));const r=document.querySelector("label[for='"+s.id+"']");r&&(c.querySelector(".datetimepicker-dummy-input").ariaLabel=r.textContent)}},populateAliases:function(e){const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Map":e.textContent=exports.aliases.map;break;case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},escapedAliases:o,getRandomColor:function(e){let t=e;return t.length<2&&(t+="a1"),exports.randomColor({seed:t+t,hue:c[t.codePointAt(t.length-1)%c.length],luminosity:i[t.codePointAt(t.length-2)%i.length]})},setUnsavedChanges:function(){t()||(e=!0,cityssm.enableNavBlocker())},clearUnsavedChanges:function(){e=!1,cityssm.disableNavBlocker()},hasUnsavedChanges:t,getMoveUpDownButtonFieldHTML:function(e,t,s=!0){return`
\n
\n \n \n \n
\n
\n \n \n \n
\n
`},getLoadingParagraphHTML:function(e="Loading..."){return`

\n
\n ${cityssm.escapeHTML(e)}\n

`},getSearchResultsPagerHTML:function(e,t,s){return'
Displaying '+(t+1).toString()+" to "+Math.min(s,e+t)+" of "+s+'
'+(t>0?'
':"")+(e+t
':"")+"
"},getMapURL:function(e,t=!1,s=!1){return n+"/maps/"+e+(t?"/edit":"")+(s?"/?t="+Date.now():"")},getLotURL:function(e,t=!1,s=!1){return n+"/lots/"+e+(t?"/edit":"")+(s?"/?t="+Date.now():"")},getLotOccupancyURL:function(e,t=!1,s=!1){return n+"/lotOccupancies/"+e+(t?"/edit":"")+(s?"/?t="+Date.now():"")},getWorkOrderURL:function(e,t=!1,s=!1){return n+"/workOrders/"+e+(t?"/edit":"")+(s?"/?t="+Date.now():"")}};exports.los=r})(); \ No newline at end of file diff --git a/public/javascripts/mapEdit.min.js b/public/javascripts/mapEdit.min.js index 00371091..f1f8f8c1 100644 --- a/public/javascripts/mapEdit.min.js +++ b/public/javascripts/mapEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#map--mapId").value,a=""===t,s=document.querySelector("#form--map");s.addEventListener("submit",function(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/maps/"+(a?"doCreateMap":"doUpdateMap"),s,t=>{t.success?(cityssm.disableNavBlocker(),a?window.location.href=e.urlPrefix+"/maps/"+t.mapId+"/edit":bulmaJS.alert({message:exports.aliases.map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.map,message:t.errorMessage||"",contextualColorName:"danger"})})});const o=s.querySelectorAll("input, select");for(const e of o)e.addEventListener("change",cityssm.enableNavBlocker);a||document.querySelector("#button--deleteMap").addEventListener("click",a=>{a.preventDefault(),bulmaJS.confirm({title:"Delete "+exports.aliases.map,message:`Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${exports.aliases.map}`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/maps/doDeleteMap",{mapId:t},t=>{t.success?window.location.href=e.urlPrefix+"/maps?t="+Date.now():bulmaJS.alert({title:"Error Deleting "+exports.aliases.map,message:t.errorMessage||"",contextualColorName:"danger"})})}}})})})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{var e;const t=exports.los,a=document.querySelector("#map--mapId").value,s=""===a,o=document.querySelector("#form--map");o.addEventListener("submit",function(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/maps/"+(s?"doCreateMap":"doUpdateMap"),o,e=>{e.success?(cityssm.disableNavBlocker(),s?window.location.href=t.urlPrefix+"/maps/"+e.mapId+"/edit":bulmaJS.alert({message:exports.aliases.map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.map,message:e.errorMessage||"",contextualColorName:"danger"})})});const r=o.querySelectorAll("input, select");for(const e of r)e.addEventListener("change",cityssm.enableNavBlocker);null===(e=document.querySelector("#button--deleteMap"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete "+exports.aliases.map,message:`Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${exports.aliases.map}`,callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/maps/doDeleteMap",{mapId:a},e=>{e.success?window.location.href=t.urlPrefix+"/maps?t="+Date.now():bulmaJS.alert({title:"Error Deleting "+exports.aliases.map,message:e.errorMessage||"",contextualColorName:"danger"})})}}})})})(); \ No newline at end of file diff --git a/public/javascripts/mapSearch.min.js b/public/javascripts/mapSearch.min.js index 94bd8b98..6a7b3277 100644 --- a/public/javascripts/mapSearch.min.js +++ b/public/javascripts/mapSearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=exports.maps,a=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function r(){t.innerHTML=e.getLoadingParagraphHTML(`Loading ${exports.aliases.maps}...`);let r=0;const i=document.createElement("tbody"),d=a.value.trim().toLowerCase().split(" ");for(const a of s){const s=`${a.mapName} ${a.mapDescription} ${a.mapAddress1} ${a.mapAddress2}`.toLowerCase();let t=!0;for(const e of d)if(!s.includes(e)){t=!1;break}t&&(r+=1,i.insertAdjacentHTML("beforeend",'"))}if(t.innerHTML="",0===r)t.innerHTML=`
\n

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

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

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

\n
`;else{const s=document.createElement("table");s.className="table is-fullwidth is-striped is-hoverable has-sticky-header",s.innerHTML=`\n \n \n \n \n \n \n `,s.append(i),t.append(s)}}a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})(); \ No newline at end of file diff --git a/public/javascripts/workOrderEdit.min.js b/public/javascripts/workOrderEdit.min.js index 001b0ed0..ca8af2c4 100644 --- a/public/javascripts/workOrderEdit.min.js +++ b/public/javascripts/workOrderEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#workOrderEdit--workOrderId").value,o=""===t,r=document.querySelector("#form--workOrderEdit");e.initializeDatePickers(r.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")),e.initializeUnlockFieldButtons(r),r.addEventListener("submit",t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/"+(o?"doCreateWorkOrder":"doUpdateWorkOrder"),t.currentTarget,t=>{t.success?(cityssm.disableNavBlocker(),o?window.location.href=e.urlPrefix+"/workOrders/"+t.workOrderId+"/edit":bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:t.errorMessage||"",contextualColorName:"danger"})})});const s=r.querySelectorAll("input, select");for(const e of s)e.addEventListener("change",cityssm.enableNavBlocker);function n(){cityssm.postJSON(e.urlPrefix+"/workOrders/doCloseWorkOrder",{workOrderId:t},o=>{o.success?window.location.href=e.urlPrefix+"/workOrders/"+t:bulmaJS.alert({title:"Error Closing Work Order",message:o.errorMessage||"",contextualColorName:"danger"})})}function a(){cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrder",{workOrderId:t},t=>{t.success?window.location.href=e.urlPrefix+"/workOrders":bulmaJS.alert({title:"Error Deleting Work Order",message:t.errorMessage||"",contextualColorName:"danger"})})}let l;if(o||(document.querySelector("#button--closeWorkOrder").addEventListener("click",()=>{l.some(e=>!e.workOrderMilestoneCompletionDate)?bulmaJS.alert({title:"Outstanding Milestones",message:"You cannot close a work order with outstanding milestones.\n Either complete the outstanding milestones, or remove them from the work order.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Close Work Order",message:"Are you sure you want to close this work order?",contextualColorName:"info",okButton:{text:"Yes, Close Work Order",callbackFunction:n}})}),document.querySelector("#button--deleteWorkOrder").addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete Work Order",message:"Are you sure you want to delete this work order?",contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order",callbackFunction:a}})})),!o){Object.defineProperty(exports,"__esModule",{value:!0});let o=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function c(o){const s=o.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${e.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:t,lotOccupancyId:s},e=>{e.success?(r=e.workOrderLotOccupancies,p()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function i(r,s){cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:t,lotId:r},t=>{t.success?(o=t.workOrderLots,p()):bulmaJS.alert({title:"Error Adding "+e.escapedAliases.Lot,message:t.errorMessage||"",contextualColorName:"danger"}),s&&s(t.success)})}function d(e){i(e.currentTarget.dataset.lotId)}function u(r){const s=Number.parseInt(r.currentTarget.closest(".container--lot").dataset.lotId,10),n=o.find(e=>e.lotId===s);let a;function l(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateLotStatus",t.currentTarget,e=>{e.success?(o=e.workOrderLots,p(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(o){e.populateAliases(o),o.querySelector("#lotStatusEdit--lotId").value=s.toString(),o.querySelector("#lotStatusEdit--lotName").value=n.lotName;const r=o.querySelector("#lotStatusEdit--lotStatusId");let a=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===n.lotStatusId&&(a=!0),r.append(t)}if(!a&&n.lotStatusId){const e=document.createElement("option");e.value=n.lotStatusId.toString(),e.textContent=n.lotStatus,r.append(e)}n.lotStatusId&&(r.value=n.lotStatusId.toString()),o.querySelector("form").insertAdjacentHTML("beforeend",``)},onshown(e,t){a=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function m(r){const s=r.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${e.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrderLot",{workOrderId:t,lotId:s},e=>{e.success?(o=e.workOrderLots,p()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function p(){!function(){var t,s;const n=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(n.innerHTML=`
\n

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

\n
`);n.innerHTML=`
'+cityssm.escapeHTML(a.mapName||"(No Name)")+'
'+cityssm.escapeHTML(a.mapDescription||"")+"
"+(a.mapAddress1?cityssm.escapeHTML(a.mapAddress1)+"
":"")+(a.mapAddress2?cityssm.escapeHTML(a.mapAddress2)+"
":"")+(a.mapCity||a.mapProvince?cityssm.escapeHTML(a.mapCity||"")+", "+cityssm.escapeHTML(a.mapProvince||"")+"
":"")+(a.mapPostalCode?cityssm.escapeHTML(a.mapPostalCode):"")+"
"+cityssm.escapeHTML(a.mapPhoneNumber||"")+''+(a.mapLatitude&&a.mapLongitude?'':"")+''+(a.mapSVG?'':"")+''+a.lotCount+"
${e.escapedAliases.Map}AddressPhone NumberCoordinatesImage${e.escapedAliases.Lot} Count
'+cityssm.escapeHTML(a.mapName||"(No Name)")+'
'+cityssm.escapeHTML(a.mapDescription||"")+"
"+(a.mapAddress1?cityssm.escapeHTML(a.mapAddress1)+"
":"")+(a.mapAddress2?cityssm.escapeHTML(a.mapAddress2)+"
":"")+(a.mapCity||a.mapProvince?cityssm.escapeHTML(a.mapCity||"")+", "+cityssm.escapeHTML(a.mapProvince||"")+"
":"")+(a.mapPostalCode?cityssm.escapeHTML(a.mapPostalCode):"")+"
"+cityssm.escapeHTML(a.mapPhoneNumber||"")+''+(a.mapLatitude&&a.mapLongitude?'':"")+''+(a.mapSVG?'':"")+''+a.lotCount+"
${e.escapedAliases.Map}AddressPhone NumberCoordinatesImage${e.escapedAliases.Lot} Count
\n \n \n \n \n \n \n \n
${e.escapedAliases.Occupancy} Type${e.escapedAliases.Lot}${e.escapedAliases.OccupancyStartDate}End Date${e.escapedAliases.Occupants}
`;const a=cityssm.dateToString(new Date);for(const l of r){const r=document.createElement("tr");r.className="container--lotOccupancy",r.dataset.lotOccupancyId=l.lotOccupancyId.toString();const i=!(l.occupancyEndDate&&l.occupancyEndDateStringl.lotId===e.lotId);r.innerHTML=''+(i?'':'')+''+cityssm.escapeHTML(l.occupancyType||"")+"",l.lotId?r.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(l.lotName||"")+(u?"":' ')+""):r.insertAdjacentHTML("beforeend",`(No ${e.escapedAliases.Lot})`),r.insertAdjacentHTML("beforeend",""+l.occupancyStartDateString+""+(l.occupancyEndDate?l.occupancyEndDateString:'(No End Date)')+""+(0===l.lotOccupancyOccupants.length?'(No '+e.escapedAliases.Occupants+")":null===(t=l.lotOccupancyOccupants)||void 0===t?void 0:t.reduce((t,o)=>t+' '+cityssm.escapeHTML(o.occupantName)+"
",""))+''),null===(s=r.querySelector(".button--addLot"))||void 0===s||s.addEventListener("click",d),r.querySelector(".button--deleteLotOccupancy").addEventListener("click",c),n.querySelector("tbody").append(r)}}(),function(){const t=document.querySelector("#container--lots");if(document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent=o.length.toString(),0!==o.length){t.innerHTML=`\n \n \n \n \n \n \n \n \n
${e.escapedAliases.Lot}${e.escapedAliases.Map}${e.escapedAliases.Lot} TypeStatus
`;for(const r of o){const o=document.createElement("tr");o.className="container--lot",o.dataset.lotId=r.lotId.toString(),o.innerHTML=''+cityssm.escapeHTML(r.lotName||"")+""+cityssm.escapeHTML(r.mapName||"")+""+cityssm.escapeHTML(r.lotType||"")+""+(r.lotStatusId?cityssm.escapeHTML(r.lotStatus||""):'(No Status)')+' ',o.querySelector(".button--editLotStatus").addEventListener("click",u),o.querySelector(".button--deleteLot").addEventListener("click",m),t.querySelector("tbody").append(o)}}else t.innerHTML=`
\n

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

\n
`}()}function y(o){const s=o.currentTarget.closest("tr");!function(o,s){cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:t,lotOccupancyId:o},t=>{t.success?(r=t.workOrderLotOccupancies,p()):bulmaJS.alert({title:"Error Adding "+e.escapedAliases.Occupancy,message:t.errorMessage||"",contextualColorName:"danger"}),s&&s(t.success)})}(s.dataset.lotOccupancyId,e=>{e&&s.remove()})}function O(e){const t=e.currentTarget.closest("tr");i(t.dataset.lotId,e=>{e&&t.remove()})}delete exports.workOrderLotOccupancies,p(),document.querySelector("#button--addLotOccupancy").addEventListener("click",()=>{let o,r;function s(t){t&&t.preventDefault(),r.innerHTML=e.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(e.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",o,t=>{if(0!==t.lotOccupancies.length){r.innerHTML=`\n \n \n \n \n \n \n \n \n \n
${e.escapedAliases.Occupancy} Type${e.escapedAliases.Lot}${e.escapedAliases.OccupancyStartDate}End Date${e.escapedAliases.Occupants}
`;for(const o of t.lotOccupancies){const t=document.createElement("tr");t.className="container--lotOccupancy",t.dataset.lotOccupancyId=o.lotOccupancyId.toString(),t.innerHTML=''+cityssm.escapeHTML(o.occupancyType||"")+"",o.lotId?t.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(o.lotName||"")+""):t.insertAdjacentHTML("beforeend",`(No ${e.escapedAliases.Lot})`),t.insertAdjacentHTML("beforeend",""+o.occupancyStartDateString+""+(o.occupancyEndDate?o.occupancyEndDateString:'(No End Date)')+""+(0===o.lotOccupancyOccupants.length?'(No '+cityssm.escapeHTML(exports.aliases.occupants)+")":cityssm.escapeHTML(o.lotOccupancyOccupants[0].occupantName)+(o.lotOccupancyOccupants.length>1?" plus "+(o.lotOccupancyOccupants.length-1):""))+""),t.querySelector(".button--addLotOccupancy").addEventListener("click",y),r.querySelector("tbody").append(t)}}else r.innerHTML='
\n

There are no records that meet the search criteria.

\n
'})}cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow(n){e.populateAliases(n),o=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotOccupancyAdd"),n.querySelector("#lotOccupancySearch--notWorkOrderId").value=t,n.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value=document.querySelector("#workOrderEdit--workOrderOpenDateString").value,s()},onshown(e){bulmaJS.toggleHtmlClipped(),e.querySelector("#lotOccupancySearch--occupantName").addEventListener("change",s),e.querySelector("#lotOccupancySearch--lotName").addEventListener("change",s),o.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped()}})}),document.querySelector("#button--addLot").addEventListener("click",()=>{let o,r;function s(t){t&&t.preventDefault(),r.innerHTML=e.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(e.urlPrefix+"/lots/doSearchLots",o,t=>{if(0!==t.lots.length){r.innerHTML=`\n \n \n \n \n \n \n \n \n
${e.escapedAliases.Lot}${e.escapedAliases.Map}${e.escapedAliases.Lot} TypeStatus
`;for(const e of t.lots){const t=document.createElement("tr");t.className="container--lot",t.dataset.lotId=e.lotId.toString(),t.innerHTML=''+cityssm.escapeHTML(e.lotName||"")+""+cityssm.escapeHTML(e.mapName||"")+""+cityssm.escapeHTML(e.lotType||"")+""+cityssm.escapeHTML(e.lotStatus||"")+"",t.querySelector(".button--addLot").addEventListener("click",O),r.querySelector("tbody").append(t)}}else r.innerHTML='

There are no records that meet the search criteria.

'})}cityssm.openHtmlModal("workOrder-addLot",{onshow(n){e.populateAliases(n),o=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotAdd"),n.querySelector("#lotSearch--notWorkOrderId").value=t;const a=n.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,a.append(t)}s()},onshown(e){bulmaJS.toggleHtmlClipped(),e.querySelector("#lotSearch--lotName").addEventListener("change",s),e.querySelector("#lotSearch--lotStatusId").addEventListener("change",s),o.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped()}})})}Object.defineProperty(exports,"__esModule",{value:!0});let h=exports.workOrderComments;delete exports.workOrderComments;const w=o=>{const r=Number.parseInt(o.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=h.find(e=>e.workOrderCommentId===r);let n,a;function l(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateWorkOrderComment",n,e=>{e.success?(h=e.workOrderComments,a(),S()):bulmaJS.alert({title:"Error Updating Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){e.querySelector("#workOrderCommentEdit--workOrderId").value=t,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=r.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=s.workOrderComment;const o=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");o.value=s.workOrderCommentDateString;const n=cityssm.dateToString(new Date);o.max=s.workOrderCommentDateString<=n?n:s.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=s.workOrderCommentTimeString},onshown(t,o){bulmaJS.toggleHtmlClipped(),e.initializeDatePickers(t),t.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(n=t.querySelector("form")).addEventListener("submit",l),a=o},onremoved(){bulmaJS.toggleHtmlClipped()}})};function k(o){const r=Number.parseInt(o.currentTarget.closest("tr").dataset.workOrderCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:t,workOrderCommentId:r},e=>{e.success?(h=e.workOrderComments,S()):bulmaJS.alert({title:"Error Removing Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function S(){const e=document.querySelector("#container--workOrderComments");if(0===h.length)return void(e.innerHTML='
\n

There are no comments to display.

\n
');const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const e of h){const o=document.createElement("tr");o.dataset.workOrderCommentId=e.workOrderCommentId.toString(),o.innerHTML=""+cityssm.escapeHTML(e.recordCreate_userName||"")+""+e.workOrderCommentDateString+(0===e.workOrderCommentTime?"":" "+e.workOrderCommentTimeString)+""+cityssm.escapeHTML(e.workOrderComment||"")+'
',o.querySelector(".button--edit").addEventListener("click",w),o.querySelector(".button--delete").addEventListener("click",k),t.querySelector("tbody").append(o)}e.innerHTML="",e.append(t)}function g(e){e.success?(l=e.workOrderMilestones,L()):bulmaJS.alert({title:"Error Reopening Milestone",message:e.errorMessage||"",contextualColorName:"danger"})}function b(o){o.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(o.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=l.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(n.workOrderMilestoneDateString>r?"
Note that this milestone is expected to be completed in the future.":""),messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Complete Milestone",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doCompleteWorkOrderMilestone",{workOrderId:t,workOrderMilestoneId:s},g)}}})}function f(o){o.preventDefault();const r=o.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Reopen Milestone",message:"Are you sure you want to remove the completion status from this milestone, and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Milestone",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doReopenWorkOrderMilestone",{workOrderId:t,workOrderMilestoneId:r},g)}}})}function M(o){o.preventDefault();const r=o.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Delete Milestone",message:"Are you sure you want to delete this milestone?",contextualColorName:"warning",okButton:{text:"Yes, Delete Milestone",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrderMilestone",{workOrderMilestoneId:r,workOrderId:t},g)}}})}function v(o){o.preventDefault();const r=Number.parseInt(o.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),s=l.find(e=>e.workOrderMilestoneId===r);let n;const a=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",t.currentTarget,e=>{g(e),e.success&&n()})};cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){e.querySelector("#milestoneEdit--workOrderId").value=t,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=s.workOrderMilestoneId.toString();const o=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let r=!1;for(const e of exports.workOrderMilestoneTypes){const t=document.createElement("option");t.value=e.workOrderMilestoneTypeId.toString(),t.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(t.selected=!0,r=!0),o.append(t)}if(!r&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=s.workOrderMilestoneType,e.selected=!0,o.append(e)}e.querySelector("#milestoneEdit--workOrderMilestoneDateString").value=s.workOrderMilestoneDateString,s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=s.workOrderMilestoneTimeString),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=s.workOrderMilestoneDescription},onshown(t,o){n=o,bulmaJS.toggleHtmlClipped(),e.initializeDatePickers(t),t.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function L(){var e,t,o;const r=document.querySelector("#panel--milestones"),s=r.querySelectorAll(".panel-block");for(const e of s)e.remove();for(const s of l){const n=document.createElement("div");n.className="panel-block is-block container--milestone",n.dataset.workOrderMilestoneId=s.workOrderMilestoneId.toString(),n.innerHTML='
'+(s.workOrderMilestoneCompletionDate?'':'')+'
'+(s.workOrderMilestoneTypeId?""+cityssm.escapeHTML(s.workOrderMilestoneType||"")+"
":"")+s.workOrderMilestoneDateString+(s.workOrderMilestoneTime?" "+s.workOrderMilestoneTimeString:"")+'
'+cityssm.escapeHTML(s.workOrderMilestoneDescription||"")+'
',null===(e=n.querySelector(".button--reopenMilestone"))||void 0===e||e.addEventListener("click",f),null===(t=n.querySelector(".button--editMilestone"))||void 0===t||t.addEventListener("click",v),null===(o=n.querySelector(".button--completeMilestone"))||void 0===o||o.addEventListener("click",b),n.querySelector(".button--deleteMilestone").addEventListener("click",M),r.append(n)}bulmaJS.init(r)}o||(document.querySelector("#workOrderComments--add").addEventListener("click",function(){let o;function r(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderComment",t.currentTarget,e=>{e.success&&(h=e.workOrderComments,S(),o())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(o){e.populateAliases(o),o.querySelector("#workOrderCommentAdd--workOrderId").value=t,o.querySelector("form").addEventListener("submit",r)},onshown(e,t){bulmaJS.toggleHtmlClipped(),o=t,e.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),S()),o||(l=exports.workOrderMilestones,delete exports.workOrderMilestones,L(),document.querySelector("#button--addMilestone").addEventListener("click",()=>{let o,r,s;const n=t=>{t&&t.preventDefault();const n=cityssm.dateToString(new Date);function a(){cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderMilestone",r,e=>{g(e),e.success&&s()})}o.querySelector("#milestoneAdd--workOrderMilestoneDateString").value{var e;const t=exports.los,o=document.querySelector("#workOrderEdit--workOrderId").value,r=""===o,s=document.querySelector("#form--workOrderEdit");t.initializeDatePickers(s.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")),t.initializeUnlockFieldButtons(s),s.addEventListener("submit",e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/"+(r?"doCreateWorkOrder":"doUpdateWorkOrder"),e.currentTarget,e=>{e.success?(cityssm.disableNavBlocker(),r?window.location.href=t.getWorkOrderURL(e.workOrderId,!0):bulmaJS.alert({message:"Work Order Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order",message:e.errorMessage||"",contextualColorName:"danger"})})});const n=s.querySelectorAll("input, select");for(const e of n)e.addEventListener("change",cityssm.enableNavBlocker);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doCloseWorkOrder",{workOrderId:o},e=>{e.success?window.location.href=t.urlPrefix+"/workOrders/"+o:bulmaJS.alert({title:"Error Closing Work Order",message:e.errorMessage||"",contextualColorName:"danger"})})}function l(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrder",{workOrderId:o},e=>{e.success?window.location.href=t.urlPrefix+"/workOrders":bulmaJS.alert({title:"Error Deleting Work Order",message:e.errorMessage||"",contextualColorName:"danger"})})}let c;if(null===(w=document.querySelector("#button--closeWorkOrder"))||void 0===w||w.addEventListener("click",()=>{c.some(e=>!e.workOrderMilestoneCompletionDate)?bulmaJS.alert({title:"Outstanding Milestones",message:"You cannot close a work order with outstanding milestones.\n Either complete the outstanding milestones, or remove them from the work order.",contextualColorName:"warning"}):bulmaJS.confirm({title:"Close Work Order",message:"Are you sure you want to close this work order?",contextualColorName:"info",okButton:{text:"Yes, Close Work Order",callbackFunction:a}})}),null===(e=document.querySelector("#button--deleteWorkOrder"))||void 0===e||e.addEventListener("click",e=>{e.preventDefault(),bulmaJS.confirm({title:"Delete Work Order",message:"Are you sure you want to delete this work order?",contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order",callbackFunction:l}})}),!r){Object.defineProperty(exports,"__esModule",{value:!0});let e=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function i(e){const s=e.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:s},e=>{e.success?(r=e.workOrderLotOccupancies,y()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function d(r,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:o,lotId:r},o=>{o.success?(e=o.workOrderLots,y()):bulmaJS.alert({title:"Error Adding "+t.escapedAliases.Lot,message:o.errorMessage||"",contextualColorName:"danger"}),s&&s(o.success)})}function u(e){d(e.currentTarget.dataset.lotId)}function m(r){const s=Number.parseInt(r.currentTarget.closest(".container--lot").dataset.lotId,10),n=e.find(e=>e.lotId===s);let a;function l(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateLotStatus",o.currentTarget,t=>{t.success?(e=t.workOrderLots,y(),a()):bulmaJS.alert({title:"Error Deleting Relationship",message:t.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("lot-editLotStatus",{onshow(e){t.populateAliases(e),e.querySelector("#lotStatusEdit--lotId").value=s.toString(),e.querySelector("#lotStatusEdit--lotName").value=n.lotName;const r=e.querySelector("#lotStatusEdit--lotStatusId");let a=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===n.lotStatusId&&(a=!0),r.append(t)}if(!a&&n.lotStatusId){const e=document.createElement("option");e.value=n.lotStatusId.toString(),e.textContent=n.lotStatus,r.append(e)}n.lotStatusId&&(r.value=n.lotStatusId.toString()),e.querySelector("form").insertAdjacentHTML("beforeend",``)},onshown(e,t){a=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function p(r){const s=r.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:`Delete ${t.escapedAliases.Occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${t.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderLot",{workOrderId:o,lotId:s},t=>{t.success?(e=t.workOrderLots,y()):bulmaJS.alert({title:"Error Deleting Relationship",message:t.errorMessage||"",contextualColorName:"danger"})})}}})}function y(){!function(){var o,s;const n=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(n.innerHTML=`
\n

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

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

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

\n
`}()}function O(e){const s=e.currentTarget.closest("tr");!function(e,s){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:o,lotOccupancyId:e},e=>{e.success?(r=e.workOrderLotOccupancies,y()):bulmaJS.alert({title:"Error Adding "+t.escapedAliases.Occupancy,message:e.errorMessage||"",contextualColorName:"danger"}),s&&s(e.success)})}(s.dataset.lotOccupancyId,e=>{e&&s.remove()})}function h(e){const t=e.currentTarget.closest("tr");d(t.dataset.lotId,e=>{e&&t.remove()})}delete exports.workOrderLotOccupancies,y(),document.querySelector("#button--addLotOccupancy").addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,e=>{if(0!==e.lotOccupancies.length){r.innerHTML=`\n \n \n \n \n \n \n \n \n \n
${t.escapedAliases.Occupancy} Type${t.escapedAliases.Lot}${t.escapedAliases.OccupancyStartDate}End Date${t.escapedAliases.Occupants}
`;for(const o of e.lotOccupancies){const e=document.createElement("tr");e.className="container--lotOccupancy",e.dataset.lotOccupancyId=o.lotOccupancyId.toString(),e.innerHTML=''+cityssm.escapeHTML(o.occupancyType||"")+"",o.lotId?e.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(o.lotName||"")+""):e.insertAdjacentHTML("beforeend",`(No ${t.escapedAliases.Lot})`),e.insertAdjacentHTML("beforeend",""+o.occupancyStartDateString+""+(o.occupancyEndDate?o.occupancyEndDateString:'(No End Date)')+""+(0===o.lotOccupancyOccupants.length?'(No '+cityssm.escapeHTML(exports.aliases.occupants)+")":cityssm.escapeHTML(o.lotOccupancyOccupants[0].occupantName)+(o.lotOccupancyOccupants.length>1?" plus "+(o.lotOccupancyOccupants.length-1):""))+""),e.querySelector(".button--addLotOccupancy").addEventListener("click",O),r.querySelector("tbody").append(e)}}else r.innerHTML='
\n

There are no records that meet the search criteria.

\n
'})}cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow(n){t.populateAliases(n),e=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotOccupancyAdd"),n.querySelector("#lotOccupancySearch--notWorkOrderId").value=o,n.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value=document.querySelector("#workOrderEdit--workOrderOpenDateString").value,s()},onshown(t){bulmaJS.toggleHtmlClipped(),t.querySelector("#lotOccupancySearch--occupantName").addEventListener("change",s),t.querySelector("#lotOccupancySearch--lotName").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped()}})}),document.querySelector("#button--addLot").addEventListener("click",()=>{let e,r;function s(o){o&&o.preventDefault(),r.innerHTML=t.getLoadingParagraphHTML("Searching..."),cityssm.postJSON(t.urlPrefix+"/lots/doSearchLots",e,e=>{if(0!==e.lots.length){r.innerHTML=`\n \n \n \n \n \n \n \n \n
${t.escapedAliases.Lot}${t.escapedAliases.Map}${t.escapedAliases.Lot} TypeStatus
`;for(const t of e.lots){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=t.lotId.toString(),e.innerHTML=''+cityssm.escapeHTML(t.lotName||"")+""+cityssm.escapeHTML(t.mapName||"")+""+cityssm.escapeHTML(t.lotType||"")+""+cityssm.escapeHTML(t.lotStatus||"")+"",e.querySelector(".button--addLot").addEventListener("click",h),r.querySelector("tbody").append(e)}}else r.innerHTML='

There are no records that meet the search criteria.

'})}cityssm.openHtmlModal("workOrder-addLot",{onshow(n){t.populateAliases(n),e=n.querySelector("form"),r=n.querySelector("#resultsContainer--lotAdd"),n.querySelector("#lotSearch--notWorkOrderId").value=o;const a=n.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,a.append(t)}s()},onshown(t){bulmaJS.toggleHtmlClipped(),t.querySelector("#lotSearch--lotName").addEventListener("change",s),t.querySelector("#lotSearch--lotStatusId").addEventListener("change",s),e.addEventListener("submit",s)},onremoved(){bulmaJS.toggleHtmlClipped()}})})}var w;Object.defineProperty(exports,"__esModule",{value:!0});let k=exports.workOrderComments;delete exports.workOrderComments;const S=e=>{const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=k.find(e=>e.workOrderCommentId===r);let n,a;function l(e){e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderComment",n,e=>{e.success?(k=e.workOrderComments,a(),b()):bulmaJS.alert({title:"Error Updating Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("workOrder-editComment",{onshow(e){e.querySelector("#workOrderCommentEdit--workOrderId").value=o,e.querySelector("#workOrderCommentEdit--workOrderCommentId").value=r.toString(),e.querySelector("#workOrderCommentEdit--workOrderComment").value=s.workOrderComment;const t=e.querySelector("#workOrderCommentEdit--workOrderCommentDateString");t.value=s.workOrderCommentDateString;const n=cityssm.dateToString(new Date);t.max=s.workOrderCommentDateString<=n?n:s.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=s.workOrderCommentTimeString},onshown(e,o){bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(n=e.querySelector("form")).addEventListener("submit",l),a=o},onremoved(){bulmaJS.toggleHtmlClipped()}})};function g(e){const r=Number.parseInt(e.currentTarget.closest("tr").dataset.workOrderCommentId,10);bulmaJS.confirm({title:"Remove Comment?",message:"Are you sure you want to remove this comment?",okButton:{text:"Yes, Remove Comment",callbackFunction:function(){cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:o,workOrderCommentId:r},e=>{e.success?(k=e.workOrderComments,b()):bulmaJS.alert({title:"Error Removing Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})}function b(){const e=document.querySelector("#container--workOrderComments");if(0===k.length)return void(e.innerHTML='
\n

There are no comments to display.

\n
');const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML='\n Commentor\n Comment Date\n Comment\n Options';for(const e of k){const o=document.createElement("tr");o.dataset.workOrderCommentId=e.workOrderCommentId.toString(),o.innerHTML=""+cityssm.escapeHTML(e.recordCreate_userName||"")+""+e.workOrderCommentDateString+(0===e.workOrderCommentTime?"":" "+e.workOrderCommentTimeString)+""+cityssm.escapeHTML(e.workOrderComment||"")+'
',o.querySelector(".button--edit").addEventListener("click",S),o.querySelector(".button--delete").addEventListener("click",g),t.querySelector("tbody").append(o)}e.innerHTML="",e.append(t)}function f(e){e.success?(c=e.workOrderMilestones,T()):bulmaJS.alert({title:"Error Reopening Milestone",message:e.errorMessage||"",contextualColorName:"danger"})}function M(e){e.preventDefault();const r=cityssm.dateToString(new Date),s=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=c.find(e=>e.workOrderMilestoneId===s);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(n.workOrderMilestoneDateString>r?"
Note that this milestone is expected to be completed in the future.":""),messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Complete Milestone",callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/workOrders/doCompleteWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:s},f)}}})}function v(e){e.preventDefault();const r=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Reopen Milestone",message:"Are you sure you want to remove the completion status from this milestone, and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Milestone",callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/workOrders/doReopenWorkOrderMilestone",{workOrderId:o,workOrderMilestoneId:r},f)}}})}function L(e){e.preventDefault();const r=e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;bulmaJS.confirm({title:"Delete Milestone",message:"Are you sure you want to delete this milestone?",contextualColorName:"warning",okButton:{text:"Yes, Delete Milestone",callbackFunction:()=>{cityssm.postJSON(t.urlPrefix+"/workOrders/doDeleteWorkOrderMilestone",{workOrderMilestoneId:r,workOrderId:o},f)}}})}function C(e){e.preventDefault();const r=Number.parseInt(e.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),s=c.find(e=>e.workOrderMilestoneId===r);let n;const a=e=>{e.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",e.currentTarget,e=>{f(e),e.success&&n()})};cityssm.openHtmlModal("workOrder-editMilestone",{onshow(e){e.querySelector("#milestoneEdit--workOrderId").value=o,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=s.workOrderMilestoneId.toString();const t=e.querySelector("#milestoneEdit--workOrderMilestoneTypeId");let r=!1;for(const e of exports.workOrderMilestoneTypes){const o=document.createElement("option");o.value=e.workOrderMilestoneTypeId.toString(),o.textContent=e.workOrderMilestoneType,e.workOrderMilestoneTypeId===s.workOrderMilestoneTypeId&&(o.selected=!0,r=!0),t.append(o)}if(!r&&s.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=s.workOrderMilestoneTypeId.toString(),e.textContent=s.workOrderMilestoneType,e.selected=!0,t.append(e)}e.querySelector("#milestoneEdit--workOrderMilestoneDateString").value=s.workOrderMilestoneDateString,s.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=s.workOrderMilestoneTimeString),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=s.workOrderMilestoneDescription},onshown(e,o){n=o,bulmaJS.toggleHtmlClipped(),t.initializeDatePickers(e),e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function T(){var e,t,o;const r=document.querySelector("#panel--milestones"),s=r.querySelectorAll(".panel-block");for(const e of s)e.remove();for(const s of c){const n=document.createElement("div");n.className="panel-block is-block container--milestone",n.dataset.workOrderMilestoneId=s.workOrderMilestoneId.toString(),n.innerHTML='
'+(s.workOrderMilestoneCompletionDate?'':'')+'
'+(s.workOrderMilestoneTypeId?""+cityssm.escapeHTML(s.workOrderMilestoneType||"")+"
":"")+s.workOrderMilestoneDateString+(s.workOrderMilestoneTime?" "+s.workOrderMilestoneTimeString:"")+'
'+cityssm.escapeHTML(s.workOrderMilestoneDescription||"")+'
',null===(e=n.querySelector(".button--reopenMilestone"))||void 0===e||e.addEventListener("click",v),null===(t=n.querySelector(".button--editMilestone"))||void 0===t||t.addEventListener("click",C),null===(o=n.querySelector(".button--completeMilestone"))||void 0===o||o.addEventListener("click",M),n.querySelector(".button--deleteMilestone").addEventListener("click",L),r.append(n)}bulmaJS.init(r)}null===(w=document.querySelector("#workOrderComments--add"))||void 0===w||w.addEventListener("click",function(){let e;function r(o){o.preventDefault(),cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderComment",o.currentTarget,t=>{t.success&&(k=t.workOrderComments,b(),e())})}cityssm.openHtmlModal("workOrder-addComment",{onshow(e){t.populateAliases(e),e.querySelector("#workOrderCommentAdd--workOrderId").value=o,e.querySelector("form").addEventListener("submit",r)},onshown(t,o){bulmaJS.toggleHtmlClipped(),e=o,t.querySelector("#workOrderCommentAdd--workOrderComment").focus()},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#workOrderComments--add").focus()}})}),r||b(),r||(c=exports.workOrderMilestones,delete exports.workOrderMilestones,T(),document.querySelector("#button--addMilestone").addEventListener("click",()=>{let e,r,s;const n=o=>{o&&o.preventDefault();const n=cityssm.dateToString(new Date);function a(){cityssm.postJSON(t.urlPrefix+"/workOrders/doAddWorkOrderMilestone",r,e=>{f(e),e.success&&s()})}e.querySelector("#milestoneAdd--workOrderMilestoneDateString").value{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){if(0===s.length)return void(t.innerHTML='
\n

There are no milestones that meet the search criteria.

\n
');t.innerHTML="";const r=cityssm.dateToString(new Date);let a,i="";for(const o of s){i!==o.workOrderMilestoneDateString&&(a&&t.append(a),(a=document.createElement("div")).className="panel",a.innerHTML=`

${o.workOrderMilestoneDateString}

`,i=o.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!o.workOrderMilestoneCompletionDate&&o.workOrderMilestoneDateString '+cityssm.escapeHTML(s.lotName||"")+"
";for(const s of o.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)n+=' '+cityssm.escapeHTML(r.occupantName||"")+"
";s.innerHTML='
'+(o.workOrderMilestoneCompletionDate?'':'')+'
'+(0===o.workOrderMilestoneTime?"":o.workOrderMilestoneTimeString+"
")+(o.workOrderMilestoneTypeId?""+cityssm.escapeHTML(o.workOrderMilestoneType)+"
":"")+''+cityssm.escapeHTML(o.workOrderMilestoneDescription)+'
'+cityssm.escapeHTML(o.workOrderNumber||"")+'
'+cityssm.escapeHTML(o.workOrderDescription||"")+'
'+n+"
",a.append(s)}t.append(a)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){if(0===s.length)return void(t.innerHTML='
\n

There are no milestones that meet the search criteria.

\n
');t.innerHTML="";const r=cityssm.dateToString(new Date);let a,i="";for(const o of s){i!==o.workOrderMilestoneDateString&&(a&&t.append(a),(a=document.createElement("div")).className="panel",a.innerHTML=`

${o.workOrderMilestoneDateString}

`,i=o.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!o.workOrderMilestoneCompletionDate&&o.workOrderMilestoneDateString '+cityssm.escapeHTML(s.lotName||"")+"
";for(const s of o.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)n+=' '+cityssm.escapeHTML(r.occupantName||"")+"
";s.innerHTML='
'+(o.workOrderMilestoneCompletionDate?'':'')+'
'+(0===o.workOrderMilestoneTime?"":o.workOrderMilestoneTimeString+"
")+(o.workOrderMilestoneTypeId?""+cityssm.escapeHTML(o.workOrderMilestoneType)+"
":"")+''+cityssm.escapeHTML(o.workOrderMilestoneDescription)+'
'+cityssm.escapeHTML(o.workOrderNumber||"")+'
'+cityssm.escapeHTML(o.workOrderDescription||"")+'
'+n+"
",a.append(s)}t.append(a)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})(); \ No newline at end of file diff --git a/public/javascripts/workOrderSearch.min.js b/public/javascripts/workOrderSearch.min.js index cc157cc8..aa3d92e0 100644 --- a/public/javascripts/workOrderSearch.min.js +++ b/public/javascripts/workOrderSearch.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=exports.workOrderPrints,s=document.querySelector("#form--searchFilters");e.initializeDatePickers(s);const r=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),o=document.querySelector("#searchFilter--offset");function i(s){var o,i;if(0===s.workOrders.length)return void(r.innerHTML='

There are no work orders that meet the search criteria.

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

There are no work orders that meet the search criteria.

');const l=document.createElement("tbody");for(const r of s.workOrders){let s="";for(const t of r.workOrderLots)s+=' '+cityssm.escapeHTML(t.lotName||"(No "+exports.aliases.Lot+" Name)")+"
";for(const t of r.workOrderLotOccupancies)for(const r of t.lotOccupancyOccupants)s+=' '+cityssm.escapeHTML(r.occupantName||"(No Name)")+"
";l.insertAdjacentHTML("beforeend",'"+(t.length>0?'':"")+"")}r.innerHTML='
'+(r.workOrderNumber.trim()?cityssm.escapeHTML(r.workOrderNumber||""):"(No Number)")+""+cityssm.escapeHTML(r.workOrderType||"")+'
'+cityssm.escapeHTML(r.workOrderDescription||"")+'
'+s+' '+r.workOrderOpenDateString+'
'+(r.workOrderCloseDate?r.workOrderCloseDateString:'(No '+e.escapedAliases.WorkOrderCloseDate+")")+"
"+(0===r.workOrderMilestoneCount?"-":r.workOrderMilestoneCompletionCount+" / "+r.workOrderMilestoneCount)+"
'+(t.length>0?'':"")+"
Work Order NumberDescriptionRelatedDateProgress
",r.insertAdjacentHTML("beforeend",e.getSearchResultsPagerHTML(a,s.offset,s.count)),r.querySelector("table").append(l),null===(o=r.querySelector("button[data-page='previous']"))||void 0===o||o.addEventListener("click",c),null===(i=r.querySelector("button[data-page='next']"))||void 0===i||i.addEventListener("click",d)}function l(){r.innerHTML=e.getLoadingParagraphHTML("Loading Work Orders..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doSearchWorkOrders",s,i)}function n(){o.value="0",l()}function c(){o.value=Math.max(Number.parseInt(o.value,10)-a,0).toString(),l()}function d(){o.value=(Number.parseInt(o.value,10)+a).toString(),l()}const p=s.querySelectorAll("input, select");for(const e of p)e.addEventListener("change",n);s.addEventListener("submit",e=>{e.preventDefault(),n()}),l()})(); \ No newline at end of file diff --git a/public/javascripts/workOrderView.min.js b/public/javascripts/workOrderView.min.js index e3c58911..c69b648b 100644 --- a/public/javascripts/workOrderView.min.js +++ b/public/javascripts/workOrderView.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,r=document.querySelector("#button--reopenWorkOrder");if(r){const o=r.dataset.workOrderId;r.addEventListener("click",()=>{bulmaJS.confirm({title:"Reopen Work Order",message:"Are you sure you want to remove the close date from this work order and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Work Order",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/workOrders/doReopenWorkOrder",{workOrderId:o},r=>{r.success?window.location.href=e.urlPrefix+"/workOrders/"+o+"/edit/?t="+Date.now():bulmaJS.alert({title:"Error Reopening Work Order",message:r.errorMessage||"",contextualColorName:"danger"})})}}})})}})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,r=document.querySelector("#button--reopenWorkOrder");if(r){const o=r.dataset.workOrderId;r.addEventListener("click",()=>{bulmaJS.confirm({title:"Reopen Work Order",message:"Are you sure you want to remove the close date from this work order and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Work Order",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/workOrders/doReopenWorkOrder",{workOrderId:o},r=>{r.success?window.location.href=e.getWorkOrderURL(o,!0,!0):bulmaJS.alert({title:"Error Reopening Work Order",message:r.errorMessage||"",contextualColorName:"danger"})})}}})})}})(); \ No newline at end of file diff --git a/types/globalTypes.d.ts b/types/globalTypes.d.ts index 10a3b009..8bb0830a 100644 --- a/types/globalTypes.d.ts +++ b/types/globalTypes.d.ts @@ -38,4 +38,8 @@ export interface LOS { getMoveUpDownButtonFieldHTML: (upButtonClassNames: string, downButtonClassNames: string, isSmall?: boolean) => string; getLoadingParagraphHTML: (captionText?: string) => string; getSearchResultsPagerHTML: (limit: number, offset: number, count: number) => string; + getMapURL: (mapId: number | string, edit?: boolean, time?: boolean) => string; + getLotURL: (lotId: number | string, edit?: boolean, time?: boolean) => string; + getLotOccupancyURL: (lotOccupancyId: number | string, edit?: boolean, time?: boolean) => string; + getWorkOrderURL: (workOrderId: number | string, edit?: boolean, time?: boolean) => string; } diff --git a/types/globalTypes.ts b/types/globalTypes.ts index a8b8fa9d..d446f4ae 100644 --- a/types/globalTypes.ts +++ b/types/globalTypes.ts @@ -48,7 +48,16 @@ export interface LOS { clearUnsavedChanges: () => void; hasUnsavedChanges: () => boolean; - getMoveUpDownButtonFieldHTML: (upButtonClassNames: string, downButtonClassNames: string, isSmall?: boolean) => string; + getMoveUpDownButtonFieldHTML: ( + upButtonClassNames: string, + downButtonClassNames: string, + isSmall?: boolean + ) => string; getLoadingParagraphHTML: (captionText?: string) => string; getSearchResultsPagerHTML: (limit: number, offset: number, count: number) => string; + + getMapURL: (mapId: number | string, edit?: boolean, time?: boolean) => string; + getLotURL: (lotId: number | string, edit?: boolean, time?: boolean) => string; + getLotOccupancyURL: (lotOccupancyId: number | string, edit?: boolean, time?: boolean) => string; + getWorkOrderURL: (workOrderId: number | string, edit?: boolean, time?: boolean) => string; }