diff --git a/public-typescript/adminFees.js b/public-typescript/adminFees.js index d766953c..2204ad69 100644 --- a/public-typescript/adminFees.js +++ b/public-typescript/adminFees.js @@ -90,14 +90,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); (fee.isRequired ? 'Required' : "") + (fee.occupancyTypeId ? ' ' + cityssm.escapeHTML(fee.occupancyType || "") + "" : "") + (fee.lotTypeId ? ' ' + cityssm.escapeHTML(fee.lotType || "") + "" diff --git a/public-typescript/adminFees.ts b/public-typescript/adminFees.ts index 4ae74e3d..1b854d15 100644 --- a/public-typescript/adminFees.ts +++ b/public-typescript/adminFees.ts @@ -118,14 +118,14 @@ declare const bulmaJS: BulmaJS; (fee.isRequired ? 'Required' : "") + (fee.occupancyTypeId ? ' ' + cityssm.escapeHTML(fee.occupancyType || "") + "" : "") + (fee.lotTypeId ? ' ' + cityssm.escapeHTML(fee.lotType || "") + "" diff --git a/public-typescript/adminLotTypes.js b/public-typescript/adminLotTypes.js index aadc6af1..e7a9cdfd 100644 --- a/public-typescript/adminLotTypes.js +++ b/public-typescript/adminLotTypes.js @@ -39,7 +39,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); } } function deleteLotType(clickEvent) { - const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10); + const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset + .lotTypeId, 10); function doDelete() { cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotType", { lotTypeId @@ -56,7 +57,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function openEditLotType(clickEvent) { - const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10); + const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset + .lotTypeId, 10); const lotType = lotTypes.find((currentLotType) => { return lotTypeId === currentLotType.lotTypeId; }); @@ -90,7 +92,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function openAddLotTypeField(clickEvent) { - const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10); + const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset + .lotTypeId, 10); let addCloseModalFunction; const doAdd = (submitEvent) => { submitEvent.preventDefault(); @@ -107,7 +110,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); onshow(modalElement) { los.populateAliases(modalElement); if (lotTypeId) { - modalElement.querySelector("#lotTypeFieldAdd--lotTypeId").value = lotTypeId.toString(); + modalElement.querySelector("#lotTypeFieldAdd--lotTypeId").value = + lotTypeId.toString(); } }, onshown(modalElement, closeModalFunction) { @@ -123,13 +127,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); } function moveLotType(clickEvent) { const buttonElement = clickEvent.currentTarget; - const lotTypeId = buttonElement.closest(".container--lotType").dataset - .lotTypeId; + const lotTypeId = buttonElement.closest(".container--lotType").dataset.lotTypeId; cityssm.postJSON(los.urlPrefix + "/admin/" + - (buttonElement.dataset.direction === "up" - ? "doMoveLotTypeUp" - : "doMoveLotTypeDown"), { + (buttonElement.dataset.direction === "up" ? "doMoveLotTypeUp" : "doMoveLotTypeDown"), { lotTypeId, moveToEnd: clickEvent.shiftKey ? "1" : "0" }, lotTypeResponseHandler); @@ -194,9 +195,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.openHtmlModal("adminLotTypes-editLotTypeField", { onshow(modalElement) { los.populateAliases(modalElement); - modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value = lotTypeField.lotTypeFieldId.toString(); - modalElement.querySelector("#lotTypeFieldEdit--lotTypeField").value = lotTypeField.lotTypeField; - modalElement.querySelector("#lotTypeFieldEdit--isRequired").value = lotTypeField.isRequired ? "1" : "0"; + modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value = + lotTypeField.lotTypeFieldId.toString(); + modalElement.querySelector("#lotTypeFieldEdit--lotTypeField").value = + lotTypeField.lotTypeField; + modalElement.querySelector("#lotTypeFieldEdit--isRequired").value = + lotTypeField.isRequired ? "1" : "0"; minimumLengthElement = modalElement.querySelector("#lotTypeFieldEdit--minimumLength"); minimumLengthElement.value = lotTypeField.minimumLength.toString(); maximumLengthElement = modalElement.querySelector("#lotTypeFieldEdit--maximumLength"); @@ -228,14 +232,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); } function openEditLotTypeFieldByClick(clickEvent) { clickEvent.preventDefault(); - const lotTypeFieldId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId, 10); - const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10); + const lotTypeFieldId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotTypeField") + .dataset.lotTypeFieldId, 10); + const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset + .lotTypeId, 10); openEditLotTypeField(lotTypeId, lotTypeFieldId); } function moveLotTypeField(clickEvent) { const buttonElement = clickEvent.currentTarget; - const lotTypeFieldId = buttonElement.closest(".container--lotTypeField") - .dataset.lotTypeFieldId; + const lotTypeFieldId = buttonElement.closest(".container--lotTypeField").dataset + .lotTypeFieldId; cityssm.postJSON(los.urlPrefix + "/admin/" + (buttonElement.dataset.direction === "up" @@ -373,7 +379,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.lot + " Type", + title: `Error Adding ${los.escapedAliases.Lot} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); diff --git a/public-typescript/adminLotTypes.ts b/public-typescript/adminLotTypes.ts index e3a4cb48..b53a56f7 100644 --- a/public-typescript/adminLotTypes.ts +++ b/public-typescript/adminLotTypes.ts @@ -63,11 +63,8 @@ declare const bulmaJS: BulmaJS; function deleteLotType(clickEvent: Event) { const lotTypeId = Number.parseInt( - ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--lotType" - ) as HTMLElement - ).dataset.lotTypeId!, + ((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset + .lotTypeId!, 10 ); @@ -94,11 +91,8 @@ declare const bulmaJS: BulmaJS; function openEditLotType(clickEvent: Event) { const lotTypeId = Number.parseInt( - ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--lotType" - ) as HTMLElement - ).dataset.lotTypeId!, + ((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset + .lotTypeId!, 10 ); @@ -154,11 +148,8 @@ declare const bulmaJS: BulmaJS; function openAddLotTypeField(clickEvent: Event) { const lotTypeId = Number.parseInt( - ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--lotType" - ) as HTMLElement - ).dataset.lotTypeId!, + ((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset + .lotTypeId!, 10 ); @@ -192,19 +183,14 @@ declare const bulmaJS: BulmaJS; los.populateAliases(modalElement); if (lotTypeId) { - ( - modalElement.querySelector( - "#lotTypeFieldAdd--lotTypeId" - ) as HTMLInputElement - ).value = lotTypeId.toString(); + (modalElement.querySelector("#lotTypeFieldAdd--lotTypeId") as HTMLInputElement).value = + lotTypeId.toString(); } }, onshown(modalElement, closeModalFunction) { addCloseModalFunction = closeModalFunction; - ( - modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement - ).focus(); + (modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement).focus(); modalElement.querySelector("form")!.addEventListener("submit", doAdd); @@ -219,15 +205,12 @@ declare const bulmaJS: BulmaJS; function moveLotType(clickEvent: MouseEvent) { const buttonElement = clickEvent.currentTarget as HTMLButtonElement; - const lotTypeId = (buttonElement.closest(".container--lotType") as HTMLElement).dataset - .lotTypeId; + const lotTypeId = (buttonElement.closest(".container--lotType") as HTMLElement).dataset.lotTypeId; cityssm.postJSON( los.urlPrefix + "/admin/" + - (buttonElement.dataset.direction === "up" - ? "doMoveLotTypeUp" - : "doMoveLotTypeDown"), + (buttonElement.dataset.direction === "up" ? "doMoveLotTypeUp" : "doMoveLotTypeDown"), { lotTypeId, moveToEnd: clickEvent.shiftKey ? "1" : "0" @@ -323,21 +306,14 @@ declare const bulmaJS: BulmaJS; onshow(modalElement) { los.populateAliases(modalElement); - ( - modalElement.querySelector( - "#lotTypeFieldEdit--lotTypeFieldId" - ) as HTMLInputElement - ).value = lotTypeField.lotTypeFieldId.toString(); + (modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId") as HTMLInputElement).value = + lotTypeField.lotTypeFieldId.toString(); - ( - modalElement.querySelector( - "#lotTypeFieldEdit--lotTypeField" - ) as HTMLInputElement - ).value = lotTypeField.lotTypeField!; + (modalElement.querySelector("#lotTypeFieldEdit--lotTypeField") as HTMLInputElement).value = + lotTypeField.lotTypeField!; - ( - modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement - ).value = lotTypeField.isRequired ? "1" : "0"; + (modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement).value = + lotTypeField.isRequired ? "1" : "0"; minimumLengthElement = modalElement.querySelector( "#lotTypeFieldEdit--minimumLength" @@ -351,9 +327,7 @@ declare const bulmaJS: BulmaJS; maximumLengthElement.value = lotTypeField.maximumLength!.toString(); - patternElement = modalElement.querySelector( - "#lotTypeFieldEdit--pattern" - ) as HTMLInputElement; + patternElement = modalElement.querySelector("#lotTypeFieldEdit--pattern") as HTMLInputElement; patternElement.value = lotTypeField.pattern!; @@ -394,20 +368,14 @@ declare const bulmaJS: BulmaJS; clickEvent.preventDefault(); const lotTypeFieldId = Number.parseInt( - ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--lotTypeField" - ) as HTMLElement - ).dataset.lotTypeFieldId!, + ((clickEvent.currentTarget as HTMLElement).closest(".container--lotTypeField") as HTMLElement) + .dataset.lotTypeFieldId!, 10 ); const lotTypeId = Number.parseInt( - ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--lotType" - ) as HTMLElement - ).dataset.lotTypeId!, + ((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset + .lotTypeId!, 10 ); @@ -417,8 +385,8 @@ declare const bulmaJS: BulmaJS; function moveLotTypeField(clickEvent: MouseEvent) { const buttonElement = clickEvent.currentTarget as HTMLButtonElement; - const lotTypeFieldId = (buttonElement.closest(".container--lotTypeField") as HTMLElement) - .dataset.lotTypeFieldId; + const lotTypeFieldId = (buttonElement.closest(".container--lotTypeField") as HTMLElement).dataset + .lotTypeFieldId; cityssm.postJSON( los.urlPrefix + @@ -485,15 +453,11 @@ declare const bulmaJS: BulmaJS; .addEventListener("click", openEditLotTypeFieldByClick); ( - panelBlockElement.querySelector( - ".button--moveLotTypeFieldUp" - ) as HTMLButtonElement + panelBlockElement.querySelector(".button--moveLotTypeFieldUp") as HTMLButtonElement ).addEventListener("click", moveLotTypeField); ( - panelBlockElement.querySelector( - ".button--moveLotTypeFieldDown" - ) as HTMLButtonElement + panelBlockElement.querySelector(".button--moveLotTypeFieldDown") as HTMLButtonElement ).addEventListener("click", moveLotTypeField); panelElement.append(panelBlockElement); @@ -561,10 +525,7 @@ declare const bulmaJS: BulmaJS; "" + "") + ('
' + - los.getMoveUpDownButtonFieldHTML( - "button--moveLotTypeUp", - "button--moveLotTypeDown" - ) + + los.getMoveUpDownButtonFieldHTML("button--moveLotTypeUp", "button--moveLotTypeDown") + "
") + "") + "" + @@ -588,9 +549,10 @@ declare const bulmaJS: BulmaJS; .querySelector(".button--addLotTypeField")! .addEventListener("click", openAddLotTypeField); - ( - lotTypeContainer.querySelector(".button--moveLotTypeUp") as HTMLButtonElement - ).addEventListener("click", moveLotType); + (lotTypeContainer.querySelector(".button--moveLotTypeUp") as HTMLButtonElement).addEventListener( + "click", + moveLotType + ); ( lotTypeContainer.querySelector(".button--moveLotTypeDown") as HTMLButtonElement @@ -620,7 +582,7 @@ declare const bulmaJS: BulmaJS; renderLotTypes(); } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.lot + " Type", + title: `Error Adding ${los.escapedAliases.Lot} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); diff --git a/public-typescript/adminTables.js b/public-typescript/adminTables.js index 898d5e4a..c6ac93d8 100644 --- a/public-typescript/adminTables.js +++ b/public-typescript/adminTables.js @@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); // eslint-disable-next-line @typescript-eslint/no-unused-vars const los = exports.los; // eslint-disable-next-line @typescript-eslint/no-unused-vars - const refreshFontAwesomeIcon = (changeEvent) => { + function refreshFontAwesomeIcon(changeEvent) { const inputElement = changeEvent.currentTarget; const fontAwesomeIconClass = inputElement.value; - inputElement.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML = - ''; - }; + inputElement + .closest(".field") + .querySelectorAll(".button.is-static")[1].innerHTML = ``; + } "use strict"; /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ Object.defineProperty(exports, "__esModule", { value: true }); @@ -66,8 +67,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }; bulmaJS.confirm({ title: "Delete Work Order Type", - message: "Are you sure you want to delete this work order type?
" + - "Note that no work orders will be removed.", + message: `Are you sure you want to delete this work order type?
+ Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { @@ -82,9 +83,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; cityssm.postJSON(los.urlPrefix + "/admin/" + - (buttonElement.dataset.direction === "up" - ? "doMoveWorkOrderTypeUp" - : "doMoveWorkOrderTypeDown"), { + (buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"), { workOrderTypeId, moveToEnd: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { @@ -104,14 +103,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const renderWorkOrderTypes = () => { const containerElement = document.querySelector("#container--workOrderTypes"); if (workOrderTypes.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active work order types.

' + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

There are no active work order types.

+ `; return; } containerElement.innerHTML = ""; @@ -233,8 +227,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }; bulmaJS.confirm({ title: "Delete Work Order Milestone Type", - message: "Are you sure you want to delete this work order milestone type?
" + - "Note that no work orders will be removed.", + message: `Are you sure you want to delete this work order milestone type?
+ Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { @@ -271,14 +265,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const renderWorkOrderMilestoneTypes = () => { const containerElement = document.querySelector("#container--workOrderMilestoneTypes"); if (workOrderMilestoneTypes.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active work order milestone types.

' + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

There are no active work order milestone types.

+ `; return; } containerElement.innerHTML = ""; @@ -357,13 +346,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; bulmaJS.alert({ - message: exports.aliases.lot + " Status Updated Successfully", + message: los.escapedAliases.Lot + " Status Updated Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Updating " + exports.aliases.lot + " Status", + title: "Error Updating " + los.escapedAliases.Lot + " Status", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -386,13 +375,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); tableRowElement.remove(); } bulmaJS.alert({ - message: exports.aliases.lot + " Status Deleted Successfully", + message: los.escapedAliases.Lot + " Status Deleted Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Deleting " + exports.aliases.lot + " Status", + title: "Error Deleting " + los.escapedAliases.Lot + " Status", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -400,11 +389,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); }; bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " Status", - message: "Are you sure you want to delete this status?
" + - "Note that no " + - exports.aliases.lots.toLowerCase() + - " will be removed.", + title: `Delete ${los.escapedAliases.Lot} Status`, + message: `Are you sure you want to delete this status?
+ Note that no ${los.escapedAliases.lot} will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { @@ -419,9 +406,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const lotStatusId = tableRowElement.dataset.lotStatusId; cityssm.postJSON(los.urlPrefix + "/admin/" + - (buttonElement.dataset.direction === "up" - ? "doMoveLotStatusUp" - : "doMoveLotStatusDown"), { + (buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"), { lotStatusId, moveToEnd: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { @@ -441,16 +426,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const renderLotStatuses = () => { const containerElement = document.querySelector("#container--lotStatuses"); if (lotStatuses.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active ' + - cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) + - " statuses.

" + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

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

+ `; return; } containerElement.innerHTML = ""; @@ -491,9 +469,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus); tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatus); tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatus); - tableRowElement - .querySelector(".button--deleteLotStatus") - .addEventListener("click", deleteLotStatus); + tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus); containerElement.append(tableRowElement); } }; @@ -509,7 +485,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.lot + " Status", + title: `Error Adding ${los.escapedAliases.Lot} Status`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -529,20 +505,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; bulmaJS.alert({ - message: exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type Updated Successfully", + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`, contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Updating " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -565,20 +534,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); tableRowElement.remove(); } bulmaJS.alert({ - message: exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type Deleted Successfully", + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`, contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Deleting " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -586,21 +548,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); }; bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", - message: "Are you sure you want to delete this " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupant.toLowerCase() + - " type?
" + - "Note that no " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupancy.toLowerCase() + - " will be removed.", + title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, + message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?
+ Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { - text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", + text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, callbackFunction: doDelete } }); @@ -623,11 +577,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: "Error Moving " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -637,18 +587,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const renderLotOccupantTypes = () => { const containerElement = document.querySelector("#container--lotOccupantTypes"); if (lotOccupantTypes.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active ' + - cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) + - " " + - cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) + - " types.

" + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

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

+ `; return; } containerElement.innerHTML = ""; @@ -703,14 +644,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); '
' + '" + @@ -741,11 +682,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: "Error Adding " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); diff --git a/public-typescript/adminTables/adminTables.js b/public-typescript/adminTables/adminTables.js index 67c024f4..c3ca4c3f 100644 --- a/public-typescript/adminTables/adminTables.js +++ b/public-typescript/adminTables/adminTables.js @@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); // eslint-disable-next-line @typescript-eslint/no-unused-vars const los = exports.los; // eslint-disable-next-line @typescript-eslint/no-unused-vars - const refreshFontAwesomeIcon = (changeEvent) => { + function refreshFontAwesomeIcon(changeEvent) { const inputElement = changeEvent.currentTarget; const fontAwesomeIconClass = inputElement.value; - inputElement.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML = - ''; - }; + inputElement + .closest(".field") + .querySelectorAll(".button.is-static")[1].innerHTML = ``; + } //=include adminTablesWorkOrderTypes.js //=include adminTablesWorkOrderMilestoneTypes.js //=include adminTablesLotStatuses.js diff --git a/public-typescript/adminTables/adminTables.ts b/public-typescript/adminTables/adminTables.ts index 813284db..08f939d2 100644 --- a/public-typescript/adminTables/adminTables.ts +++ b/public-typescript/adminTables/adminTables.ts @@ -7,14 +7,17 @@ import type * as globalTypes from "../../types/globalTypes"; const los = exports.los as globalTypes.LOS; // eslint-disable-next-line @typescript-eslint/no-unused-vars - const refreshFontAwesomeIcon = (changeEvent: Event) => { + function refreshFontAwesomeIcon(changeEvent: Event) { const inputElement = changeEvent.currentTarget as HTMLInputElement; const fontAwesomeIconClass = inputElement.value; - inputElement.closest(".field")!.querySelectorAll(".button.is-static")[1].innerHTML = - ''; - }; + inputElement + .closest(".field")! + .querySelectorAll( + ".button.is-static" + )[1].innerHTML = ``; + } //=include adminTablesWorkOrderTypes.js //=include adminTablesWorkOrderMilestoneTypes.js diff --git a/public-typescript/adminTables/adminTablesLotOccupantTypes.js b/public-typescript/adminTables/adminTablesLotOccupantTypes.js index 84ad8ce0..41afaa16 100644 --- a/public-typescript/adminTables/adminTablesLotOccupantTypes.js +++ b/public-typescript/adminTables/adminTablesLotOccupantTypes.js @@ -9,20 +9,13 @@ const updateLotOccupantType = (submitEvent) => { if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; bulmaJS.alert({ - message: exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type Updated Successfully", + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`, contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Updating " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -45,20 +38,13 @@ const deleteLotOccupantType = (clickEvent) => { tableRowElement.remove(); } bulmaJS.alert({ - message: exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type Deleted Successfully", + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`, contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Deleting " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -66,21 +52,13 @@ const deleteLotOccupantType = (clickEvent) => { }); }; bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", - message: "Are you sure you want to delete this " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupant.toLowerCase() + - " type?
" + - "Note that no " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupancy.toLowerCase() + - " will be removed.", + title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, + message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?
+ Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { - text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", + text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, callbackFunction: doDelete } }); @@ -103,11 +81,7 @@ const moveLotOccupantType = (clickEvent) => { } else { bulmaJS.alert({ - title: "Error Moving " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -117,18 +91,9 @@ const moveLotOccupantType = (clickEvent) => { const renderLotOccupantTypes = () => { const containerElement = document.querySelector("#container--lotOccupantTypes"); if (lotOccupantTypes.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active ' + - cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) + - " " + - cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) + - " types.

" + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

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

+ `; return; } containerElement.innerHTML = ""; @@ -183,14 +148,14 @@ const renderLotOccupantTypes = () => { '
' + '" + @@ -221,11 +186,7 @@ document.querySelector("#form--addLotOccupantType").addEventListener("submit", ( } else { bulmaJS.alert({ - title: "Error Adding " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); diff --git a/public-typescript/adminTables/adminTablesLotOccupantTypes.ts b/public-typescript/adminTables/adminTablesLotOccupantTypes.ts index 352e867a..7bc633ad 100644 --- a/public-typescript/adminTables/adminTablesLotOccupantTypes.ts +++ b/public-typescript/adminTables/adminTablesLotOccupantTypes.ts @@ -31,21 +31,12 @@ const updateLotOccupantType = (submitEvent: SubmitEvent) => { lotOccupantTypes = responseJSON.lotOccupantTypes!; bulmaJS.alert({ - message: - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type Updated Successfully", + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`, contextualColorName: "success" }); } else { bulmaJS.alert({ - title: - "Error Updating " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -80,21 +71,12 @@ const deleteLotOccupantType = (clickEvent: Event) => { } bulmaJS.alert({ - message: - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type Deleted Successfully", + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`, contextualColorName: "success" }); } else { bulmaJS.alert({ - title: - "Error Deleting " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -104,22 +86,13 @@ const deleteLotOccupantType = (clickEvent: Event) => { }; bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", - message: - "Are you sure you want to delete this " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupant.toLowerCase() + - " type?
" + - "Note that no " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupancy.toLowerCase() + - " will be removed.", + title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, + message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?
+ Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { - text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", + text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, callbackFunction: doDelete } }); @@ -152,12 +125,7 @@ const moveLotOccupantType = (clickEvent: MouseEvent) => { renderLotOccupantTypes(); } else { bulmaJS.alert({ - title: - "Error Moving " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -172,18 +140,9 @@ const renderLotOccupantTypes = () => { ) as HTMLTableSectionElement; if (lotOccupantTypes.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active ' + - cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) + - " " + - cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) + - " types.

" + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

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

+ `; return; } @@ -248,14 +207,14 @@ const renderLotOccupantTypes = () => { '
' + '" + @@ -263,9 +222,7 @@ const renderLotOccupantTypes = () => { "
" + ""; - const fontAwesomeInputElement = tableRowElement.querySelector( - "input[name='fontAwesomeIconClass']" - )!; + const fontAwesomeInputElement = tableRowElement.querySelector("input[name='fontAwesomeIconClass']")!; fontAwesomeInputElement.addEventListener("keyup", refreshFontAwesomeIcon); fontAwesomeInputElement.addEventListener("change", refreshFontAwesomeIcon); @@ -310,12 +267,7 @@ const renderLotOccupantTypes = () => { formElement.querySelector("input")!.focus(); } else { bulmaJS.alert({ - title: - "Error Adding " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); diff --git a/public-typescript/adminTables/adminTablesLotStatuses.js b/public-typescript/adminTables/adminTablesLotStatuses.js index 8b4b6950..c0c9b61a 100644 --- a/public-typescript/adminTables/adminTablesLotStatuses.js +++ b/public-typescript/adminTables/adminTablesLotStatuses.js @@ -9,13 +9,13 @@ const updateLotStatus = (submitEvent) => { if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; bulmaJS.alert({ - message: exports.aliases.lot + " Status Updated Successfully", + message: los.escapedAliases.Lot + " Status Updated Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Updating " + exports.aliases.lot + " Status", + title: "Error Updating " + los.escapedAliases.Lot + " Status", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -38,13 +38,13 @@ const deleteLotStatus = (clickEvent) => { tableRowElement.remove(); } bulmaJS.alert({ - message: exports.aliases.lot + " Status Deleted Successfully", + message: los.escapedAliases.Lot + " Status Deleted Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Deleting " + exports.aliases.lot + " Status", + title: "Error Deleting " + los.escapedAliases.Lot + " Status", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -52,11 +52,9 @@ const deleteLotStatus = (clickEvent) => { }); }; bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " Status", - message: "Are you sure you want to delete this status?
" + - "Note that no " + - exports.aliases.lots.toLowerCase() + - " will be removed.", + title: `Delete ${los.escapedAliases.Lot} Status`, + message: `Are you sure you want to delete this status?
+ Note that no ${los.escapedAliases.lot} will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { @@ -71,9 +69,7 @@ const moveLotStatus = (clickEvent) => { const lotStatusId = tableRowElement.dataset.lotStatusId; cityssm.postJSON(los.urlPrefix + "/admin/" + - (buttonElement.dataset.direction === "up" - ? "doMoveLotStatusUp" - : "doMoveLotStatusDown"), { + (buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"), { lotStatusId, moveToEnd: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { @@ -93,16 +89,9 @@ const moveLotStatus = (clickEvent) => { const renderLotStatuses = () => { const containerElement = document.querySelector("#container--lotStatuses"); if (lotStatuses.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active ' + - cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) + - " statuses.

" + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

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

+ `; return; } containerElement.innerHTML = ""; @@ -143,9 +132,7 @@ const renderLotStatuses = () => { tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus); tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatus); tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatus); - tableRowElement - .querySelector(".button--deleteLotStatus") - .addEventListener("click", deleteLotStatus); + tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus); containerElement.append(tableRowElement); } }; @@ -161,7 +148,7 @@ document.querySelector("#form--addLotStatus").addEventListener("submit", (submit } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.lot + " Status", + title: `Error Adding ${los.escapedAliases.Lot} Status`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); diff --git a/public-typescript/adminTables/adminTablesLotStatuses.ts b/public-typescript/adminTables/adminTablesLotStatuses.ts index 3213834d..9f9d0232 100644 --- a/public-typescript/adminTables/adminTablesLotStatuses.ts +++ b/public-typescript/adminTables/adminTablesLotStatuses.ts @@ -30,12 +30,12 @@ const updateLotStatus = (submitEvent: SubmitEvent) => { lotStatuses = responseJSON.lotStatuses!; bulmaJS.alert({ - message: exports.aliases.lot + " Status Updated Successfully", + message: los.escapedAliases.Lot + " Status Updated Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Updating " + exports.aliases.lot + " Status", + title: "Error Updating " + los.escapedAliases.Lot + " Status", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -70,12 +70,12 @@ const deleteLotStatus = (clickEvent: Event) => { } bulmaJS.alert({ - message: exports.aliases.lot + " Status Deleted Successfully", + message: los.escapedAliases.Lot + " Status Deleted Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Deleting " + exports.aliases.lot + " Status", + title: "Error Deleting " + los.escapedAliases.Lot + " Status", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -85,12 +85,9 @@ const deleteLotStatus = (clickEvent: Event) => { }; bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " Status", - message: - "Are you sure you want to delete this status?
" + - "Note that no " + - exports.aliases.lots.toLowerCase() + - " will be removed.", + title: `Delete ${los.escapedAliases.Lot} Status`, + message: `Are you sure you want to delete this status?
+ Note that no ${los.escapedAliases.lot} will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { @@ -110,9 +107,7 @@ const moveLotStatus = (clickEvent: MouseEvent) => { cityssm.postJSON( los.urlPrefix + "/admin/" + - (buttonElement.dataset.direction === "up" - ? "doMoveLotStatusUp" - : "doMoveLotStatusDown"), + (buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"), { lotStatusId, moveToEnd: clickEvent.shiftKey ? "1" : "0" @@ -137,21 +132,12 @@ const moveLotStatus = (clickEvent: MouseEvent) => { }; const renderLotStatuses = () => { - const containerElement = document.querySelector( - "#container--lotStatuses" - ) as HTMLTableSectionElement; + const containerElement = document.querySelector("#container--lotStatuses") as HTMLTableSectionElement; if (lotStatuses.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active ' + - cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) + - " statuses.

" + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

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

+ `; return; } @@ -185,11 +171,7 @@ const renderLotStatuses = () => { '' + '
' + '
' + - los.getMoveUpDownButtonFieldHTML( - "button--moveLotStatusUp", - "button--moveLotStatusDown", - false - ) + + los.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp", "button--moveLotStatusDown", false) + "
" + '
' + '
" + ""; - (tableRowElement.querySelector("form") as HTMLFormElement).addEventListener( - "submit", - updateWorkOrderMilestoneType - ); + tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderMilestoneType); ( - tableRowElement.querySelector( - ".button--moveWorkOrderMilestoneTypeUp" - ) as HTMLButtonElement + tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeUp") as HTMLButtonElement ).addEventListener("click", moveWorkOrderMilestoneType); ( - tableRowElement.querySelector( - ".button--moveWorkOrderMilestoneTypeDown" - ) as HTMLButtonElement + tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeDown") as HTMLButtonElement ).addEventListener("click", moveWorkOrderMilestoneType); tableRowElement diff --git a/public-typescript/adminTables/adminTablesWorkOrderTypes.js b/public-typescript/adminTables/adminTablesWorkOrderTypes.js index 2b95e7bf..53b9d854 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderTypes.js +++ b/public-typescript/adminTables/adminTablesWorkOrderTypes.js @@ -53,8 +53,8 @@ const deleteWorkOrderType = (clickEvent) => { }; bulmaJS.confirm({ title: "Delete Work Order Type", - message: "Are you sure you want to delete this work order type?
" + - "Note that no work orders will be removed.", + message: `Are you sure you want to delete this work order type?
+ Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { @@ -69,9 +69,7 @@ const moveWorkOrderType = (clickEvent) => { const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; cityssm.postJSON(los.urlPrefix + "/admin/" + - (buttonElement.dataset.direction === "up" - ? "doMoveWorkOrderTypeUp" - : "doMoveWorkOrderTypeDown"), { + (buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"), { workOrderTypeId, moveToEnd: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { @@ -91,14 +89,9 @@ const moveWorkOrderType = (clickEvent) => { const renderWorkOrderTypes = () => { const containerElement = document.querySelector("#container--workOrderTypes"); if (workOrderTypes.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active work order types.

' + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

There are no active work order types.

+ `; return; } containerElement.innerHTML = ""; diff --git a/public-typescript/adminTables/adminTablesWorkOrderTypes.ts b/public-typescript/adminTables/adminTablesWorkOrderTypes.ts index c3a38dbb..68f7ba57 100644 --- a/public-typescript/adminTables/adminTablesWorkOrderTypes.ts +++ b/public-typescript/adminTables/adminTablesWorkOrderTypes.ts @@ -86,9 +86,8 @@ const deleteWorkOrderType = (clickEvent: Event) => { bulmaJS.confirm({ title: "Delete Work Order Type", - message: - "Are you sure you want to delete this work order type?
" + - "Note that no work orders will be removed.", + message: `Are you sure you want to delete this work order type?
+ Note that no work orders will be removed.`, messageIsHtml: true, contextualColorName: "warning", okButton: { @@ -108,9 +107,7 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => { cityssm.postJSON( los.urlPrefix + "/admin/" + - (buttonElement.dataset.direction === "up" - ? "doMoveWorkOrderTypeUp" - : "doMoveWorkOrderTypeDown"), + (buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"), { workOrderTypeId, moveToEnd: clickEvent.shiftKey ? "1" : "0" @@ -135,19 +132,12 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => { }; const renderWorkOrderTypes = () => { - const containerElement = document.querySelector( - "#container--workOrderTypes" - ) as HTMLTableSectionElement; + const containerElement = document.querySelector("#container--workOrderTypes") as HTMLTableSectionElement; if (workOrderTypes.length === 0) { - containerElement.innerHTML = - "" + - '' + - '
' + - '

There are no active work order types.

' + - "
" + - "" + - ""; + containerElement.innerHTML = ` +

There are no active work order types.

+ `; return; } @@ -196,9 +186,10 @@ const renderWorkOrderTypes = () => { tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderType); - ( - tableRowElement.querySelector(".button--moveWorkOrderTypeUp") as HTMLButtonElement - ).addEventListener("click", moveWorkOrderType); + (tableRowElement.querySelector(".button--moveWorkOrderTypeUp") as HTMLButtonElement).addEventListener( + "click", + moveWorkOrderType + ); ( tableRowElement.querySelector(".button--moveWorkOrderTypeDown") as HTMLButtonElement diff --git a/public-typescript/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit.js index 61396f06..bd6a3ec4 100644 --- a/public-typescript/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit.js @@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); (() => { var _a, _b, _c; const los = exports.los; - const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value; + const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId") + .value; const isCreate = lotOccupancyId === ""; /* * Main form @@ -13,9 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const formElement = document.querySelector("#form--lotOccupancy"); formElement.addEventListener("submit", (formEvent) => { formEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + - "/lotOccupancies/" + - (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => { + cityssm.postJSON(los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => { if (responseJSON.success) { los.clearUnsavedChanges(); if (isCreate || refreshAfterSave) { @@ -46,164 +45,150 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const formInputElement of formInputElements) { formInputElement.addEventListener("change", los.setUnsavedChanges); } - if (!isCreate) { - const doCopy = () => { - cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", { + const doCopy = () => { + cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", { + lotOccupancyId + }, (responseJSON) => { + var _a; + if (responseJSON.success) { + cityssm.disableNavBlocker(); + window.location.href = + los.urlPrefix + + "/lotOccupancies/" + + ((_a = responseJSON.lotOccupancyId) === null || _a === void 0 ? void 0 : _a.toString()) + + "/edit"; + } + else { + bulmaJS.alert({ + title: "Error Copying Record", + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); + } + }); + }; + (_a = document.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + if (los.hasUnsavedChanges()) { + bulmaJS.alert({ + title: "Unsaved Changes", + message: "Please save all unsaved changes before continuing.", + contextualColorName: "warning" + }); + } + else { + bulmaJS.confirm({ + 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: { + text: "Yes, Copy", + callbackFunction: doCopy + } + }); + } + }); + (_b = document.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + const doDelete = () => { + cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", { lotOccupancyId }, (responseJSON) => { - var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); - window.location.href = - los.urlPrefix + - "/lotOccupancies/" + - ((_a = responseJSON.lotOccupancyId) === null || _a === void 0 ? void 0 : _a.toString()) + - "/edit"; + window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now(); } else { bulmaJS.alert({ - title: "Error Copying Record", + title: "Error Deleting Record", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); } }); }; - (_a = document - .querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); - if (los.hasUnsavedChanges()) { - bulmaJS.alert({ - title: "Unsaved Changes", - message: "Please save all unsaved changes before continuing.", - contextualColorName: "warning" - }); - } - else { - bulmaJS.confirm({ - title: "Copy " + exports.aliases.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: doCopy - } - }); + 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: doDelete } }); - (_b = document - .querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); - const doDelete = () => { - cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", { - lotOccupancyId - }, (responseJSON) => { - if (responseJSON.success) { - cityssm.disableNavBlocker(); - window.location.href = - los.urlPrefix + "/lotOccupancies?t=" + Date.now(); - } - else { - bulmaJS.alert({ - title: "Error Deleting Record", - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } - }); - }; - 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: doDelete - } - }); - }); - (_c = document - .querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); - let createCloseModalFunction; - const doCreate = (formEvent) => { - formEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + "/workOrders/doCreateWorkOrder", formEvent.currentTarget, (responseJSON) => { - if (responseJSON.success) { - createCloseModalFunction(); - 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 = - los.urlPrefix + - "/workOrders/" + - responseJSON.workOrderId + - "/edit"; - } + }); + (_c = document.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + let createCloseModalFunction; + const doCreate = (formEvent) => { + formEvent.preventDefault(); + cityssm.postJSON(los.urlPrefix + "/workOrders/doCreateWorkOrder", formEvent.currentTarget, (responseJSON) => { + if (responseJSON.success) { + createCloseModalFunction(); + 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 = + los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit"; } - }); - } - else { - bulmaJS.alert({ - title: "Error Creating Work Order", - message: responseJSON.errorMessage, - contextualColorName: "danger" - }); - } - }); - }; - cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { - onshow: (modalElement) => { - modalElement.querySelector("#workOrderCreate--lotOccupancyId").value = lotOccupancyId; - modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date()); - const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId"); - const workOrderTypes = exports.workOrderTypes; - if (workOrderTypes.length === 1) { - workOrderTypeSelectElement.innerHTML = ""; - } - for (const workOrderType of workOrderTypes) { - const optionElement = document.createElement("option"); - optionElement.value = workOrderType.workOrderTypeId.toString(); - optionElement.textContent = workOrderType.workOrderType; - workOrderTypeSelectElement.append(optionElement); - } - }, - onshown: (modalElement, closeModalFunction) => { - var _a; - createCloseModalFunction = closeModalFunction; - (_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate); + } + }); + } + else { + bulmaJS.alert({ + title: "Error Creating Work Order", + message: responseJSON.errorMessage, + contextualColorName: "danger" + }); } }); + }; + cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { + onshow(modalElement) { + modalElement.querySelector("#workOrderCreate--lotOccupancyId").value = + lotOccupancyId; + modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date()); + const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId"); + const workOrderTypes = exports.workOrderTypes; + if (workOrderTypes.length === 1) { + workOrderTypeSelectElement.innerHTML = ""; + } + for (const workOrderType of workOrderTypes) { + const optionElement = document.createElement("option"); + optionElement.value = workOrderType.workOrderTypeId.toString(); + optionElement.textContent = workOrderType.workOrderType; + workOrderTypeSelectElement.append(optionElement); + } + }, + onshown(modalElement, closeModalFunction) { + var _a; + createCloseModalFunction = closeModalFunction; + (_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate); + } }); - } + }); // Occupancy Type const occupancyTypeIdElement = document.querySelector("#lotOccupancy--occupancyTypeId"); if (isCreate) { const lotOccupancyFieldsContainerElement = document.querySelector("#container--lotOccupancyFields"); occupancyTypeIdElement.addEventListener("change", () => { if (occupancyTypeIdElement.value === "") { - lotOccupancyFieldsContainerElement.innerHTML = - '
' + - '

Select the ' + - exports.aliases.occupancy.toLowerCase() + - " type to load the available fields.

" + - "
"; + lotOccupancyFieldsContainerElement.innerHTML = `
+

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

+
`; return; } cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", { occupancyTypeId: occupancyTypeIdElement.value }, (responseJSON) => { if (responseJSON.occupancyTypeFields.length === 0) { - lotOccupancyFieldsContainerElement.innerHTML = - '
' + - '

There are no additional fields for this ' + - exports.aliases.occupancy.toLowerCase() + - " type.

" + - "
"; + lotOccupancyFieldsContainerElement.innerHTML = `
+

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

+
`; return; } lotOccupancyFieldsContainerElement.innerHTML = ""; @@ -214,11 +199,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const fieldId = "lotOccupancy--" + fieldName; const fieldElement = document.createElement("div"); fieldElement.className = "field"; - fieldElement.innerHTML = - '' + - '
'; + fieldElement.innerHTML = `
`; fieldElement.querySelector("label").textContent = occupancyTypeField.occupancyTypeField; if (occupancyTypeField.occupancyTypeFieldValues === "") { @@ -256,9 +237,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } lotOccupancyFieldsContainerElement.append(fieldElement); } - lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", ''); + lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", ``); }); }); } @@ -268,10 +247,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (occupancyTypeIdElement.value !== originalOccupancyTypeId) { bulmaJS.confirm({ title: "Confirm Change", - message: "Are you sure you want to change the " + - exports.aliases.occupancy.toLowerCase() + - " type?\n" + - "This change affects the additional fields associated with this record, and may also affect the available fees.", + message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\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", @@ -298,8 +275,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); let lotSelectFormElement; let lotSelectResultsElement; const renderSelectedLotAndClose = (lotId, lotName) => { - document.querySelector("#lotOccupancy--lotId").value = - lotId.toString(); + document.querySelector("#lotOccupancy--lotId").value = lotId.toString(); document.querySelector("#lotOccupancy--lotName").value = lotName; los.setUnsavedChanges(); lotSelectCloseModalFunction(); @@ -310,19 +286,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName); }; const searchLots = () => { - lotSelectResultsElement.innerHTML = - '

' + - '
' + - "Searching..." + - "

"; + lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching..."); cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => { if (responseJSON.count === 0) { - lotSelectResultsElement.innerHTML = - '
' + - '

' + - "No results." + - "

" + - "
"; + lotSelectResultsElement.innerHTML = `
+

No results.

+
`; return; } const panelElement = document.createElement("div"); @@ -359,14 +328,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); }; const createLotAndSelect = (submitEvent) => { submitEvent.preventDefault(); - const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName").value; + const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName") + .value; cityssm.postJSON(los.urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { renderSelectedLotAndClose(responseJSON.lotId, lotName); } else { bulmaJS.alert({ - title: "Error Creating " + exports.aliases.lot, + title: `Error Creating ${los.escapedAliases.Lot}`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -384,8 +354,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.init(modalElement); // search Tab const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName"); - if (document.querySelector("#lotOccupancy--lotId").value !== - "") { + if (document.querySelector("#lotOccupancy--lotId").value !== "") { lotNameFilterElement.value = currentLotName; } lotNameFilterElement.focus(); @@ -404,7 +373,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); // Create Tab if (exports.lotNamePattern) { const regex = exports.lotNamePattern; - modalElement.querySelector("#lotCreate--lotName").pattern = regex.source; + modalElement.querySelector("#lotCreate--lotName").pattern = + regex.source; } const lotTypeElement = modalElement.querySelector("#lotCreate--lotTypeId"); for (const lotType of exports.lotTypes) { @@ -441,7 +411,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - message: "No " + exports.aliases.lot.toLowerCase() + " selected.", + message: `No ${los.escapedAliases.lot} selected.`, contextualColorName: "info" }); } @@ -454,7 +424,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } else { - lotNameElement.value = "(No " + exports.aliases.lot + ")"; + lotNameElement.value = `(No ${los.escapedAliases.Lot})`; document.querySelector("#lotOccupancy--lotId").value = ""; los.setUnsavedChanges(); } diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js index 3282748c..b482e6c8 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.js @@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); (() => { var _a, _b, _c; const los = exports.los; - const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value; + const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId") + .value; const isCreate = lotOccupancyId === ""; /* * Main form @@ -13,9 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const formElement = document.querySelector("#form--lotOccupancy"); formElement.addEventListener("submit", (formEvent) => { formEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + - "/lotOccupancies/" + - (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => { + cityssm.postJSON(los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => { if (responseJSON.success) { los.clearUnsavedChanges(); if (isCreate || refreshAfterSave) { @@ -46,164 +45,150 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const formInputElement of formInputElements) { formInputElement.addEventListener("change", los.setUnsavedChanges); } - if (!isCreate) { - const doCopy = () => { - cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", { + const doCopy = () => { + cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", { + lotOccupancyId + }, (responseJSON) => { + var _a; + if (responseJSON.success) { + cityssm.disableNavBlocker(); + window.location.href = + los.urlPrefix + + "/lotOccupancies/" + + ((_a = responseJSON.lotOccupancyId) === null || _a === void 0 ? void 0 : _a.toString()) + + "/edit"; + } + else { + bulmaJS.alert({ + title: "Error Copying Record", + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); + } + }); + }; + (_a = document.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + if (los.hasUnsavedChanges()) { + bulmaJS.alert({ + title: "Unsaved Changes", + message: "Please save all unsaved changes before continuing.", + contextualColorName: "warning" + }); + } + else { + bulmaJS.confirm({ + 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: { + text: "Yes, Copy", + callbackFunction: doCopy + } + }); + } + }); + (_b = document.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + const doDelete = () => { + cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", { lotOccupancyId }, (responseJSON) => { - var _a; if (responseJSON.success) { cityssm.disableNavBlocker(); - window.location.href = - los.urlPrefix + - "/lotOccupancies/" + - ((_a = responseJSON.lotOccupancyId) === null || _a === void 0 ? void 0 : _a.toString()) + - "/edit"; + window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now(); } else { bulmaJS.alert({ - title: "Error Copying Record", + title: "Error Deleting Record", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); } }); }; - (_a = document - .querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); - if (los.hasUnsavedChanges()) { - bulmaJS.alert({ - title: "Unsaved Changes", - message: "Please save all unsaved changes before continuing.", - contextualColorName: "warning" - }); - } - else { - bulmaJS.confirm({ - title: "Copy " + exports.aliases.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: doCopy - } - }); + 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: doDelete } }); - (_b = document - .querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); - const doDelete = () => { - cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", { - lotOccupancyId - }, (responseJSON) => { - if (responseJSON.success) { - cityssm.disableNavBlocker(); - window.location.href = - los.urlPrefix + "/lotOccupancies?t=" + Date.now(); - } - else { - bulmaJS.alert({ - title: "Error Deleting Record", - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } - }); - }; - 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: doDelete - } - }); - }); - (_c = document - .querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); - let createCloseModalFunction; - const doCreate = (formEvent) => { - formEvent.preventDefault(); - cityssm.postJSON(los.urlPrefix + "/workOrders/doCreateWorkOrder", formEvent.currentTarget, (responseJSON) => { - if (responseJSON.success) { - createCloseModalFunction(); - 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 = - los.urlPrefix + - "/workOrders/" + - responseJSON.workOrderId + - "/edit"; - } + }); + (_c = document.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + let createCloseModalFunction; + const doCreate = (formEvent) => { + formEvent.preventDefault(); + cityssm.postJSON(los.urlPrefix + "/workOrders/doCreateWorkOrder", formEvent.currentTarget, (responseJSON) => { + if (responseJSON.success) { + createCloseModalFunction(); + 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 = + los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit"; } - }); - } - else { - bulmaJS.alert({ - title: "Error Creating Work Order", - message: responseJSON.errorMessage, - contextualColorName: "danger" - }); - } - }); - }; - cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { - onshow: (modalElement) => { - modalElement.querySelector("#workOrderCreate--lotOccupancyId").value = lotOccupancyId; - modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date()); - const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId"); - const workOrderTypes = exports.workOrderTypes; - if (workOrderTypes.length === 1) { - workOrderTypeSelectElement.innerHTML = ""; - } - for (const workOrderType of workOrderTypes) { - const optionElement = document.createElement("option"); - optionElement.value = workOrderType.workOrderTypeId.toString(); - optionElement.textContent = workOrderType.workOrderType; - workOrderTypeSelectElement.append(optionElement); - } - }, - onshown: (modalElement, closeModalFunction) => { - var _a; - createCloseModalFunction = closeModalFunction; - (_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate); + } + }); + } + else { + bulmaJS.alert({ + title: "Error Creating Work Order", + message: responseJSON.errorMessage, + contextualColorName: "danger" + }); } }); + }; + cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { + onshow(modalElement) { + modalElement.querySelector("#workOrderCreate--lotOccupancyId").value = + lotOccupancyId; + modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date()); + const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId"); + const workOrderTypes = exports.workOrderTypes; + if (workOrderTypes.length === 1) { + workOrderTypeSelectElement.innerHTML = ""; + } + for (const workOrderType of workOrderTypes) { + const optionElement = document.createElement("option"); + optionElement.value = workOrderType.workOrderTypeId.toString(); + optionElement.textContent = workOrderType.workOrderType; + workOrderTypeSelectElement.append(optionElement); + } + }, + onshown(modalElement, closeModalFunction) { + var _a; + createCloseModalFunction = closeModalFunction; + (_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate); + } }); - } + }); // Occupancy Type const occupancyTypeIdElement = document.querySelector("#lotOccupancy--occupancyTypeId"); if (isCreate) { const lotOccupancyFieldsContainerElement = document.querySelector("#container--lotOccupancyFields"); occupancyTypeIdElement.addEventListener("change", () => { if (occupancyTypeIdElement.value === "") { - lotOccupancyFieldsContainerElement.innerHTML = - '
' + - '

Select the ' + - exports.aliases.occupancy.toLowerCase() + - " type to load the available fields.

" + - "
"; + lotOccupancyFieldsContainerElement.innerHTML = `
+

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

+
`; return; } cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", { occupancyTypeId: occupancyTypeIdElement.value }, (responseJSON) => { if (responseJSON.occupancyTypeFields.length === 0) { - lotOccupancyFieldsContainerElement.innerHTML = - '
' + - '

There are no additional fields for this ' + - exports.aliases.occupancy.toLowerCase() + - " type.

" + - "
"; + lotOccupancyFieldsContainerElement.innerHTML = `
+

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

+
`; return; } lotOccupancyFieldsContainerElement.innerHTML = ""; @@ -214,11 +199,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const fieldId = "lotOccupancy--" + fieldName; const fieldElement = document.createElement("div"); fieldElement.className = "field"; - fieldElement.innerHTML = - '' + - '
'; + fieldElement.innerHTML = `
`; fieldElement.querySelector("label").textContent = occupancyTypeField.occupancyTypeField; if (occupancyTypeField.occupancyTypeFieldValues === "") { @@ -256,9 +237,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } lotOccupancyFieldsContainerElement.append(fieldElement); } - lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", ''); + lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", ``); }); }); } @@ -268,10 +247,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (occupancyTypeIdElement.value !== originalOccupancyTypeId) { bulmaJS.confirm({ title: "Confirm Change", - message: "Are you sure you want to change the " + - exports.aliases.occupancy.toLowerCase() + - " type?\n" + - "This change affects the additional fields associated with this record, and may also affect the available fees.", + message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\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", @@ -298,8 +275,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); let lotSelectFormElement; let lotSelectResultsElement; const renderSelectedLotAndClose = (lotId, lotName) => { - document.querySelector("#lotOccupancy--lotId").value = - lotId.toString(); + document.querySelector("#lotOccupancy--lotId").value = lotId.toString(); document.querySelector("#lotOccupancy--lotName").value = lotName; los.setUnsavedChanges(); lotSelectCloseModalFunction(); @@ -310,19 +286,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName); }; const searchLots = () => { - lotSelectResultsElement.innerHTML = - '

' + - '
' + - "Searching..." + - "

"; + lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching..."); cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => { if (responseJSON.count === 0) { - lotSelectResultsElement.innerHTML = - '
' + - '

' + - "No results." + - "

" + - "
"; + lotSelectResultsElement.innerHTML = `
+

No results.

+
`; return; } const panelElement = document.createElement("div"); @@ -359,14 +328,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); }; const createLotAndSelect = (submitEvent) => { submitEvent.preventDefault(); - const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName").value; + const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName") + .value; cityssm.postJSON(los.urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { renderSelectedLotAndClose(responseJSON.lotId, lotName); } else { bulmaJS.alert({ - title: "Error Creating " + exports.aliases.lot, + title: `Error Creating ${los.escapedAliases.Lot}`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -384,8 +354,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); bulmaJS.init(modalElement); // search Tab const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName"); - if (document.querySelector("#lotOccupancy--lotId").value !== - "") { + if (document.querySelector("#lotOccupancy--lotId").value !== "") { lotNameFilterElement.value = currentLotName; } lotNameFilterElement.focus(); @@ -404,7 +373,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); // Create Tab if (exports.lotNamePattern) { const regex = exports.lotNamePattern; - modalElement.querySelector("#lotCreate--lotName").pattern = regex.source; + modalElement.querySelector("#lotCreate--lotName").pattern = + regex.source; } const lotTypeElement = modalElement.querySelector("#lotCreate--lotTypeId"); for (const lotType of exports.lotTypes) { @@ -441,7 +411,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - message: "No " + exports.aliases.lot.toLowerCase() + " selected.", + message: `No ${los.escapedAliases.lot} selected.`, contextualColorName: "info" }); } @@ -454,7 +424,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } else { - lotNameElement.value = "(No " + exports.aliases.lot + ")"; + lotNameElement.value = `(No ${los.escapedAliases.Lot})`; document.querySelector("#lotOccupancy--lotId").value = ""; los.setUnsavedChanges(); } diff --git a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts index 4fda39d6..45a4a748 100644 --- a/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts +++ b/public-typescript/lotOccupancyEdit/lotOccupancyEdit.ts @@ -13,9 +13,8 @@ declare const bulmaJS: BulmaJS; (() => { const los = exports.los as globalTypes.LOS; - const lotOccupancyId = ( - document.querySelector("#lotOccupancy--lotOccupancyId") as HTMLInputElement - ).value; + const lotOccupancyId = (document.querySelector("#lotOccupancy--lotOccupancyId") as HTMLInputElement) + .value; const isCreate = lotOccupancyId === ""; /* @@ -30,15 +29,9 @@ declare const bulmaJS: BulmaJS; formEvent.preventDefault(); cityssm.postJSON( - los.urlPrefix + - "/lotOccupancies/" + - (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), + los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, - (responseJSON: { - success: boolean; - lotOccupancyId?: number; - errorMessage?: string; - }) => { + (responseJSON: { success: boolean; lotOccupancyId?: number; errorMessage?: string }) => { if (responseJSON.success) { los.clearUnsavedChanges(); @@ -72,28 +65,69 @@ declare const bulmaJS: BulmaJS; formInputElement.addEventListener("change", los.setUnsavedChanges); } - if (!isCreate) { - const doCopy = () => { + const doCopy = () => { + cityssm.postJSON( + los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", + { + lotOccupancyId + }, + (responseJSON: { success: boolean; errorMessage?: string; lotOccupancyId?: number }) => { + if (responseJSON.success) { + cityssm.disableNavBlocker(); + window.location.href = + los.urlPrefix + + "/lotOccupancies/" + + responseJSON.lotOccupancyId?.toString() + + "/edit"; + } else { + bulmaJS.alert({ + title: "Error Copying Record", + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); + } + } + ); + }; + + document.querySelector("#button--copyLotOccupancy")?.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + + if (los.hasUnsavedChanges()) { + bulmaJS.alert({ + title: "Unsaved Changes", + message: "Please save all unsaved changes before continuing.", + contextualColorName: "warning" + }); + } else { + bulmaJS.confirm({ + 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: { + text: "Yes, Copy", + callbackFunction: doCopy + } + }); + } + }); + + document.querySelector("#button--deleteLotOccupancy")?.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + + const doDelete = () => { cityssm.postJSON( - los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", + los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", { lotOccupancyId }, - (responseJSON: { - success: boolean; - errorMessage?: string; - lotOccupancyId?: number; - }) => { + (responseJSON: { success: boolean; errorMessage?: string }) => { if (responseJSON.success) { cityssm.disableNavBlocker(); - window.location.href = - los.urlPrefix + - "/lotOccupancies/" + - responseJSON.lotOccupancyId?.toString() + - "/edit"; + window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now(); } else { bulmaJS.alert({ - title: "Error Copying Record", + title: "Error Deleting Record", message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -102,157 +136,90 @@ declare const bulmaJS: BulmaJS; ); }; - document - .querySelector("#button--copyLotOccupancy") - ?.addEventListener("click", (clickEvent) => { - clickEvent.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: doDelete + } + }); + }); - if (los.hasUnsavedChanges()) { - bulmaJS.alert({ - title: "Unsaved Changes", - message: "Please save all unsaved changes before continuing.", - contextualColorName: "warning" - }); - } else { - bulmaJS.confirm({ - title: "Copy " + exports.aliases.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: doCopy - } - }); + document.querySelector("#button--createWorkOrder")?.addEventListener("click", (clickEvent) => { + clickEvent.preventDefault(); + + let createCloseModalFunction: () => void; + + const doCreate = (formEvent: SubmitEvent) => { + formEvent.preventDefault(); + + cityssm.postJSON( + los.urlPrefix + "/workOrders/doCreateWorkOrder", + formEvent.currentTarget, + (responseJSON: { success: boolean; errorMessage?: string; workOrderId?: number }) => { + if (responseJSON.success) { + createCloseModalFunction(); + + 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 = + los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit"; + } + } + }); + } else { + bulmaJS.alert({ + title: "Error Creating Work Order", + message: responseJSON.errorMessage as string, + contextualColorName: "danger" + }); + } } - }); + ); + }; - document - .querySelector("#button--deleteLotOccupancy") - ?.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); + cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { + onshow(modalElement) { + (modalElement.querySelector("#workOrderCreate--lotOccupancyId") as HTMLInputElement).value = + lotOccupancyId; - const doDelete = () => { - cityssm.postJSON( - los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", - { - lotOccupancyId - }, - (responseJSON: { success: boolean; errorMessage?: string }) => { - if (responseJSON.success) { - cityssm.disableNavBlocker(); - window.location.href = - los.urlPrefix + "/lotOccupancies?t=" + Date.now(); - } else { - bulmaJS.alert({ - title: "Error Deleting Record", - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } - } - ); - }; + ( + modalElement.querySelector( + "#workOrderCreate--workOrderOpenDateString" + ) as HTMLInputElement + ).value = cityssm.dateToString(new Date()); - 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: doDelete - } - }); - }); + const workOrderTypeSelectElement = modalElement.querySelector( + "#workOrderCreate--workOrderTypeId" + ) as HTMLSelectElement; - document - .querySelector("#button--createWorkOrder") - ?.addEventListener("click", (clickEvent) => { - clickEvent.preventDefault(); + const workOrderTypes = exports.workOrderTypes as recordTypes.WorkOrderType[]; - let createCloseModalFunction: () => void; + if (workOrderTypes.length === 1) { + workOrderTypeSelectElement.innerHTML = ""; + } - const doCreate = (formEvent: SubmitEvent) => { - formEvent.preventDefault(); + for (const workOrderType of workOrderTypes) { + const optionElement = document.createElement("option"); + optionElement.value = (workOrderType.workOrderTypeId as number).toString(); + optionElement.textContent = workOrderType.workOrderType as string; + workOrderTypeSelectElement.append(optionElement); + } + }, + onshown(modalElement, closeModalFunction) { + createCloseModalFunction = closeModalFunction; - cityssm.postJSON( - los.urlPrefix + "/workOrders/doCreateWorkOrder", - formEvent.currentTarget, - (responseJSON: { - success: boolean; - errorMessage?: string; - workOrderId?: number; - }) => { - if (responseJSON.success) { - createCloseModalFunction(); - - 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 = - los.urlPrefix + - "/workOrders/" + - responseJSON.workOrderId + - "/edit"; - } - } - }); - } else { - bulmaJS.alert({ - title: "Error Creating Work Order", - message: responseJSON.errorMessage as string, - contextualColorName: "danger" - }); - } - } - ); - }; - - cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { - onshow: (modalElement) => { - ( - modalElement.querySelector( - "#workOrderCreate--lotOccupancyId" - ) as HTMLInputElement - ).value = lotOccupancyId; - - ( - modalElement.querySelector( - "#workOrderCreate--workOrderOpenDateString" - ) as HTMLInputElement - ).value = cityssm.dateToString(new Date()); - - const workOrderTypeSelectElement = modalElement.querySelector( - "#workOrderCreate--workOrderTypeId" - ) as HTMLSelectElement; - - const workOrderTypes = - exports.workOrderTypes as recordTypes.WorkOrderType[]; - - if (workOrderTypes.length === 1) { - workOrderTypeSelectElement.innerHTML = ""; - } - - for (const workOrderType of workOrderTypes) { - const optionElement = document.createElement("option"); - optionElement.value = ( - workOrderType.workOrderTypeId as number - ).toString(); - optionElement.textContent = workOrderType.workOrderType as string; - workOrderTypeSelectElement.append(optionElement); - } - }, - onshown: (modalElement, closeModalFunction) => { - createCloseModalFunction = closeModalFunction; - - modalElement.querySelector("form")?.addEventListener("submit", doCreate); - } - }); - }); - } + modalElement.querySelector("form")?.addEventListener("submit", doCreate); + } + }); + }); // Occupancy Type @@ -267,12 +234,9 @@ declare const bulmaJS: BulmaJS; occupancyTypeIdElement.addEventListener("change", () => { if (occupancyTypeIdElement.value === "") { - lotOccupancyFieldsContainerElement.innerHTML = - '
' + - '

Select the ' + - exports.aliases.occupancy.toLowerCase() + - " type to load the available fields.

" + - "
"; + lotOccupancyFieldsContainerElement.innerHTML = `
+

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

+
`; return; } @@ -284,12 +248,9 @@ declare const bulmaJS: BulmaJS; }, (responseJSON: { occupancyTypeFields: recordTypes.OccupancyTypeField[] }) => { if (responseJSON.occupancyTypeFields.length === 0) { - lotOccupancyFieldsContainerElement.innerHTML = - '
' + - '

There are no additional fields for this ' + - exports.aliases.occupancy.toLowerCase() + - " type.

" + - "
"; + lotOccupancyFieldsContainerElement.innerHTML = `
+

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

+
`; return; } @@ -301,18 +262,13 @@ declare const bulmaJS: BulmaJS; for (const occupancyTypeField of responseJSON.occupancyTypeFields) { occupancyTypeFieldIds += "," + occupancyTypeField.occupancyTypeFieldId; - const fieldName = - "lotOccupancyFieldValue_" + occupancyTypeField.occupancyTypeFieldId; + const fieldName = "lotOccupancyFieldValue_" + occupancyTypeField.occupancyTypeFieldId; const fieldId = "lotOccupancy--" + fieldName; const fieldElement = document.createElement("div"); fieldElement.className = "field"; - fieldElement.innerHTML = - '' + - '
'; + fieldElement.innerHTML = `
`; (fieldElement.querySelector("label") as HTMLLabelElement).textContent = occupancyTypeField.occupancyTypeField as string; @@ -336,9 +292,7 @@ declare const bulmaJS: BulmaJS; inputElement.pattern = occupancyTypeField.pattern; } - (fieldElement.querySelector(".control") as HTMLElement).append( - inputElement - ); + (fieldElement.querySelector(".control") as HTMLElement).append(inputElement); } else { (fieldElement.querySelector(".control") as HTMLElement).innerHTML = '
"; - const selectElement = fieldElement.querySelector( - "select" - ) as HTMLSelectElement; + const selectElement = fieldElement.querySelector("select") as HTMLSelectElement; selectElement.required = occupancyTypeField.isRequired as boolean; @@ -372,9 +324,9 @@ declare const bulmaJS: BulmaJS; lotOccupancyFieldsContainerElement.insertAdjacentHTML( "beforeend", - '' + `` ); } ); @@ -386,11 +338,8 @@ declare const bulmaJS: BulmaJS; if (occupancyTypeIdElement.value !== originalOccupancyTypeId) { bulmaJS.confirm({ title: "Confirm Change", - message: - "Are you sure you want to change the " + - exports.aliases.occupancy.toLowerCase() + - " type?\n" + - "This change affects the additional fields associated with this record, and may also affect the available fees.", + message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\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", @@ -423,8 +372,7 @@ declare const bulmaJS: BulmaJS; let lotSelectResultsElement: HTMLElement; const renderSelectedLotAndClose = (lotId: number | string, lotName: string) => { - (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = - lotId.toString(); + (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = lotId.toString(); (document.querySelector("#lotOccupancy--lotName") as HTMLInputElement).value = lotName; los.setUnsavedChanges(); @@ -436,30 +384,20 @@ declare const bulmaJS: BulmaJS; const selectedLotElement = clickEvent.currentTarget as HTMLElement; - renderSelectedLotAndClose( - selectedLotElement.dataset.lotId!, - selectedLotElement.dataset.lotName! - ); + renderSelectedLotAndClose(selectedLotElement.dataset.lotId!, selectedLotElement.dataset.lotName!); }; const searchLots = () => { - lotSelectResultsElement.innerHTML = - '

' + - '
' + - "Searching..." + - "

"; + lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching..."); cityssm.postJSON( los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON: { count: number; lots: recordTypes.Lot[] }) => { if (responseJSON.count === 0) { - lotSelectResultsElement.innerHTML = - '
' + - '

' + - "No results." + - "

" + - "
"; + lotSelectResultsElement.innerHTML = `
+

No results.

+
`; return; } @@ -507,9 +445,8 @@ declare const bulmaJS: BulmaJS; const createLotAndSelect = (submitEvent: SubmitEvent) => { submitEvent.preventDefault(); - const lotName = ( - lotSelectModalElement.querySelector("#lotCreate--lotName") as HTMLInputElement - ).value; + const lotName = (lotSelectModalElement.querySelector("#lotCreate--lotName") as HTMLInputElement) + .value; cityssm.postJSON( los.urlPrefix + "/lots/doCreateLot", @@ -519,7 +456,7 @@ declare const bulmaJS: BulmaJS; renderSelectedLotAndClose(responseJSON.lotId!, lotName); } else { bulmaJS.alert({ - title: "Error Creating " + exports.aliases.lot, + title: `Error Creating ${los.escapedAliases.Lot}`, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -546,10 +483,7 @@ declare const bulmaJS: BulmaJS; "#lotSelect--lotName" ) as HTMLInputElement; - if ( - (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value !== - "" - ) { + if ((document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value !== "") { lotNameFilterElement.value = currentLotName; } @@ -565,9 +499,7 @@ declare const bulmaJS: BulmaJS; occupancyStatusFilterElement.value = ""; } - lotSelectFormElement = modalElement.querySelector( - "#form--lotSelect" - ) as HTMLFormElement; + lotSelectFormElement = modalElement.querySelector("#form--lotSelect") as HTMLFormElement; lotSelectResultsElement = modalElement.querySelector( "#resultsContainer--lotSelect" ) as HTMLElement; @@ -583,9 +515,8 @@ declare const bulmaJS: BulmaJS; if (exports.lotNamePattern) { const regex = exports.lotNamePattern as RegExp; - ( - modalElement.querySelector("#lotCreate--lotName") as HTMLInputElement - ).pattern = regex.source; + (modalElement.querySelector("#lotCreate--lotName") as HTMLInputElement).pattern = + regex.source; } const lotTypeElement = modalElement.querySelector( @@ -610,9 +541,7 @@ declare const bulmaJS: BulmaJS; lotStatusElement.append(optionElement); } - const mapElement = modalElement.querySelector( - "#lotCreate--mapId" - ) as HTMLSelectElement; + const mapElement = modalElement.querySelector("#lotCreate--mapId") as HTMLSelectElement; for (const map of exports.maps as recordTypes.Map[]) { const optionElement = document.createElement("option"); @@ -621,9 +550,10 @@ declare const bulmaJS: BulmaJS; mapElement.append(optionElement); } - ( - modalElement.querySelector("#form--lotCreate") as HTMLFormElement - ).addEventListener("submit", createLotAndSelect); + (modalElement.querySelector("#form--lotCreate") as HTMLFormElement).addEventListener( + "submit", + createLotAndSelect + ); }, onremoved: () => { bulmaJS.toggleHtmlClipped(); @@ -638,7 +568,7 @@ declare const bulmaJS: BulmaJS; window.open(los.urlPrefix + "/lots/" + lotId); } else { bulmaJS.alert({ - message: "No " + exports.aliases.lot.toLowerCase() + " selected.", + message: `No ${los.escapedAliases.lot} selected.`, contextualColorName: "info" }); } @@ -651,7 +581,7 @@ declare const bulmaJS: BulmaJS; contextualColorName: "info" }); } else { - lotNameElement.value = "(No " + exports.aliases.lot + ")"; + lotNameElement.value = `(No ${los.escapedAliases.Lot})`; (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = ""; los.setUnsavedChanges(); } @@ -661,9 +591,7 @@ declare const bulmaJS: BulmaJS; los.initializeDatePickers(formElement); - ( - document.querySelector("#lotOccupancy--occupancyStartDateString") as HTMLInputElement - ).addEventListener("change", () => { + document.querySelector("#lotOccupancy--occupancyStartDateString")!.addEventListener("change", () => { const endDatePicker = ( document.querySelector("#lotOccupancy--occupancyEndDateString") as HTMLInputElement ).bulmaCalendar.datePicker; diff --git a/public-typescript/lotSearch.js b/public-typescript/lotSearch.js index acd73d43..0e4e0141 100644 --- a/public-typescript/lotSearch.js +++ b/public-typescript/lotSearch.js @@ -10,12 +10,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); function renderLots(responseJSON) { var _a, _b; if (responseJSON.lots.length === 0) { - searchResultsContainerElement.innerHTML = - '
' + - '

There are no ' + - los.escapedAliases.lots + - " that meet the search criteria.

" + - "
"; + searchResultsContainerElement.innerHTML = `
+

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

+
`; return; } const resultsTbodyElement = document.createElement("tbody"); diff --git a/public-typescript/lotSearch.ts b/public-typescript/lotSearch.ts index 7414aa29..07683d36 100644 --- a/public-typescript/lotSearch.ts +++ b/public-typescript/lotSearch.ts @@ -22,12 +22,9 @@ declare const cityssm: cityssmGlobal; function renderLots(responseJSON: { count: number; offset: number; lots: recordTypes.Lot[] }): void { if (responseJSON.lots.length === 0) { - searchResultsContainerElement.innerHTML = - '
' + - '

There are no ' + - los.escapedAliases.lots + - " that meet the search criteria.

" + - "
"; + searchResultsContainerElement.innerHTML = `
+

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

+
`; return; } diff --git a/public-typescript/mapSearch.js b/public-typescript/mapSearch.js index 49149d70..4836be2c 100644 --- a/public-typescript/mapSearch.js +++ b/public-typescript/mapSearch.js @@ -12,13 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const searchResultsTbodyElement = document.createElement("tbody"); const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" "); for (const map of maps) { - const mapSearchString = (map.mapName + - " " + - map.mapDescription + - " " + - map.mapAddress1 + - " " + - map.mapAddress2).toLowerCase(); + const mapSearchString = `${map.mapName} ${map.mapDescription} ${map.mapAddress1} ${map.mapAddress2}`.toLowerCase(); let showMap = true; for (const filterStringPiece of filterStringSplit) { if (!mapSearchString.includes(filterStringPiece)) { diff --git a/public-typescript/mapSearch.ts b/public-typescript/mapSearch.ts index 628a7f35..98ec80c0 100644 --- a/public-typescript/mapSearch.ts +++ b/public-typescript/mapSearch.ts @@ -14,9 +14,7 @@ declare const cityssm: cityssmGlobal; const searchFilterElement = document.querySelector("#searchFilter--map") as HTMLInputElement; - const searchResultsContainerElement = document.querySelector( - "#container--searchResults" - ) as HTMLElement; + const searchResultsContainerElement = document.querySelector("#container--searchResults") as HTMLElement; function renderResults(): void { searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML( @@ -29,15 +27,8 @@ declare const cityssm: cityssmGlobal; const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" "); for (const map of maps) { - const mapSearchString = ( - map.mapName + - " " + - map.mapDescription + - " " + - map.mapAddress1 + - " " + - map.mapAddress2 - ).toLowerCase(); + const mapSearchString = + `${map.mapName} ${map.mapDescription} ${map.mapAddress1} ${map.mapAddress2}`.toLowerCase(); let showMap = true; diff --git a/public-typescript/workOrderEdit.js b/public-typescript/workOrderEdit.js index bb37e1f1..178cf93e 100644 --- a/public-typescript/workOrderEdit.js +++ b/public-typescript/workOrderEdit.js @@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); (() => { const los = exports.los; - const workOrderId = document.querySelector("#workOrderEdit--workOrderId") - .value; + const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value; const isCreate = workOrderId === ""; const workOrderFormElement = document.querySelector("#form--workOrderEdit"); los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")); @@ -46,8 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); workOrderId }, (responseJSON) => { if (responseJSON.success) { - window.location.href = - los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId); + window.location.href = los.urlPrefix + "/workOrders/" + workOrderId; } else { bulmaJS.alert({ @@ -83,8 +81,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); 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.", + message: `You cannot close a work order with outstanding milestones. + Either complete the outstanding milestones, or remove them from the work order.`, contextualColorName: "warning" }); /* @@ -113,9 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - document - .querySelector("#button--deleteWorkOrder") - .addEventListener("click", (clickEvent) => { + document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => { clickEvent.preventDefault(); bulmaJS.confirm({ title: "Delete Work Order", @@ -160,8 +156,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } bulmaJS.confirm({ - title: `Delete ${exports.aliases.occupancy} Relationship`, - message: `Are you sure you want to remove the relationship to this ${exports.aliases.occupancy.toLowerCase()} record from this work order? Note that the record will remain.`, + title: `Delete ${los.escapedAliases.Occupancy} Relationship`, + message: `Are you sure you want to remove the relationship to this ${los.escapedAliases.occupancy} record from this work order? Note that the record will remain.`, contextualColorName: "warning", okButton: { text: "Yes, Delete Relationship", @@ -180,7 +176,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.lot, + title: "Error Adding " + los.escapedAliases.Lot, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -201,7 +197,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.occupancy, + title: "Error Adding " + los.escapedAliases.Occupancy, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -216,12 +212,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); addLot(lotId); } function renderRelatedOccupancies() { - var _a; + var _a, _b; const occupanciesContainerElement = document.querySelector("#container--lotOccupancies"); - document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = workOrderLotOccupancies.length.toString(); + document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = + workOrderLotOccupancies.length.toString(); if (workOrderLotOccupancies.length === 0) { occupanciesContainerElement.innerHTML = `
-

There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.

+

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

`; return; } @@ -239,8 +236,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const rowElement = document.createElement("tr"); rowElement.className = "container--lotOccupancy"; rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString(); - const isActive = !(lotOccupancy.occupancyEndDate && - lotOccupancy.occupancyEndDateString < currentDateString); + const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString < currentDateString); const hasLotRecord = lotOccupancy.lotId && workOrderLots.some((lot) => { return lotOccupancy.lotId === lot.lotId; @@ -248,12 +244,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); rowElement.innerHTML = '' + (isActive - ? '' - : '') + + ? '' + : '') + "" + ("" + '' + '' + "") + ""); } else { - rowElement.insertAdjacentHTML("beforeend", `(No ${exports.aliases.lot})`); + rowElement.insertAdjacentHTML("beforeend", `(No ${los.escapedAliases.Lot})`); } rowElement.insertAdjacentHTML("beforeend", "" + lotOccupancy.occupancyStartDateString + @@ -296,9 +288,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); "") + ("" + (lotOccupancy.lotOccupancyOccupants.length === 0 - ? '(No ' + - cityssm.escapeHTML(exports.aliases.occupants) + - ")" + ? '(No ' + los.escapedAliases.Occupants + ")" : (_a = lotOccupancy.lotOccupancyOccupants) === null || _a === void 0 ? void 0 : _a.reduce((soFar, occupant) => { return (soFar + ' ' + cityssm.escapeHTML(occupant.occupantName) + "
"); @@ -318,11 +308,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); '' + "" + "")); - if (lotOccupancy.lotId && !hasLotRecord) { - rowElement - .querySelector(".button--addLot") - .addEventListener("click", addLotFromLotOccupancy); - } + (_b = rowElement.querySelector(".button--addLot")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", addLotFromLotOccupancy); rowElement .querySelector(".button--deleteLotOccupancy") .addEventListener("click", deleteLotOccupancy); @@ -330,8 +316,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } } function openEditLotStatus(clickEvent) { - const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot") - .dataset.lotId, 10); + const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot").dataset.lotId, 10); const lot = workOrderLots.find((possibleLot) => { return possibleLot.lotId === lotId; }); @@ -358,8 +343,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); los.populateAliases(modalElement); modalElement.querySelector("#lotStatusEdit--lotId").value = lotId.toString(); - modalElement.querySelector("#lotStatusEdit--lotName").value = - lot.lotName; + modalElement.querySelector("#lotStatusEdit--lotName").value = lot.lotName; const lotStatusElement = modalElement.querySelector("#lotStatusEdit--lotStatusId"); let lotStatusFound = false; for (const lotStatus of exports.lotStatuses) { @@ -382,7 +366,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } modalElement .querySelector("form") - .insertAdjacentHTML("beforeend", ''); + .insertAdjacentHTML("beforeend", ``); }, onshown(modalElement, closeModalFunction) { editCloseModalFunction = closeModalFunction; @@ -395,7 +379,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } function deleteLot(clickEvent) { - const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId; + const lotId = clickEvent.currentTarget.closest(".container--lot") + .dataset.lotId; function doDelete() { cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", { workOrderId, @@ -473,9 +458,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); '' + "" + ""); - rowElement - .querySelector(".button--editLotStatus") - .addEventListener("click", openEditLotStatus); + rowElement.querySelector(".button--editLotStatus").addEventListener("click", openEditLotStatus); rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot); lotsContainerElement.querySelector("tbody").append(rowElement); } @@ -504,10 +487,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML("Searching..."); cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => { if (responseJSON.lotOccupancies.length === 0) { - searchResultsContainerElement.innerHTML = - '
' + - '

There are no records that meet the search criteria.

' + - "
"; + searchResultsContainerElement.innerHTML = `
+

There are no records that meet the search criteria.

+
`; return; } searchResultsContainerElement.innerHTML = ` @@ -555,8 +537,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ")" : cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) + (lotOccupancy.lotOccupancyOccupants.length > 1 - ? " plus " + - (lotOccupancy.lotOccupancyOccupants.length - 1) + ? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1) : "")) + "")); rowElement @@ -571,7 +552,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); los.populateAliases(modalElement); searchFormElement = modalElement.querySelector("form"); searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotOccupancyAdd"); - modalElement.querySelector("#lotOccupancySearch--notWorkOrderId").value = workOrderId; + modalElement.querySelector("#lotOccupancySearch--notWorkOrderId").value = + workOrderId; modalElement.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value = document.querySelector("#workOrderEdit--workOrderOpenDateString").value; doSearch(); }, @@ -639,9 +621,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); "" + ("") + (""); - rowElement - .querySelector(".button--addLot") - .addEventListener("click", doAddLot); + rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot); searchResultsContainerElement.querySelector("tbody").append(rowElement); } }); @@ -709,7 +689,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); } cityssm.openHtmlModal("workOrder-editComment", { onshow(modalElement) { - modalElement.querySelector("#workOrderCommentEdit--workOrderId").value = workOrderId; + modalElement.querySelector("#workOrderCommentEdit--workOrderId").value = + workOrderId; modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId").value = workOrderCommentId.toString(); modalElement.querySelector("#workOrderCommentEdit--workOrderComment").value = workOrderComment.workOrderComment; const workOrderCommentDateStringElement = modalElement.querySelector("#workOrderCommentEdit--workOrderCommentDateString"); @@ -768,26 +749,21 @@ Object.defineProperty(exports, "__esModule", { value: true }); function renderWorkOrderComments() { const containerElement = document.querySelector("#container--workOrderComments"); if (workOrderComments.length === 0) { - containerElement.innerHTML = - '
' + - '

There are no comments to display.

' + - "
"; + containerElement.innerHTML = `
+

There are no comments to display.

+
`; return; } const tableElement = document.createElement("table"); tableElement.className = "table is-fullwidth is-striped is-hoverable"; - tableElement.innerHTML = - "" + - "" + - "" + - "" + - '' + - "" + - ""; + tableElement.innerHTML = ` + + + + `; for (const workOrderComment of workOrderComments) { const tableRowElement = document.createElement("tr"); - tableRowElement.dataset.workOrderCommentId = - workOrderComment.workOrderCommentId.toString(); + tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId.toString(); tableRowElement.innerHTML = ""); - tableRowElement - .querySelector(".button--edit") - .addEventListener("click", openEditWorkOrderComment); - tableRowElement - .querySelector(".button--delete") - .addEventListener("click", deleteWorkOrderComment); + tableRowElement.querySelector(".button--edit").addEventListener("click", openEditWorkOrderComment); + tableRowElement.querySelector(".button--delete").addEventListener("click", deleteWorkOrderComment); tableElement.querySelector("tbody").append(tableRowElement); } containerElement.innerHTML = ""; @@ -838,7 +810,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.openHtmlModal("workOrder-addComment", { onshow(modalElement) { los.populateAliases(modalElement); - modalElement.querySelector("#workOrderCommentAdd--workOrderId").value = workOrderId; + modalElement.querySelector("#workOrderCommentAdd--workOrderId").value = + workOrderId; modalElement.querySelector("form").addEventListener("submit", doAddComment); }, onshown(modalElement, closeModalFunction) { @@ -853,9 +826,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } if (!isCreate) { - document - .querySelector("#workOrderComments--add") - .addEventListener("click", openAddCommentModal); + document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal); renderWorkOrderComments(); } @@ -878,7 +849,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); function completeMilestone(clickEvent) { clickEvent.preventDefault(); const currentDateString = cityssm.dateToString(new Date()); - const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId, 10); + const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone") + .dataset.workOrderMilestoneId, 10); const workOrderMilestone = workOrderMilestones.find((currentMilestone) => { return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; }); @@ -942,7 +914,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); } function editMilestone(clickEvent) { clickEvent.preventDefault(); - const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId, 10); + const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone") + .dataset.workOrderMilestoneId, 10); const workOrderMilestone = workOrderMilestones.find((currentMilestone) => { return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; }); @@ -957,8 +930,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); }; cityssm.openHtmlModal("workOrder-editMilestone", { - onshow: (modalElement) => { - modalElement.querySelector("#milestoneEdit--workOrderId").value = workOrderId; + onshow(modalElement) { + modalElement.querySelector("#milestoneEdit--workOrderId").value = + workOrderId; modalElement.querySelector("#milestoneEdit--workOrderMilestoneId").value = workOrderMilestone.workOrderMilestoneId.toString(); const milestoneTypeElement = modalElement.querySelector("#milestoneEdit--workOrderMilestoneTypeId"); let milestoneTypeFound = false; @@ -966,8 +940,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const optionElement = document.createElement("option"); optionElement.value = milestoneType.workOrderMilestoneTypeId.toString(); optionElement.textContent = milestoneType.workOrderMilestoneType; - if (milestoneType.workOrderMilestoneTypeId === - workOrderMilestone.workOrderMilestoneTypeId) { + if (milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId) { optionElement.selected = true; milestoneTypeFound = true; } @@ -986,19 +959,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); } modalElement.querySelector("#milestoneEdit--workOrderMilestoneDescription").value = workOrderMilestone.workOrderMilestoneDescription; }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { editCloseModalFunction = closeModalFunction; bulmaJS.toggleHtmlClipped(); los.initializeDatePickers(modalElement); // los.initializeTimePickers(modalElement); modalElement.querySelector("form").addEventListener("submit", doEdit); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); } function renderMilestones() { + var _a, _b, _c; // Clear milestones panel const milestonesPanelElement = document.querySelector("#panel--milestones"); const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll(".panel-block"); @@ -1008,8 +982,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const milestone of workOrderMilestones) { const panelBlockElement = document.createElement("div"); panelBlockElement.className = "panel-block is-block container--milestone"; - panelBlockElement.dataset.workOrderMilestoneId = - milestone.workOrderMilestoneId.toString(); + panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId.toString(); panelBlockElement.innerHTML = '
' + ('
' + @@ -1032,9 +1005,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); "
" : "") + milestone.workOrderMilestoneDateString + - (milestone.workOrderMilestoneTime - ? " " + milestone.workOrderMilestoneTimeString - : "") + + (milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") + "
" + '' + cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") + @@ -1068,19 +1039,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); "
" + "
") + ""; - if (milestone.workOrderMilestoneCompletionDate) { - panelBlockElement - .querySelector(".button--reopenMilestone") - .addEventListener("click", reopenMilestone); - } - else { - panelBlockElement - .querySelector(".button--editMilestone") - .addEventListener("click", editMilestone); - panelBlockElement - .querySelector(".button--completeMilestone") - .addEventListener("click", completeMilestone); - } + (_a = panelBlockElement + .querySelector(".button--reopenMilestone")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", reopenMilestone); + (_b = panelBlockElement + .querySelector(".button--editMilestone")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", editMilestone); + (_c = panelBlockElement + .querySelector(".button--completeMilestone")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", completeMilestone); panelBlockElement .querySelector(".button--deleteMilestone") .addEventListener("click", deleteMilestone); @@ -1126,7 +1090,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }; cityssm.openHtmlModal("workOrder-addMilestone", { onshow(modalElement) { - modalElement.querySelector("#milestoneAdd--workOrderId").value = workOrderId; + modalElement.querySelector("#milestoneAdd--workOrderId").value = + workOrderId; const milestoneTypeElement = modalElement.querySelector("#milestoneAdd--workOrderMilestoneTypeId"); for (const milestoneType of exports.workOrderMilestoneTypes) { const optionElement = document.createElement("option"); diff --git a/public-typescript/workOrderEdit/workOrderEdit.js b/public-typescript/workOrderEdit/workOrderEdit.js index 8bed63ff..8acd7835 100644 --- a/public-typescript/workOrderEdit/workOrderEdit.js +++ b/public-typescript/workOrderEdit/workOrderEdit.js @@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); (() => { const los = exports.los; - const workOrderId = document.querySelector("#workOrderEdit--workOrderId") - .value; + const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value; const isCreate = workOrderId === ""; const workOrderFormElement = document.querySelector("#form--workOrderEdit"); los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")); @@ -46,8 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); workOrderId }, (responseJSON) => { if (responseJSON.success) { - window.location.href = - los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId); + window.location.href = los.urlPrefix + "/workOrders/" + workOrderId; } else { bulmaJS.alert({ @@ -83,8 +81,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); 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.", + message: `You cannot close a work order with outstanding milestones. + Either complete the outstanding milestones, or remove them from the work order.`, contextualColorName: "warning" }); /* @@ -113,9 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - document - .querySelector("#button--deleteWorkOrder") - .addEventListener("click", (clickEvent) => { + document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => { clickEvent.preventDefault(); bulmaJS.confirm({ title: "Delete Work Order", @@ -157,7 +153,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); function completeMilestone(clickEvent) { clickEvent.preventDefault(); const currentDateString = cityssm.dateToString(new Date()); - const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId, 10); + const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone") + .dataset.workOrderMilestoneId, 10); const workOrderMilestone = workOrderMilestones.find((currentMilestone) => { return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; }); @@ -221,7 +218,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); } function editMilestone(clickEvent) { clickEvent.preventDefault(); - const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId, 10); + const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone") + .dataset.workOrderMilestoneId, 10); const workOrderMilestone = workOrderMilestones.find((currentMilestone) => { return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; }); @@ -236,8 +234,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); }; cityssm.openHtmlModal("workOrder-editMilestone", { - onshow: (modalElement) => { - modalElement.querySelector("#milestoneEdit--workOrderId").value = workOrderId; + onshow(modalElement) { + modalElement.querySelector("#milestoneEdit--workOrderId").value = + workOrderId; modalElement.querySelector("#milestoneEdit--workOrderMilestoneId").value = workOrderMilestone.workOrderMilestoneId.toString(); const milestoneTypeElement = modalElement.querySelector("#milestoneEdit--workOrderMilestoneTypeId"); let milestoneTypeFound = false; @@ -245,8 +244,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const optionElement = document.createElement("option"); optionElement.value = milestoneType.workOrderMilestoneTypeId.toString(); optionElement.textContent = milestoneType.workOrderMilestoneType; - if (milestoneType.workOrderMilestoneTypeId === - workOrderMilestone.workOrderMilestoneTypeId) { + if (milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId) { optionElement.selected = true; milestoneTypeFound = true; } @@ -265,19 +263,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); } modalElement.querySelector("#milestoneEdit--workOrderMilestoneDescription").value = workOrderMilestone.workOrderMilestoneDescription; }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { editCloseModalFunction = closeModalFunction; bulmaJS.toggleHtmlClipped(); los.initializeDatePickers(modalElement); // los.initializeTimePickers(modalElement); modalElement.querySelector("form").addEventListener("submit", doEdit); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); } function renderMilestones() { + var _a, _b, _c; // Clear milestones panel const milestonesPanelElement = document.querySelector("#panel--milestones"); const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll(".panel-block"); @@ -287,8 +286,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); for (const milestone of workOrderMilestones) { const panelBlockElement = document.createElement("div"); panelBlockElement.className = "panel-block is-block container--milestone"; - panelBlockElement.dataset.workOrderMilestoneId = - milestone.workOrderMilestoneId.toString(); + panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId.toString(); panelBlockElement.innerHTML = '
' + ('
' + @@ -311,9 +309,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); "
" : "") + milestone.workOrderMilestoneDateString + - (milestone.workOrderMilestoneTime - ? " " + milestone.workOrderMilestoneTimeString - : "") + + (milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") + "
" + '' + cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") + @@ -347,19 +343,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); "
" + "
") + ""; - if (milestone.workOrderMilestoneCompletionDate) { - panelBlockElement - .querySelector(".button--reopenMilestone") - .addEventListener("click", reopenMilestone); - } - else { - panelBlockElement - .querySelector(".button--editMilestone") - .addEventListener("click", editMilestone); - panelBlockElement - .querySelector(".button--completeMilestone") - .addEventListener("click", completeMilestone); - } + (_a = panelBlockElement + .querySelector(".button--reopenMilestone")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", reopenMilestone); + (_b = panelBlockElement + .querySelector(".button--editMilestone")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", editMilestone); + (_c = panelBlockElement + .querySelector(".button--completeMilestone")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", completeMilestone); panelBlockElement .querySelector(".button--deleteMilestone") .addEventListener("click", deleteMilestone); @@ -405,7 +394,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); }; cityssm.openHtmlModal("workOrder-addMilestone", { onshow(modalElement) { - modalElement.querySelector("#milestoneAdd--workOrderId").value = workOrderId; + modalElement.querySelector("#milestoneAdd--workOrderId").value = + workOrderId; const milestoneTypeElement = modalElement.querySelector("#milestoneAdd--workOrderMilestoneTypeId"); for (const milestoneType of exports.workOrderMilestoneTypes) { const optionElement = document.createElement("option"); diff --git a/public-typescript/workOrderEdit/workOrderEdit.ts b/public-typescript/workOrderEdit/workOrderEdit.ts index 58f32d2c..832ee1e8 100644 --- a/public-typescript/workOrderEdit/workOrderEdit.ts +++ b/public-typescript/workOrderEdit/workOrderEdit.ts @@ -12,8 +12,7 @@ declare const bulmaJS: BulmaJS; (() => { const los = exports.los as globalTypes.LOS; - const workOrderId = (document.querySelector("#workOrderEdit--workOrderId") as HTMLInputElement) - .value; + const workOrderId = (document.querySelector("#workOrderEdit--workOrderId") as HTMLInputElement).value; const isCreate = workOrderId === ""; @@ -21,9 +20,7 @@ declare const bulmaJS: BulmaJS; los.initializeDatePickers( ( - workOrderFormElement.querySelector( - "#workOrderEdit--workOrderOpenDateString" - ) as HTMLInputElement + workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString") as HTMLInputElement ).closest(".field") as HTMLElement ); los.initializeUnlockFieldButtons(workOrderFormElement); @@ -78,8 +75,7 @@ declare const bulmaJS: BulmaJS; }, (responseJSON: { success: boolean; errorMessage?: string }) => { if (responseJSON.success) { - window.location.href = - los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId); + window.location.href = los.urlPrefix + "/workOrders/" + workOrderId; } else { bulmaJS.alert({ title: "Error Closing Work Order", @@ -122,9 +118,8 @@ declare const bulmaJS: BulmaJS; 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.", + message: `You cannot close a work order with outstanding milestones. + Either complete the outstanding milestones, or remove them from the work order.`, contextualColorName: "warning" }); @@ -154,21 +149,19 @@ declare const bulmaJS: BulmaJS; } }); - document - .querySelector("#button--deleteWorkOrder")! - .addEventListener("click", (clickEvent: Event) => { - clickEvent.preventDefault(); + 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 - } - }); + 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 + } }); + }); } /* @@ -212,11 +205,8 @@ declare const bulmaJS: BulmaJS; const currentDateString = cityssm.dateToString(new Date()); const workOrderMilestoneId = Number.parseInt( - ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--milestone" - ) as HTMLElement - ).dataset.workOrderMilestoneId!, + ((clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement) + .dataset.workOrderMilestoneId!, 10 ); @@ -255,9 +245,7 @@ declare const bulmaJS: BulmaJS; clickEvent.preventDefault(); const workOrderMilestoneId = ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--milestone" - ) as HTMLElement + (clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement ).dataset.workOrderMilestoneId; const doReopen = () => { @@ -287,9 +275,7 @@ declare const bulmaJS: BulmaJS; clickEvent.preventDefault(); const workOrderMilestoneId = ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--milestone" - ) as HTMLElement + (clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement ).dataset.workOrderMilestoneId; const doDelete = () => { @@ -318,11 +304,8 @@ declare const bulmaJS: BulmaJS; clickEvent.preventDefault(); const workOrderMilestoneId = Number.parseInt( - ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--milestone" - ) as HTMLElement - ).dataset.workOrderMilestoneId!, + ((clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement) + .dataset.workOrderMilestoneId!, 10 ); @@ -352,15 +335,12 @@ declare const bulmaJS: BulmaJS; }; cityssm.openHtmlModal("workOrder-editMilestone", { - onshow: (modalElement) => { - ( - modalElement.querySelector("#milestoneEdit--workOrderId") as HTMLInputElement - ).value = workOrderId; + onshow(modalElement) { + (modalElement.querySelector("#milestoneEdit--workOrderId") as HTMLInputElement).value = + workOrderId; ( - modalElement.querySelector( - "#milestoneEdit--workOrderMilestoneId" - ) as HTMLInputElement + modalElement.querySelector("#milestoneEdit--workOrderMilestoneId") as HTMLInputElement ).value = workOrderMilestone.workOrderMilestoneId!.toString(); const milestoneTypeElement = modalElement.querySelector( @@ -376,8 +356,7 @@ declare const bulmaJS: BulmaJS; optionElement.textContent = milestoneType.workOrderMilestoneType; if ( - milestoneType.workOrderMilestoneTypeId === - workOrderMilestone.workOrderMilestoneTypeId + milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId ) { optionElement.selected = true; milestoneTypeFound = true; @@ -414,7 +393,7 @@ declare const bulmaJS: BulmaJS; ) as HTMLTextAreaElement ).value = workOrderMilestone.workOrderMilestoneDescription!; }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { editCloseModalFunction = closeModalFunction; bulmaJS.toggleHtmlClipped(); @@ -423,7 +402,7 @@ declare const bulmaJS: BulmaJS; // los.initializeTimePickers(modalElement); modalElement.querySelector("form")!.addEventListener("submit", doEdit); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); @@ -443,8 +422,7 @@ declare const bulmaJS: BulmaJS; const panelBlockElement = document.createElement("div"); panelBlockElement.className = "panel-block is-block container--milestone"; - panelBlockElement.dataset.workOrderMilestoneId = - milestone.workOrderMilestoneId!.toString(); + panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId!.toString(); panelBlockElement.innerHTML = '
' + @@ -468,9 +446,7 @@ declare const bulmaJS: BulmaJS; "
" : "") + milestone.workOrderMilestoneDateString + - (milestone.workOrderMilestoneTime - ? " " + milestone.workOrderMilestoneTimeString - : "") + + (milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") + "
" + '' + cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") + @@ -505,19 +481,16 @@ declare const bulmaJS: BulmaJS; "
") + ""; - if (milestone.workOrderMilestoneCompletionDate) { - panelBlockElement - .querySelector(".button--reopenMilestone")! - .addEventListener("click", reopenMilestone); - } else { - panelBlockElement - .querySelector(".button--editMilestone")! - .addEventListener("click", editMilestone); + panelBlockElement + .querySelector(".button--reopenMilestone") + ?.addEventListener("click", reopenMilestone); + panelBlockElement + .querySelector(".button--editMilestone") + ?.addEventListener("click", editMilestone); - panelBlockElement - .querySelector(".button--completeMilestone")! - .addEventListener("click", completeMilestone); - } + panelBlockElement + .querySelector(".button--completeMilestone") + ?.addEventListener("click", completeMilestone); panelBlockElement .querySelector(".button--deleteMilestone")! @@ -574,8 +547,7 @@ declare const bulmaJS: BulmaJS; ) { bulmaJS.confirm({ title: "Milestone Date in the Past", - message: - "Are you sure you want to create a milestone with a date in the past?", + message: "Are you sure you want to create a milestone with a date in the past?", contextualColorName: "warning", okButton: { text: "Yes, Create a Past Milestone", @@ -589,9 +561,8 @@ declare const bulmaJS: BulmaJS; cityssm.openHtmlModal("workOrder-addMilestone", { onshow(modalElement) { - ( - modalElement.querySelector("#milestoneAdd--workOrderId") as HTMLInputElement - ).value = workOrderId; + (modalElement.querySelector("#milestoneAdd--workOrderId") as HTMLInputElement).value = + workOrderId; const milestoneTypeElement = modalElement.querySelector( "#milestoneAdd--workOrderMilestoneTypeId" diff --git a/public-typescript/workOrderEdit/workOrderEditComments.js b/public-typescript/workOrderEdit/workOrderEditComments.js index 62becc8f..5806af13 100644 --- a/public-typescript/workOrderEdit/workOrderEditComments.js +++ b/public-typescript/workOrderEdit/workOrderEditComments.js @@ -29,7 +29,8 @@ const openEditWorkOrderComment = (clickEvent) => { } cityssm.openHtmlModal("workOrder-editComment", { onshow(modalElement) { - modalElement.querySelector("#workOrderCommentEdit--workOrderId").value = workOrderId; + modalElement.querySelector("#workOrderCommentEdit--workOrderId").value = + workOrderId; modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId").value = workOrderCommentId.toString(); modalElement.querySelector("#workOrderCommentEdit--workOrderComment").value = workOrderComment.workOrderComment; const workOrderCommentDateStringElement = modalElement.querySelector("#workOrderCommentEdit--workOrderCommentDateString"); @@ -88,26 +89,21 @@ function deleteWorkOrderComment(clickEvent) { function renderWorkOrderComments() { const containerElement = document.querySelector("#container--workOrderComments"); if (workOrderComments.length === 0) { - containerElement.innerHTML = - '
' + - '

There are no comments to display.

' + - "
"; + containerElement.innerHTML = `
+

There are no comments to display.

+
`; return; } const tableElement = document.createElement("table"); tableElement.className = "table is-fullwidth is-striped is-hoverable"; - tableElement.innerHTML = - "" + - "" + - "" + - "" + - '' + - "" + - ""; + tableElement.innerHTML = ` + + + + `; for (const workOrderComment of workOrderComments) { const tableRowElement = document.createElement("tr"); - tableRowElement.dataset.workOrderCommentId = - workOrderComment.workOrderCommentId.toString(); + tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId.toString(); tableRowElement.innerHTML = ""); - tableRowElement - .querySelector(".button--edit") - .addEventListener("click", openEditWorkOrderComment); - tableRowElement - .querySelector(".button--delete") - .addEventListener("click", deleteWorkOrderComment); + tableRowElement.querySelector(".button--edit").addEventListener("click", openEditWorkOrderComment); + tableRowElement.querySelector(".button--delete").addEventListener("click", deleteWorkOrderComment); tableElement.querySelector("tbody").append(tableRowElement); } containerElement.innerHTML = ""; @@ -158,7 +150,8 @@ function openAddCommentModal() { cityssm.openHtmlModal("workOrder-addComment", { onshow(modalElement) { los.populateAliases(modalElement); - modalElement.querySelector("#workOrderCommentAdd--workOrderId").value = workOrderId; + modalElement.querySelector("#workOrderCommentAdd--workOrderId").value = + workOrderId; modalElement.querySelector("form").addEventListener("submit", doAddComment); }, onshown(modalElement, closeModalFunction) { @@ -173,8 +166,6 @@ function openAddCommentModal() { }); } if (!isCreate) { - document - .querySelector("#workOrderComments--add") - .addEventListener("click", openAddCommentModal); + document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal); renderWorkOrderComments(); } diff --git a/public-typescript/workOrderEdit/workOrderEditComments.ts b/public-typescript/workOrderEdit/workOrderEditComments.ts index f4403b1b..aa611f6d 100644 --- a/public-typescript/workOrderEdit/workOrderEditComments.ts +++ b/public-typescript/workOrderEdit/workOrderEditComments.ts @@ -58,19 +58,14 @@ const openEditWorkOrderComment = (clickEvent: Event) => { cityssm.openHtmlModal("workOrder-editComment", { onshow(modalElement) { + (modalElement.querySelector("#workOrderCommentEdit--workOrderId") as HTMLInputElement).value = + workOrderId; ( - modalElement.querySelector("#workOrderCommentEdit--workOrderId") as HTMLInputElement - ).value = workOrderId; - ( - modalElement.querySelector( - "#workOrderCommentEdit--workOrderCommentId" - ) as HTMLInputElement + modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId") as HTMLInputElement ).value = workOrderCommentId.toString(); ( - modalElement.querySelector( - "#workOrderCommentEdit--workOrderComment" - ) as HTMLInputElement + modalElement.querySelector("#workOrderCommentEdit--workOrderComment") as HTMLInputElement ).value = workOrderComment.workOrderComment!; const workOrderCommentDateStringElement = modalElement.querySelector( @@ -99,9 +94,7 @@ const openEditWorkOrderComment = (clickEvent: Event) => { // los.initializeTimePickers(modalElement); ( - modalElement.querySelector( - "#workOrderCommentEdit--workOrderComment" - ) as HTMLTextAreaElement + modalElement.querySelector("#workOrderCommentEdit--workOrderComment") as HTMLTextAreaElement ).focus(); editFormElement = modalElement.querySelector("form")!; @@ -162,28 +155,23 @@ function renderWorkOrderComments() { const containerElement = document.querySelector("#container--workOrderComments") as HTMLElement; if (workOrderComments.length === 0) { - containerElement.innerHTML = - '
' + - '

There are no comments to display.

' + - "
"; + containerElement.innerHTML = `
+

There are no comments to display.

+
`; return; } const tableElement = document.createElement("table"); tableElement.className = "table is-fullwidth is-striped is-hoverable"; - tableElement.innerHTML = - "" + - "" + - "" + - "" + - '' + - "" + - ""; + tableElement.innerHTML = ` + + + + `; for (const workOrderComment of workOrderComments) { const tableRowElement = document.createElement("tr"); - tableRowElement.dataset.workOrderCommentId = - workOrderComment.workOrderCommentId!.toString(); + tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId!.toString(); tableRowElement.innerHTML = ""); - tableRowElement - .querySelector(".button--edit")! - .addEventListener("click", openEditWorkOrderComment); + tableRowElement.querySelector(".button--edit")!.addEventListener("click", openEditWorkOrderComment); - tableRowElement - .querySelector(".button--delete")! - .addEventListener("click", deleteWorkOrderComment); + tableRowElement.querySelector(".button--delete")!.addEventListener("click", deleteWorkOrderComment); tableElement.querySelector("tbody")!.append(tableRowElement); } @@ -234,10 +218,7 @@ function openAddCommentModal() { cityssm.postJSON( los.urlPrefix + "/workOrders/doAddWorkOrderComment", formEvent.currentTarget, - (responseJSON: { - success: boolean; - workOrderComments?: recordTypes.WorkOrderComment[]; - }) => { + (responseJSON: { success: boolean; workOrderComments?: recordTypes.WorkOrderComment[] }) => { if (responseJSON.success) { workOrderComments = responseJSON.workOrderComments!; renderWorkOrderComments(); @@ -250,18 +231,15 @@ function openAddCommentModal() { cityssm.openHtmlModal("workOrder-addComment", { onshow(modalElement) { los.populateAliases(modalElement); - ( - modalElement.querySelector("#workOrderCommentAdd--workOrderId") as HTMLInputElement - ).value = workOrderId; + (modalElement.querySelector("#workOrderCommentAdd--workOrderId") as HTMLInputElement).value = + workOrderId; modalElement.querySelector("form")!.addEventListener("submit", doAddComment); }, onshown(modalElement, closeModalFunction) { bulmaJS.toggleHtmlClipped(); addCommentCloseModalFunction = closeModalFunction; ( - modalElement.querySelector( - "#workOrderCommentAdd--workOrderComment" - ) as HTMLTextAreaElement + modalElement.querySelector("#workOrderCommentAdd--workOrderComment") as HTMLTextAreaElement ).focus(); }, onremoved() { @@ -272,9 +250,7 @@ function openAddCommentModal() { } if (!isCreate) { - document - .querySelector("#workOrderComments--add")! - .addEventListener("click", openAddCommentModal); - + document.querySelector("#workOrderComments--add")!.addEventListener("click", openAddCommentModal); + renderWorkOrderComments(); } diff --git a/public-typescript/workOrderEdit/workOrderEditLots.js b/public-typescript/workOrderEdit/workOrderEditLots.js index 1213fdef..809d9c5a 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.js +++ b/public-typescript/workOrderEdit/workOrderEditLots.js @@ -26,8 +26,8 @@ function deleteLotOccupancy(clickEvent) { }); } bulmaJS.confirm({ - title: `Delete ${exports.aliases.occupancy} Relationship`, - message: `Are you sure you want to remove the relationship to this ${exports.aliases.occupancy.toLowerCase()} record from this work order? Note that the record will remain.`, + title: `Delete ${los.escapedAliases.Occupancy} Relationship`, + message: `Are you sure you want to remove the relationship to this ${los.escapedAliases.occupancy} record from this work order? Note that the record will remain.`, contextualColorName: "warning", okButton: { text: "Yes, Delete Relationship", @@ -46,7 +46,7 @@ function addLot(lotId, callbackFunction) { } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.lot, + title: "Error Adding " + los.escapedAliases.Lot, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -67,7 +67,7 @@ function addLotOccupancy(lotOccupancyId, callbackFunction) { } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.occupancy, + title: "Error Adding " + los.escapedAliases.Occupancy, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -82,12 +82,13 @@ function addLotFromLotOccupancy(clickEvent) { addLot(lotId); } function renderRelatedOccupancies() { - var _a; + var _a, _b; const occupanciesContainerElement = document.querySelector("#container--lotOccupancies"); - document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = workOrderLotOccupancies.length.toString(); + document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = + workOrderLotOccupancies.length.toString(); if (workOrderLotOccupancies.length === 0) { occupanciesContainerElement.innerHTML = `
-

There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.

+

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

`; return; } @@ -105,8 +106,7 @@ function renderRelatedOccupancies() { const rowElement = document.createElement("tr"); rowElement.className = "container--lotOccupancy"; rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString(); - const isActive = !(lotOccupancy.occupancyEndDate && - lotOccupancy.occupancyEndDateString < currentDateString); + const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString < currentDateString); const hasLotRecord = lotOccupancy.lotId && workOrderLots.some((lot) => { return lotOccupancy.lotId === lot.lotId; @@ -114,12 +114,8 @@ function renderRelatedOccupancies() { rowElement.innerHTML = '" + (""); } else { - rowElement.insertAdjacentHTML("beforeend", ``); + rowElement.insertAdjacentHTML("beforeend", ``); } rowElement.insertAdjacentHTML("beforeend", "") + ("")); - if (lotOccupancy.lotId && !hasLotRecord) { - rowElement - .querySelector(".button--addLot") - .addEventListener("click", addLotFromLotOccupancy); - } + (_b = rowElement.querySelector(".button--addLot")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", addLotFromLotOccupancy); rowElement .querySelector(".button--deleteLotOccupancy") .addEventListener("click", deleteLotOccupancy); @@ -196,8 +186,7 @@ function renderRelatedOccupancies() { } } function openEditLotStatus(clickEvent) { - const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot") - .dataset.lotId, 10); + const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot").dataset.lotId, 10); const lot = workOrderLots.find((possibleLot) => { return possibleLot.lotId === lotId; }); @@ -224,8 +213,7 @@ function openEditLotStatus(clickEvent) { los.populateAliases(modalElement); modalElement.querySelector("#lotStatusEdit--lotId").value = lotId.toString(); - modalElement.querySelector("#lotStatusEdit--lotName").value = - lot.lotName; + modalElement.querySelector("#lotStatusEdit--lotName").value = lot.lotName; const lotStatusElement = modalElement.querySelector("#lotStatusEdit--lotStatusId"); let lotStatusFound = false; for (const lotStatus of exports.lotStatuses) { @@ -248,7 +236,7 @@ function openEditLotStatus(clickEvent) { } modalElement .querySelector("form") - .insertAdjacentHTML("beforeend", ''); + .insertAdjacentHTML("beforeend", ``); }, onshown(modalElement, closeModalFunction) { editCloseModalFunction = closeModalFunction; @@ -261,7 +249,8 @@ function openEditLotStatus(clickEvent) { }); } function deleteLot(clickEvent) { - const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId; + const lotId = clickEvent.currentTarget.closest(".container--lot") + .dataset.lotId; function doDelete() { cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", { workOrderId, @@ -339,9 +328,7 @@ function renderRelatedLots() { '' + "" + ""); - rowElement - .querySelector(".button--editLotStatus") - .addEventListener("click", openEditLotStatus); + rowElement.querySelector(".button--editLotStatus").addEventListener("click", openEditLotStatus); rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot); lotsContainerElement.querySelector("tbody").append(rowElement); } @@ -370,10 +357,9 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", () searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML("Searching..."); cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => { if (responseJSON.lotOccupancies.length === 0) { - searchResultsContainerElement.innerHTML = - '
' + - '

There are no records that meet the search criteria.

' + - "
"; + searchResultsContainerElement.innerHTML = `
+

There are no records that meet the search criteria.

+
`; return; } searchResultsContainerElement.innerHTML = `
" + cityssm.escapeHTML(lot.lotType || "") + "" + cityssm.escapeHTML(lot.lotStatus || "") + "
CommentorComment DateCommentOptions
CommentorComment DateCommentOptions
" + cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") + @@ -812,12 +788,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); "") + "" + "
CommentorComment DateCommentOptions
CommentorComment DateCommentOptions
" + cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") + @@ -132,12 +128,8 @@ function renderWorkOrderComments() { "") + "" + "
CommentorComment DateCommentOptions
CommentorComment DateCommentOptions
" + @@ -210,13 +198,9 @@ function renderWorkOrderComments() { "" + "' + (isActive - ? '' - : '') + + ? '' + : '') + "" + '' + '' + "") + "(No ${exports.aliases.lot})(No ${los.escapedAliases.Lot})" + lotOccupancy.occupancyStartDateString + @@ -162,9 +158,7 @@ function renderRelatedOccupancies() { "" + (lotOccupancy.lotOccupancyOccupants.length === 0 - ? '(No ' + - cityssm.escapeHTML(exports.aliases.occupants) + - ")" + ? '(No ' + los.escapedAliases.Occupants + ")" : (_a = lotOccupancy.lotOccupancyOccupants) === null || _a === void 0 ? void 0 : _a.reduce((soFar, occupant) => { return (soFar + ' ' + cityssm.escapeHTML(occupant.occupantName) + "
"); @@ -184,11 +178,7 @@ function renderRelatedOccupancies() { '' + "" + "
@@ -421,8 +407,7 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", () ")" : cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) + (lotOccupancy.lotOccupancyOccupants.length > 1 - ? " plus " + - (lotOccupancy.lotOccupancyOccupants.length - 1) + ? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1) : "")) + "")); rowElement @@ -437,7 +422,8 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", () los.populateAliases(modalElement); searchFormElement = modalElement.querySelector("form"); searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotOccupancyAdd"); - modalElement.querySelector("#lotOccupancySearch--notWorkOrderId").value = workOrderId; + modalElement.querySelector("#lotOccupancySearch--notWorkOrderId").value = + workOrderId; modalElement.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value = document.querySelector("#workOrderEdit--workOrderOpenDateString").value; doSearch(); }, @@ -505,9 +491,7 @@ document.querySelector("#button--addLot").addEventListener("click", () => { "" + ("") + (""); - rowElement - .querySelector(".button--addLot") - .addEventListener("click", doAddLot); + rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot); searchResultsContainerElement.querySelector("tbody").append(rowElement); } }); diff --git a/public-typescript/workOrderEdit/workOrderEditLots.ts b/public-typescript/workOrderEdit/workOrderEditLots.ts index b19ae90c..4e5aec7c 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.ts +++ b/public-typescript/workOrderEdit/workOrderEditLots.ts @@ -51,8 +51,8 @@ function deleteLotOccupancy(clickEvent: Event): void { } bulmaJS.confirm({ - title: `Delete ${exports.aliases.occupancy} Relationship`, - message: `Are you sure you want to remove the relationship to this ${exports.aliases.occupancy.toLowerCase()} record from this work order? Note that the record will remain.`, + title: `Delete ${los.escapedAliases.Occupancy} Relationship`, + message: `Are you sure you want to remove the relationship to this ${los.escapedAliases.occupancy} record from this work order? Note that the record will remain.`, contextualColorName: "warning", okButton: { text: "Yes, Delete Relationship", @@ -68,17 +68,13 @@ function addLot(lotId: number | string, callbackFunction?: (success?: boolean) = workOrderId, lotId }, - (responseJSON: { - success: boolean; - errorMessage?: string; - workOrderLots?: recordTypes.Lot[]; - }) => { + (responseJSON: { success: boolean; errorMessage?: string; workOrderLots?: recordTypes.Lot[] }) => { if (responseJSON.success) { workOrderLots = responseJSON.workOrderLots!; renderRelatedLotsAndOccupancies(); } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.lot, + title: "Error Adding " + los.escapedAliases.Lot, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -111,7 +107,7 @@ function addLotOccupancy( renderRelatedLotsAndOccupancies(); } else { bulmaJS.alert({ - title: "Error Adding " + exports.aliases.occupancy, + title: "Error Adding " + los.escapedAliases.Occupancy, message: responseJSON.errorMessage || "", contextualColorName: "danger" }); @@ -130,17 +126,14 @@ function addLotFromLotOccupancy(clickEvent: Event): void { } function renderRelatedOccupancies(): void { - const occupanciesContainerElement = document.querySelector( - "#container--lotOccupancies" - ) as HTMLElement; + const occupanciesContainerElement = document.querySelector("#container--lotOccupancies") as HTMLElement; - ( - document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag") as HTMLElement - ).textContent = workOrderLotOccupancies.length.toString(); + (document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag") as HTMLElement).textContent = + workOrderLotOccupancies.length.toString(); if (workOrderLotOccupancies.length === 0) { occupanciesContainerElement.innerHTML = `
-

There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.

+

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

`; return; @@ -164,8 +157,7 @@ function renderRelatedOccupancies(): void { rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId!.toString(); const isActive = !( - lotOccupancy.occupancyEndDate && - lotOccupancy.occupancyEndDateString! < currentDateString + lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString! < currentDateString ); const hasLotRecord = @@ -177,12 +169,8 @@ function renderRelatedOccupancies(): void { rowElement.innerHTML = '" + ("` + `` ); } @@ -234,9 +222,7 @@ function renderRelatedOccupancies(): void { "") + ("") ); - if (lotOccupancy.lotId && !hasLotRecord) { - rowElement - .querySelector(".button--addLot")! - .addEventListener("click", addLotFromLotOccupancy); - } + rowElement.querySelector(".button--addLot")?.addEventListener("click", addLotFromLotOccupancy); rowElement .querySelector(".button--deleteLotOccupancy")! @@ -276,8 +258,7 @@ function renderRelatedOccupancies(): void { function openEditLotStatus(clickEvent: Event): void { const lotId = Number.parseInt( - ((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement) - .dataset.lotId!, + ((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement).dataset.lotId!, 10 ); @@ -320,8 +301,7 @@ function openEditLotStatus(clickEvent: Event): void { (modalElement.querySelector("#lotStatusEdit--lotId") as HTMLInputElement).value = lotId.toString(); - (modalElement.querySelector("#lotStatusEdit--lotName") as HTMLInputElement).value = - lot.lotName!; + (modalElement.querySelector("#lotStatusEdit--lotName") as HTMLInputElement).value = lot.lotName!; const lotStatusElement = modalElement.querySelector( "#lotStatusEdit--lotStatusId" @@ -356,7 +336,7 @@ function openEditLotStatus(clickEvent: Event): void { .querySelector("form")! .insertAdjacentHTML( "beforeend", - '' + `` ); }, onshown(modalElement, closeModalFunction) { @@ -373,9 +353,8 @@ function openEditLotStatus(clickEvent: Event): void { } function deleteLot(clickEvent: Event): void { - const lotId = ( - (clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement - ).dataset.lotId; + const lotId = ((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement) + .dataset.lotId; function doDelete(): void { cityssm.postJSON( @@ -471,9 +450,7 @@ function renderRelatedLots(): void { "" + ""); - rowElement - .querySelector(".button--editLotStatus")! - .addEventListener("click", openEditLotStatus); + rowElement.querySelector(".button--editLotStatus")!.addEventListener("click", openEditLotStatus); rowElement.querySelector(".button--deleteLot")!.addEventListener("click", deleteLot); @@ -516,10 +493,9 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", () searchFormElement, (responseJSON: { lotOccupancies: recordTypes.LotOccupancy[] }) => { if (responseJSON.lotOccupancies.length === 0) { - searchResultsContainerElement.innerHTML = - '
' + - '

There are no records that meet the search criteria.

' + - "
"; + searchResultsContainerElement.innerHTML = `
+

There are no records that meet the search criteria.

+
`; return; } @@ -582,8 +558,7 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", () lotOccupancy.lotOccupancyOccupants![0].occupantName! ) + (lotOccupancy.lotOccupancyOccupants!.length > 1 - ? " plus " + - (lotOccupancy.lotOccupancyOccupants!.length - 1) + ? " plus " + (lotOccupancy.lotOccupancyOccupants!.length - 1) : "")) + "") ); @@ -608,20 +583,15 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", () "#resultsContainer--lotOccupancyAdd" ) as HTMLElement; - ( - modalElement.querySelector( - "#lotOccupancySearch--notWorkOrderId" - ) as HTMLInputElement - ).value = workOrderId; + (modalElement.querySelector("#lotOccupancySearch--notWorkOrderId") as HTMLInputElement).value = + workOrderId; ( modalElement.querySelector( "#lotOccupancySearch--occupancyEffectiveDateString" ) as HTMLInputElement ).value = ( - document.querySelector( - "#workOrderEdit--workOrderOpenDateString" - ) as HTMLInputElement + document.querySelector("#workOrderEdit--workOrderOpenDateString") as HTMLInputElement ).value; doSearch(); @@ -633,9 +603,10 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", () modalElement.querySelector("#lotOccupancySearch--occupantName") as HTMLInputElement ).addEventListener("change", doSearch); - ( - modalElement.querySelector("#lotOccupancySearch--lotName") as HTMLInputElement - ).addEventListener("change", doSearch); + (modalElement.querySelector("#lotOccupancySearch--lotName") as HTMLInputElement).addEventListener( + "change", + doSearch + ); searchFormElement.addEventListener("submit", doSearch); }, @@ -712,9 +683,7 @@ document.querySelector("#button--addLot")!.addEventListener("click", () => { ("") + (""); - rowElement - .querySelector(".button--addLot")! - .addEventListener("click", doAddLot); + rowElement.querySelector(".button--addLot")!.addEventListener("click", doAddLot); searchResultsContainerElement.querySelector("tbody")!.append(rowElement); } @@ -751,13 +720,15 @@ document.querySelector("#button--addLot")!.addEventListener("click", () => { onshown(modalElement) { bulmaJS.toggleHtmlClipped(); - ( - modalElement.querySelector("#lotSearch--lotName") as HTMLInputElement - ).addEventListener("change", doSearch); + (modalElement.querySelector("#lotSearch--lotName") as HTMLInputElement).addEventListener( + "change", + doSearch + ); - ( - modalElement.querySelector("#lotSearch--lotStatusId") as HTMLSelectElement - ).addEventListener("change", doSearch); + (modalElement.querySelector("#lotSearch--lotStatusId") as HTMLSelectElement).addEventListener( + "change", + doSearch + ); searchFormElement.addEventListener("submit", doSearch); }, diff --git a/public-typescript/workOrderMilestoneCalendar.js b/public-typescript/workOrderMilestoneCalendar.js index f7dc0f5e..033a4f20 100644 --- a/public-typescript/workOrderMilestoneCalendar.js +++ b/public-typescript/workOrderMilestoneCalendar.js @@ -9,10 +9,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); const milestoneCalendarContainerElement = document.querySelector("#container--milestoneCalendar"); function renderMilestones(workOrderMilestones) { if (workOrderMilestones.length === 0) { - milestoneCalendarContainerElement.innerHTML = - '
' + - '

There are no milestones that meet the search criteria.

' + - "
"; + milestoneCalendarContainerElement.innerHTML = `
+

There are no milestones that meet the search criteria.

+
`; return; } milestoneCalendarContainerElement.innerHTML = ""; @@ -26,8 +25,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } currentPanelElement = document.createElement("div"); currentPanelElement.className = "panel"; - currentPanelElement.innerHTML = - '

' + milestone.workOrderMilestoneDateString + "

"; + currentPanelElement.innerHTML = `

${milestone.workOrderMilestoneDateString}

`; currentPanelDateString = milestone.workOrderMilestoneDateString; } const panelBlockElement = document.createElement("div"); @@ -110,8 +108,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (event) { event.preventDefault(); } - milestoneCalendarContainerElement.innerHTML = - los.getLoadingParagraphHTML("Loading Milestones..."); + milestoneCalendarContainerElement.innerHTML = los.getLoadingParagraphHTML("Loading Milestones..."); cityssm.postJSON(los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => { renderMilestones(responseJSON.workOrderMilestones); }); diff --git a/public-typescript/workOrderMilestoneCalendar.ts b/public-typescript/workOrderMilestoneCalendar.ts index 70fa1939..041e5f7f 100644 --- a/public-typescript/workOrderMilestoneCalendar.ts +++ b/public-typescript/workOrderMilestoneCalendar.ts @@ -27,10 +27,9 @@ declare const cityssm: cityssmGlobal; function renderMilestones(workOrderMilestones: recordTypes.WorkOrderMilestone[]) { if (workOrderMilestones.length === 0) { - milestoneCalendarContainerElement.innerHTML = - '
' + - '

There are no milestones that meet the search criteria.

' + - "
"; + milestoneCalendarContainerElement.innerHTML = `
+

There are no milestones that meet the search criteria.

+
`; return; } @@ -50,8 +49,7 @@ declare const cityssm: cityssmGlobal; currentPanelElement = document.createElement("div"); currentPanelElement.className = "panel"; - currentPanelElement.innerHTML = - '

' + milestone.workOrderMilestoneDateString + "

"; + currentPanelElement.innerHTML = `

${milestone.workOrderMilestoneDateString}

`; currentPanelDateString = milestone.workOrderMilestoneDateString!; } @@ -148,8 +146,7 @@ declare const cityssm: cityssmGlobal; event.preventDefault(); } - milestoneCalendarContainerElement.innerHTML = - los.getLoadingParagraphHTML("Loading Milestones..."); + milestoneCalendarContainerElement.innerHTML = los.getLoadingParagraphHTML("Loading Milestones..."); cityssm.postJSON( los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", diff --git a/public/javascripts/adminFees.min.js b/public/javascripts/adminFees.min.js index 9ae34333..0cb3479c 100644 --- a/public/javascripts/adminFees.min.js +++ b/public/javascripts/adminFees.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#container--feeCategories");let s=exports.feeCategories;function o(){if(0!==s.length){t.innerHTML="";for(const o of s){const s=document.createElement("section");if(s.className="panel container--feeCategory",s.dataset.feeCategoryId=o.feeCategoryId.toString(),s.innerHTML='

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

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

\n There are no fees in the\n "${cityssm.escapeHTML(o.feeCategory||"")}"\n category.\n

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

'+cityssm.escapeHTML(t.feeName||"")+"
"+cityssm.escapeHTML(t.feeDescription||"").replace(/\n/g,"
")+"

"+(a?'

'+(t.isRequired?'Required':"")+(t.occupancyTypeId?' '+cityssm.escapeHTML(t.occupancyType||"")+"":"")+(t.lotTypeId?' '+cityssm.escapeHTML(t.lotType||"")+"":"")+"

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

There are no available fees.

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

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

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

\n There are no fees in the\n "${cityssm.escapeHTML(o.feeCategory||"")}"\n category.\n

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

'+cityssm.escapeHTML(t.feeName||"")+"
"+cityssm.escapeHTML(t.feeDescription||"").replace(/\n/g,"
")+"

"+(a?'

'+(t.isRequired?'Required':"")+(t.occupancyTypeId?' '+cityssm.escapeHTML(t.occupancyType||"")+"":"")+(t.lotTypeId?' '+cityssm.escapeHTML(t.lotType||"")+"":"")+"

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

There are no available fees.

\n
'}function a(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10),n=s.find(e=>e.feeCategoryId===a);let r;function c(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFeeCategory",t.currentTarget,e=>{e.success?(s=e.feeCategories,r(),o()):bulmaJS.alert({title:"Error Updating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-editFeeCategory",{onshow(e){e.querySelector("#feeCategoryEdit--feeCategoryId").value=n.feeCategoryId.toString(),e.querySelector("#feeCategoryEdit--feeCategory").value=n.feeCategory},onshown(e,t){bulmaJS.toggleHtmlClipped(),r=t,e.querySelector("form").addEventListener("submit",c),e.querySelector("#feeCategoryEdit--feeCategory").focus()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function n(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);bulmaJS.confirm({title:"Delete Fee Category?",message:"Are you sure you want to delete this fee category?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee Category",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFeeCategory",{feeCategoryId:a},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Updating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function r(t){const a=t.currentTarget,n=a.closest(".container--feeCategory").dataset.feeCategoryId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===a.dataset.direction?"doMoveFeeCategoryUp":"doMoveFeeCategoryDown"),{feeCategoryId:n,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})}function c(t){const a=Number.parseInt(t.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId,10);let n;function r(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFee",t.currentTarget,e=>{e.success?(s=e.feeCategories,n(),o()):bulmaJS.alert({title:"Error Adding Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}cityssm.openHtmlModal("adminFees-addFee",{onshow(t){const o=t.querySelector("#feeAdd--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===a&&(t.selected=!0),o.append(t)}const n=t.querySelector("#feeAdd--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,n.append(t)}const r=t.querySelector("#feeAdd--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,r.append(t)}t.querySelector("#feeAdd--taxPercentage").value=exports.taxPercentageDefault.toString(),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),n=t,e.querySelector("form").addEventListener("submit",r),e.querySelector("#feeAdd--feeName").focus(),e.querySelector("#feeAdd--feeFunction").addEventListener("change",()=>{const t=e.querySelector("#feeAdd--feeAmount"),s=e.querySelector("#feeAdd--feeFunction");""===s.value?(s.closest(".select").classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.closest(".select").classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--taxPercentage").addEventListener("keyup",()=>{const t=e.querySelector("#feeAdd--taxAmount"),s=e.querySelector("#feeAdd--taxPercentage");""===s.value?(s.classList.remove("is-success"),t.classList.add("is-success"),t.disabled=!1):(s.classList.add("is-success"),t.classList.remove("is-success"),t.disabled=!0)}),e.querySelector("#feeAdd--includeQuantity").addEventListener("change",()=>{e.querySelector("#feeAdd--quantityUnit").disabled=""===e.querySelector("#feeAdd--includeQuantity").value})},onremoved(){bulmaJS.toggleHtmlClipped()}})}function l(t){t.preventDefault();const a=t.currentTarget.closest(".container--fee"),n=Number.parseInt(a.dataset.feeId,10),r=Number.parseInt(a.closest(".container--feeCategory").dataset.feeCategoryId),c=s.find(e=>e.feeCategoryId===r).fees.find(e=>e.feeId===n);let l,i;function d(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateFee",t.currentTarget,e=>{e.success?(s=e.feeCategories,l(),o()):bulmaJS.alert({title:"Error Updating Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}function u(t){t.preventDefault();bulmaJS.confirm({title:"Delete Fee?",message:"Are you sure you want to delete this fee?",contextualColorName:"warning",okButton:{text:"Yes, Delete the Fee",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteFee",{feeId:n},e=>{e.success?(s=e.feeCategories,l(),o()):bulmaJS.alert({title:"Error Deleting Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function y(){const e=i.querySelector("#feeEdit--feeAmount"),t=i.querySelector("#feeEdit--feeFunction");""===t.value?(t.closest(".select").classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.closest(".select").classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)}function f(){const e=i.querySelector("#feeEdit--taxAmount"),t=i.querySelector("#feeEdit--taxPercentage");""===t.value?(t.classList.remove("is-success"),e.classList.add("is-success"),e.disabled=!1):(t.classList.add("is-success"),e.classList.remove("is-success"),e.disabled=!0)}function m(){const e=i.querySelector("#feeEdit--includeQuantity").value;i.querySelector("#feeEdit--quantityUnit").disabled=""===e}cityssm.openHtmlModal("adminFees-editFee",{onshow(t){i=t,t.querySelector("#feeEdit--feeId").value=c.feeId.toString();const o=t.querySelector("#feeEdit--feeCategoryId");for(const e of s){const t=document.createElement("option");t.value=e.feeCategoryId.toString(),t.textContent=e.feeCategory,e.feeCategoryId===r&&(t.selected=!0),o.append(t)}t.querySelector("#feeEdit--feeName").value=c.feeName,t.querySelector("#feeEdit--feeDescription").value=c.feeDescription;const a=t.querySelector("#feeEdit--occupancyTypeId");for(const e of exports.occupancyTypes){const t=document.createElement("option");t.value=e.occupancyTypeId.toString(),t.textContent=e.occupancyType,e.occupancyTypeId===c.occupancyTypeId&&(t.selected=!0),a.append(t)}const n=t.querySelector("#feeEdit--lotTypeId");for(const e of exports.lotTypes){const t=document.createElement("option");t.value=e.lotTypeId.toString(),t.textContent=e.lotType,e.lotTypeId===c.lotTypeId&&(t.selected=!0),n.append(t)}t.querySelector("#feeEdit--feeAmount").value=c.feeAmount?c.feeAmount.toFixed(2):"",t.querySelector("#feeEdit--feeFunction").addEventListener("change",y),y(),t.querySelector("#feeEdit--taxAmount").value=c.taxAmount?c.taxAmount.toFixed(2):"";const l=t.querySelector("#feeEdit--taxPercentage");l.value=c.taxPercentage?c.taxPercentage.toString():"",l.addEventListener("keyup",f),f();const d=t.querySelector("#feeEdit--includeQuantity");c.includeQuantity&&(d.value="1"),d.addEventListener("change",m),t.querySelector("#feeEdit--quantityUnit").value=c.quantityUnit||"",m(),c.isRequired&&(t.querySelector("#feeEdit--isRequired").value="1"),e.populateAliases(t)},onshown(e,t){bulmaJS.toggleHtmlClipped(),l=t,e.querySelector("form").addEventListener("submit",d),bulmaJS.init(e),e.querySelector(".button--deleteFee").addEventListener("click",u)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}function i(t){const a=t.currentTarget,n=a.closest(".container--fee").dataset.feeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===a.dataset.direction?"doMoveFeeUp":"doMoveFeeDown"),{feeId:n,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(s=e.feeCategories,o()):bulmaJS.alert({title:"Error Moving Fee",message:e.errorMessage||"",contextualColorName:"danger"})})}delete exports.feeCategories,document.querySelector("#button--addFeeCategory").addEventListener("click",()=>{let t;const a=a=>{a.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddFeeCategory",a.currentTarget,e=>{e.success?(s=e.feeCategories,t(),o()):bulmaJS.alert({title:"Error Creating Fee Category",message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("adminFees-addFeeCategory",{onshown(e,s){bulmaJS.toggleHtmlClipped(),e.querySelector("#feeCategoryAdd--feeCategory").focus(),t=s,e.querySelector("form").addEventListener("submit",a)},onremoved(){bulmaJS.toggleHtmlClipped(),document.querySelector("#button--addFeeCategory").focus()}})}),o()})(); \ No newline at end of file diff --git a/public/javascripts/adminLotTypes.min.js b/public/javascripts/adminLotTypes.min.js index 97ecb641..e03c80ab 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,e=>{e.success?(t(),l=e.lotTypes,T()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot+" Type",message:e.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 ${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 diff --git a/public/javascripts/adminTables.min.js b/public/javascripts/adminTables.min.js index be9654f5..d97eb110 100644 --- a/public/javascripts/adminTables.min.js +++ b/public/javascripts/adminTables.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=e=>{const t=e.currentTarget,s=t.value;t.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML=''};Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.workOrderTypes;delete exports.workOrderTypes;const r=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderType",t.currentTarget,e=>{e.success?(s=e.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})},o=t=>{const r=t.currentTarget.closest("tr"),o=r.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderType",{workOrderTypeId:o},e=>{e.success?(0===(s=e.workOrderTypes).length?l():r.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},a=t=>{const r=t.currentTarget,o=r.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===r.dataset.direction?"doMoveWorkOrderTypeUp":"doMoveWorkOrderTypeDown"),{workOrderTypeId:o,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(s=e.workOrderTypes,l()):bulmaJS.alert({title:"Error Moving Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})},l=()=>{const t=document.querySelector("#container--workOrderTypes");if(0!==s.length){t.innerHTML="";for(const l of s){const s=document.createElement("tr");s.dataset.workOrderTypeId=l.workOrderTypeId.toString(),s.innerHTML='',s.querySelector("form").addEventListener("submit",r),s.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",a),s.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),s.querySelector(".button--deleteWorkOrderType").addEventListener("click",o),t.append(s)}}else t.innerHTML=''};document.querySelector("#form--addWorkOrderType").addEventListener("submit",t=>{t.preventDefault();const r=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderType",r,e=>{e.success?(s=e.workOrderTypes,l(),r.reset(),r.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})}),l(),Object.defineProperty(exports,"__esModule",{value:!0});let n=exports.workOrderMilestoneTypes;delete exports.workOrderMilestoneTypes;const c=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{e.success?(n=e.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})},i=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:r},e=>{e.success?(0===(n=e.workOrderMilestoneTypes).length?u():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},d=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveWorkOrderMilestoneTypeUp":"doMoveWorkOrderMilestoneTypeDown"),{workOrderMilestoneTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(n=e.workOrderMilestoneTypes,u()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})},u=()=>{const t=document.querySelector("#container--workOrderMilestoneTypes");if(0!==n.length){t.innerHTML="";for(const s of n){const r=document.createElement("tr");r.dataset.workOrderMilestoneTypeId=s.workOrderMilestoneTypeId.toString(),r.innerHTML='',r.querySelector("form").addEventListener("submit",c),r.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",d),r.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",d),r.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",i),t.append(r)}}else t.innerHTML=''};document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderMilestoneType",s,e=>{e.success?(n=e.workOrderMilestoneTypes,u(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})}),u(),Object.defineProperty(exports,"__esModule",{value:!0});let p=exports.lotStatuses;delete exports.lotStatuses;const m=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotStatus",t.currentTarget,e=>{e.success?(p=e.lotStatuses,bulmaJS.alert({message:exports.aliases.lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot+" Status",message:e.errorMessage||"",contextualColorName:"danger"})})},y=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.lotStatusId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" Status",message:"Are you sure you want to delete this status?
Note that no "+exports.aliases.lots.toLowerCase()+" will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotStatus",{lotStatusId:r},e=>{e.success?(0===(p=e.lotStatuses).length?v():s.remove(),bulmaJS.alert({message:exports.aliases.lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot+" Status",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},T=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.lotStatusId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotStatusUp":"doMoveLotStatusDown"),{lotStatusId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(p=e.lotStatuses,v()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" Status",message:e.errorMessage||"",contextualColorName:"danger"})})},v=()=>{const t=document.querySelector("#container--lotStatuses");if(0!==p.length){t.innerHTML="";for(const s of p){const r=document.createElement("tr");r.dataset.lotStatusId=s.lotStatusId.toString(),r.innerHTML='',r.querySelector("form").addEventListener("submit",m),r.querySelector(".button--moveLotStatusUp").addEventListener("click",T),r.querySelector(".button--moveLotStatusDown").addEventListener("click",T),r.querySelector(".button--deleteLotStatus").addEventListener("click",y),t.append(r)}}else t.innerHTML='"};document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotStatus",s,e=>{e.success?(p=e.lotStatuses,v(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot+" Status",message:e.errorMessage||"",contextualColorName:"danger"})})}),v(),Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.lotOccupantTypes;delete exports.lotOccupantTypes;const S=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotOccupantType",t.currentTarget,e=>{e.success?(g=e.lotOccupantTypes,bulmaJS.alert({message:exports.aliases.lot+" "+exports.aliases.occupant+" Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage||"",contextualColorName:"danger"})})},O=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:"Are you sure you want to delete this "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupant.toLowerCase()+" type?
Note that no "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupancy.toLowerCase()+" will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:r},e=>{e.success?(0===(g=e.lotOccupantTypes).length?f():s.remove(),bulmaJS.alert({message:exports.aliases.lot+" "+exports.aliases.occupant+" Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},b=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotOccupantTypeUp":"doMoveLotOccupantTypeDown"),{lotOccupantTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(g=e.lotOccupantTypes,f()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage||"",contextualColorName:"danger"})})},f=()=>{const s=document.querySelector("#container--lotOccupantTypes");if(0!==g.length){s.innerHTML="";for(const r of g){const o=document.createElement("tr");o.dataset.lotOccupantTypeId=r.lotOccupantTypeId.toString();const a="form--lotOccupantType-"+r.lotOccupantTypeId;o.innerHTML='';const l=o.querySelector("input[name='fontAwesomeIconClass']");l.addEventListener("keyup",t),l.addEventListener("change",t),o.querySelector("form").addEventListener("submit",S),o.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",b),o.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",b),o.querySelector(".button--deleteLotOccupantType").addEventListener("click",O),s.append(o)}}else s.innerHTML='"};document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotOccupantType",s,e=>{e.success?(g=e.lotOccupantTypes,f(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage||"",contextualColorName:"danger"})})}),f()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los;function t(e){const t=e.currentTarget,s=t.value;t.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML=``}Object.defineProperty(exports,"__esModule",{value:!0});let s=exports.workOrderTypes;delete exports.workOrderTypes;const r=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderType",t.currentTarget,e=>{e.success?(s=e.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})},o=t=>{const r=t.currentTarget.closest("tr"),o=r.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderType",{workOrderTypeId:o},e=>{e.success?(0===(s=e.workOrderTypes).length?l():r.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},a=t=>{const r=t.currentTarget,o=r.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===r.dataset.direction?"doMoveWorkOrderTypeUp":"doMoveWorkOrderTypeDown"),{workOrderTypeId:o,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(s=e.workOrderTypes,l()):bulmaJS.alert({title:"Error Moving Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})},l=()=>{const t=document.querySelector("#container--workOrderTypes");if(0!==s.length){t.innerHTML="";for(const l of s){const s=document.createElement("tr");s.dataset.workOrderTypeId=l.workOrderTypeId.toString(),s.innerHTML='',s.querySelector("form").addEventListener("submit",r),s.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",a),s.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),s.querySelector(".button--deleteWorkOrderType").addEventListener("click",o),t.append(s)}}else t.innerHTML=''};document.querySelector("#form--addWorkOrderType").addEventListener("submit",t=>{t.preventDefault();const r=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderType",r,e=>{e.success?(s=e.workOrderTypes,l(),r.reset(),r.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:e.errorMessage||"",contextualColorName:"danger"})})}),l(),Object.defineProperty(exports,"__esModule",{value:!0});let n=exports.workOrderMilestoneTypes;delete exports.workOrderMilestoneTypes;const d=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{e.success?(n=e.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})},c=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
\n Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:r},e=>{e.success?(0===(n=e.workOrderMilestoneTypes).length?u():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},i=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveWorkOrderMilestoneTypeUp":"doMoveWorkOrderMilestoneTypeDown"),{workOrderMilestoneTypeId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(n=e.workOrderMilestoneTypes,u()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})},u=()=>{const t=document.querySelector("#container--workOrderMilestoneTypes");if(0!==n.length){t.innerHTML="";for(const s of n){const r=document.createElement("tr");r.dataset.workOrderMilestoneTypeId=s.workOrderMilestoneTypeId.toString(),r.innerHTML='',r.querySelector("form").addEventListener("submit",d),r.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),r.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",i),r.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",c),t.append(r)}}else t.innerHTML=''};document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddWorkOrderMilestoneType",s,e=>{e.success?(n=e.workOrderMilestoneTypes,u(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:e.errorMessage||"",contextualColorName:"danger"})})}),u(),Object.defineProperty(exports,"__esModule",{value:!0});let p=exports.lotStatuses;delete exports.lotStatuses;const m=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotStatus",t.currentTarget,t=>{t.success?(p=t.lotStatuses,bulmaJS.alert({message:e.escapedAliases.Lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+e.escapedAliases.Lot+" Status",message:t.errorMessage||"",contextualColorName:"danger"})})},y=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.lotStatusId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} Status`,message:`Are you sure you want to delete this status?
\n Note that no ${e.escapedAliases.lot} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotStatus",{lotStatusId:r},t=>{t.success?(0===(p=t.lotStatuses).length?v():s.remove(),bulmaJS.alert({message:e.escapedAliases.Lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting "+e.escapedAliases.Lot+" Status",message:t.errorMessage||"",contextualColorName:"danger"})})}}})},T=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.lotStatusId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotStatusUp":"doMoveLotStatusDown"),{lotStatusId:r,moveToEnd:t.shiftKey?"1":"0"},e=>{e.success?(p=e.lotStatuses,v()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" Status",message:e.errorMessage||"",contextualColorName:"danger"})})},v=()=>{const t=document.querySelector("#container--lotStatuses");if(0!==p.length){t.innerHTML="";for(const s of p){const r=document.createElement("tr");r.dataset.lotStatusId=s.lotStatusId.toString(),r.innerHTML='',r.querySelector("form").addEventListener("submit",m),r.querySelector(".button--moveLotStatusUp").addEventListener("click",T),r.querySelector(".button--moveLotStatusDown").addEventListener("click",T),r.querySelector(".button--deleteLotStatus").addEventListener("click",y),t.append(r)}}else t.innerHTML=``};document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotStatus",s,t=>{t.success?(p=t.lotStatuses,v(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} Status`,message:t.errorMessage||"",contextualColorName:"danger"})})}),v(),Object.defineProperty(exports,"__esModule",{value:!0});let g=exports.lotOccupantTypes;delete exports.lotOccupantTypes;const O=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateLotOccupantType",t.currentTarget,t=>{t.success?(g=t.lotOccupantTypes,bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Updated Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Updating ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:t.errorMessage||"",contextualColorName:"danger"})})},S=t=>{const s=t.currentTarget.closest("tr"),r=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:`Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:`Are you sure you want to delete this ${e.escapedAliases.lot} ${e.escapedAliases.occupant} type?
\n Note that no ${e.escapedAliases.lot} ${e.escapedAliases.occupants} will be removed.`,messageIsHtml:!0,contextualColorName:"warning",okButton:{text:`Yes, Delete ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:r},t=>{t.success?(0===(g=t.lotOccupantTypes).length?f():s.remove(),bulmaJS.alert({message:`${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type Deleted Successfully`,contextualColorName:"success"})):bulmaJS.alert({title:`Error Deleting ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:t.errorMessage||"",contextualColorName:"danger"})})}}})},b=t=>{const s=t.currentTarget,r=s.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===s.dataset.direction?"doMoveLotOccupantTypeUp":"doMoveLotOccupantTypeDown"),{lotOccupantTypeId:r,moveToEnd:t.shiftKey?"1":"0"},t=>{t.success?(g=t.lotOccupantTypes,f()):bulmaJS.alert({title:`Error Moving ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:t.errorMessage||"",contextualColorName:"danger"})})},f=()=>{const s=document.querySelector("#container--lotOccupantTypes");if(0!==g.length){s.innerHTML="";for(const r of g){const o=document.createElement("tr");o.dataset.lotOccupantTypeId=r.lotOccupantTypeId.toString();const a="form--lotOccupantType-"+r.lotOccupantTypeId;o.innerHTML='';const l=o.querySelector("input[name='fontAwesomeIconClass']");l.addEventListener("keyup",t),l.addEventListener("change",t),o.querySelector("form").addEventListener("submit",O),o.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",b),o.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",b),o.querySelector(".button--deleteLotOccupantType").addEventListener("click",S),s.append(o)}}else s.innerHTML=``};document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e.urlPrefix+"/admin/doAddLotOccupantType",s,t=>{t.success?(g=t.lotOccupantTypes,f(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:`Error Adding ${e.escapedAliases.Lot} ${e.escapedAliases.Occupant} Type`,message:t.errorMessage||"",contextualColorName:"danger"})})}),f()})(); \ No newline at end of file diff --git a/public/javascripts/lotOccupancyEdit.min.js b/public/javascripts/lotOccupancyEdit.min.js index ef196174..6e7e73f8 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);if(!n){const n=()=>{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 "+exports.aliases.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:n}})}),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 u=document.querySelector("#lotOccupancy--occupancyTypeId");if(n){const e=document.querySelector("#container--lotOccupancyFields");u.addEventListener("change",()=>{""!==u.value?cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doGetOccupancyTypeFields",{occupancyTypeId:u.value},t=>{if(0===t.occupancyTypeFields.length)return void(e.innerHTML='

There are no additional fields for this '+exports.aliases.occupancy.toLowerCase()+" type.

");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='

Select the '+exports.aliases.occupancy.toLowerCase()+" type to load the available fields.

"})}else{const e=u.value;u.addEventListener("change",()=>{u.value!==e&&bulmaJS.confirm({title:"Confirm Change",message:"Are you sure you want to change the "+exports.aliases.occupancy.toLowerCase()+" type?\nThis 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:()=>{u.value=e}}})})}const i=document.querySelector("#lotOccupancy--lotName");let d;i.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='


Searching...

',cityssm.postJSON(a.urlPrefix+"/lots/doSearchLots",n,e=>{if(0===e.count)return void(s.innerHTML='

No results.

');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 "+exports.aliases.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 "+exports.aliases.lot.toLowerCase()+" selected.",contextualColorName:"info"})}),document.querySelector(".is-clear-lot-button").addEventListener("click",()=>{i.disabled?bulmaJS.alert({message:"You need to unlock the field before clearing it.",contextualColorName:"info"}):(i.value="(No "+exports.aliases.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 p=e=>{const t=Number.parseInt(e.currentTarget.closest("tr").dataset.lotOccupantIndex,10),c=d.find(e=>e.lotOccupantIndex===t);let n,s;const l=e=>{e.preventDefault(),cityssm.postJSON(a.urlPrefix+"/lotOccupancies/doUpdateLotOccupancyOccupant",n,e=>{e.success?(d=e.lotOccupancyOccupants,s(),y()):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()}})},m=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?(d=e.lotOccupancyOccupants,y()):bulmaJS.alert({title:"Error Removing "+exports.aliases.occupant,message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},y=()=>{const e=document.querySelector("#container--lotOccupancyOccupants");if(cityssm.clearElement(e),0===d.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="';for(const e of d){const c=document.createElement("tr");c.dataset.lotOccupantIndex=e.lotOccupantIndex.toString(),c.innerHTML="',c.querySelector(".button--edit").addEventListener("click",p),c.querySelector(".button--delete").addEventListener("click",m),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 d=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?(d=t.lotOccupancyOccupants,e(),y()):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()}})}),y();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='';for(const a of e){const e=document.createElement("tr");e.dataset.lotOccupancyCommentId=a.lotOccupancyCommentId.toString(),e.innerHTML="',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='
" + cityssm.escapeHTML(lot.lotType || "") + "" + cityssm.escapeHTML(lot.lotStatus || "") + "' + (isActive - ? '' - : '') + + ? '' + : '') + "" + '' + '' + "") + @@ -218,7 +206,7 @@ function renderRelatedOccupancies(): void { } else { rowElement.insertAdjacentHTML( "beforeend", - `(No ${exports.aliases.lot})(No ${los.escapedAliases.Lot})" + (lotOccupancy.lotOccupancyOccupants!.length === 0 - ? '(No ' + - cityssm.escapeHTML(exports.aliases.occupants) + - ")" + ? '(No ' + los.escapedAliases.Occupants + ")" : lotOccupancy.lotOccupancyOccupants?.reduce((soFar, occupant) => { return ( soFar + @@ -246,7 +232,7 @@ function renderRelatedOccupancies(): void { ' ' + cityssm.escapeHTML(occupant.occupantName!) + "
" @@ -260,11 +246,7 @@ function renderRelatedOccupancies(): void { "
" + cityssm.escapeHTML(lot.lotType || "") + "" + cityssm.escapeHTML(lot.lotStatus || "") + "
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderTypeUp","button--moveWorkOrderTypeDown",!1)+'

There are no active work order types.

'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderMilestoneTypeUp","button--moveWorkOrderMilestoneTypeDown",!1)+'

There are no active work order milestone types.

'+e.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp","button--moveLotStatusDown",!1)+'

There are no active '+cityssm.escapeHTML(exports.aliases.lot.toLowerCase())+" statuses.

fa-
'+e.getMoveUpDownButtonFieldHTML("button--moveLotOccupantTypeUp","button--moveLotOccupantTypeDown",!1)+'

There are no active '+cityssm.escapeHTML(exports.aliases.lot.toLowerCase())+" "+cityssm.escapeHTML(exports.aliases.occupant.toLowerCase())+" types.

'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderTypeUp","button--moveWorkOrderTypeDown",!1)+'
\n

There are no active work order types.

\n
'+e.getMoveUpDownButtonFieldHTML("button--moveWorkOrderMilestoneTypeUp","button--moveWorkOrderMilestoneTypeDown",!1)+'
\n

There are no active work order milestone types.

\n
'+e.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp","button--moveLotStatusDown",!1)+'
\n

There are no active ${e.escapedAliases.lot} statuses.

\n
fa-
'+e.getMoveUpDownButtonFieldHTML("button--moveLotOccupantTypeUp","button--moveLotOccupantTypeDown",!1)+'
\n

There are no active ${e.escapedAliases.lot} ${e.escapedAliases.occupant} types.

\n
"+exports.aliases.occupant+'AddressOther ContactCommentOptions
"+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)+'
CommentorComment DateCommentOptions
"+cityssm.escapeHTML(a.recordCreate_userName||"")+""+a.lotOccupancyCommentDateString+(0===a.lotOccupancyCommentTime?"":" "+a.lotOccupancyCommentTimeString)+""+cityssm.escapeHTML(a.lotOccupancyComment||"")+'
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/lotSearch.min.js b/public/javascripts/lotSearch.min.js index ed526a95..f6308080 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='

There are no '+e.escapedAliases.lots+" that meet the search criteria.

");const o=document.createElement("tbody");for(const s of t.lots)o.insertAdjacentHTML("beforeend",''+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':"")+"");s.innerHTML=`\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),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 diff --git a/public/javascripts/mapSearch.min.js b/public/javascripts/mapSearch.min.js index 708a5f9a..94bd8b98 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 ${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 diff --git a/public/javascripts/workOrderEdit.min.js b/public/javascripts/workOrderEdit.min.js index 4821ebfe..001b0ed0 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/"+encodeURIComponent(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. 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 ${exports.aliases.occupancy} Relationship`,message:`Are you sure you want to remove the relationship to this ${exports.aliases.occupancy.toLowerCase()} 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},e=>{e.success?(o=e.workOrderLots,p()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot,message:e.errorMessage||"",contextualColorName:"danger"}),s&&s(e.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;const s=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(s.innerHTML=`
\n

There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.

\n
`);s.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 n=cityssm.dateToString(new Date);for(const a of r){const r=document.createElement("tr");r.className="container--lotOccupancy",r.dataset.lotOccupancyId=a.lotOccupancyId.toString();const l=!(a.occupancyEndDate&&a.occupancyEndDateStringa.lotId===e.lotId);r.innerHTML=''+(l?'':'')+''+cityssm.escapeHTML(a.occupancyType||"")+"",a.lotId?r.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(a.lotName||"")+(i?"":' ')+""):r.insertAdjacentHTML("beforeend",`(No ${exports.aliases.lot})`),r.insertAdjacentHTML("beforeend",""+a.occupancyStartDateString+""+(a.occupancyEndDate?a.occupancyEndDateString:'(No End Date)')+""+(0===a.lotOccupancyOccupants.length?'(No '+cityssm.escapeHTML(exports.aliases.occupants)+")":null===(t=a.lotOccupancyOccupants)||void 0===t?void 0:t.reduce((e,t)=>e+' '+cityssm.escapeHTML(t.occupantName)+"
",""))+''),a.lotId&&!i&&r.querySelector(".button--addLot").addEventListener("click",d),r.querySelector(".button--deleteLotOccupancy").addEventListener("click",c),s.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},e=>{e.success?(r=e.workOrderLotOccupancies,p()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupancy,message:e.errorMessage||"",contextualColorName:"danger"}),s&&s(e.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='

There are no records that meet the search criteria.

'})}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='

There are no comments to display.

');const t=document.createElement("table");t.className="table is-fullwidth is-striped is-hoverable",t.innerHTML='CommentorComment DateCommentOptions';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(){const e=document.querySelector("#panel--milestones"),t=e.querySelectorAll(".panel-block");for(const e of t)e.remove();for(const t of l){const o=document.createElement("div");o.className="panel-block is-block container--milestone",o.dataset.workOrderMilestoneId=t.workOrderMilestoneId.toString(),o.innerHTML='
'+(t.workOrderMilestoneCompletionDate?'':'')+'
'+(t.workOrderMilestoneTypeId?""+cityssm.escapeHTML(t.workOrderMilestoneType||"")+"
":"")+t.workOrderMilestoneDateString+(t.workOrderMilestoneTime?" "+t.workOrderMilestoneTimeString:"")+'
'+cityssm.escapeHTML(t.workOrderMilestoneDescription||"")+'
',t.workOrderMilestoneCompletionDate?o.querySelector(".button--reopenMilestone").addEventListener("click",f):(o.querySelector(".button--editMilestone").addEventListener("click",v),o.querySelector(".button--completeMilestone").addEventListener("click",b)),o.querySelector(".button--deleteMilestone").addEventListener("click",M),e.append(o)}bulmaJS.init(e)}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{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=`\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{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='

There are no milestones that meet the search criteria.

');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