From 5b94b09c7be2cac6489ab80381614264be7f2dca Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Fri, 30 Dec 2022 12:52:32 -0500 Subject: [PATCH] refactoring --- public-typescript/lotEdit.ts | 5 +- public-typescript/lotView.ts | 5 +- public-typescript/workOrderEdit.js | 243 ++++----- .../workOrderEdit/workOrderEditLots.js | 243 ++++----- .../workOrderEdit/workOrderEditLots.ts | 499 ++++++++---------- public/javascripts/workOrderEdit.min.js | 2 +- 6 files changed, 444 insertions(+), 553 deletions(-) diff --git a/public-typescript/lotEdit.ts b/public-typescript/lotEdit.ts index 2daab87e..31d617a8 100644 --- a/public-typescript/lotEdit.ts +++ b/public-typescript/lotEdit.ts @@ -503,10 +503,7 @@ declare const bulmaJS: BulmaJS; } if (!isCreate) { - (document.querySelector("#lotComments--add") as HTMLButtonElement).addEventListener( - "click", - openAddCommentModal - ); + document.querySelector("#lotComments--add")!.addEventListener("click", openAddCommentModal); renderLotComments(); } })(); diff --git a/public-typescript/lotView.ts b/public-typescript/lotView.ts index 1da7ff26..f39189d2 100644 --- a/public-typescript/lotView.ts +++ b/public-typescript/lotView.ts @@ -3,9 +3,8 @@ import * as globalTypes from "../types/globalTypes"; (() => { - const mapContainerElement = document.querySelector( - "#lot--map" - ) as HTMLElement; + const mapContainerElement = document.querySelector("#lot--map") as HTMLElement; + if (mapContainerElement) { (exports.los as globalTypes.LOS).highlightMap( mapContainerElement, diff --git a/public-typescript/workOrderEdit.js b/public-typescript/workOrderEdit.js index 6398ba38..15c47630 100644 --- a/public-typescript/workOrderEdit.js +++ b/public-typescript/workOrderEdit.js @@ -137,9 +137,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); delete exports.workOrderLots; let workOrderLotOccupancies = exports.workOrderLotOccupancies; delete exports.workOrderLotOccupancies; - const deleteLotOccupancy = (clickEvent) => { + function deleteLotOccupancy(clickEvent) { const lotOccupancyId = clickEvent.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLotOccupancy", { workOrderId, lotOccupancyId @@ -156,22 +156,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; + } bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupancy + " Relationship", - message: "Are you sure you want to remove the relationship to this " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupancy.toLowerCase() + - " record from this work order? Note that the record will remain.", + 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: doDelete } }); - }; - const addLot = (lotId, callbackFunction) => { + } + function addLot(lotId, callbackFunction) { cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderLot", { workOrderId, lotId @@ -191,8 +187,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); callbackFunction(responseJSON.success); } }); - }; - const addLotOccupancy = (lotOccupancyId, callbackFunction) => { + } + function addLotOccupancy(lotOccupancyId, callbackFunction) { cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderLotOccupancy", { workOrderId, lotOccupancyId @@ -212,39 +208,30 @@ Object.defineProperty(exports, "__esModule", { value: true }); callbackFunction(responseJSON.success); } }); - }; - const addLotFromLotOccupancy = (clickEvent) => { + } + function addLotFromLotOccupancy(clickEvent) { const lotId = clickEvent.currentTarget.dataset.lotId; addLot(lotId); - }; - const renderRelatedOccupancies = () => { + } + function renderRelatedOccupancies() { var _a; const occupanciesContainerElement = document.querySelector("#container--lotOccupancies"); 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.

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

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

+
`; return; } - occupanciesContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - ("") + - "" + - ("") + - '' + - "" + - "" + - "" + - "
" + exports.aliases.occupancy + " Type" + exports.aliases.lot + "" + exports.aliases.occupancyStartDate + "End Date" + exports.aliases.occupants + "
"; + occupanciesContainerElement.innerHTML = ` + + + + + + + +
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}
`; const currentDateString = cityssm.dateToString(new Date()); for (const lotOccupancy of workOrderLotOccupancies) { const rowElement = document.createElement("tr"); @@ -295,11 +282,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); ""); } else { - rowElement.insertAdjacentHTML("beforeend", "" + - '(No ' + - exports.aliases.lot + - ")" + - ""); + rowElement.insertAdjacentHTML("beforeend", `(No ${exports.aliases.lot})`); } rowElement.insertAdjacentHTML("beforeend", "" + lotOccupancy.occupancyStartDateString + @@ -334,20 +317,24 @@ Object.defineProperty(exports, "__esModule", { value: true }); "" + "")); if (lotOccupancy.lotId && !hasLotRecord) { - rowElement.querySelector(".button--addLot").addEventListener("click", addLotFromLotOccupancy); + rowElement + .querySelector(".button--addLot") + .addEventListener("click", addLotFromLotOccupancy); } - rowElement.querySelector(".button--deleteLotOccupancy").addEventListener("click", deleteLotOccupancy); + rowElement + .querySelector(".button--deleteLotOccupancy") + .addEventListener("click", deleteLotOccupancy); occupanciesContainerElement.querySelector("tbody").append(rowElement); } - }; - const openEditLotStatus = (clickEvent) => { + } + function openEditLotStatus(clickEvent) { const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot") .dataset.lotId, 10); const lot = workOrderLots.find((possibleLot) => { return possibleLot.lotId === lotId; }); let editCloseModalFunction; - const doUpdateLotStatus = (submitEvent) => { + function doUpdateLotStatus(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + "/workOrders/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { @@ -363,9 +350,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; + } cityssm.openHtmlModal("lot-editLotStatus", { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); modalElement.querySelector("#lotStatusEdit--lotId").value = lotId.toString(); @@ -395,19 +382,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); .querySelector("form") .insertAdjacentHTML("beforeend", ''); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { editCloseModalFunction = closeModalFunction; bulmaJS.toggleHtmlClipped(); modalElement.querySelector("form").addEventListener("submit", doUpdateLotStatus); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); - }; - const deleteLot = (clickEvent) => { + } + function deleteLot(clickEvent) { const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", { workOrderId, lotId @@ -424,47 +411,37 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); } }); - }; + } bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupancy + " Relationship", - message: "Are you sure you want to remove the relationship to this " + - exports.aliases.lot.toLowerCase() + - " " + - 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", callbackFunction: doDelete } }); - }; - const renderRelatedLots = () => { + } + function renderRelatedLots() { const lotsContainerElement = document.querySelector("#container--lots"); document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent = workOrderLots.length.toString(); if (workOrderLots.length === 0) { - lotsContainerElement.innerHTML = - '
' + - '

There are no ' + - exports.aliases.lots.toLowerCase() + - " associated with this work order.

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

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

+
`; return; } - lotsContainerElement.innerHTML = - '' + - "" + - "" + - ("") + - ("") + - ("") + - "" + - '' + - "" + - "" + - "" + - "
" + exports.aliases.lot + "" + exports.aliases.map + "" + exports.aliases.lot + " TypeStatus
"; + lotsContainerElement.innerHTML = ` + + + + + + + + +
${los.escapedAliases.Lot}${los.escapedAliases.Map}${los.escapedAliases.Lot} TypeStatus
`; for (const lot of workOrderLots) { const rowElement = document.createElement("tr"); rowElement.className = "container--lot"; @@ -494,17 +471,19 @@ 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); } - }; - const renderRelatedLotsAndOccupancies = () => { + } + function renderRelatedLotsAndOccupancies() { renderRelatedOccupancies(); renderRelatedLots(); - }; + } renderRelatedLotsAndOccupancies(); - const doAddLotOccupancy = (clickEvent) => { + function doAddLotOccupancy(clickEvent) { const rowElement = clickEvent.currentTarget.closest("tr"); const lotOccupancyId = rowElement.dataset.lotOccupancyId; addLotOccupancy(lotOccupancyId, (success) => { @@ -512,11 +491,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); rowElement.remove(); } }); - }; + } document.querySelector("#button--addLotOccupancy").addEventListener("click", () => { let searchFormElement; let searchResultsContainerElement; - const doSearch = (event) => { + function doSearch(event) { if (event) { event.preventDefault(); } @@ -533,20 +512,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); ""; return; } - searchResultsContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - "" + - "" + - ("") + - "" + - "" + - "" + - "
" + exports.aliases.occupancy + " Type" + exports.aliases.lot + "Start DateEnd Date" + exports.aliases.occupants + "
"; + searchResultsContainerElement.innerHTML = ` + + + + + + + + + +
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}
`; for (const lotOccupancy of responseJSON.lotOccupancies) { const rowElement = document.createElement("tr"); rowElement.className = "container--lotOccupancy"; @@ -564,11 +540,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); rowElement.insertAdjacentHTML("beforeend", "" + cityssm.escapeHTML(lotOccupancy.lotName || "") + ""); } else { - rowElement.insertAdjacentHTML("beforeend", "" + - '(No ' + - exports.aliases.lot + - ")" + - ""); + rowElement.insertAdjacentHTML("beforeend", `(No ${los.escapedAliases.Lot})`); } rowElement.insertAdjacentHTML("beforeend", "" + lotOccupancy.occupancyStartDateString + @@ -589,13 +561,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); (lotOccupancy.lotOccupancyOccupants.length - 1) : "")) + "")); - rowElement.querySelector(".button--addLotOccupancy").addEventListener("click", doAddLotOccupancy); + rowElement + .querySelector(".button--addLotOccupancy") + .addEventListener("click", doAddLotOccupancy); searchResultsContainerElement.querySelector("tbody").append(rowElement); } }); - }; + } cityssm.openHtmlModal("workOrder-addLotOccupancy", { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); searchFormElement = modalElement.querySelector("form"); searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotOccupancyAdd"); @@ -603,18 +577,18 @@ Object.defineProperty(exports, "__esModule", { value: true }); modalElement.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value = document.querySelector("#workOrderEdit--workOrderOpenDateString").value; doSearch(); }, - onshown: (modalElement) => { + onshown(modalElement) { bulmaJS.toggleHtmlClipped(); modalElement.querySelector("#lotOccupancySearch--occupantName").addEventListener("change", doSearch); modalElement.querySelector("#lotOccupancySearch--lotName").addEventListener("change", doSearch); searchFormElement.addEventListener("submit", doSearch); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); }); - const doAddLot = (clickEvent) => { + function doAddLot(clickEvent) { const rowElement = clickEvent.currentTarget.closest("tr"); const lotId = rowElement.dataset.lotId; addLot(lotId, (success) => { @@ -622,11 +596,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); rowElement.remove(); } }); - }; + } document.querySelector("#button--addLot").addEventListener("click", () => { let searchFormElement; let searchResultsContainerElement; - const doSearch = (event) => { + function doSearch(event) { if (event) { event.preventDefault(); } @@ -643,19 +617,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); ""; return; } - searchResultsContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - ("") + - "" + - "" + - "" + - "" + - "
" + exports.aliases.lot + "" + exports.aliases.map + "" + exports.aliases.lot + " TypeStatus
"; + searchResultsContainerElement.innerHTML = ` + + + + + + + + +
${los.escapedAliases.Lot}${los.escapedAliases.Map}${los.escapedAliases.Lot} TypeStatus
`; for (const lot of responseJSON.lots) { const rowElement = document.createElement("tr"); rowElement.className = "container--lot"; @@ -674,13 +645,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); "" + ("" + cityssm.escapeHTML(lot.lotType || "") + "") + ("" + cityssm.escapeHTML(lot.lotStatus || "") + ""); - rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot); + rowElement + .querySelector(".button--addLot") + .addEventListener("click", doAddLot); searchResultsContainerElement.querySelector("tbody").append(rowElement); } }); - }; + } cityssm.openHtmlModal("workOrder-addLot", { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); searchFormElement = modalElement.querySelector("form"); searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotAdd"); @@ -695,13 +668,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); } doSearch(); }, - onshown: (modalElement) => { + onshown(modalElement) { bulmaJS.toggleHtmlClipped(); modalElement.querySelector("#lotSearch--lotName").addEventListener("change", doSearch); modalElement.querySelector("#lotSearch--lotStatusId").addEventListener("change", doSearch); searchFormElement.addEventListener("submit", doSearch); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); diff --git a/public-typescript/workOrderEdit/workOrderEditLots.js b/public-typescript/workOrderEdit/workOrderEditLots.js index 4dd17928..afd194c9 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.js +++ b/public-typescript/workOrderEdit/workOrderEditLots.js @@ -5,9 +5,9 @@ let workOrderLots = exports.workOrderLots; delete exports.workOrderLots; let workOrderLotOccupancies = exports.workOrderLotOccupancies; delete exports.workOrderLotOccupancies; -const deleteLotOccupancy = (clickEvent) => { +function deleteLotOccupancy(clickEvent) { const lotOccupancyId = clickEvent.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLotOccupancy", { workOrderId, lotOccupancyId @@ -24,22 +24,18 @@ const deleteLotOccupancy = (clickEvent) => { }); } }); - }; + } bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupancy + " Relationship", - message: "Are you sure you want to remove the relationship to this " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupancy.toLowerCase() + - " record from this work order? Note that the record will remain.", + 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: doDelete } }); -}; -const addLot = (lotId, callbackFunction) => { +} +function addLot(lotId, callbackFunction) { cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderLot", { workOrderId, lotId @@ -59,8 +55,8 @@ const addLot = (lotId, callbackFunction) => { callbackFunction(responseJSON.success); } }); -}; -const addLotOccupancy = (lotOccupancyId, callbackFunction) => { +} +function addLotOccupancy(lotOccupancyId, callbackFunction) { cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderLotOccupancy", { workOrderId, lotOccupancyId @@ -80,39 +76,30 @@ const addLotOccupancy = (lotOccupancyId, callbackFunction) => { callbackFunction(responseJSON.success); } }); -}; -const addLotFromLotOccupancy = (clickEvent) => { +} +function addLotFromLotOccupancy(clickEvent) { const lotId = clickEvent.currentTarget.dataset.lotId; addLot(lotId); -}; -const renderRelatedOccupancies = () => { +} +function renderRelatedOccupancies() { var _a; const occupanciesContainerElement = document.querySelector("#container--lotOccupancies"); 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.

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

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

+
`; return; } - occupanciesContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - ("") + - "" + - ("") + - '' + - "" + - "" + - "" + - "
" + exports.aliases.occupancy + " Type" + exports.aliases.lot + "" + exports.aliases.occupancyStartDate + "End Date" + exports.aliases.occupants + "
"; + occupanciesContainerElement.innerHTML = ` + + + + + + + +
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}
`; const currentDateString = cityssm.dateToString(new Date()); for (const lotOccupancy of workOrderLotOccupancies) { const rowElement = document.createElement("tr"); @@ -163,11 +150,7 @@ const renderRelatedOccupancies = () => { ""); } else { - rowElement.insertAdjacentHTML("beforeend", "" + - '(No ' + - exports.aliases.lot + - ")" + - ""); + rowElement.insertAdjacentHTML("beforeend", `(No ${exports.aliases.lot})`); } rowElement.insertAdjacentHTML("beforeend", "" + lotOccupancy.occupancyStartDateString + @@ -202,20 +185,24 @@ const renderRelatedOccupancies = () => { "" + "")); if (lotOccupancy.lotId && !hasLotRecord) { - rowElement.querySelector(".button--addLot").addEventListener("click", addLotFromLotOccupancy); + rowElement + .querySelector(".button--addLot") + .addEventListener("click", addLotFromLotOccupancy); } - rowElement.querySelector(".button--deleteLotOccupancy").addEventListener("click", deleteLotOccupancy); + rowElement + .querySelector(".button--deleteLotOccupancy") + .addEventListener("click", deleteLotOccupancy); occupanciesContainerElement.querySelector("tbody").append(rowElement); } -}; -const openEditLotStatus = (clickEvent) => { +} +function openEditLotStatus(clickEvent) { const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot") .dataset.lotId, 10); const lot = workOrderLots.find((possibleLot) => { return possibleLot.lotId === lotId; }); let editCloseModalFunction; - const doUpdateLotStatus = (submitEvent) => { + function doUpdateLotStatus(submitEvent) { submitEvent.preventDefault(); cityssm.postJSON(los.urlPrefix + "/workOrders/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => { if (responseJSON.success) { @@ -231,9 +218,9 @@ const openEditLotStatus = (clickEvent) => { }); } }); - }; + } cityssm.openHtmlModal("lot-editLotStatus", { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); modalElement.querySelector("#lotStatusEdit--lotId").value = lotId.toString(); @@ -263,19 +250,19 @@ const openEditLotStatus = (clickEvent) => { .querySelector("form") .insertAdjacentHTML("beforeend", ''); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { editCloseModalFunction = closeModalFunction; bulmaJS.toggleHtmlClipped(); modalElement.querySelector("form").addEventListener("submit", doUpdateLotStatus); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); -}; -const deleteLot = (clickEvent) => { +} +function deleteLot(clickEvent) { const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId; - const doDelete = () => { + function doDelete() { cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", { workOrderId, lotId @@ -292,47 +279,37 @@ const deleteLot = (clickEvent) => { }); } }); - }; + } bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupancy + " Relationship", - message: "Are you sure you want to remove the relationship to this " + - exports.aliases.lot.toLowerCase() + - " " + - 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", callbackFunction: doDelete } }); -}; -const renderRelatedLots = () => { +} +function renderRelatedLots() { const lotsContainerElement = document.querySelector("#container--lots"); document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent = workOrderLots.length.toString(); if (workOrderLots.length === 0) { - lotsContainerElement.innerHTML = - '
' + - '

There are no ' + - exports.aliases.lots.toLowerCase() + - " associated with this work order.

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

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

+
`; return; } - lotsContainerElement.innerHTML = - '' + - "" + - "" + - ("") + - ("") + - ("") + - "" + - '' + - "" + - "" + - "" + - "
" + exports.aliases.lot + "" + exports.aliases.map + "" + exports.aliases.lot + " TypeStatus
"; + lotsContainerElement.innerHTML = ` + + + + + + + + +
${los.escapedAliases.Lot}${los.escapedAliases.Map}${los.escapedAliases.Lot} TypeStatus
`; for (const lot of workOrderLots) { const rowElement = document.createElement("tr"); rowElement.className = "container--lot"; @@ -362,17 +339,19 @@ const 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); } -}; -const renderRelatedLotsAndOccupancies = () => { +} +function renderRelatedLotsAndOccupancies() { renderRelatedOccupancies(); renderRelatedLots(); -}; +} renderRelatedLotsAndOccupancies(); -const doAddLotOccupancy = (clickEvent) => { +function doAddLotOccupancy(clickEvent) { const rowElement = clickEvent.currentTarget.closest("tr"); const lotOccupancyId = rowElement.dataset.lotOccupancyId; addLotOccupancy(lotOccupancyId, (success) => { @@ -380,11 +359,11 @@ const doAddLotOccupancy = (clickEvent) => { rowElement.remove(); } }); -}; +} document.querySelector("#button--addLotOccupancy").addEventListener("click", () => { let searchFormElement; let searchResultsContainerElement; - const doSearch = (event) => { + function doSearch(event) { if (event) { event.preventDefault(); } @@ -401,20 +380,17 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", () ""; return; } - searchResultsContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - "" + - "" + - ("") + - "" + - "" + - "" + - "
" + exports.aliases.occupancy + " Type" + exports.aliases.lot + "Start DateEnd Date" + exports.aliases.occupants + "
"; + searchResultsContainerElement.innerHTML = ` + + + + + + + + + +
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}
`; for (const lotOccupancy of responseJSON.lotOccupancies) { const rowElement = document.createElement("tr"); rowElement.className = "container--lotOccupancy"; @@ -432,11 +408,7 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", () rowElement.insertAdjacentHTML("beforeend", "" + cityssm.escapeHTML(lotOccupancy.lotName || "") + ""); } else { - rowElement.insertAdjacentHTML("beforeend", "" + - '(No ' + - exports.aliases.lot + - ")" + - ""); + rowElement.insertAdjacentHTML("beforeend", `(No ${los.escapedAliases.Lot})`); } rowElement.insertAdjacentHTML("beforeend", "" + lotOccupancy.occupancyStartDateString + @@ -457,13 +429,15 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", () (lotOccupancy.lotOccupancyOccupants.length - 1) : "")) + "")); - rowElement.querySelector(".button--addLotOccupancy").addEventListener("click", doAddLotOccupancy); + rowElement + .querySelector(".button--addLotOccupancy") + .addEventListener("click", doAddLotOccupancy); searchResultsContainerElement.querySelector("tbody").append(rowElement); } }); - }; + } cityssm.openHtmlModal("workOrder-addLotOccupancy", { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); searchFormElement = modalElement.querySelector("form"); searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotOccupancyAdd"); @@ -471,18 +445,18 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", () modalElement.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value = document.querySelector("#workOrderEdit--workOrderOpenDateString").value; doSearch(); }, - onshown: (modalElement) => { + onshown(modalElement) { bulmaJS.toggleHtmlClipped(); modalElement.querySelector("#lotOccupancySearch--occupantName").addEventListener("change", doSearch); modalElement.querySelector("#lotOccupancySearch--lotName").addEventListener("change", doSearch); searchFormElement.addEventListener("submit", doSearch); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); }); -const doAddLot = (clickEvent) => { +function doAddLot(clickEvent) { const rowElement = clickEvent.currentTarget.closest("tr"); const lotId = rowElement.dataset.lotId; addLot(lotId, (success) => { @@ -490,11 +464,11 @@ const doAddLot = (clickEvent) => { rowElement.remove(); } }); -}; +} document.querySelector("#button--addLot").addEventListener("click", () => { let searchFormElement; let searchResultsContainerElement; - const doSearch = (event) => { + function doSearch(event) { if (event) { event.preventDefault(); } @@ -511,19 +485,16 @@ document.querySelector("#button--addLot").addEventListener("click", () => { ""; return; } - searchResultsContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - ("") + - "" + - "" + - "" + - "" + - "
" + exports.aliases.lot + "" + exports.aliases.map + "" + exports.aliases.lot + " TypeStatus
"; + searchResultsContainerElement.innerHTML = ` + + + + + + + + +
${los.escapedAliases.Lot}${los.escapedAliases.Map}${los.escapedAliases.Lot} TypeStatus
`; for (const lot of responseJSON.lots) { const rowElement = document.createElement("tr"); rowElement.className = "container--lot"; @@ -542,13 +513,15 @@ document.querySelector("#button--addLot").addEventListener("click", () => { "" + ("" + cityssm.escapeHTML(lot.lotType || "") + "") + ("" + cityssm.escapeHTML(lot.lotStatus || "") + ""); - rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot); + rowElement + .querySelector(".button--addLot") + .addEventListener("click", doAddLot); searchResultsContainerElement.querySelector("tbody").append(rowElement); } }); - }; + } cityssm.openHtmlModal("workOrder-addLot", { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); searchFormElement = modalElement.querySelector("form"); searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotAdd"); @@ -563,13 +536,13 @@ document.querySelector("#button--addLot").addEventListener("click", () => { } doSearch(); }, - onshown: (modalElement) => { + onshown(modalElement) { bulmaJS.toggleHtmlClipped(); modalElement.querySelector("#lotSearch--lotName").addEventListener("change", doSearch); modalElement.querySelector("#lotSearch--lotStatusId").addEventListener("change", doSearch); searchFormElement.addEventListener("submit", doSearch); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); diff --git a/public-typescript/workOrderEdit/workOrderEditLots.ts b/public-typescript/workOrderEdit/workOrderEditLots.ts index 15807987..b73d924d 100644 --- a/public-typescript/workOrderEdit/workOrderEditLots.ts +++ b/public-typescript/workOrderEdit/workOrderEditLots.ts @@ -19,12 +19,12 @@ delete exports.workOrderLots; let workOrderLotOccupancies: recordTypes.LotOccupancy[] = exports.workOrderLotOccupancies; delete exports.workOrderLotOccupancies; -const deleteLotOccupancy = (clickEvent: Event) => { +function deleteLotOccupancy(clickEvent: Event): void { const lotOccupancyId = ( (clickEvent.currentTarget as HTMLElement).closest(".container--lotOccupancy") as HTMLElement ).dataset.lotOccupancyId; - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + "/workOrders/doDeleteWorkOrderLotOccupancy", { @@ -48,25 +48,20 @@ const deleteLotOccupancy = (clickEvent: Event) => { } } ); - }; + } bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupancy + " Relationship", - message: - "Are you sure you want to remove the relationship to this " + - exports.aliases.lot.toLowerCase() + - " " + - exports.aliases.occupancy.toLowerCase() + - " record from this work order? Note that the record will remain.", + 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: doDelete } }); -}; +} -const addLot = (lotId: number | string, callbackFunction?: (success?: boolean) => void) => { +function addLot(lotId: number | string, callbackFunction?: (success?: boolean) => void): void { cityssm.postJSON( los.urlPrefix + "/workOrders/doAddWorkOrderLot", { @@ -94,12 +89,12 @@ const addLot = (lotId: number | string, callbackFunction?: (success?: boolean) = } } ); -}; +} -const addLotOccupancy = ( +function addLotOccupancy( lotOccupancyId: number | string, callbackFunction?: (success?: boolean) => void -) => { +): void { cityssm.postJSON( los.urlPrefix + "/workOrders/doAddWorkOrderLotOccupancy", { @@ -127,14 +122,14 @@ const addLotOccupancy = ( } } ); -}; +} -const addLotFromLotOccupancy = (clickEvent: Event) => { +function addLotFromLotOccupancy(clickEvent: Event): void { const lotId = (clickEvent.currentTarget as HTMLElement).dataset.lotId!; addLot(lotId); -}; +} -const renderRelatedOccupancies = () => { +function renderRelatedOccupancies(): void { const occupanciesContainerElement = document.querySelector( "#container--lotOccupancies" ) as HTMLElement; @@ -144,31 +139,22 @@ const renderRelatedOccupancies = () => { ).textContent = workOrderLotOccupancies.length.toString(); if (workOrderLotOccupancies.length === 0) { - occupanciesContainerElement.innerHTML = - '
' + - '

There are no ' + - exports.aliases.occupancies.toLowerCase() + - " associated with this work order.

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

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

+
`; return; } - occupanciesContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - ("") + - "" + - ("") + - '' + - "" + - "" + - "" + - "
" + exports.aliases.occupancy + " Type" + exports.aliases.lot + "" + exports.aliases.occupancyStartDate + "End Date" + exports.aliases.occupants + "
"; + occupanciesContainerElement.innerHTML = ` + + + + + + + +
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}
`; const currentDateString = cityssm.dateToString(new Date()); @@ -232,11 +218,7 @@ const renderRelatedOccupancies = () => { } else { rowElement.insertAdjacentHTML( "beforeend", - "" + - '(No ' + - exports.aliases.lot + - ")" + - "" + `(No ${exports.aliases.lot})` ); } @@ -279,21 +261,20 @@ const renderRelatedOccupancies = () => { ); if (lotOccupancy.lotId && !hasLotRecord) { - (rowElement.querySelector(".button--addLot") as HTMLButtonElement).addEventListener( - "click", - addLotFromLotOccupancy - ); + rowElement + .querySelector(".button--addLot")! + .addEventListener("click", addLotFromLotOccupancy); } - ( - rowElement.querySelector(".button--deleteLotOccupancy") as HTMLButtonElement - ).addEventListener("click", deleteLotOccupancy); + rowElement + .querySelector(".button--deleteLotOccupancy")! + .addEventListener("click", deleteLotOccupancy); occupanciesContainerElement.querySelector("tbody")!.append(rowElement); } -}; +} -const openEditLotStatus = (clickEvent: Event) => { +function openEditLotStatus(clickEvent: Event): void { const lotId = Number.parseInt( ((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement) .dataset.lotId!, @@ -306,7 +287,7 @@ const openEditLotStatus = (clickEvent: Event) => { let editCloseModalFunction: () => void; - const doUpdateLotStatus = (submitEvent: SubmitEvent) => { + function doUpdateLotStatus(submitEvent: SubmitEvent) { submitEvent.preventDefault(); cityssm.postJSON( @@ -330,10 +311,10 @@ const openEditLotStatus = (clickEvent: Event) => { } } ); - }; + } cityssm.openHtmlModal("lot-editLotStatus", { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); (modalElement.querySelector("#lotStatusEdit--lotId") as HTMLInputElement).value = @@ -378,25 +359,25 @@ const openEditLotStatus = (clickEvent: Event) => { '' ); }, - onshown: (modalElement, closeModalFunction) => { + onshown(modalElement, closeModalFunction) { editCloseModalFunction = closeModalFunction; bulmaJS.toggleHtmlClipped(); modalElement.querySelector("form")!.addEventListener("submit", doUpdateLotStatus); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); -}; +} -const deleteLot = (clickEvent: Event) => { +function deleteLot(clickEvent: Event): void { const lotId = ( (clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement ).dataset.lotId; - const doDelete = () => { + function doDelete(): void { cityssm.postJSON( los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", { @@ -420,54 +401,43 @@ const deleteLot = (clickEvent: Event) => { } } ); - }; + } bulmaJS.confirm({ - title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupancy + " Relationship", - message: - "Are you sure you want to remove the relationship to this " + - exports.aliases.lot.toLowerCase() + - " " + - 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", callbackFunction: doDelete } }); -}; +} -const renderRelatedLots = () => { +function renderRelatedLots() { const lotsContainerElement = document.querySelector("#container--lots") as HTMLElement; (document.querySelector(".tabs a[href='#relatedTab--lots'] .tag") as HTMLElement).textContent = workOrderLots.length.toString(); if (workOrderLots.length === 0) { - lotsContainerElement.innerHTML = - '
' + - '

There are no ' + - exports.aliases.lots.toLowerCase() + - " associated with this work order.

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

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

+
`; return; } - lotsContainerElement.innerHTML = - '' + - "" + - "" + - ("") + - ("") + - ("") + - "" + - '' + - "" + - "" + - "" + - "
" + exports.aliases.lot + "" + exports.aliases.map + "" + exports.aliases.lot + " TypeStatus
"; + lotsContainerElement.innerHTML = ` + + + + + + + + +
${los.escapedAliases.Lot}${los.escapedAliases.Map}${los.escapedAliases.Lot} TypeStatus
`; for (const lot of workOrderLots) { const rowElement = document.createElement("tr"); @@ -501,28 +471,24 @@ const renderRelatedLots = () => { "" + ""); - (rowElement.querySelector(".button--editLotStatus") as HTMLButtonElement).addEventListener( - "click", - openEditLotStatus - ); + rowElement + .querySelector(".button--editLotStatus")! + .addEventListener("click", openEditLotStatus); - (rowElement.querySelector(".button--deleteLot") as HTMLButtonElement).addEventListener( - "click", - deleteLot - ); + rowElement.querySelector(".button--deleteLot")!.addEventListener("click", deleteLot); lotsContainerElement.querySelector("tbody")!.append(rowElement); } -}; +} -const renderRelatedLotsAndOccupancies = () => { +function renderRelatedLotsAndOccupancies(): void { renderRelatedOccupancies(); renderRelatedLots(); -}; +} renderRelatedLotsAndOccupancies(); -const doAddLotOccupancy = (clickEvent: Event) => { +function doAddLotOccupancy(clickEvent: Event) { const rowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!; const lotOccupancyId = rowElement.dataset.lotOccupancyId!; @@ -532,172 +498,158 @@ const doAddLotOccupancy = (clickEvent: Event) => { rowElement.remove(); } }); -}; +} -(document.querySelector("#button--addLotOccupancy") as HTMLButtonElement).addEventListener( - "click", - () => { - let searchFormElement: HTMLFormElement; - let searchResultsContainerElement: HTMLElement; +document.querySelector("#button--addLotOccupancy")!.addEventListener("click", () => { + let searchFormElement: HTMLFormElement; + let searchResultsContainerElement: HTMLElement; - const doSearch = (event?: Event) => { - if (event) { - event.preventDefault(); - } + function doSearch(event?: Event) { + if (event) { + event.preventDefault(); + } - searchResultsContainerElement.innerHTML = - '

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

"; - - cityssm.postJSON( - los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", - searchFormElement, - (responseJSON: { lotOccupancies: recordTypes.LotOccupancy[] }) => { - if (responseJSON.lotOccupancies.length === 0) { - searchResultsContainerElement.innerHTML = - '
' + - '

There are no records that meet the search criteria.

' + - "
"; - - return; - } + searchResultsContainerElement.innerHTML = + '

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

"; + cityssm.postJSON( + los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", + searchFormElement, + (responseJSON: { lotOccupancies: recordTypes.LotOccupancy[] }) => { + if (responseJSON.lotOccupancies.length === 0) { searchResultsContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - "" + - "" + - ("") + - "" + - "" + - "" + - "
" + exports.aliases.occupancy + " Type" + exports.aliases.lot + "Start DateEnd Date" + exports.aliases.occupants + "
"; + '
' + + '

There are no records that meet the search criteria.

' + + "
"; - for (const lotOccupancy of responseJSON.lotOccupancies) { - const rowElement = document.createElement("tr"); - rowElement.className = "container--lotOccupancy"; - rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId!.toString(); + return; + } - rowElement.innerHTML = - '' + - '" + - "" + - ('' + - cityssm.escapeHTML(lotOccupancy.occupancyType || "") + - ""); + searchResultsContainerElement.innerHTML = ` + + + + + + + + + +
${los.escapedAliases.Occupancy} Type${los.escapedAliases.Lot}${los.escapedAliases.OccupancyStartDate}End Date${los.escapedAliases.Occupants}
`; - if (lotOccupancy.lotId) { - rowElement.insertAdjacentHTML( - "beforeend", - "" + cityssm.escapeHTML(lotOccupancy.lotName || "") + "" - ); - } else { - rowElement.insertAdjacentHTML( - "beforeend", - "" + - '(No ' + - exports.aliases.lot + - ")" + - "" - ); - } + for (const lotOccupancy of responseJSON.lotOccupancies) { + const rowElement = document.createElement("tr"); + rowElement.className = "container--lotOccupancy"; + rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId!.toString(); + rowElement.innerHTML = + '' + + '" + + "" + + ('' + + cityssm.escapeHTML(lotOccupancy.occupancyType || "") + + ""); + + if (lotOccupancy.lotId) { rowElement.insertAdjacentHTML( "beforeend", - "" + - lotOccupancy.occupancyStartDateString + - "" + - ("" + - (lotOccupancy.occupancyEndDate - ? lotOccupancy.occupancyEndDateString - : '(No End Date)') + - "") + - ("" + - (lotOccupancy.lotOccupancyOccupants!.length === 0 - ? '(No ' + - cityssm.escapeHTML(exports.aliases.occupants) + - ")" - : cityssm.escapeHTML( - lotOccupancy.lotOccupancyOccupants![0].occupantName! - ) + - (lotOccupancy.lotOccupancyOccupants!.length > 1 - ? " plus " + - (lotOccupancy.lotOccupancyOccupants!.length - 1) - : "")) + - "") + "" + cityssm.escapeHTML(lotOccupancy.lotName || "") + "" + ); + } else { + rowElement.insertAdjacentHTML( + "beforeend", + `(No ${los.escapedAliases.Lot})` ); - - ( - rowElement.querySelector( - ".button--addLotOccupancy" - ) as HTMLButtonElement - ).addEventListener("click", doAddLotOccupancy); - - searchResultsContainerElement.querySelector("tbody")!.append(rowElement); } + + rowElement.insertAdjacentHTML( + "beforeend", + "" + + lotOccupancy.occupancyStartDateString + + "" + + ("" + + (lotOccupancy.occupancyEndDate + ? lotOccupancy.occupancyEndDateString + : '(No End Date)') + + "") + + ("" + + (lotOccupancy.lotOccupancyOccupants!.length === 0 + ? '(No ' + + cityssm.escapeHTML(exports.aliases.occupants) + + ")" + : cityssm.escapeHTML( + lotOccupancy.lotOccupancyOccupants![0].occupantName! + ) + + (lotOccupancy.lotOccupancyOccupants!.length > 1 + ? " plus " + + (lotOccupancy.lotOccupancyOccupants!.length - 1) + : "")) + + "") + ); + + rowElement + .querySelector(".button--addLotOccupancy")! + .addEventListener("click", doAddLotOccupancy); + + searchResultsContainerElement.querySelector("tbody")!.append(rowElement); } - ); - }; - - cityssm.openHtmlModal("workOrder-addLotOccupancy", { - onshow: (modalElement) => { - los.populateAliases(modalElement); - - searchFormElement = modalElement.querySelector("form")!; - - searchResultsContainerElement = modalElement.querySelector( - "#resultsContainer--lotOccupancyAdd" - ) as HTMLElement; - - ( - modalElement.querySelector( - "#lotOccupancySearch--notWorkOrderId" - ) as HTMLInputElement - ).value = workOrderId; - - ( - modalElement.querySelector( - "#lotOccupancySearch--occupancyEffectiveDateString" - ) as HTMLInputElement - ).value = ( - document.querySelector( - "#workOrderEdit--workOrderOpenDateString" - ) as HTMLInputElement - ).value; - - doSearch(); - }, - onshown: (modalElement) => { - bulmaJS.toggleHtmlClipped(); - - ( - modalElement.querySelector( - "#lotOccupancySearch--occupantName" - ) as HTMLInputElement - ).addEventListener("change", doSearch); - - ( - modalElement.querySelector("#lotOccupancySearch--lotName") as HTMLInputElement - ).addEventListener("change", doSearch); - - searchFormElement.addEventListener("submit", doSearch); - }, - onremoved: () => { - bulmaJS.toggleHtmlClipped(); } - }); + ); } -); -const doAddLot = (clickEvent: Event) => { + cityssm.openHtmlModal("workOrder-addLotOccupancy", { + onshow(modalElement) { + los.populateAliases(modalElement); + + searchFormElement = modalElement.querySelector("form")!; + + searchResultsContainerElement = modalElement.querySelector( + "#resultsContainer--lotOccupancyAdd" + ) as HTMLElement; + + ( + modalElement.querySelector( + "#lotOccupancySearch--notWorkOrderId" + ) as HTMLInputElement + ).value = workOrderId; + + ( + modalElement.querySelector( + "#lotOccupancySearch--occupancyEffectiveDateString" + ) as HTMLInputElement + ).value = ( + document.querySelector( + "#workOrderEdit--workOrderOpenDateString" + ) as HTMLInputElement + ).value; + + doSearch(); + }, + onshown(modalElement) { + bulmaJS.toggleHtmlClipped(); + + ( + modalElement.querySelector("#lotOccupancySearch--occupantName") as HTMLInputElement + ).addEventListener("change", doSearch); + + ( + modalElement.querySelector("#lotOccupancySearch--lotName") as HTMLInputElement + ).addEventListener("change", doSearch); + + searchFormElement.addEventListener("submit", doSearch); + }, + onremoved() { + bulmaJS.toggleHtmlClipped(); + } + }); +}); + +function doAddLot(clickEvent: Event): void { const rowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!; const lotId = rowElement.dataset.lotId!; @@ -707,13 +659,13 @@ const doAddLot = (clickEvent: Event) => { rowElement.remove(); } }); -}; +} -(document.querySelector("#button--addLot") as HTMLButtonElement).addEventListener("click", () => { +document.querySelector("#button--addLot")!.addEventListener("click", () => { let searchFormElement: HTMLFormElement; let searchResultsContainerElement: HTMLElement; - const doSearch = (event?: Event) => { + function doSearch(event?: Event) { if (event) { event.preventDefault(); } @@ -737,19 +689,16 @@ const doAddLot = (clickEvent: Event) => { return; } - searchResultsContainerElement.innerHTML = - '' + - "" + - "" + - '' + - ("") + - ("") + - ("") + - "" + - "" + - "" + - "" + - "
" + exports.aliases.lot + "" + exports.aliases.map + "" + exports.aliases.lot + " TypeStatus
"; + searchResultsContainerElement.innerHTML = ` + + + + + + + + +
${los.escapedAliases.Lot}${los.escapedAliases.Map}${los.escapedAliases.Lot} TypeStatus
`; for (const lot of responseJSON.lots) { const rowElement = document.createElement("tr"); @@ -771,18 +720,18 @@ const doAddLot = (clickEvent: Event) => { ("" + cityssm.escapeHTML(lot.lotType || "") + "") + ("" + cityssm.escapeHTML(lot.lotStatus || "") + ""); - ( - rowElement.querySelector(".button--addLot") as HTMLButtonElement - ).addEventListener("click", doAddLot); + rowElement + .querySelector(".button--addLot")! + .addEventListener("click", doAddLot); searchResultsContainerElement.querySelector("tbody")!.append(rowElement); } } ); - }; + } cityssm.openHtmlModal("workOrder-addLot", { - onshow: (modalElement) => { + onshow(modalElement) { los.populateAliases(modalElement); searchFormElement = modalElement.querySelector("form")!; @@ -807,7 +756,7 @@ const doAddLot = (clickEvent: Event) => { doSearch(); }, - onshown: (modalElement) => { + onshown(modalElement) { bulmaJS.toggleHtmlClipped(); ( @@ -820,7 +769,7 @@ const doAddLot = (clickEvent: Event) => { searchFormElement.addEventListener("submit", doSearch); }, - onremoved: () => { + onremoved() { bulmaJS.toggleHtmlClipped(); } }); diff --git a/public/javascripts/workOrderEdit.min.js b/public/javascripts/workOrderEdit.min.js index b87c903b..36de7332 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);let a;if(!o){const o=()=>{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"})})};document.querySelector("#button--closeWorkOrder").addEventListener("click",()=>{a.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:o}})});const r=()=>{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"})})};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:r}})})}if(!o){Object.defineProperty(exports,"__esModule",{value:!0});let o=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;delete exports.workOrderLotOccupancies;const s=o=>{const s=o.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" "+exports.aliases.occupancy+" Relationship",message:"Are you sure you want to remove the relationship to this "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupancy.toLowerCase()+" record from this work order? Note that the record will remain.",contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrderLotOccupancy",{workOrderId:t,lotOccupancyId:s},e=>{e.success?(r=e.workOrderLotOccupancies,m()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},a=(r,s)=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:t,lotId:r},e=>{e.success?(o=e.workOrderLots,m()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot,message:e.errorMessage||"",contextualColorName:"danger"}),s&&s(e.success)})},n=(o,s)=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderLotOccupancy",{workOrderId:t,lotOccupancyId:o},e=>{e.success?(r=e.workOrderLotOccupancies,m()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupancy,message:e.errorMessage||"",contextualColorName:"danger"}),s&&s(e.success)})},l=e=>{const t=e.currentTarget.dataset.lotId;a(t)},i=()=>{var t;const a=document.querySelector("#container--lotOccupancies");if(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent=r.length.toString(),0===r.length)return void(a.innerHTML='

There are no '+exports.aliases.occupancies.toLowerCase()+" associated with this work order.

");a.innerHTML='
'+exports.aliases.occupancy+" Type"+exports.aliases.lot+""+exports.aliases.occupancyStartDate+"End Date"+exports.aliases.occupants+'
';const n=cityssm.dateToString(new Date);for(const i of r){const r=document.createElement("tr");r.className="container--lotOccupancy",r.dataset.lotOccupancyId=i.lotOccupancyId.toString();const c=!(i.occupancyEndDate&&i.occupancyEndDateStringi.lotId===e.lotId);r.innerHTML=''+(c?'':'')+''+cityssm.escapeHTML(i.occupancyType||"")+"",i.lotId?r.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(i.lotName||"")+(d?"":' ')+""):r.insertAdjacentHTML("beforeend",'(No '+exports.aliases.lot+")"),r.insertAdjacentHTML("beforeend",""+i.occupancyStartDateString+""+(i.occupancyEndDate?i.occupancyEndDateString:'(No End Date)')+""+(0===i.lotOccupancyOccupants.length?'(No '+cityssm.escapeHTML(exports.aliases.occupants)+")":null===(t=i.lotOccupancyOccupants)||void 0===t?void 0:t.reduce((e,t)=>e+' '+cityssm.escapeHTML(t.occupantName)+"
",""))+''),i.lotId&&!d&&r.querySelector(".button--addLot").addEventListener("click",l),r.querySelector(".button--deleteLotOccupancy").addEventListener("click",s),a.querySelector("tbody").append(r)}},c=r=>{const s=Number.parseInt(r.currentTarget.closest(".container--lot").dataset.lotId,10),a=o.find(e=>e.lotId===s);let n;const l=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateLotStatus",t.currentTarget,e=>{e.success?(o=e.workOrderLots,m(),n()):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=a.lotName;const r=o.querySelector("#lotStatusEdit--lotStatusId");let n=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===a.lotStatusId&&(n=!0),r.append(t)}if(!n&&a.lotStatusId){const e=document.createElement("option");e.value=a.lotStatusId.toString(),e.textContent=a.lotStatus,r.append(e)}a.lotStatusId&&(r.value=a.lotStatusId.toString()),o.querySelector("form").insertAdjacentHTML("beforeend",'')},onshown:(e,t)=>{n=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},d=r=>{const s=r.currentTarget.closest(".container--lot").dataset.lotId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" "+exports.aliases.occupancy+" Relationship",message:"Are you sure you want to remove the relationship to this "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupancy.toLowerCase()+" record from this work order? Note that the record will remain.",contextualColorName:"warning",okButton:{text:"Yes, Delete Relationship",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrderLot",{workOrderId:t,lotId:s},e=>{e.success?(o=e.workOrderLots,m()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})},u=()=>{const t=document.querySelector("#container--lots");if(document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent=o.length.toString(),0!==o.length){t.innerHTML='
'+exports.aliases.lot+""+exports.aliases.map+""+exports.aliases.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",c),o.querySelector(".button--deleteLot").addEventListener("click",d),t.querySelector("tbody").append(o)}}else t.innerHTML='

There are no '+exports.aliases.lots.toLowerCase()+" associated with this work order.

"},m=()=>{i(),u()};m();const p=e=>{const t=e.currentTarget.closest("tr"),o=t.dataset.lotOccupancyId;n(o,e=>{e&&t.remove()})};document.querySelector("#button--addLotOccupancy").addEventListener("click",()=>{let o,r;const s=t=>{t&&t.preventDefault(),r.innerHTML='


Searching...

',cityssm.postJSON(e.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",o,e=>{if(0!==e.lotOccupancies.length){r.innerHTML='
'+exports.aliases.occupancy+" Type"+exports.aliases.lot+"Start DateEnd Date"+exports.aliases.occupants+"
";for(const t of e.lotOccupancies){const e=document.createElement("tr");e.className="container--lotOccupancy",e.dataset.lotOccupancyId=t.lotOccupancyId.toString(),e.innerHTML=''+cityssm.escapeHTML(t.occupancyType||"")+"",t.lotId?e.insertAdjacentHTML("beforeend",""+cityssm.escapeHTML(t.lotName||"")+""):e.insertAdjacentHTML("beforeend",'(No '+exports.aliases.lot+")"),e.insertAdjacentHTML("beforeend",""+t.occupancyStartDateString+""+(t.occupancyEndDate?t.occupancyEndDateString:'(No End Date)')+""+(0===t.lotOccupancyOccupants.length?'(No '+cityssm.escapeHTML(exports.aliases.occupants)+")":cityssm.escapeHTML(t.lotOccupancyOccupants[0].occupantName)+(t.lotOccupancyOccupants.length>1?" plus "+(t.lotOccupancyOccupants.length-1):""))+""),e.querySelector(".button--addLotOccupancy").addEventListener("click",p),r.querySelector("tbody").append(e)}}else r.innerHTML='

There are no records that meet the search criteria.

'})};cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow:a=>{e.populateAliases(a),o=a.querySelector("form"),r=a.querySelector("#resultsContainer--lotOccupancyAdd"),a.querySelector("#lotOccupancySearch--notWorkOrderId").value=t,a.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()}})});const y=e=>{const t=e.currentTarget.closest("tr"),o=t.dataset.lotId;a(o,e=>{e&&t.remove()})};document.querySelector("#button--addLot").addEventListener("click",()=>{let o,r;const s=t=>{t&&t.preventDefault(),r.innerHTML='


Searching...

',cityssm.postJSON(e.urlPrefix+"/lots/doSearchLots",o,e=>{if(0!==e.lots.length){r.innerHTML='
'+exports.aliases.lot+""+exports.aliases.map+""+exports.aliases.lot+" TypeStatus
";for(const t of e.lots){const e=document.createElement("tr");e.className="container--lot",e.dataset.lotId=t.lotId.toString(),e.innerHTML=''+cityssm.escapeHTML(t.lotName||"")+""+cityssm.escapeHTML(t.mapName||"")+""+cityssm.escapeHTML(t.lotType||"")+""+cityssm.escapeHTML(t.lotStatus||"")+"",e.querySelector(".button--addLot").addEventListener("click",y),r.querySelector("tbody").append(e)}}else r.innerHTML='

There are no records that meet the search criteria.

'})};cityssm.openHtmlModal("workOrder-addLot",{onshow:a=>{e.populateAliases(a),o=a.querySelector("form"),r=a.querySelector("#resultsContainer--lotAdd"),a.querySelector("#lotSearch--notWorkOrderId").value=t;const n=a.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,n.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 n=exports.workOrderComments;delete exports.workOrderComments;const l=o=>{const r=Number.parseInt(o.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=n.find(e=>e.workOrderCommentId===r);let a,l;const i=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateWorkOrderComment",a,e=>{e.success?(n=e.workOrderComments,l(),c()):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 a=cityssm.dateToString(new Date);o.max=s.workOrderCommentDateString<=a?a:s.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=s.workOrderCommentTimeString},onshown:(t,o)=>{bulmaJS.toggleHtmlClipped(),e.initializeDatePickers(t),t.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(a=t.querySelector("form")).addEventListener("submit",i),l=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},i=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:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:t,workOrderCommentId:r},e=>{e.success?(n=e.workOrderComments,c()):bulmaJS.alert({title:"Error Removing Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},c=()=>{const e=document.querySelector("#container--workOrderComments");if(0===n.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 n){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",l),o.querySelector(".button--delete").addEventListener("click",i),t.querySelector("tbody").append(o)}e.innerHTML="",e.append(t)},d=()=>{let o;const r=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderComment",t.currentTarget,e=>{e.success&&(n=e.workOrderComments,c(),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()}})};if(o||(document.querySelector("#workOrderComments--add").addEventListener("click",d),c()),!o){a=exports.workOrderMilestones,delete exports.workOrderMilestones;const o=e=>{e.success?(a=e.workOrderMilestones,i()):bulmaJS.alert({title:"Error Reopening Milestone",message:e.errorMessage||"",contextualColorName:"danger"})},r=r=>{r.preventDefault();const s=cityssm.dateToString(new Date),n=Number.parseInt(r.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),l=a.find(e=>e.workOrderMilestoneId===n);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(l.workOrderMilestoneDateString>s?"
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:n},o)}}})},s=r=>{r.preventDefault();const s=r.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:s},o)}}})},n=r=>{r.preventDefault();const s=r.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:s,workOrderId:t},o)}}})},l=r=>{r.preventDefault();const s=Number.parseInt(r.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=a.find(e=>e.workOrderMilestoneId===s);let l;const i=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",t.currentTarget,e=>{o(e),e.success&&l()})};cityssm.openHtmlModal("workOrder-editMilestone",{onshow:e=>{e.querySelector("#milestoneEdit--workOrderId").value=t,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=n.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===n.workOrderMilestoneTypeId&&(t.selected=!0,r=!0),o.append(t)}if(!r&&n.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=n.workOrderMilestoneTypeId.toString(),e.textContent=n.workOrderMilestoneType,e.selected=!0,o.append(e)}e.querySelector("#milestoneEdit--workOrderMilestoneDateString").value=n.workOrderMilestoneDateString,n.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=n.workOrderMilestoneTimeString),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=n.workOrderMilestoneDescription},onshown:(t,o)=>{l=o,bulmaJS.toggleHtmlClipped(),e.initializeDatePickers(t),t.querySelector("form").addEventListener("submit",i)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},i=()=>{const e=document.querySelector("#panel--milestones"),t=e.querySelectorAll(".panel-block");for(const e of t)e.remove();for(const t of a){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",s):(o.querySelector(".button--editMilestone").addEventListener("click",l),o.querySelector(".button--completeMilestone").addEventListener("click",r)),o.querySelector(".button--deleteMilestone").addEventListener("click",n),e.append(o)}bulmaJS.init(e)};i(),document.querySelector("#button--addMilestone").addEventListener("click",()=>{let r,s,a;const n=t=>{t&&t.preventDefault();const n=cityssm.dateToString(new Date),l=()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderMilestone",s,e=>{o(e),e.success&&a()})};r.querySelector("#milestoneAdd--workOrderMilestoneDateString").value{e.querySelector("#milestoneAdd--workOrderId").value=t;const o=e.querySelector("#milestoneAdd--workOrderMilestoneTypeId");for(const e of exports.workOrderMilestoneTypes){const t=document.createElement("option");t.value=e.workOrderMilestoneTypeId.toString(),t.textContent=e.workOrderMilestoneType,o.append(t)}e.querySelector("#milestoneAdd--workOrderMilestoneDateString").valueAsDate=new Date},onshown:(t,o)=>{r=t,a=o,e.initializeDatePickers(t),bulmaJS.toggleHtmlClipped(),(s=t.querySelector("form")).addEventListener("submit",n)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})})}})(); \ No newline at end of file +"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);let a;if(!o){const o=()=>{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"})})};document.querySelector("#button--closeWorkOrder").addEventListener("click",()=>{a.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:o}})});const r=()=>{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"})})};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:r}})})}if(!o){Object.defineProperty(exports,"__esModule",{value:!0});let o=exports.workOrderLots;delete exports.workOrderLots;let r=exports.workOrderLotOccupancies;function n(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,u()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function l(r,s){cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderLot",{workOrderId:t,lotId:r},e=>{e.success?(o=e.workOrderLots,u()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot,message:e.errorMessage||"",contextualColorName:"danger"}),s&&s(e.success)})}function c(e){l(e.currentTarget.dataset.lotId)}function i(r){const s=Number.parseInt(r.currentTarget.closest(".container--lot").dataset.lotId,10),a=o.find(e=>e.lotId===s);let n;function l(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateLotStatus",t.currentTarget,e=>{e.success?(o=e.workOrderLots,u(),n()):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=a.lotName;const r=o.querySelector("#lotStatusEdit--lotStatusId");let n=!1;for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,e.lotStatusId===a.lotStatusId&&(n=!0),r.append(t)}if(!n&&a.lotStatusId){const e=document.createElement("option");e.value=a.lotStatusId.toString(),e.textContent=a.lotStatus,r.append(e)}a.lotStatusId&&(r.value=a.lotStatusId.toString()),o.querySelector("form").insertAdjacentHTML("beforeend",'')},onshown(e,t){n=t,bulmaJS.toggleHtmlClipped(),e.querySelector("form").addEventListener("submit",l)},onremoved(){bulmaJS.toggleHtmlClipped()}})}function d(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,u()):bulmaJS.alert({title:"Error Deleting Relationship",message:e.errorMessage||"",contextualColorName:"danger"})})}}})}function u(){!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=`\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||"")+(d?"":' ')+""):r.insertAdjacentHTML("beforeend",`(No ${exports.aliases.lot})`),r.insertAdjacentHTML("beforeend",""+l.occupancyStartDateString+""+(l.occupancyEndDate?l.occupancyEndDateString:'(No End Date)')+""+(0===l.lotOccupancyOccupants.length?'(No '+cityssm.escapeHTML(exports.aliases.occupants)+")":null===(t=l.lotOccupancyOccupants)||void 0===t?void 0:t.reduce((e,t)=>e+' '+cityssm.escapeHTML(t.occupantName)+"
",""))+''),l.lotId&&!d&&r.querySelector(".button--addLot").addEventListener("click",c),r.querySelector(".button--deleteLotOccupancy").addEventListener("click",n),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",i),o.querySelector(".button--deleteLot").addEventListener("click",d),t.querySelector("tbody").append(o)}}else t.innerHTML=`
\n

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

\n
`}()}function m(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,u()):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 p(e){const t=e.currentTarget.closest("tr");l(t.dataset.lotId,e=>{e&&t.remove()})}delete exports.workOrderLotOccupancies,u(),document.querySelector("#button--addLotOccupancy").addEventListener("click",()=>{let o,r;function s(t){t&&t.preventDefault(),r.innerHTML='


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",m),r.querySelector("tbody").append(t)}}else r.innerHTML='

There are no records that meet the search criteria.

'})}cityssm.openHtmlModal("workOrder-addLotOccupancy",{onshow(a){e.populateAliases(a),o=a.querySelector("form"),r=a.querySelector("#resultsContainer--lotOccupancyAdd"),a.querySelector("#lotOccupancySearch--notWorkOrderId").value=t,a.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='


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",p),r.querySelector("tbody").append(t)}}else r.innerHTML='

There are no records that meet the search criteria.

'})}cityssm.openHtmlModal("workOrder-addLot",{onshow(a){e.populateAliases(a),o=a.querySelector("form"),r=a.querySelector("#resultsContainer--lotAdd"),a.querySelector("#lotSearch--notWorkOrderId").value=t;const n=a.querySelector("#lotSearch--lotStatusId");for(const e of exports.lotStatuses){const t=document.createElement("option");t.value=e.lotStatusId.toString(),t.textContent=e.lotStatus,n.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 y=exports.workOrderComments;delete exports.workOrderComments;const O=o=>{const r=Number.parseInt(o.currentTarget.closest("tr").dataset.workOrderCommentId,10),s=y.find(e=>e.workOrderCommentId===r);let a,n;const l=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateWorkOrderComment",a,e=>{e.success?(y=e.workOrderComments,n(),w()):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 a=cityssm.dateToString(new Date);o.max=s.workOrderCommentDateString<=a?a:s.workOrderCommentDateString,e.querySelector("#workOrderCommentEdit--workOrderCommentTimeString").value=s.workOrderCommentTimeString},onshown:(t,o)=>{bulmaJS.toggleHtmlClipped(),e.initializeDatePickers(t),t.querySelector("#workOrderCommentEdit--workOrderComment").focus(),(a=t.querySelector("form")).addEventListener("submit",l),n=o},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},h=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:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doDeleteWorkOrderComment",{workOrderId:t,workOrderCommentId:r},e=>{e.success?(y=e.workOrderComments,w()):bulmaJS.alert({title:"Error Removing Comment",message:e.errorMessage||"",contextualColorName:"danger"})})}},contextualColorName:"warning"})},w=()=>{const e=document.querySelector("#container--workOrderComments");if(0===y.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 y){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",O),o.querySelector(".button--delete").addEventListener("click",h),t.querySelector("tbody").append(o)}e.innerHTML="",e.append(t)},k=()=>{let o;const r=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderComment",t.currentTarget,e=>{e.success&&(y=e.workOrderComments,w(),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()}})};if(o||(document.querySelector("#workOrderComments--add").addEventListener("click",k),w()),!o){a=exports.workOrderMilestones,delete exports.workOrderMilestones;const o=e=>{e.success?(a=e.workOrderMilestones,c()):bulmaJS.alert({title:"Error Reopening Milestone",message:e.errorMessage||"",contextualColorName:"danger"})},r=r=>{r.preventDefault();const s=cityssm.dateToString(new Date),n=Number.parseInt(r.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),l=a.find(e=>e.workOrderMilestoneId===n);bulmaJS.confirm({title:"Complete Milestone",message:"Are you sure you want to complete this milestone?"+(l.workOrderMilestoneDateString>s?"
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:n},o)}}})},s=r=>{r.preventDefault();const s=r.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:s},o)}}})},n=r=>{r.preventDefault();const s=r.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:s,workOrderId:t},o)}}})},l=r=>{r.preventDefault();const s=Number.parseInt(r.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId,10),n=a.find(e=>e.workOrderMilestoneId===s);let l;const c=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/workOrders/doUpdateWorkOrderMilestone",t.currentTarget,e=>{o(e),e.success&&l()})};cityssm.openHtmlModal("workOrder-editMilestone",{onshow:e=>{e.querySelector("#milestoneEdit--workOrderId").value=t,e.querySelector("#milestoneEdit--workOrderMilestoneId").value=n.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===n.workOrderMilestoneTypeId&&(t.selected=!0,r=!0),o.append(t)}if(!r&&n.workOrderMilestoneTypeId){const e=document.createElement("option");e.value=n.workOrderMilestoneTypeId.toString(),e.textContent=n.workOrderMilestoneType,e.selected=!0,o.append(e)}e.querySelector("#milestoneEdit--workOrderMilestoneDateString").value=n.workOrderMilestoneDateString,n.workOrderMilestoneTime&&(e.querySelector("#milestoneEdit--workOrderMilestoneTimeString").value=n.workOrderMilestoneTimeString),e.querySelector("#milestoneEdit--workOrderMilestoneDescription").value=n.workOrderMilestoneDescription},onshown:(t,o)=>{l=o,bulmaJS.toggleHtmlClipped(),e.initializeDatePickers(t),t.querySelector("form").addEventListener("submit",c)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})},c=()=>{const e=document.querySelector("#panel--milestones"),t=e.querySelectorAll(".panel-block");for(const e of t)e.remove();for(const t of a){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",s):(o.querySelector(".button--editMilestone").addEventListener("click",l),o.querySelector(".button--completeMilestone").addEventListener("click",r)),o.querySelector(".button--deleteMilestone").addEventListener("click",n),e.append(o)}bulmaJS.init(e)};c(),document.querySelector("#button--addMilestone").addEventListener("click",()=>{let r,s,a;const n=t=>{t&&t.preventDefault();const n=cityssm.dateToString(new Date),l=()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doAddWorkOrderMilestone",s,e=>{o(e),e.success&&a()})};r.querySelector("#milestoneAdd--workOrderMilestoneDateString").value{e.querySelector("#milestoneAdd--workOrderId").value=t;const o=e.querySelector("#milestoneAdd--workOrderMilestoneTypeId");for(const e of exports.workOrderMilestoneTypes){const t=document.createElement("option");t.value=e.workOrderMilestoneTypeId.toString(),t.textContent=e.workOrderMilestoneType,o.append(t)}e.querySelector("#milestoneAdd--workOrderMilestoneDateString").valueAsDate=new Date},onshown:(t,o)=>{r=t,a=o,e.initializeDatePickers(t),bulmaJS.toggleHtmlClipped(),(s=t.querySelector("form")).addEventListener("submit",n)},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})})}})(); \ No newline at end of file