linting, cleanup

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-05 11:37:05 -05:00
parent f5f10a5d76
commit 991df98ff3
39 changed files with 935 additions and 1489 deletions

View File

@ -90,14 +90,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
(fee.isRequired ? '<span class="tag is-warning">Required</span>' : "") + (fee.isRequired ? '<span class="tag is-warning">Required</span>' : "") +
(fee.occupancyTypeId (fee.occupancyTypeId
? ' <span class="tag has-tooltip-bottom" data-tooltip="' + ? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
cityssm.escapeHTML(exports.aliases.occupancy) + los.escapedAliases.Occupancy +
' Type Filter">' + ' Type Filter">' +
cityssm.escapeHTML(fee.occupancyType || "") + cityssm.escapeHTML(fee.occupancyType || "") +
"</span>" "</span>"
: "") + : "") +
(fee.lotTypeId (fee.lotTypeId
? ' <span class="tag has-tooltip-bottom" data-tooltip="' + ? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
' Type Filter">' + ' Type Filter">' +
cityssm.escapeHTML(fee.lotType || "") + cityssm.escapeHTML(fee.lotType || "") +
"</span>" "</span>"

View File

@ -118,14 +118,14 @@ declare const bulmaJS: BulmaJS;
(fee.isRequired ? '<span class="tag is-warning">Required</span>' : "") + (fee.isRequired ? '<span class="tag is-warning">Required</span>' : "") +
(fee.occupancyTypeId (fee.occupancyTypeId
? ' <span class="tag has-tooltip-bottom" data-tooltip="' + ? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
cityssm.escapeHTML(exports.aliases.occupancy) + los.escapedAliases.Occupancy +
' Type Filter">' + ' Type Filter">' +
cityssm.escapeHTML(fee.occupancyType || "") + cityssm.escapeHTML(fee.occupancyType || "") +
"</span>" "</span>"
: "") + : "") +
(fee.lotTypeId (fee.lotTypeId
? ' <span class="tag has-tooltip-bottom" data-tooltip="' + ? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
' Type Filter">' + ' Type Filter">' +
cityssm.escapeHTML(fee.lotType || "") + cityssm.escapeHTML(fee.lotType || "") +
"</span>" "</span>"

View File

@ -39,7 +39,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
} }
function deleteLotType(clickEvent) { 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() { function doDelete() {
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotType", { cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotType", {
lotTypeId lotTypeId
@ -56,7 +57,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
function openEditLotType(clickEvent) { 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) => { const lotType = lotTypes.find((currentLotType) => {
return lotTypeId === currentLotType.lotTypeId; return lotTypeId === currentLotType.lotTypeId;
}); });
@ -90,7 +92,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
function openAddLotTypeField(clickEvent) { 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; let addCloseModalFunction;
const doAdd = (submitEvent) => { const doAdd = (submitEvent) => {
submitEvent.preventDefault(); submitEvent.preventDefault();
@ -107,7 +110,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
onshow(modalElement) { onshow(modalElement) {
los.populateAliases(modalElement); los.populateAliases(modalElement);
if (lotTypeId) { if (lotTypeId) {
modalElement.querySelector("#lotTypeFieldAdd--lotTypeId").value = lotTypeId.toString(); modalElement.querySelector("#lotTypeFieldAdd--lotTypeId").value =
lotTypeId.toString();
} }
}, },
onshown(modalElement, closeModalFunction) { onshown(modalElement, closeModalFunction) {
@ -123,13 +127,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
function moveLotType(clickEvent) { function moveLotType(clickEvent) {
const buttonElement = clickEvent.currentTarget; const buttonElement = clickEvent.currentTarget;
const lotTypeId = buttonElement.closest(".container--lotType").dataset const lotTypeId = buttonElement.closest(".container--lotType").dataset.lotTypeId;
.lotTypeId;
cityssm.postJSON(los.urlPrefix + cityssm.postJSON(los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up" ? "doMoveLotTypeUp" : "doMoveLotTypeDown"), {
? "doMoveLotTypeUp"
: "doMoveLotTypeDown"), {
lotTypeId, lotTypeId,
moveToEnd: clickEvent.shiftKey ? "1" : "0" moveToEnd: clickEvent.shiftKey ? "1" : "0"
}, lotTypeResponseHandler); }, lotTypeResponseHandler);
@ -194,9 +195,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
cityssm.openHtmlModal("adminLotTypes-editLotTypeField", { cityssm.openHtmlModal("adminLotTypes-editLotTypeField", {
onshow(modalElement) { onshow(modalElement) {
los.populateAliases(modalElement); los.populateAliases(modalElement);
modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value = lotTypeField.lotTypeFieldId.toString(); modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value =
modalElement.querySelector("#lotTypeFieldEdit--lotTypeField").value = lotTypeField.lotTypeField; lotTypeField.lotTypeFieldId.toString();
modalElement.querySelector("#lotTypeFieldEdit--isRequired").value = lotTypeField.isRequired ? "1" : "0"; modalElement.querySelector("#lotTypeFieldEdit--lotTypeField").value =
lotTypeField.lotTypeField;
modalElement.querySelector("#lotTypeFieldEdit--isRequired").value =
lotTypeField.isRequired ? "1" : "0";
minimumLengthElement = modalElement.querySelector("#lotTypeFieldEdit--minimumLength"); minimumLengthElement = modalElement.querySelector("#lotTypeFieldEdit--minimumLength");
minimumLengthElement.value = lotTypeField.minimumLength.toString(); minimumLengthElement.value = lotTypeField.minimumLength.toString();
maximumLengthElement = modalElement.querySelector("#lotTypeFieldEdit--maximumLength"); maximumLengthElement = modalElement.querySelector("#lotTypeFieldEdit--maximumLength");
@ -228,14 +232,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
function openEditLotTypeFieldByClick(clickEvent) { function openEditLotTypeFieldByClick(clickEvent) {
clickEvent.preventDefault(); clickEvent.preventDefault();
const lotTypeFieldId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId, 10); const lotTypeFieldId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotTypeField")
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10); .dataset.lotTypeFieldId, 10);
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset
.lotTypeId, 10);
openEditLotTypeField(lotTypeId, lotTypeFieldId); openEditLotTypeField(lotTypeId, lotTypeFieldId);
} }
function moveLotTypeField(clickEvent) { function moveLotTypeField(clickEvent) {
const buttonElement = clickEvent.currentTarget; const buttonElement = clickEvent.currentTarget;
const lotTypeFieldId = buttonElement.closest(".container--lotTypeField") const lotTypeFieldId = buttonElement.closest(".container--lotTypeField").dataset
.dataset.lotTypeFieldId; .lotTypeFieldId;
cityssm.postJSON(los.urlPrefix + cityssm.postJSON(los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up"
@ -373,7 +379,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.lot + " Type", title: `Error Adding ${los.escapedAliases.Lot} Type`,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });

View File

@ -63,11 +63,8 @@ declare const bulmaJS: BulmaJS;
function deleteLotType(clickEvent: Event) { function deleteLotType(clickEvent: Event) {
const lotTypeId = Number.parseInt( const lotTypeId = Number.parseInt(
( ((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset
(clickEvent.currentTarget as HTMLElement).closest( .lotTypeId!,
".container--lotType"
) as HTMLElement
).dataset.lotTypeId!,
10 10
); );
@ -94,11 +91,8 @@ declare const bulmaJS: BulmaJS;
function openEditLotType(clickEvent: Event) { function openEditLotType(clickEvent: Event) {
const lotTypeId = Number.parseInt( const lotTypeId = Number.parseInt(
( ((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset
(clickEvent.currentTarget as HTMLElement).closest( .lotTypeId!,
".container--lotType"
) as HTMLElement
).dataset.lotTypeId!,
10 10
); );
@ -154,11 +148,8 @@ declare const bulmaJS: BulmaJS;
function openAddLotTypeField(clickEvent: Event) { function openAddLotTypeField(clickEvent: Event) {
const lotTypeId = Number.parseInt( const lotTypeId = Number.parseInt(
( ((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset
(clickEvent.currentTarget as HTMLElement).closest( .lotTypeId!,
".container--lotType"
) as HTMLElement
).dataset.lotTypeId!,
10 10
); );
@ -192,19 +183,14 @@ declare const bulmaJS: BulmaJS;
los.populateAliases(modalElement); los.populateAliases(modalElement);
if (lotTypeId) { if (lotTypeId) {
( (modalElement.querySelector("#lotTypeFieldAdd--lotTypeId") as HTMLInputElement).value =
modalElement.querySelector( lotTypeId.toString();
"#lotTypeFieldAdd--lotTypeId"
) as HTMLInputElement
).value = lotTypeId.toString();
} }
}, },
onshown(modalElement, closeModalFunction) { onshown(modalElement, closeModalFunction) {
addCloseModalFunction = closeModalFunction; addCloseModalFunction = closeModalFunction;
( (modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement).focus();
modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement
).focus();
modalElement.querySelector("form")!.addEventListener("submit", doAdd); modalElement.querySelector("form")!.addEventListener("submit", doAdd);
@ -219,15 +205,12 @@ declare const bulmaJS: BulmaJS;
function moveLotType(clickEvent: MouseEvent) { function moveLotType(clickEvent: MouseEvent) {
const buttonElement = clickEvent.currentTarget as HTMLButtonElement; const buttonElement = clickEvent.currentTarget as HTMLButtonElement;
const lotTypeId = (buttonElement.closest(".container--lotType") as HTMLElement).dataset const lotTypeId = (buttonElement.closest(".container--lotType") as HTMLElement).dataset.lotTypeId;
.lotTypeId;
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up" ? "doMoveLotTypeUp" : "doMoveLotTypeDown"),
? "doMoveLotTypeUp"
: "doMoveLotTypeDown"),
{ {
lotTypeId, lotTypeId,
moveToEnd: clickEvent.shiftKey ? "1" : "0" moveToEnd: clickEvent.shiftKey ? "1" : "0"
@ -323,21 +306,14 @@ declare const bulmaJS: BulmaJS;
onshow(modalElement) { onshow(modalElement) {
los.populateAliases(modalElement); los.populateAliases(modalElement);
( (modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId") as HTMLInputElement).value =
modalElement.querySelector( lotTypeField.lotTypeFieldId.toString();
"#lotTypeFieldEdit--lotTypeFieldId"
) as HTMLInputElement
).value = lotTypeField.lotTypeFieldId.toString();
( (modalElement.querySelector("#lotTypeFieldEdit--lotTypeField") as HTMLInputElement).value =
modalElement.querySelector( lotTypeField.lotTypeField!;
"#lotTypeFieldEdit--lotTypeField"
) as HTMLInputElement
).value = lotTypeField.lotTypeField!;
( (modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement).value =
modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement lotTypeField.isRequired ? "1" : "0";
).value = lotTypeField.isRequired ? "1" : "0";
minimumLengthElement = modalElement.querySelector( minimumLengthElement = modalElement.querySelector(
"#lotTypeFieldEdit--minimumLength" "#lotTypeFieldEdit--minimumLength"
@ -351,9 +327,7 @@ declare const bulmaJS: BulmaJS;
maximumLengthElement.value = lotTypeField.maximumLength!.toString(); maximumLengthElement.value = lotTypeField.maximumLength!.toString();
patternElement = modalElement.querySelector( patternElement = modalElement.querySelector("#lotTypeFieldEdit--pattern") as HTMLInputElement;
"#lotTypeFieldEdit--pattern"
) as HTMLInputElement;
patternElement.value = lotTypeField.pattern!; patternElement.value = lotTypeField.pattern!;
@ -394,20 +368,14 @@ declare const bulmaJS: BulmaJS;
clickEvent.preventDefault(); clickEvent.preventDefault();
const lotTypeFieldId = Number.parseInt( const lotTypeFieldId = Number.parseInt(
( ((clickEvent.currentTarget as HTMLElement).closest(".container--lotTypeField") as HTMLElement)
(clickEvent.currentTarget as HTMLElement).closest( .dataset.lotTypeFieldId!,
".container--lotTypeField"
) as HTMLElement
).dataset.lotTypeFieldId!,
10 10
); );
const lotTypeId = Number.parseInt( const lotTypeId = Number.parseInt(
( ((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset
(clickEvent.currentTarget as HTMLElement).closest( .lotTypeId!,
".container--lotType"
) as HTMLElement
).dataset.lotTypeId!,
10 10
); );
@ -417,8 +385,8 @@ declare const bulmaJS: BulmaJS;
function moveLotTypeField(clickEvent: MouseEvent) { function moveLotTypeField(clickEvent: MouseEvent) {
const buttonElement = clickEvent.currentTarget as HTMLButtonElement; const buttonElement = clickEvent.currentTarget as HTMLButtonElement;
const lotTypeFieldId = (buttonElement.closest(".container--lotTypeField") as HTMLElement) const lotTypeFieldId = (buttonElement.closest(".container--lotTypeField") as HTMLElement).dataset
.dataset.lotTypeFieldId; .lotTypeFieldId;
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + los.urlPrefix +
@ -485,15 +453,11 @@ declare const bulmaJS: BulmaJS;
.addEventListener("click", openEditLotTypeFieldByClick); .addEventListener("click", openEditLotTypeFieldByClick);
( (
panelBlockElement.querySelector( panelBlockElement.querySelector(".button--moveLotTypeFieldUp") as HTMLButtonElement
".button--moveLotTypeFieldUp"
) as HTMLButtonElement
).addEventListener("click", moveLotTypeField); ).addEventListener("click", moveLotTypeField);
( (
panelBlockElement.querySelector( panelBlockElement.querySelector(".button--moveLotTypeFieldDown") as HTMLButtonElement
".button--moveLotTypeFieldDown"
) as HTMLButtonElement
).addEventListener("click", moveLotTypeField); ).addEventListener("click", moveLotTypeField);
panelElement.append(panelBlockElement); panelElement.append(panelBlockElement);
@ -561,10 +525,7 @@ declare const bulmaJS: BulmaJS;
"</button>" + "</button>" +
"</div>") + "</div>") +
('<div class="level-item">' + ('<div class="level-item">' +
los.getMoveUpDownButtonFieldHTML( los.getMoveUpDownButtonFieldHTML("button--moveLotTypeUp", "button--moveLotTypeDown") +
"button--moveLotTypeUp",
"button--moveLotTypeDown"
) +
"</div>") + "</div>") +
"</div>") + "</div>") +
"</div>" + "</div>" +
@ -588,9 +549,10 @@ declare const bulmaJS: BulmaJS;
.querySelector(".button--addLotTypeField")! .querySelector(".button--addLotTypeField")!
.addEventListener("click", openAddLotTypeField); .addEventListener("click", openAddLotTypeField);
( (lotTypeContainer.querySelector(".button--moveLotTypeUp") as HTMLButtonElement).addEventListener(
lotTypeContainer.querySelector(".button--moveLotTypeUp") as HTMLButtonElement "click",
).addEventListener("click", moveLotType); moveLotType
);
( (
lotTypeContainer.querySelector(".button--moveLotTypeDown") as HTMLButtonElement lotTypeContainer.querySelector(".button--moveLotTypeDown") as HTMLButtonElement
@ -620,7 +582,7 @@ declare const bulmaJS: BulmaJS;
renderLotTypes(); renderLotTypes();
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.lot + " Type", title: `Error Adding ${los.escapedAliases.Lot} Type`,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });

View File

@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const los = exports.los; const los = exports.los;
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const refreshFontAwesomeIcon = (changeEvent) => { function refreshFontAwesomeIcon(changeEvent) {
const inputElement = changeEvent.currentTarget; const inputElement = changeEvent.currentTarget;
const fontAwesomeIconClass = inputElement.value; const fontAwesomeIconClass = inputElement.value;
inputElement.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML = inputElement
'<i class="fas fa-fw fa-' + fontAwesomeIconClass + '" aria-hidden="true"></i>'; .closest(".field")
}; .querySelectorAll(".button.is-static")[1].innerHTML = `<i class="fas fa-fw fa-${fontAwesomeIconClass}" aria-hidden="true"></i>`;
}
"use strict"; "use strict";
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */ /* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
@ -66,8 +67,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete Work Order Type", title: "Delete Work Order Type",
message: "Are you sure you want to delete this work order type?<br />" + message: `Are you sure you want to delete this work order type?<br />
"Note that no work orders will be removed.", Note that no work orders will be removed.`,
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -82,9 +83,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
cityssm.postJSON(los.urlPrefix + cityssm.postJSON(los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"), {
? "doMoveWorkOrderTypeUp"
: "doMoveWorkOrderTypeDown"), {
workOrderTypeId, workOrderTypeId,
moveToEnd: clickEvent.shiftKey ? "1" : "0" moveToEnd: clickEvent.shiftKey ? "1" : "0"
}, (responseJSON) => { }, (responseJSON) => {
@ -104,14 +103,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
const renderWorkOrderTypes = () => { const renderWorkOrderTypes = () => {
const containerElement = document.querySelector("#container--workOrderTypes"); const containerElement = document.querySelector("#container--workOrderTypes");
if (workOrderTypes.length === 0) { if (workOrderTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active work order types.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active work order types.</p>' +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";
@ -233,8 +227,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete Work Order Milestone Type", title: "Delete Work Order Milestone Type",
message: "Are you sure you want to delete this work order milestone type?<br />" + message: `Are you sure you want to delete this work order milestone type?<br />
"Note that no work orders will be removed.", Note that no work orders will be removed.`,
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -271,14 +265,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
const renderWorkOrderMilestoneTypes = () => { const renderWorkOrderMilestoneTypes = () => {
const containerElement = document.querySelector("#container--workOrderMilestoneTypes"); const containerElement = document.querySelector("#container--workOrderMilestoneTypes");
if (workOrderMilestoneTypes.length === 0) { if (workOrderMilestoneTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active work order milestone types.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active work order milestone types.</p>' +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";
@ -357,13 +346,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
if (responseJSON.success) { if (responseJSON.success) {
lotStatuses = responseJSON.lotStatuses; lotStatuses = responseJSON.lotStatuses;
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + " Status Updated Successfully", message: los.escapedAliases.Lot + " Status Updated Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Updating " + exports.aliases.lot + " Status", title: "Error Updating " + los.escapedAliases.Lot + " Status",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -386,13 +375,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
tableRowElement.remove(); tableRowElement.remove();
} }
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + " Status Deleted Successfully", message: los.escapedAliases.Lot + " Status Deleted Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Deleting " + exports.aliases.lot + " Status", title: "Error Deleting " + los.escapedAliases.Lot + " Status",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -400,11 +389,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete " + exports.aliases.lot + " Status", title: `Delete ${los.escapedAliases.Lot} Status`,
message: "Are you sure you want to delete this status?<br />" + message: `Are you sure you want to delete this status?<br />
"Note that no " + Note that no ${los.escapedAliases.lot} will be removed.`,
exports.aliases.lots.toLowerCase() +
" will be removed.",
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -419,9 +406,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const lotStatusId = tableRowElement.dataset.lotStatusId; const lotStatusId = tableRowElement.dataset.lotStatusId;
cityssm.postJSON(los.urlPrefix + cityssm.postJSON(los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"), {
? "doMoveLotStatusUp"
: "doMoveLotStatusDown"), {
lotStatusId, lotStatusId,
moveToEnd: clickEvent.shiftKey ? "1" : "0" moveToEnd: clickEvent.shiftKey ? "1" : "0"
}, (responseJSON) => { }, (responseJSON) => {
@ -441,16 +426,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
const renderLotStatuses = () => { const renderLotStatuses = () => {
const containerElement = document.querySelector("#container--lotStatuses"); const containerElement = document.querySelector("#container--lotStatuses");
if (lotStatuses.length === 0) { if (lotStatuses.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} statuses.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active ' +
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
" statuses.</p>" +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";
@ -491,9 +469,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus); tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatus); tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatus);
tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatus); tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatus);
tableRowElement tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus);
.querySelector(".button--deleteLotStatus")
.addEventListener("click", deleteLotStatus);
containerElement.append(tableRowElement); containerElement.append(tableRowElement);
} }
}; };
@ -509,7 +485,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.lot + " Status", title: `Error Adding ${los.escapedAliases.Lot} Status`,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -529,20 +505,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
if (responseJSON.success) { if (responseJSON.success) {
lotOccupantTypes = responseJSON.lotOccupantTypes; lotOccupantTypes = responseJSON.lotOccupantTypes;
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`,
" " +
exports.aliases.occupant +
" Type Updated Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Updating " + title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -565,20 +534,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
tableRowElement.remove(); tableRowElement.remove();
} }
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`,
" " +
exports.aliases.occupant +
" Type Deleted Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Deleting " + title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -586,21 +548,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
message: "Are you sure you want to delete this " + message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?<br />
exports.aliases.lot.toLowerCase() + Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`,
" " +
exports.aliases.occupant.toLowerCase() +
" type?<br />" +
"Note that no " +
exports.aliases.lot.toLowerCase() +
" " +
exports.aliases.occupancy.toLowerCase() +
" will be removed.",
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
callbackFunction: doDelete callbackFunction: doDelete
} }
}); });
@ -623,11 +577,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Moving " + title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -637,18 +587,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
const renderLotOccupantTypes = () => { const renderLotOccupantTypes = () => {
const containerElement = document.querySelector("#container--lotOccupantTypes"); const containerElement = document.querySelector("#container--lotOccupantTypes");
if (lotOccupantTypes.length === 0) { if (lotOccupantTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="3">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.</p></div>
'<td colspan="3">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active ' +
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
" " +
cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) +
" types.</p>" +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";
@ -703,14 +644,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
'<div class="control">' + '<div class="control">' +
'<button class="button is-danger is-light button--deleteLotOccupantType"' + '<button class="button is-danger is-light button--deleteLotOccupantType"' +
' data-tooltip="Delete ' + ' data-tooltip="Delete ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
" " + " " +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
' Type" type="button"' + ' Type" type="button"' +
' aria-label="Delete ' + ' aria-label="Delete ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
" " + " " +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
' Type">' + ' Type">' +
'<i class="fas fa-trash" aria-hidden="true"></i>' + '<i class="fas fa-trash" aria-hidden="true"></i>' +
"</button>" + "</button>" +
@ -741,11 +682,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });

View File

@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const los = exports.los; const los = exports.los;
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const refreshFontAwesomeIcon = (changeEvent) => { function refreshFontAwesomeIcon(changeEvent) {
const inputElement = changeEvent.currentTarget; const inputElement = changeEvent.currentTarget;
const fontAwesomeIconClass = inputElement.value; const fontAwesomeIconClass = inputElement.value;
inputElement.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML = inputElement
'<i class="fas fa-fw fa-' + fontAwesomeIconClass + '" aria-hidden="true"></i>'; .closest(".field")
}; .querySelectorAll(".button.is-static")[1].innerHTML = `<i class="fas fa-fw fa-${fontAwesomeIconClass}" aria-hidden="true"></i>`;
}
//=include adminTablesWorkOrderTypes.js //=include adminTablesWorkOrderTypes.js
//=include adminTablesWorkOrderMilestoneTypes.js //=include adminTablesWorkOrderMilestoneTypes.js
//=include adminTablesLotStatuses.js //=include adminTablesLotStatuses.js

View File

@ -7,14 +7,17 @@ import type * as globalTypes from "../../types/globalTypes";
const los = exports.los as globalTypes.LOS; const los = exports.los as globalTypes.LOS;
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const refreshFontAwesomeIcon = (changeEvent: Event) => { function refreshFontAwesomeIcon(changeEvent: Event) {
const inputElement = changeEvent.currentTarget as HTMLInputElement; const inputElement = changeEvent.currentTarget as HTMLInputElement;
const fontAwesomeIconClass = inputElement.value; const fontAwesomeIconClass = inputElement.value;
inputElement.closest(".field")!.querySelectorAll(".button.is-static")[1].innerHTML = inputElement
'<i class="fas fa-fw fa-' + fontAwesomeIconClass + '" aria-hidden="true"></i>'; .closest(".field")!
}; .querySelectorAll(
".button.is-static"
)[1].innerHTML = `<i class="fas fa-fw fa-${fontAwesomeIconClass}" aria-hidden="true"></i>`;
}
//=include adminTablesWorkOrderTypes.js //=include adminTablesWorkOrderTypes.js
//=include adminTablesWorkOrderMilestoneTypes.js //=include adminTablesWorkOrderMilestoneTypes.js

View File

@ -9,20 +9,13 @@ const updateLotOccupantType = (submitEvent) => {
if (responseJSON.success) { if (responseJSON.success) {
lotOccupantTypes = responseJSON.lotOccupantTypes; lotOccupantTypes = responseJSON.lotOccupantTypes;
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`,
" " +
exports.aliases.occupant +
" Type Updated Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Updating " + title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -45,20 +38,13 @@ const deleteLotOccupantType = (clickEvent) => {
tableRowElement.remove(); tableRowElement.remove();
} }
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`,
" " +
exports.aliases.occupant +
" Type Deleted Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Deleting " + title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -66,21 +52,13 @@ const deleteLotOccupantType = (clickEvent) => {
}); });
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
message: "Are you sure you want to delete this " + message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?<br />
exports.aliases.lot.toLowerCase() + Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`,
" " +
exports.aliases.occupant.toLowerCase() +
" type?<br />" +
"Note that no " +
exports.aliases.lot.toLowerCase() +
" " +
exports.aliases.occupancy.toLowerCase() +
" will be removed.",
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
callbackFunction: doDelete callbackFunction: doDelete
} }
}); });
@ -103,11 +81,7 @@ const moveLotOccupantType = (clickEvent) => {
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Moving " + title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -117,18 +91,9 @@ const moveLotOccupantType = (clickEvent) => {
const renderLotOccupantTypes = () => { const renderLotOccupantTypes = () => {
const containerElement = document.querySelector("#container--lotOccupantTypes"); const containerElement = document.querySelector("#container--lotOccupantTypes");
if (lotOccupantTypes.length === 0) { if (lotOccupantTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="3">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.</p></div>
'<td colspan="3">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active ' +
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
" " +
cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) +
" types.</p>" +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";
@ -183,14 +148,14 @@ const renderLotOccupantTypes = () => {
'<div class="control">' + '<div class="control">' +
'<button class="button is-danger is-light button--deleteLotOccupantType"' + '<button class="button is-danger is-light button--deleteLotOccupantType"' +
' data-tooltip="Delete ' + ' data-tooltip="Delete ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
" " + " " +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
' Type" type="button"' + ' Type" type="button"' +
' aria-label="Delete ' + ' aria-label="Delete ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
" " + " " +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
' Type">' + ' Type">' +
'<i class="fas fa-trash" aria-hidden="true"></i>' + '<i class="fas fa-trash" aria-hidden="true"></i>' +
"</button>" + "</button>" +
@ -221,11 +186,7 @@ document.querySelector("#form--addLotOccupantType").addEventListener("submit", (
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });

View File

@ -31,21 +31,12 @@ const updateLotOccupantType = (submitEvent: SubmitEvent) => {
lotOccupantTypes = responseJSON.lotOccupantTypes!; lotOccupantTypes = responseJSON.lotOccupantTypes!;
bulmaJS.alert({ bulmaJS.alert({
message: message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type Updated Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
"Error Updating " +
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -80,21 +71,12 @@ const deleteLotOccupantType = (clickEvent: Event) => {
} }
bulmaJS.alert({ bulmaJS.alert({
message: message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`,
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type Deleted Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
"Error Deleting " +
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -104,22 +86,13 @@ const deleteLotOccupantType = (clickEvent: Event) => {
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
message: message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?<br />
"Are you sure you want to delete this " + Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`,
exports.aliases.lot.toLowerCase() +
" " +
exports.aliases.occupant.toLowerCase() +
" type?<br />" +
"Note that no " +
exports.aliases.lot.toLowerCase() +
" " +
exports.aliases.occupancy.toLowerCase() +
" will be removed.",
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
callbackFunction: doDelete callbackFunction: doDelete
} }
}); });
@ -152,12 +125,7 @@ const moveLotOccupantType = (clickEvent: MouseEvent) => {
renderLotOccupantTypes(); renderLotOccupantTypes();
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
"Error Moving " +
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -172,18 +140,9 @@ const renderLotOccupantTypes = () => {
) as HTMLTableSectionElement; ) as HTMLTableSectionElement;
if (lotOccupantTypes.length === 0) { if (lotOccupantTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="3">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.</p></div>
'<td colspan="3">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active ' +
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
" " +
cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) +
" types.</p>" +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
@ -248,14 +207,14 @@ const renderLotOccupantTypes = () => {
'<div class="control">' + '<div class="control">' +
'<button class="button is-danger is-light button--deleteLotOccupantType"' + '<button class="button is-danger is-light button--deleteLotOccupantType"' +
' data-tooltip="Delete ' + ' data-tooltip="Delete ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
" " + " " +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
' Type" type="button"' + ' Type" type="button"' +
' aria-label="Delete ' + ' aria-label="Delete ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
" " + " " +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
' Type">' + ' Type">' +
'<i class="fas fa-trash" aria-hidden="true"></i>' + '<i class="fas fa-trash" aria-hidden="true"></i>' +
"</button>" + "</button>" +
@ -263,9 +222,7 @@ const renderLotOccupantTypes = () => {
"</div>" + "</div>" +
"</td>"; "</td>";
const fontAwesomeInputElement = tableRowElement.querySelector( const fontAwesomeInputElement = tableRowElement.querySelector("input[name='fontAwesomeIconClass']")!;
"input[name='fontAwesomeIconClass']"
)!;
fontAwesomeInputElement.addEventListener("keyup", refreshFontAwesomeIcon); fontAwesomeInputElement.addEventListener("keyup", refreshFontAwesomeIcon);
fontAwesomeInputElement.addEventListener("change", refreshFontAwesomeIcon); fontAwesomeInputElement.addEventListener("change", refreshFontAwesomeIcon);
@ -310,12 +267,7 @@ const renderLotOccupantTypes = () => {
formElement.querySelector("input")!.focus(); formElement.querySelector("input")!.focus();
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
"Error Adding " +
exports.aliases.lot +
" " +
exports.aliases.occupant +
" Type",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });

View File

@ -9,13 +9,13 @@ const updateLotStatus = (submitEvent) => {
if (responseJSON.success) { if (responseJSON.success) {
lotStatuses = responseJSON.lotStatuses; lotStatuses = responseJSON.lotStatuses;
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + " Status Updated Successfully", message: los.escapedAliases.Lot + " Status Updated Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Updating " + exports.aliases.lot + " Status", title: "Error Updating " + los.escapedAliases.Lot + " Status",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -38,13 +38,13 @@ const deleteLotStatus = (clickEvent) => {
tableRowElement.remove(); tableRowElement.remove();
} }
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + " Status Deleted Successfully", message: los.escapedAliases.Lot + " Status Deleted Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Deleting " + exports.aliases.lot + " Status", title: "Error Deleting " + los.escapedAliases.Lot + " Status",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -52,11 +52,9 @@ const deleteLotStatus = (clickEvent) => {
}); });
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete " + exports.aliases.lot + " Status", title: `Delete ${los.escapedAliases.Lot} Status`,
message: "Are you sure you want to delete this status?<br />" + message: `Are you sure you want to delete this status?<br />
"Note that no " + Note that no ${los.escapedAliases.lot} will be removed.`,
exports.aliases.lots.toLowerCase() +
" will be removed.",
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -71,9 +69,7 @@ const moveLotStatus = (clickEvent) => {
const lotStatusId = tableRowElement.dataset.lotStatusId; const lotStatusId = tableRowElement.dataset.lotStatusId;
cityssm.postJSON(los.urlPrefix + cityssm.postJSON(los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"), {
? "doMoveLotStatusUp"
: "doMoveLotStatusDown"), {
lotStatusId, lotStatusId,
moveToEnd: clickEvent.shiftKey ? "1" : "0" moveToEnd: clickEvent.shiftKey ? "1" : "0"
}, (responseJSON) => { }, (responseJSON) => {
@ -93,16 +89,9 @@ const moveLotStatus = (clickEvent) => {
const renderLotStatuses = () => { const renderLotStatuses = () => {
const containerElement = document.querySelector("#container--lotStatuses"); const containerElement = document.querySelector("#container--lotStatuses");
if (lotStatuses.length === 0) { if (lotStatuses.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} statuses.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active ' +
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
" statuses.</p>" +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";
@ -143,9 +132,7 @@ const renderLotStatuses = () => {
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus); tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatus); tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatus);
tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatus); tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatus);
tableRowElement tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus);
.querySelector(".button--deleteLotStatus")
.addEventListener("click", deleteLotStatus);
containerElement.append(tableRowElement); containerElement.append(tableRowElement);
} }
}; };
@ -161,7 +148,7 @@ document.querySelector("#form--addLotStatus").addEventListener("submit", (submit
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.lot + " Status", title: `Error Adding ${los.escapedAliases.Lot} Status`,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });

View File

@ -30,12 +30,12 @@ const updateLotStatus = (submitEvent: SubmitEvent) => {
lotStatuses = responseJSON.lotStatuses!; lotStatuses = responseJSON.lotStatuses!;
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + " Status Updated Successfully", message: los.escapedAliases.Lot + " Status Updated Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Updating " + exports.aliases.lot + " Status", title: "Error Updating " + los.escapedAliases.Lot + " Status",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -70,12 +70,12 @@ const deleteLotStatus = (clickEvent: Event) => {
} }
bulmaJS.alert({ bulmaJS.alert({
message: exports.aliases.lot + " Status Deleted Successfully", message: los.escapedAliases.Lot + " Status Deleted Successfully",
contextualColorName: "success" contextualColorName: "success"
}); });
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Deleting " + exports.aliases.lot + " Status", title: "Error Deleting " + los.escapedAliases.Lot + " Status",
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -85,12 +85,9 @@ const deleteLotStatus = (clickEvent: Event) => {
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete " + exports.aliases.lot + " Status", title: `Delete ${los.escapedAliases.Lot} Status`,
message: message: `Are you sure you want to delete this status?<br />
"Are you sure you want to delete this status?<br />" + Note that no ${los.escapedAliases.lot} will be removed.`,
"Note that no " +
exports.aliases.lots.toLowerCase() +
" will be removed.",
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -110,9 +107,7 @@ const moveLotStatus = (clickEvent: MouseEvent) => {
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"),
? "doMoveLotStatusUp"
: "doMoveLotStatusDown"),
{ {
lotStatusId, lotStatusId,
moveToEnd: clickEvent.shiftKey ? "1" : "0" moveToEnd: clickEvent.shiftKey ? "1" : "0"
@ -137,21 +132,12 @@ const moveLotStatus = (clickEvent: MouseEvent) => {
}; };
const renderLotStatuses = () => { const renderLotStatuses = () => {
const containerElement = document.querySelector( const containerElement = document.querySelector("#container--lotStatuses") as HTMLTableSectionElement;
"#container--lotStatuses"
) as HTMLTableSectionElement;
if (lotStatuses.length === 0) { if (lotStatuses.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} statuses.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active ' +
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
" statuses.</p>" +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
@ -185,11 +171,7 @@ const renderLotStatuses = () => {
'<td class="is-nowrap">' + '<td class="is-nowrap">' +
'<div class="field is-grouped">' + '<div class="field is-grouped">' +
'<div class="control">' + '<div class="control">' +
los.getMoveUpDownButtonFieldHTML( los.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp", "button--moveLotStatusDown", false) +
"button--moveLotStatusUp",
"button--moveLotStatusDown",
false
) +
"</div>" + "</div>" +
'<div class="control">' + '<div class="control">' +
'<button class="button is-danger is-light button--deleteLotStatus" data-tooltip="Delete Status" type="button" aria-label="Delete Status">' + '<button class="button is-danger is-light button--deleteLotStatus" data-tooltip="Delete Status" type="button" aria-label="Delete Status">' +
@ -201,17 +183,17 @@ const renderLotStatuses = () => {
tableRowElement.querySelector("form")!.addEventListener("submit", updateLotStatus); tableRowElement.querySelector("form")!.addEventListener("submit", updateLotStatus);
( (tableRowElement.querySelector(".button--moveLotStatusUp") as HTMLButtonElement).addEventListener(
tableRowElement.querySelector(".button--moveLotStatusUp") as HTMLButtonElement "click",
).addEventListener("click", moveLotStatus); moveLotStatus
);
( (tableRowElement.querySelector(".button--moveLotStatusDown") as HTMLButtonElement).addEventListener(
tableRowElement.querySelector(".button--moveLotStatusDown") as HTMLButtonElement "click",
).addEventListener("click", moveLotStatus); moveLotStatus
);
tableRowElement tableRowElement.querySelector(".button--deleteLotStatus")!.addEventListener("click", deleteLotStatus);
.querySelector(".button--deleteLotStatus")!
.addEventListener("click", deleteLotStatus);
containerElement.append(tableRowElement); containerElement.append(tableRowElement);
} }
@ -239,7 +221,7 @@ const renderLotStatuses = () => {
formElement.querySelector("input")!.focus(); formElement.querySelector("input")!.focus();
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.lot + " Status", title: `Error Adding ${los.escapedAliases.Lot} Status`,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });

View File

@ -53,8 +53,8 @@ const deleteWorkOrderMilestoneType = (clickEvent) => {
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete Work Order Milestone Type", title: "Delete Work Order Milestone Type",
message: "Are you sure you want to delete this work order milestone type?<br />" + message: `Are you sure you want to delete this work order milestone type?<br />
"Note that no work orders will be removed.", Note that no work orders will be removed.`,
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -91,14 +91,9 @@ const moveWorkOrderMilestoneType = (clickEvent) => {
const renderWorkOrderMilestoneTypes = () => { const renderWorkOrderMilestoneTypes = () => {
const containerElement = document.querySelector("#container--workOrderMilestoneTypes"); const containerElement = document.querySelector("#container--workOrderMilestoneTypes");
if (workOrderMilestoneTypes.length === 0) { if (workOrderMilestoneTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active work order milestone types.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active work order milestone types.</p>' +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";

View File

@ -86,9 +86,8 @@ const deleteWorkOrderMilestoneType = (clickEvent: Event) => {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete Work Order Milestone Type", title: "Delete Work Order Milestone Type",
message: message: `Are you sure you want to delete this work order milestone type?<br />
"Are you sure you want to delete this work order milestone type?<br />" + Note that no work orders will be removed.`,
"Note that no work orders will be removed.",
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -140,14 +139,9 @@ const renderWorkOrderMilestoneTypes = () => {
) as HTMLTableSectionElement; ) as HTMLTableSectionElement;
if (workOrderMilestoneTypes.length === 0) { if (workOrderMilestoneTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active work order milestone types.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active work order milestone types.</p>' +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
@ -195,21 +189,14 @@ const renderWorkOrderMilestoneTypes = () => {
"</div>" + "</div>" +
"</td>"; "</td>";
(tableRowElement.querySelector("form") as HTMLFormElement).addEventListener( tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderMilestoneType);
"submit",
updateWorkOrderMilestoneType
);
( (
tableRowElement.querySelector( tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeUp") as HTMLButtonElement
".button--moveWorkOrderMilestoneTypeUp"
) as HTMLButtonElement
).addEventListener("click", moveWorkOrderMilestoneType); ).addEventListener("click", moveWorkOrderMilestoneType);
( (
tableRowElement.querySelector( tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeDown") as HTMLButtonElement
".button--moveWorkOrderMilestoneTypeDown"
) as HTMLButtonElement
).addEventListener("click", moveWorkOrderMilestoneType); ).addEventListener("click", moveWorkOrderMilestoneType);
tableRowElement tableRowElement

View File

@ -53,8 +53,8 @@ const deleteWorkOrderType = (clickEvent) => {
}; };
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete Work Order Type", title: "Delete Work Order Type",
message: "Are you sure you want to delete this work order type?<br />" + message: `Are you sure you want to delete this work order type?<br />
"Note that no work orders will be removed.", Note that no work orders will be removed.`,
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -69,9 +69,7 @@ const moveWorkOrderType = (clickEvent) => {
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
cityssm.postJSON(los.urlPrefix + cityssm.postJSON(los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"), {
? "doMoveWorkOrderTypeUp"
: "doMoveWorkOrderTypeDown"), {
workOrderTypeId, workOrderTypeId,
moveToEnd: clickEvent.shiftKey ? "1" : "0" moveToEnd: clickEvent.shiftKey ? "1" : "0"
}, (responseJSON) => { }, (responseJSON) => {
@ -91,14 +89,9 @@ const moveWorkOrderType = (clickEvent) => {
const renderWorkOrderTypes = () => { const renderWorkOrderTypes = () => {
const containerElement = document.querySelector("#container--workOrderTypes"); const containerElement = document.querySelector("#container--workOrderTypes");
if (workOrderTypes.length === 0) { if (workOrderTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active work order types.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active work order types.</p>' +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";

View File

@ -86,9 +86,8 @@ const deleteWorkOrderType = (clickEvent: Event) => {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete Work Order Type", title: "Delete Work Order Type",
message: message: `Are you sure you want to delete this work order type?<br />
"Are you sure you want to delete this work order type?<br />" + Note that no work orders will be removed.`,
"Note that no work orders will be removed.",
messageIsHtml: true, messageIsHtml: true,
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
@ -108,9 +107,7 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => {
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + los.urlPrefix +
"/admin/" + "/admin/" +
(buttonElement.dataset.direction === "up" (buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"),
? "doMoveWorkOrderTypeUp"
: "doMoveWorkOrderTypeDown"),
{ {
workOrderTypeId, workOrderTypeId,
moveToEnd: clickEvent.shiftKey ? "1" : "0" moveToEnd: clickEvent.shiftKey ? "1" : "0"
@ -135,19 +132,12 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => {
}; };
const renderWorkOrderTypes = () => { const renderWorkOrderTypes = () => {
const containerElement = document.querySelector( const containerElement = document.querySelector("#container--workOrderTypes") as HTMLTableSectionElement;
"#container--workOrderTypes"
) as HTMLTableSectionElement;
if (workOrderTypes.length === 0) { if (workOrderTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<tr><td colspan="2">
"<tr>" + <div class="message is-warning"><p class="message-body">There are no active work order types.</p></div>
'<td colspan="2">' + </td></tr>`;
'<div class="message is-warning">' +
'<p class="message-body">There are no active work order types.</p>' +
"</div>" +
"</td>" +
"</tr>";
return; return;
} }
@ -196,9 +186,10 @@ const renderWorkOrderTypes = () => {
tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderType); tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderType);
( (tableRowElement.querySelector(".button--moveWorkOrderTypeUp") as HTMLButtonElement).addEventListener(
tableRowElement.querySelector(".button--moveWorkOrderTypeUp") as HTMLButtonElement "click",
).addEventListener("click", moveWorkOrderType); moveWorkOrderType
);
( (
tableRowElement.querySelector(".button--moveWorkOrderTypeDown") as HTMLButtonElement tableRowElement.querySelector(".button--moveWorkOrderTypeDown") as HTMLButtonElement

View File

@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
(() => { (() => {
var _a, _b, _c; var _a, _b, _c;
const los = exports.los; const los = exports.los;
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value; const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId")
.value;
const isCreate = lotOccupancyId === ""; const isCreate = lotOccupancyId === "";
/* /*
* Main form * Main form
@ -13,9 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const formElement = document.querySelector("#form--lotOccupancy"); const formElement = document.querySelector("#form--lotOccupancy");
formElement.addEventListener("submit", (formEvent) => { formElement.addEventListener("submit", (formEvent) => {
formEvent.preventDefault(); formEvent.preventDefault();
cityssm.postJSON(los.urlPrefix + cityssm.postJSON(los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
"/lotOccupancies/" +
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
if (responseJSON.success) { if (responseJSON.success) {
los.clearUnsavedChanges(); los.clearUnsavedChanges();
if (isCreate || refreshAfterSave) { if (isCreate || refreshAfterSave) {
@ -46,7 +45,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
for (const formInputElement of formInputElements) { for (const formInputElement of formInputElements) {
formInputElement.addEventListener("change", los.setUnsavedChanges); formInputElement.addEventListener("change", los.setUnsavedChanges);
} }
if (!isCreate) {
const doCopy = () => { const doCopy = () => {
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", { cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", {
lotOccupancyId lotOccupancyId
@ -69,8 +67,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
}); });
}; };
(_a = document (_a = document.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => {
.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
if (los.hasUnsavedChanges()) { if (los.hasUnsavedChanges()) {
bulmaJS.alert({ bulmaJS.alert({
@ -81,7 +78,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Copy " + exports.aliases.occupancy + " Record as New", title: "Copy " + los.escapedAliases.Occupancy + " Record as New",
message: "Are you sure you want to copy this record to a new record?", message: "Are you sure you want to copy this record to a new record?",
contextualColorName: "info", contextualColorName: "info",
okButton: { okButton: {
@ -91,8 +88,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
}); });
(_b = document (_b = document.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => {
.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
const doDelete = () => { const doDelete = () => {
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", { cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
@ -100,8 +96,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}, (responseJSON) => { }, (responseJSON) => {
if (responseJSON.success) { if (responseJSON.success) {
cityssm.disableNavBlocker(); cityssm.disableNavBlocker();
window.location.href = window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now();
los.urlPrefix + "/lotOccupancies?t=" + Date.now();
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
@ -122,8 +117,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
}); });
}); });
(_c = document (_c = document.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => {
.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
let createCloseModalFunction; let createCloseModalFunction;
const doCreate = (formEvent) => { const doCreate = (formEvent) => {
@ -139,10 +133,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
text: "Yes, Open the Work Order", text: "Yes, Open the Work Order",
callbackFunction: () => { callbackFunction: () => {
window.location.href = window.location.href =
los.urlPrefix + los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
"/workOrders/" +
responseJSON.workOrderId +
"/edit";
} }
} }
}); });
@ -157,8 +148,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
}; };
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
onshow: (modalElement) => { onshow(modalElement) {
modalElement.querySelector("#workOrderCreate--lotOccupancyId").value = lotOccupancyId; modalElement.querySelector("#workOrderCreate--lotOccupancyId").value =
lotOccupancyId;
modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date()); modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date());
const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId"); const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId");
const workOrderTypes = exports.workOrderTypes; const workOrderTypes = exports.workOrderTypes;
@ -172,38 +164,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
workOrderTypeSelectElement.append(optionElement); workOrderTypeSelectElement.append(optionElement);
} }
}, },
onshown: (modalElement, closeModalFunction) => { onshown(modalElement, closeModalFunction) {
var _a; var _a;
createCloseModalFunction = closeModalFunction; createCloseModalFunction = closeModalFunction;
(_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate); (_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate);
} }
}); });
}); });
}
// Occupancy Type // Occupancy Type
const occupancyTypeIdElement = document.querySelector("#lotOccupancy--occupancyTypeId"); const occupancyTypeIdElement = document.querySelector("#lotOccupancy--occupancyTypeId");
if (isCreate) { if (isCreate) {
const lotOccupancyFieldsContainerElement = document.querySelector("#container--lotOccupancyFields"); const lotOccupancyFieldsContainerElement = document.querySelector("#container--lotOccupancyFields");
occupancyTypeIdElement.addEventListener("change", () => { occupancyTypeIdElement.addEventListener("change", () => {
if (occupancyTypeIdElement.value === "") { if (occupancyTypeIdElement.value === "") {
lotOccupancyFieldsContainerElement.innerHTML = lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">Select the ${los.escapedAliases.occupancy} type to load the available fields.</p>
'<p class="message-body">Select the ' + </div>`;
exports.aliases.occupancy.toLowerCase() +
" type to load the available fields.</p>" +
"</div>";
return; return;
} }
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", { cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", {
occupancyTypeId: occupancyTypeIdElement.value occupancyTypeId: occupancyTypeIdElement.value
}, (responseJSON) => { }, (responseJSON) => {
if (responseJSON.occupancyTypeFields.length === 0) { if (responseJSON.occupancyTypeFields.length === 0) {
lotOccupancyFieldsContainerElement.innerHTML = lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
'<p class="message-body">There are no additional fields for this ' + </div>`;
exports.aliases.occupancy.toLowerCase() +
" type.</p>" +
"</div>";
return; return;
} }
lotOccupancyFieldsContainerElement.innerHTML = ""; lotOccupancyFieldsContainerElement.innerHTML = "";
@ -214,11 +199,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const fieldId = "lotOccupancy--" + fieldName; const fieldId = "lotOccupancy--" + fieldName;
const fieldElement = document.createElement("div"); const fieldElement = document.createElement("div");
fieldElement.className = "field"; fieldElement.className = "field";
fieldElement.innerHTML = fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
'<label class="label" for="' +
fieldId +
'"></label>' +
'<div class="control"></div>';
fieldElement.querySelector("label").textContent = fieldElement.querySelector("label").textContent =
occupancyTypeField.occupancyTypeField; occupancyTypeField.occupancyTypeField;
if (occupancyTypeField.occupancyTypeFieldValues === "") { if (occupancyTypeField.occupancyTypeFieldValues === "") {
@ -256,9 +237,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
lotOccupancyFieldsContainerElement.append(fieldElement); lotOccupancyFieldsContainerElement.append(fieldElement);
} }
lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", '<input name="occupancyTypeFieldIds" type="hidden" value="' + lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(1)}" />`);
occupancyTypeFieldIds.slice(1) +
'" />');
}); });
}); });
} }
@ -268,10 +247,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
if (occupancyTypeIdElement.value !== originalOccupancyTypeId) { if (occupancyTypeIdElement.value !== originalOccupancyTypeId) {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Confirm Change", title: "Confirm Change",
message: "Are you sure you want to change the " + message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n
exports.aliases.occupancy.toLowerCase() + This change affects the additional fields associated with this record, and may also affect the available fees.`,
" type?\n" +
"This change affects the additional fields associated with this record, and may also affect the available fees.",
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Keep the Change", text: "Yes, Keep the Change",
@ -298,8 +275,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
let lotSelectFormElement; let lotSelectFormElement;
let lotSelectResultsElement; let lotSelectResultsElement;
const renderSelectedLotAndClose = (lotId, lotName) => { const renderSelectedLotAndClose = (lotId, lotName) => {
document.querySelector("#lotOccupancy--lotId").value = document.querySelector("#lotOccupancy--lotId").value = lotId.toString();
lotId.toString();
document.querySelector("#lotOccupancy--lotName").value = lotName; document.querySelector("#lotOccupancy--lotName").value = lotName;
los.setUnsavedChanges(); los.setUnsavedChanges();
lotSelectCloseModalFunction(); lotSelectCloseModalFunction();
@ -310,19 +286,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName); renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName);
}; };
const searchLots = () => { const searchLots = () => {
lotSelectResultsElement.innerHTML = lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
'<p class="has-text-centered">' +
'<i class="fas fa-3x fa-pulse fa-spinner" aria-hidden="true"></i><br />' +
"Searching..." +
"</p>";
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => { cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => {
if (responseJSON.count === 0) { if (responseJSON.count === 0) {
lotSelectResultsElement.innerHTML = lotSelectResultsElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">No results.</p>
'<p class="message-body">' + </div>`;
"No results." +
"</p>" +
"</div>";
return; return;
} }
const panelElement = document.createElement("div"); const panelElement = document.createElement("div");
@ -359,14 +328,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
}; };
const createLotAndSelect = (submitEvent) => { const createLotAndSelect = (submitEvent) => {
submitEvent.preventDefault(); 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) => { cityssm.postJSON(los.urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => {
if (responseJSON.success) { if (responseJSON.success) {
renderSelectedLotAndClose(responseJSON.lotId, lotName); renderSelectedLotAndClose(responseJSON.lotId, lotName);
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Creating " + exports.aliases.lot, title: `Error Creating ${los.escapedAliases.Lot}`,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -384,8 +354,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
bulmaJS.init(modalElement); bulmaJS.init(modalElement);
// search Tab // search Tab
const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName"); const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName");
if (document.querySelector("#lotOccupancy--lotId").value !== if (document.querySelector("#lotOccupancy--lotId").value !== "") {
"") {
lotNameFilterElement.value = currentLotName; lotNameFilterElement.value = currentLotName;
} }
lotNameFilterElement.focus(); lotNameFilterElement.focus();
@ -404,7 +373,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
// Create Tab // Create Tab
if (exports.lotNamePattern) { if (exports.lotNamePattern) {
const regex = 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"); const lotTypeElement = modalElement.querySelector("#lotCreate--lotTypeId");
for (const lotType of exports.lotTypes) { for (const lotType of exports.lotTypes) {
@ -441,7 +411,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
message: "No " + exports.aliases.lot.toLowerCase() + " selected.", message: `No ${los.escapedAliases.lot} selected.`,
contextualColorName: "info" contextualColorName: "info"
}); });
} }
@ -454,7 +424,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
else { else {
lotNameElement.value = "(No " + exports.aliases.lot + ")"; lotNameElement.value = `(No ${los.escapedAliases.Lot})`;
document.querySelector("#lotOccupancy--lotId").value = ""; document.querySelector("#lotOccupancy--lotId").value = "";
los.setUnsavedChanges(); los.setUnsavedChanges();
} }

View File

@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
(() => { (() => {
var _a, _b, _c; var _a, _b, _c;
const los = exports.los; const los = exports.los;
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value; const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId")
.value;
const isCreate = lotOccupancyId === ""; const isCreate = lotOccupancyId === "";
/* /*
* Main form * Main form
@ -13,9 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const formElement = document.querySelector("#form--lotOccupancy"); const formElement = document.querySelector("#form--lotOccupancy");
formElement.addEventListener("submit", (formEvent) => { formElement.addEventListener("submit", (formEvent) => {
formEvent.preventDefault(); formEvent.preventDefault();
cityssm.postJSON(los.urlPrefix + cityssm.postJSON(los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
"/lotOccupancies/" +
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
if (responseJSON.success) { if (responseJSON.success) {
los.clearUnsavedChanges(); los.clearUnsavedChanges();
if (isCreate || refreshAfterSave) { if (isCreate || refreshAfterSave) {
@ -46,7 +45,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
for (const formInputElement of formInputElements) { for (const formInputElement of formInputElements) {
formInputElement.addEventListener("change", los.setUnsavedChanges); formInputElement.addEventListener("change", los.setUnsavedChanges);
} }
if (!isCreate) {
const doCopy = () => { const doCopy = () => {
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", { cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", {
lotOccupancyId lotOccupancyId
@ -69,8 +67,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
}); });
}; };
(_a = document (_a = document.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => {
.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
if (los.hasUnsavedChanges()) { if (los.hasUnsavedChanges()) {
bulmaJS.alert({ bulmaJS.alert({
@ -81,7 +78,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Copy " + exports.aliases.occupancy + " Record as New", title: "Copy " + los.escapedAliases.Occupancy + " Record as New",
message: "Are you sure you want to copy this record to a new record?", message: "Are you sure you want to copy this record to a new record?",
contextualColorName: "info", contextualColorName: "info",
okButton: { okButton: {
@ -91,8 +88,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
}); });
(_b = document (_b = document.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => {
.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
const doDelete = () => { const doDelete = () => {
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", { cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
@ -100,8 +96,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}, (responseJSON) => { }, (responseJSON) => {
if (responseJSON.success) { if (responseJSON.success) {
cityssm.disableNavBlocker(); cityssm.disableNavBlocker();
window.location.href = window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now();
los.urlPrefix + "/lotOccupancies?t=" + Date.now();
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
@ -122,8 +117,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
}); });
}); });
(_c = document (_c = document.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => {
.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
let createCloseModalFunction; let createCloseModalFunction;
const doCreate = (formEvent) => { const doCreate = (formEvent) => {
@ -139,10 +133,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
text: "Yes, Open the Work Order", text: "Yes, Open the Work Order",
callbackFunction: () => { callbackFunction: () => {
window.location.href = window.location.href =
los.urlPrefix + los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
"/workOrders/" +
responseJSON.workOrderId +
"/edit";
} }
} }
}); });
@ -157,8 +148,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
}; };
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
onshow: (modalElement) => { onshow(modalElement) {
modalElement.querySelector("#workOrderCreate--lotOccupancyId").value = lotOccupancyId; modalElement.querySelector("#workOrderCreate--lotOccupancyId").value =
lotOccupancyId;
modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date()); modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date());
const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId"); const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId");
const workOrderTypes = exports.workOrderTypes; const workOrderTypes = exports.workOrderTypes;
@ -172,38 +164,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
workOrderTypeSelectElement.append(optionElement); workOrderTypeSelectElement.append(optionElement);
} }
}, },
onshown: (modalElement, closeModalFunction) => { onshown(modalElement, closeModalFunction) {
var _a; var _a;
createCloseModalFunction = closeModalFunction; createCloseModalFunction = closeModalFunction;
(_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate); (_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate);
} }
}); });
}); });
}
// Occupancy Type // Occupancy Type
const occupancyTypeIdElement = document.querySelector("#lotOccupancy--occupancyTypeId"); const occupancyTypeIdElement = document.querySelector("#lotOccupancy--occupancyTypeId");
if (isCreate) { if (isCreate) {
const lotOccupancyFieldsContainerElement = document.querySelector("#container--lotOccupancyFields"); const lotOccupancyFieldsContainerElement = document.querySelector("#container--lotOccupancyFields");
occupancyTypeIdElement.addEventListener("change", () => { occupancyTypeIdElement.addEventListener("change", () => {
if (occupancyTypeIdElement.value === "") { if (occupancyTypeIdElement.value === "") {
lotOccupancyFieldsContainerElement.innerHTML = lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">Select the ${los.escapedAliases.occupancy} type to load the available fields.</p>
'<p class="message-body">Select the ' + </div>`;
exports.aliases.occupancy.toLowerCase() +
" type to load the available fields.</p>" +
"</div>";
return; return;
} }
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", { cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", {
occupancyTypeId: occupancyTypeIdElement.value occupancyTypeId: occupancyTypeIdElement.value
}, (responseJSON) => { }, (responseJSON) => {
if (responseJSON.occupancyTypeFields.length === 0) { if (responseJSON.occupancyTypeFields.length === 0) {
lotOccupancyFieldsContainerElement.innerHTML = lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
'<p class="message-body">There are no additional fields for this ' + </div>`;
exports.aliases.occupancy.toLowerCase() +
" type.</p>" +
"</div>";
return; return;
} }
lotOccupancyFieldsContainerElement.innerHTML = ""; lotOccupancyFieldsContainerElement.innerHTML = "";
@ -214,11 +199,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const fieldId = "lotOccupancy--" + fieldName; const fieldId = "lotOccupancy--" + fieldName;
const fieldElement = document.createElement("div"); const fieldElement = document.createElement("div");
fieldElement.className = "field"; fieldElement.className = "field";
fieldElement.innerHTML = fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
'<label class="label" for="' +
fieldId +
'"></label>' +
'<div class="control"></div>';
fieldElement.querySelector("label").textContent = fieldElement.querySelector("label").textContent =
occupancyTypeField.occupancyTypeField; occupancyTypeField.occupancyTypeField;
if (occupancyTypeField.occupancyTypeFieldValues === "") { if (occupancyTypeField.occupancyTypeFieldValues === "") {
@ -256,9 +237,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
lotOccupancyFieldsContainerElement.append(fieldElement); lotOccupancyFieldsContainerElement.append(fieldElement);
} }
lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", '<input name="occupancyTypeFieldIds" type="hidden" value="' + lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(1)}" />`);
occupancyTypeFieldIds.slice(1) +
'" />');
}); });
}); });
} }
@ -268,10 +247,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
if (occupancyTypeIdElement.value !== originalOccupancyTypeId) { if (occupancyTypeIdElement.value !== originalOccupancyTypeId) {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Confirm Change", title: "Confirm Change",
message: "Are you sure you want to change the " + message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n
exports.aliases.occupancy.toLowerCase() + This change affects the additional fields associated with this record, and may also affect the available fees.`,
" type?\n" +
"This change affects the additional fields associated with this record, and may also affect the available fees.",
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Keep the Change", text: "Yes, Keep the Change",
@ -298,8 +275,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
let lotSelectFormElement; let lotSelectFormElement;
let lotSelectResultsElement; let lotSelectResultsElement;
const renderSelectedLotAndClose = (lotId, lotName) => { const renderSelectedLotAndClose = (lotId, lotName) => {
document.querySelector("#lotOccupancy--lotId").value = document.querySelector("#lotOccupancy--lotId").value = lotId.toString();
lotId.toString();
document.querySelector("#lotOccupancy--lotName").value = lotName; document.querySelector("#lotOccupancy--lotName").value = lotName;
los.setUnsavedChanges(); los.setUnsavedChanges();
lotSelectCloseModalFunction(); lotSelectCloseModalFunction();
@ -310,19 +286,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName); renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName);
}; };
const searchLots = () => { const searchLots = () => {
lotSelectResultsElement.innerHTML = lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
'<p class="has-text-centered">' +
'<i class="fas fa-3x fa-pulse fa-spinner" aria-hidden="true"></i><br />' +
"Searching..." +
"</p>";
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => { cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => {
if (responseJSON.count === 0) { if (responseJSON.count === 0) {
lotSelectResultsElement.innerHTML = lotSelectResultsElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">No results.</p>
'<p class="message-body">' + </div>`;
"No results." +
"</p>" +
"</div>";
return; return;
} }
const panelElement = document.createElement("div"); const panelElement = document.createElement("div");
@ -359,14 +328,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
}; };
const createLotAndSelect = (submitEvent) => { const createLotAndSelect = (submitEvent) => {
submitEvent.preventDefault(); 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) => { cityssm.postJSON(los.urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => {
if (responseJSON.success) { if (responseJSON.success) {
renderSelectedLotAndClose(responseJSON.lotId, lotName); renderSelectedLotAndClose(responseJSON.lotId, lotName);
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Creating " + exports.aliases.lot, title: `Error Creating ${los.escapedAliases.Lot}`,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -384,8 +354,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
bulmaJS.init(modalElement); bulmaJS.init(modalElement);
// search Tab // search Tab
const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName"); const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName");
if (document.querySelector("#lotOccupancy--lotId").value !== if (document.querySelector("#lotOccupancy--lotId").value !== "") {
"") {
lotNameFilterElement.value = currentLotName; lotNameFilterElement.value = currentLotName;
} }
lotNameFilterElement.focus(); lotNameFilterElement.focus();
@ -404,7 +373,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
// Create Tab // Create Tab
if (exports.lotNamePattern) { if (exports.lotNamePattern) {
const regex = 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"); const lotTypeElement = modalElement.querySelector("#lotCreate--lotTypeId");
for (const lotType of exports.lotTypes) { for (const lotType of exports.lotTypes) {
@ -441,7 +411,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
message: "No " + exports.aliases.lot.toLowerCase() + " selected.", message: `No ${los.escapedAliases.lot} selected.`,
contextualColorName: "info" contextualColorName: "info"
}); });
} }
@ -454,7 +424,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
else { else {
lotNameElement.value = "(No " + exports.aliases.lot + ")"; lotNameElement.value = `(No ${los.escapedAliases.Lot})`;
document.querySelector("#lotOccupancy--lotId").value = ""; document.querySelector("#lotOccupancy--lotId").value = "";
los.setUnsavedChanges(); los.setUnsavedChanges();
} }

View File

@ -13,9 +13,8 @@ declare const bulmaJS: BulmaJS;
(() => { (() => {
const los = exports.los as globalTypes.LOS; const los = exports.los as globalTypes.LOS;
const lotOccupancyId = ( const lotOccupancyId = (document.querySelector("#lotOccupancy--lotOccupancyId") as HTMLInputElement)
document.querySelector("#lotOccupancy--lotOccupancyId") as HTMLInputElement .value;
).value;
const isCreate = lotOccupancyId === ""; const isCreate = lotOccupancyId === "";
/* /*
@ -30,15 +29,9 @@ declare const bulmaJS: BulmaJS;
formEvent.preventDefault(); formEvent.preventDefault();
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"),
"/lotOccupancies/" +
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"),
formElement, formElement,
(responseJSON: { (responseJSON: { success: boolean; lotOccupancyId?: number; errorMessage?: string }) => {
success: boolean;
lotOccupancyId?: number;
errorMessage?: string;
}) => {
if (responseJSON.success) { if (responseJSON.success) {
los.clearUnsavedChanges(); los.clearUnsavedChanges();
@ -72,18 +65,13 @@ declare const bulmaJS: BulmaJS;
formInputElement.addEventListener("change", los.setUnsavedChanges); formInputElement.addEventListener("change", los.setUnsavedChanges);
} }
if (!isCreate) {
const doCopy = () => { const doCopy = () => {
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy",
{ {
lotOccupancyId lotOccupancyId
}, },
(responseJSON: { (responseJSON: { success: boolean; errorMessage?: string; lotOccupancyId?: number }) => {
success: boolean;
errorMessage?: string;
lotOccupancyId?: number;
}) => {
if (responseJSON.success) { if (responseJSON.success) {
cityssm.disableNavBlocker(); cityssm.disableNavBlocker();
window.location.href = window.location.href =
@ -102,9 +90,7 @@ declare const bulmaJS: BulmaJS;
); );
}; };
document document.querySelector("#button--copyLotOccupancy")?.addEventListener("click", (clickEvent) => {
.querySelector("#button--copyLotOccupancy")
?.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
if (los.hasUnsavedChanges()) { if (los.hasUnsavedChanges()) {
@ -115,7 +101,7 @@ declare const bulmaJS: BulmaJS;
}); });
} else { } else {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Copy " + exports.aliases.occupancy + " Record as New", title: "Copy " + los.escapedAliases.Occupancy + " Record as New",
message: "Are you sure you want to copy this record to a new record?", message: "Are you sure you want to copy this record to a new record?",
contextualColorName: "info", contextualColorName: "info",
okButton: { okButton: {
@ -126,9 +112,7 @@ declare const bulmaJS: BulmaJS;
} }
}); });
document document.querySelector("#button--deleteLotOccupancy")?.addEventListener("click", (clickEvent) => {
.querySelector("#button--deleteLotOccupancy")
?.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
const doDelete = () => { const doDelete = () => {
@ -140,8 +124,7 @@ declare const bulmaJS: BulmaJS;
(responseJSON: { success: boolean; errorMessage?: string }) => { (responseJSON: { success: boolean; errorMessage?: string }) => {
if (responseJSON.success) { if (responseJSON.success) {
cityssm.disableNavBlocker(); cityssm.disableNavBlocker();
window.location.href = window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now();
los.urlPrefix + "/lotOccupancies?t=" + Date.now();
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Deleting Record", title: "Error Deleting Record",
@ -164,9 +147,7 @@ declare const bulmaJS: BulmaJS;
}); });
}); });
document document.querySelector("#button--createWorkOrder")?.addEventListener("click", (clickEvent) => {
.querySelector("#button--createWorkOrder")
?.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
let createCloseModalFunction: () => void; let createCloseModalFunction: () => void;
@ -177,11 +158,7 @@ declare const bulmaJS: BulmaJS;
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + "/workOrders/doCreateWorkOrder", los.urlPrefix + "/workOrders/doCreateWorkOrder",
formEvent.currentTarget, formEvent.currentTarget,
(responseJSON: { (responseJSON: { success: boolean; errorMessage?: string; workOrderId?: number }) => {
success: boolean;
errorMessage?: string;
workOrderId?: number;
}) => {
if (responseJSON.success) { if (responseJSON.success) {
createCloseModalFunction(); createCloseModalFunction();
@ -193,10 +170,7 @@ declare const bulmaJS: BulmaJS;
text: "Yes, Open the Work Order", text: "Yes, Open the Work Order",
callbackFunction: () => { callbackFunction: () => {
window.location.href = window.location.href =
los.urlPrefix + los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
"/workOrders/" +
responseJSON.workOrderId +
"/edit";
} }
} }
}); });
@ -212,12 +186,9 @@ declare const bulmaJS: BulmaJS;
}; };
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", { cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
onshow: (modalElement) => { onshow(modalElement) {
( (modalElement.querySelector("#workOrderCreate--lotOccupancyId") as HTMLInputElement).value =
modalElement.querySelector( lotOccupancyId;
"#workOrderCreate--lotOccupancyId"
) as HTMLInputElement
).value = lotOccupancyId;
( (
modalElement.querySelector( modalElement.querySelector(
@ -229,8 +200,7 @@ declare const bulmaJS: BulmaJS;
"#workOrderCreate--workOrderTypeId" "#workOrderCreate--workOrderTypeId"
) as HTMLSelectElement; ) as HTMLSelectElement;
const workOrderTypes = const workOrderTypes = exports.workOrderTypes as recordTypes.WorkOrderType[];
exports.workOrderTypes as recordTypes.WorkOrderType[];
if (workOrderTypes.length === 1) { if (workOrderTypes.length === 1) {
workOrderTypeSelectElement.innerHTML = ""; workOrderTypeSelectElement.innerHTML = "";
@ -238,21 +208,18 @@ declare const bulmaJS: BulmaJS;
for (const workOrderType of workOrderTypes) { for (const workOrderType of workOrderTypes) {
const optionElement = document.createElement("option"); const optionElement = document.createElement("option");
optionElement.value = ( optionElement.value = (workOrderType.workOrderTypeId as number).toString();
workOrderType.workOrderTypeId as number
).toString();
optionElement.textContent = workOrderType.workOrderType as string; optionElement.textContent = workOrderType.workOrderType as string;
workOrderTypeSelectElement.append(optionElement); workOrderTypeSelectElement.append(optionElement);
} }
}, },
onshown: (modalElement, closeModalFunction) => { onshown(modalElement, closeModalFunction) {
createCloseModalFunction = closeModalFunction; createCloseModalFunction = closeModalFunction;
modalElement.querySelector("form")?.addEventListener("submit", doCreate); modalElement.querySelector("form")?.addEventListener("submit", doCreate);
} }
}); });
}); });
}
// Occupancy Type // Occupancy Type
@ -267,12 +234,9 @@ declare const bulmaJS: BulmaJS;
occupancyTypeIdElement.addEventListener("change", () => { occupancyTypeIdElement.addEventListener("change", () => {
if (occupancyTypeIdElement.value === "") { if (occupancyTypeIdElement.value === "") {
lotOccupancyFieldsContainerElement.innerHTML = lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">Select the ${los.escapedAliases.occupancy} type to load the available fields.</p>
'<p class="message-body">Select the ' + </div>`;
exports.aliases.occupancy.toLowerCase() +
" type to load the available fields.</p>" +
"</div>";
return; return;
} }
@ -284,12 +248,9 @@ declare const bulmaJS: BulmaJS;
}, },
(responseJSON: { occupancyTypeFields: recordTypes.OccupancyTypeField[] }) => { (responseJSON: { occupancyTypeFields: recordTypes.OccupancyTypeField[] }) => {
if (responseJSON.occupancyTypeFields.length === 0) { if (responseJSON.occupancyTypeFields.length === 0) {
lotOccupancyFieldsContainerElement.innerHTML = lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
'<p class="message-body">There are no additional fields for this ' + </div>`;
exports.aliases.occupancy.toLowerCase() +
" type.</p>" +
"</div>";
return; return;
} }
@ -301,18 +262,13 @@ declare const bulmaJS: BulmaJS;
for (const occupancyTypeField of responseJSON.occupancyTypeFields) { for (const occupancyTypeField of responseJSON.occupancyTypeFields) {
occupancyTypeFieldIds += "," + occupancyTypeField.occupancyTypeFieldId; occupancyTypeFieldIds += "," + occupancyTypeField.occupancyTypeFieldId;
const fieldName = const fieldName = "lotOccupancyFieldValue_" + occupancyTypeField.occupancyTypeFieldId;
"lotOccupancyFieldValue_" + occupancyTypeField.occupancyTypeFieldId;
const fieldId = "lotOccupancy--" + fieldName; const fieldId = "lotOccupancy--" + fieldName;
const fieldElement = document.createElement("div"); const fieldElement = document.createElement("div");
fieldElement.className = "field"; fieldElement.className = "field";
fieldElement.innerHTML = fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
'<label class="label" for="' +
fieldId +
'"></label>' +
'<div class="control"></div>';
(fieldElement.querySelector("label") as HTMLLabelElement).textContent = (fieldElement.querySelector("label") as HTMLLabelElement).textContent =
occupancyTypeField.occupancyTypeField as string; occupancyTypeField.occupancyTypeField as string;
@ -336,9 +292,7 @@ declare const bulmaJS: BulmaJS;
inputElement.pattern = occupancyTypeField.pattern; inputElement.pattern = occupancyTypeField.pattern;
} }
(fieldElement.querySelector(".control") as HTMLElement).append( (fieldElement.querySelector(".control") as HTMLElement).append(inputElement);
inputElement
);
} else { } else {
(fieldElement.querySelector(".control") as HTMLElement).innerHTML = (fieldElement.querySelector(".control") as HTMLElement).innerHTML =
'<div class="select is-fullwidth"><select id="' + '<div class="select is-fullwidth"><select id="' +
@ -349,9 +303,7 @@ declare const bulmaJS: BulmaJS;
'<option value="">(Not Set)</option>' + '<option value="">(Not Set)</option>' +
"</select></div>"; "</select></div>";
const selectElement = fieldElement.querySelector( const selectElement = fieldElement.querySelector("select") as HTMLSelectElement;
"select"
) as HTMLSelectElement;
selectElement.required = occupancyTypeField.isRequired as boolean; selectElement.required = occupancyTypeField.isRequired as boolean;
@ -372,9 +324,9 @@ declare const bulmaJS: BulmaJS;
lotOccupancyFieldsContainerElement.insertAdjacentHTML( lotOccupancyFieldsContainerElement.insertAdjacentHTML(
"beforeend", "beforeend",
'<input name="occupancyTypeFieldIds" type="hidden" value="' + `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(
occupancyTypeFieldIds.slice(1) + 1
'" />' )}" />`
); );
} }
); );
@ -386,11 +338,8 @@ declare const bulmaJS: BulmaJS;
if (occupancyTypeIdElement.value !== originalOccupancyTypeId) { if (occupancyTypeIdElement.value !== originalOccupancyTypeId) {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Confirm Change", title: "Confirm Change",
message: message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n
"Are you sure you want to change the " + This change affects the additional fields associated with this record, and may also affect the available fees.`,
exports.aliases.occupancy.toLowerCase() +
" type?\n" +
"This change affects the additional fields associated with this record, and may also affect the available fees.",
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Keep the Change", text: "Yes, Keep the Change",
@ -423,8 +372,7 @@ declare const bulmaJS: BulmaJS;
let lotSelectResultsElement: HTMLElement; let lotSelectResultsElement: HTMLElement;
const renderSelectedLotAndClose = (lotId: number | string, lotName: string) => { const renderSelectedLotAndClose = (lotId: number | string, lotName: string) => {
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = lotId.toString();
lotId.toString();
(document.querySelector("#lotOccupancy--lotName") as HTMLInputElement).value = lotName; (document.querySelector("#lotOccupancy--lotName") as HTMLInputElement).value = lotName;
los.setUnsavedChanges(); los.setUnsavedChanges();
@ -436,30 +384,20 @@ declare const bulmaJS: BulmaJS;
const selectedLotElement = clickEvent.currentTarget as HTMLElement; const selectedLotElement = clickEvent.currentTarget as HTMLElement;
renderSelectedLotAndClose( renderSelectedLotAndClose(selectedLotElement.dataset.lotId!, selectedLotElement.dataset.lotName!);
selectedLotElement.dataset.lotId!,
selectedLotElement.dataset.lotName!
);
}; };
const searchLots = () => { const searchLots = () => {
lotSelectResultsElement.innerHTML = lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
'<p class="has-text-centered">' +
'<i class="fas fa-3x fa-pulse fa-spinner" aria-hidden="true"></i><br />' +
"Searching..." +
"</p>";
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + "/lots/doSearchLots", los.urlPrefix + "/lots/doSearchLots",
lotSelectFormElement, lotSelectFormElement,
(responseJSON: { count: number; lots: recordTypes.Lot[] }) => { (responseJSON: { count: number; lots: recordTypes.Lot[] }) => {
if (responseJSON.count === 0) { if (responseJSON.count === 0) {
lotSelectResultsElement.innerHTML = lotSelectResultsElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">No results.</p>
'<p class="message-body">' + </div>`;
"No results." +
"</p>" +
"</div>";
return; return;
} }
@ -507,9 +445,8 @@ declare const bulmaJS: BulmaJS;
const createLotAndSelect = (submitEvent: SubmitEvent) => { const createLotAndSelect = (submitEvent: SubmitEvent) => {
submitEvent.preventDefault(); submitEvent.preventDefault();
const lotName = ( const lotName = (lotSelectModalElement.querySelector("#lotCreate--lotName") as HTMLInputElement)
lotSelectModalElement.querySelector("#lotCreate--lotName") as HTMLInputElement .value;
).value;
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + "/lots/doCreateLot", los.urlPrefix + "/lots/doCreateLot",
@ -519,7 +456,7 @@ declare const bulmaJS: BulmaJS;
renderSelectedLotAndClose(responseJSON.lotId!, lotName); renderSelectedLotAndClose(responseJSON.lotId!, lotName);
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Creating " + exports.aliases.lot, title: `Error Creating ${los.escapedAliases.Lot}`,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -546,10 +483,7 @@ declare const bulmaJS: BulmaJS;
"#lotSelect--lotName" "#lotSelect--lotName"
) as HTMLInputElement; ) as HTMLInputElement;
if ( if ((document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value !== "") {
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value !==
""
) {
lotNameFilterElement.value = currentLotName; lotNameFilterElement.value = currentLotName;
} }
@ -565,9 +499,7 @@ declare const bulmaJS: BulmaJS;
occupancyStatusFilterElement.value = ""; occupancyStatusFilterElement.value = "";
} }
lotSelectFormElement = modalElement.querySelector( lotSelectFormElement = modalElement.querySelector("#form--lotSelect") as HTMLFormElement;
"#form--lotSelect"
) as HTMLFormElement;
lotSelectResultsElement = modalElement.querySelector( lotSelectResultsElement = modalElement.querySelector(
"#resultsContainer--lotSelect" "#resultsContainer--lotSelect"
) as HTMLElement; ) as HTMLElement;
@ -583,9 +515,8 @@ declare const bulmaJS: BulmaJS;
if (exports.lotNamePattern) { if (exports.lotNamePattern) {
const regex = exports.lotNamePattern as RegExp; const regex = exports.lotNamePattern as RegExp;
( (modalElement.querySelector("#lotCreate--lotName") as HTMLInputElement).pattern =
modalElement.querySelector("#lotCreate--lotName") as HTMLInputElement regex.source;
).pattern = regex.source;
} }
const lotTypeElement = modalElement.querySelector( const lotTypeElement = modalElement.querySelector(
@ -610,9 +541,7 @@ declare const bulmaJS: BulmaJS;
lotStatusElement.append(optionElement); lotStatusElement.append(optionElement);
} }
const mapElement = modalElement.querySelector( const mapElement = modalElement.querySelector("#lotCreate--mapId") as HTMLSelectElement;
"#lotCreate--mapId"
) as HTMLSelectElement;
for (const map of exports.maps as recordTypes.Map[]) { for (const map of exports.maps as recordTypes.Map[]) {
const optionElement = document.createElement("option"); const optionElement = document.createElement("option");
@ -621,9 +550,10 @@ declare const bulmaJS: BulmaJS;
mapElement.append(optionElement); mapElement.append(optionElement);
} }
( (modalElement.querySelector("#form--lotCreate") as HTMLFormElement).addEventListener(
modalElement.querySelector("#form--lotCreate") as HTMLFormElement "submit",
).addEventListener("submit", createLotAndSelect); createLotAndSelect
);
}, },
onremoved: () => { onremoved: () => {
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
@ -638,7 +568,7 @@ declare const bulmaJS: BulmaJS;
window.open(los.urlPrefix + "/lots/" + lotId); window.open(los.urlPrefix + "/lots/" + lotId);
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
message: "No " + exports.aliases.lot.toLowerCase() + " selected.", message: `No ${los.escapedAliases.lot} selected.`,
contextualColorName: "info" contextualColorName: "info"
}); });
} }
@ -651,7 +581,7 @@ declare const bulmaJS: BulmaJS;
contextualColorName: "info" contextualColorName: "info"
}); });
} else { } else {
lotNameElement.value = "(No " + exports.aliases.lot + ")"; lotNameElement.value = `(No ${los.escapedAliases.Lot})`;
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = ""; (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = "";
los.setUnsavedChanges(); los.setUnsavedChanges();
} }
@ -661,9 +591,7 @@ declare const bulmaJS: BulmaJS;
los.initializeDatePickers(formElement); los.initializeDatePickers(formElement);
( document.querySelector("#lotOccupancy--occupancyStartDateString")!.addEventListener("change", () => {
document.querySelector("#lotOccupancy--occupancyStartDateString") as HTMLInputElement
).addEventListener("change", () => {
const endDatePicker = ( const endDatePicker = (
document.querySelector("#lotOccupancy--occupancyEndDateString") as HTMLInputElement document.querySelector("#lotOccupancy--occupancyEndDateString") as HTMLInputElement
).bulmaCalendar.datePicker; ).bulmaCalendar.datePicker;

View File

@ -10,12 +10,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
function renderLots(responseJSON) { function renderLots(responseJSON) {
var _a, _b; var _a, _b;
if (responseJSON.lots.length === 0) { if (responseJSON.lots.length === 0) {
searchResultsContainerElement.innerHTML = searchResultsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no ${los.escapedAliases.lots} that meet the search criteria.</p>
'<p class="message-body">There are no ' + </div>`;
los.escapedAliases.lots +
" that meet the search criteria.</p>" +
"</div>";
return; return;
} }
const resultsTbodyElement = document.createElement("tbody"); const resultsTbodyElement = document.createElement("tbody");

View File

@ -22,12 +22,9 @@ declare const cityssm: cityssmGlobal;
function renderLots(responseJSON: { count: number; offset: number; lots: recordTypes.Lot[] }): void { function renderLots(responseJSON: { count: number; offset: number; lots: recordTypes.Lot[] }): void {
if (responseJSON.lots.length === 0) { if (responseJSON.lots.length === 0) {
searchResultsContainerElement.innerHTML = searchResultsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no ${los.escapedAliases.lots} that meet the search criteria.</p>
'<p class="message-body">There are no ' + </div>`;
los.escapedAliases.lots +
" that meet the search criteria.</p>" +
"</div>";
return; return;
} }

View File

@ -12,13 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const searchResultsTbodyElement = document.createElement("tbody"); const searchResultsTbodyElement = document.createElement("tbody");
const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" "); const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" ");
for (const map of maps) { for (const map of maps) {
const mapSearchString = (map.mapName + const mapSearchString = `${map.mapName} ${map.mapDescription} ${map.mapAddress1} ${map.mapAddress2}`.toLowerCase();
" " +
map.mapDescription +
" " +
map.mapAddress1 +
" " +
map.mapAddress2).toLowerCase();
let showMap = true; let showMap = true;
for (const filterStringPiece of filterStringSplit) { for (const filterStringPiece of filterStringSplit) {
if (!mapSearchString.includes(filterStringPiece)) { if (!mapSearchString.includes(filterStringPiece)) {

View File

@ -14,9 +14,7 @@ declare const cityssm: cityssmGlobal;
const searchFilterElement = document.querySelector("#searchFilter--map") as HTMLInputElement; const searchFilterElement = document.querySelector("#searchFilter--map") as HTMLInputElement;
const searchResultsContainerElement = document.querySelector( const searchResultsContainerElement = document.querySelector("#container--searchResults") as HTMLElement;
"#container--searchResults"
) as HTMLElement;
function renderResults(): void { function renderResults(): void {
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML( searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(
@ -29,15 +27,8 @@ declare const cityssm: cityssmGlobal;
const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" "); const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" ");
for (const map of maps) { for (const map of maps) {
const mapSearchString = ( const mapSearchString =
map.mapName + `${map.mapName} ${map.mapDescription} ${map.mapAddress1} ${map.mapAddress2}`.toLowerCase();
" " +
map.mapDescription +
" " +
map.mapAddress1 +
" " +
map.mapAddress2
).toLowerCase();
let showMap = true; let showMap = true;

View File

@ -3,8 +3,7 @@
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
(() => { (() => {
const los = exports.los; const los = exports.los;
const workOrderId = document.querySelector("#workOrderEdit--workOrderId") const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
.value;
const isCreate = workOrderId === ""; const isCreate = workOrderId === "";
const workOrderFormElement = document.querySelector("#form--workOrderEdit"); const workOrderFormElement = document.querySelector("#form--workOrderEdit");
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")); los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
@ -46,8 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
workOrderId workOrderId
}, (responseJSON) => { }, (responseJSON) => {
if (responseJSON.success) { if (responseJSON.success) {
window.location.href = window.location.href = los.urlPrefix + "/workOrders/" + workOrderId;
los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
@ -83,8 +81,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
if (hasOpenMilestones) { if (hasOpenMilestones) {
bulmaJS.alert({ bulmaJS.alert({
title: "Outstanding Milestones", title: "Outstanding Milestones",
message: "You cannot close a work order with outstanding milestones." + message: `You cannot close a work order with outstanding milestones.
" Either complete the outstanding milestones, or remove them from the work order.", Either complete the outstanding milestones, or remove them from the work order.`,
contextualColorName: "warning" contextualColorName: "warning"
}); });
/* /*
@ -113,9 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
}); });
document document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => {
.querySelector("#button--deleteWorkOrder")
.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete Work Order", title: "Delete Work Order",
@ -160,8 +156,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
bulmaJS.confirm({ bulmaJS.confirm({
title: `Delete ${exports.aliases.occupancy} Relationship`, title: `Delete ${los.escapedAliases.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.`, 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", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Delete Relationship", text: "Yes, Delete Relationship",
@ -180,7 +176,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.lot, title: "Error Adding " + los.escapedAliases.Lot,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -201,7 +197,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.occupancy, title: "Error Adding " + los.escapedAliases.Occupancy,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -216,12 +212,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
addLot(lotId); addLot(lotId);
} }
function renderRelatedOccupancies() { function renderRelatedOccupancies() {
var _a; var _a, _b;
const occupanciesContainerElement = document.querySelector("#container--lotOccupancies"); 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) { if (workOrderLotOccupancies.length === 0) {
occupanciesContainerElement.innerHTML = `<div class="message is-info"> occupanciesContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body">There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.</p> <p class="message-body">There are no ${los.escapedAliases.occupancies} associated with this work order.</p>
</div>`; </div>`;
return; return;
} }
@ -239,8 +236,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const rowElement = document.createElement("tr"); const rowElement = document.createElement("tr");
rowElement.className = "container--lotOccupancy"; rowElement.className = "container--lotOccupancy";
rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString(); rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString();
const isActive = !(lotOccupancy.occupancyEndDate && const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString < currentDateString);
lotOccupancy.occupancyEndDateString < currentDateString);
const hasLotRecord = lotOccupancy.lotId && const hasLotRecord = lotOccupancy.lotId &&
workOrderLots.some((lot) => { workOrderLots.some((lot) => {
return lotOccupancy.lotId === lot.lotId; return lotOccupancy.lotId === lot.lotId;
@ -248,12 +244,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
rowElement.innerHTML = rowElement.innerHTML =
'<td class="is-width-1 has-text-centered">' + '<td class="is-width-1 has-text-centered">' +
(isActive (isActive
? '<i class="fas fa-play" title="Current ' + ? '<i class="fas fa-play" title="Current ' + los.escapedAliases.Occupancy + '"></i>'
cityssm.escapeHTML(exports.aliases.occupancy) + : '<i class="fas fa-stop" title="Previous ' + los.escapedAliases.Occupancy + '"></i>') +
'"></i>'
: '<i class="fas fa-stop" title="Previous ' +
cityssm.escapeHTML(exports.aliases.occupancy) +
'"></i>') +
"</td>" + "</td>" +
("<td>" + ("<td>" +
'<a class="has-text-weight-bold" href="' + '<a class="has-text-weight-bold" href="' +
@ -274,17 +266,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
lotOccupancy.lotId + lotOccupancy.lotId +
'"' + '"' +
' data-tooltip="Add ' + ' data-tooltip="Add ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
'"' + '"' +
' aria-label="Add ' + ' aria-label="Add ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
'" type="button">' + '" type="button">' +
'<i class="fas fa-plus" aria-hidden="true"></i>' + '<i class="fas fa-plus" aria-hidden="true"></i>' +
"</button>") + "</button>") +
"</td>"); "</td>");
} }
else { else {
rowElement.insertAdjacentHTML("beforeend", `<td><span class="has-text-grey">(No ${exports.aliases.lot})</span></td>`); rowElement.insertAdjacentHTML("beforeend", `<td><span class="has-text-grey">(No ${los.escapedAliases.Lot})</span></td>`);
} }
rowElement.insertAdjacentHTML("beforeend", "<td>" + rowElement.insertAdjacentHTML("beforeend", "<td>" +
lotOccupancy.occupancyStartDateString + lotOccupancy.occupancyStartDateString +
@ -296,9 +288,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</td>") + "</td>") +
("<td>" + ("<td>" +
(lotOccupancy.lotOccupancyOccupants.length === 0 (lotOccupancy.lotOccupancyOccupants.length === 0
? '<span class="has-text-grey">(No ' + ? '<span class="has-text-grey">(No ' + los.escapedAliases.Occupants + ")</span>"
cityssm.escapeHTML(exports.aliases.occupants) +
")</span>"
: (_a = lotOccupancy.lotOccupancyOccupants) === null || _a === void 0 ? void 0 : _a.reduce((soFar, occupant) => { : (_a = lotOccupancy.lotOccupancyOccupants) === null || _a === void 0 ? void 0 : _a.reduce((soFar, occupant) => {
return (soFar + return (soFar +
'<span class="has-tooltip-left" data-tooltip="' + '<span class="has-tooltip-left" data-tooltip="' +
@ -307,7 +297,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
'<i class="fas fa-fw fa-' + '<i class="fas fa-fw fa-' +
cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") + cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") +
'" aria-label="' + '" aria-label="' +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
'"></i> ' + '"></i> ' +
cityssm.escapeHTML(occupant.occupantName) + cityssm.escapeHTML(occupant.occupantName) +
"</span><br />"); "</span><br />");
@ -318,11 +308,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
'<i class="fas fa-trash" aria-hidden="true"></i>' + '<i class="fas fa-trash" aria-hidden="true"></i>' +
"</button>" + "</button>" +
"</td>")); "</td>"));
if (lotOccupancy.lotId && !hasLotRecord) { (_b = rowElement.querySelector(".button--addLot")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", addLotFromLotOccupancy);
rowElement
.querySelector(".button--addLot")
.addEventListener("click", addLotFromLotOccupancy);
}
rowElement rowElement
.querySelector(".button--deleteLotOccupancy") .querySelector(".button--deleteLotOccupancy")
.addEventListener("click", deleteLotOccupancy); .addEventListener("click", deleteLotOccupancy);
@ -330,8 +316,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
} }
function openEditLotStatus(clickEvent) { function openEditLotStatus(clickEvent) {
const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot") const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot").dataset.lotId, 10);
.dataset.lotId, 10);
const lot = workOrderLots.find((possibleLot) => { const lot = workOrderLots.find((possibleLot) => {
return possibleLot.lotId === lotId; return possibleLot.lotId === lotId;
}); });
@ -358,8 +343,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
los.populateAliases(modalElement); los.populateAliases(modalElement);
modalElement.querySelector("#lotStatusEdit--lotId").value = modalElement.querySelector("#lotStatusEdit--lotId").value =
lotId.toString(); lotId.toString();
modalElement.querySelector("#lotStatusEdit--lotName").value = modalElement.querySelector("#lotStatusEdit--lotName").value = lot.lotName;
lot.lotName;
const lotStatusElement = modalElement.querySelector("#lotStatusEdit--lotStatusId"); const lotStatusElement = modalElement.querySelector("#lotStatusEdit--lotStatusId");
let lotStatusFound = false; let lotStatusFound = false;
for (const lotStatus of exports.lotStatuses) { for (const lotStatus of exports.lotStatuses) {
@ -382,7 +366,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
modalElement modalElement
.querySelector("form") .querySelector("form")
.insertAdjacentHTML("beforeend", '<input name="workOrderId" type="hidden" value="' + workOrderId + '" />'); .insertAdjacentHTML("beforeend", `<input name="workOrderId" type="hidden" value="${workOrderId}" />`);
}, },
onshown(modalElement, closeModalFunction) { onshown(modalElement, closeModalFunction) {
editCloseModalFunction = closeModalFunction; editCloseModalFunction = closeModalFunction;
@ -395,7 +379,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
function deleteLot(clickEvent) { function deleteLot(clickEvent) {
const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId; const lotId = clickEvent.currentTarget.closest(".container--lot")
.dataset.lotId;
function doDelete() { function doDelete() {
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", { cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", {
workOrderId, workOrderId,
@ -473,9 +458,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
'<i class="fas fa-trash" aria-hidden="true"></i>' + '<i class="fas fa-trash" aria-hidden="true"></i>' +
"</button>" + "</button>" +
"</td>"); "</td>");
rowElement rowElement.querySelector(".button--editLotStatus").addEventListener("click", openEditLotStatus);
.querySelector(".button--editLotStatus")
.addEventListener("click", openEditLotStatus);
rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot); rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot);
lotsContainerElement.querySelector("tbody").append(rowElement); lotsContainerElement.querySelector("tbody").append(rowElement);
} }
@ -504,10 +487,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML("Searching..."); searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => { cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => {
if (responseJSON.lotOccupancies.length === 0) { if (responseJSON.lotOccupancies.length === 0) {
searchResultsContainerElement.innerHTML = searchResultsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no records that meet the search criteria.</p>
'<p class="message-body">There are no records that meet the search criteria.</p>' + </div>`;
"</div>";
return; return;
} }
searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable"> searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable">
@ -555,8 +537,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
")</span>" ")</span>"
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) + : cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
(lotOccupancy.lotOccupancyOccupants.length > 1 (lotOccupancy.lotOccupancyOccupants.length > 1
? " plus " + ? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1)
(lotOccupancy.lotOccupancyOccupants.length - 1)
: "")) + : "")) +
"</td>")); "</td>"));
rowElement rowElement
@ -571,7 +552,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
los.populateAliases(modalElement); los.populateAliases(modalElement);
searchFormElement = modalElement.querySelector("form"); searchFormElement = modalElement.querySelector("form");
searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotOccupancyAdd"); 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; modalElement.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value = document.querySelector("#workOrderEdit--workOrderOpenDateString").value;
doSearch(); doSearch();
}, },
@ -639,9 +621,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</td>" + "</td>" +
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") + ("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>"); ("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>");
rowElement rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot);
.querySelector(".button--addLot")
.addEventListener("click", doAddLot);
searchResultsContainerElement.querySelector("tbody").append(rowElement); searchResultsContainerElement.querySelector("tbody").append(rowElement);
} }
}); });
@ -709,7 +689,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
cityssm.openHtmlModal("workOrder-editComment", { cityssm.openHtmlModal("workOrder-editComment", {
onshow(modalElement) { onshow(modalElement) {
modalElement.querySelector("#workOrderCommentEdit--workOrderId").value = workOrderId; modalElement.querySelector("#workOrderCommentEdit--workOrderId").value =
workOrderId;
modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId").value = workOrderCommentId.toString(); modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId").value = workOrderCommentId.toString();
modalElement.querySelector("#workOrderCommentEdit--workOrderComment").value = workOrderComment.workOrderComment; modalElement.querySelector("#workOrderCommentEdit--workOrderComment").value = workOrderComment.workOrderComment;
const workOrderCommentDateStringElement = modalElement.querySelector("#workOrderCommentEdit--workOrderCommentDateString"); const workOrderCommentDateStringElement = modalElement.querySelector("#workOrderCommentEdit--workOrderCommentDateString");
@ -768,26 +749,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
function renderWorkOrderComments() { function renderWorkOrderComments() {
const containerElement = document.querySelector("#container--workOrderComments"); const containerElement = document.querySelector("#container--workOrderComments");
if (workOrderComments.length === 0) { if (workOrderComments.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no comments to display.</p>
'<p class="message-body">There are no comments to display.</p>' + </div>`;
"</div>";
return; return;
} }
const tableElement = document.createElement("table"); const tableElement = document.createElement("table");
tableElement.className = "table is-fullwidth is-striped is-hoverable"; tableElement.className = "table is-fullwidth is-striped is-hoverable";
tableElement.innerHTML = tableElement.innerHTML = `<thead><tr>
"<thead><tr>" + <th>Commentor</th>
"<th>Commentor</th>" + <th>Comment Date</th>
"<th>Comment Date</th>" + <th>Comment</th>
"<th>Comment</th>" + <th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>`;
'<th class="is-hidden-print"><span class="is-sr-only">Options</span></th>' +
"</tr></thead>" +
"<tbody></tbody>";
for (const workOrderComment of workOrderComments) { for (const workOrderComment of workOrderComments) {
const tableRowElement = document.createElement("tr"); const tableRowElement = document.createElement("tr");
tableRowElement.dataset.workOrderCommentId = tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId.toString();
workOrderComment.workOrderCommentId.toString();
tableRowElement.innerHTML = tableRowElement.innerHTML =
"<td>" + "<td>" +
cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") + cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") +
@ -812,12 +788,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</button>") + "</button>") +
"</div>" + "</div>" +
"</td>"); "</td>");
tableRowElement tableRowElement.querySelector(".button--edit").addEventListener("click", openEditWorkOrderComment);
.querySelector(".button--edit") tableRowElement.querySelector(".button--delete").addEventListener("click", deleteWorkOrderComment);
.addEventListener("click", openEditWorkOrderComment);
tableRowElement
.querySelector(".button--delete")
.addEventListener("click", deleteWorkOrderComment);
tableElement.querySelector("tbody").append(tableRowElement); tableElement.querySelector("tbody").append(tableRowElement);
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";
@ -838,7 +810,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
cityssm.openHtmlModal("workOrder-addComment", { cityssm.openHtmlModal("workOrder-addComment", {
onshow(modalElement) { onshow(modalElement) {
los.populateAliases(modalElement); los.populateAliases(modalElement);
modalElement.querySelector("#workOrderCommentAdd--workOrderId").value = workOrderId; modalElement.querySelector("#workOrderCommentAdd--workOrderId").value =
workOrderId;
modalElement.querySelector("form").addEventListener("submit", doAddComment); modalElement.querySelector("form").addEventListener("submit", doAddComment);
}, },
onshown(modalElement, closeModalFunction) { onshown(modalElement, closeModalFunction) {
@ -853,9 +826,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
if (!isCreate) { if (!isCreate) {
document document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal);
.querySelector("#workOrderComments--add")
.addEventListener("click", openAddCommentModal);
renderWorkOrderComments(); renderWorkOrderComments();
} }
@ -878,7 +849,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
function completeMilestone(clickEvent) { function completeMilestone(clickEvent) {
clickEvent.preventDefault(); clickEvent.preventDefault();
const currentDateString = cityssm.dateToString(new Date()); 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) => { const workOrderMilestone = workOrderMilestones.find((currentMilestone) => {
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
}); });
@ -942,7 +914,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
function editMilestone(clickEvent) { function editMilestone(clickEvent) {
clickEvent.preventDefault(); 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) => { const workOrderMilestone = workOrderMilestones.find((currentMilestone) => {
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
}); });
@ -957,8 +930,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
}; };
cityssm.openHtmlModal("workOrder-editMilestone", { cityssm.openHtmlModal("workOrder-editMilestone", {
onshow: (modalElement) => { onshow(modalElement) {
modalElement.querySelector("#milestoneEdit--workOrderId").value = workOrderId; modalElement.querySelector("#milestoneEdit--workOrderId").value =
workOrderId;
modalElement.querySelector("#milestoneEdit--workOrderMilestoneId").value = workOrderMilestone.workOrderMilestoneId.toString(); modalElement.querySelector("#milestoneEdit--workOrderMilestoneId").value = workOrderMilestone.workOrderMilestoneId.toString();
const milestoneTypeElement = modalElement.querySelector("#milestoneEdit--workOrderMilestoneTypeId"); const milestoneTypeElement = modalElement.querySelector("#milestoneEdit--workOrderMilestoneTypeId");
let milestoneTypeFound = false; let milestoneTypeFound = false;
@ -966,8 +940,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const optionElement = document.createElement("option"); const optionElement = document.createElement("option");
optionElement.value = milestoneType.workOrderMilestoneTypeId.toString(); optionElement.value = milestoneType.workOrderMilestoneTypeId.toString();
optionElement.textContent = milestoneType.workOrderMilestoneType; optionElement.textContent = milestoneType.workOrderMilestoneType;
if (milestoneType.workOrderMilestoneTypeId === if (milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId) {
workOrderMilestone.workOrderMilestoneTypeId) {
optionElement.selected = true; optionElement.selected = true;
milestoneTypeFound = true; milestoneTypeFound = true;
} }
@ -986,19 +959,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
modalElement.querySelector("#milestoneEdit--workOrderMilestoneDescription").value = workOrderMilestone.workOrderMilestoneDescription; modalElement.querySelector("#milestoneEdit--workOrderMilestoneDescription").value = workOrderMilestone.workOrderMilestoneDescription;
}, },
onshown: (modalElement, closeModalFunction) => { onshown(modalElement, closeModalFunction) {
editCloseModalFunction = closeModalFunction; editCloseModalFunction = closeModalFunction;
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
los.initializeDatePickers(modalElement); los.initializeDatePickers(modalElement);
// los.initializeTimePickers(modalElement); // los.initializeTimePickers(modalElement);
modalElement.querySelector("form").addEventListener("submit", doEdit); modalElement.querySelector("form").addEventListener("submit", doEdit);
}, },
onremoved: () => { onremoved() {
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
} }
}); });
} }
function renderMilestones() { function renderMilestones() {
var _a, _b, _c;
// Clear milestones panel // Clear milestones panel
const milestonesPanelElement = document.querySelector("#panel--milestones"); const milestonesPanelElement = document.querySelector("#panel--milestones");
const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll(".panel-block"); const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll(".panel-block");
@ -1008,8 +982,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
for (const milestone of workOrderMilestones) { for (const milestone of workOrderMilestones) {
const panelBlockElement = document.createElement("div"); const panelBlockElement = document.createElement("div");
panelBlockElement.className = "panel-block is-block container--milestone"; panelBlockElement.className = "panel-block is-block container--milestone";
panelBlockElement.dataset.workOrderMilestoneId = panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId.toString();
milestone.workOrderMilestoneId.toString();
panelBlockElement.innerHTML = panelBlockElement.innerHTML =
'<div class="columns is-mobile">' + '<div class="columns is-mobile">' +
('<div class="column is-narrow">' + ('<div class="column is-narrow">' +
@ -1032,9 +1005,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</strong><br />" "</strong><br />"
: "") + : "") +
milestone.workOrderMilestoneDateString + milestone.workOrderMilestoneDateString +
(milestone.workOrderMilestoneTime (milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") +
? " " + milestone.workOrderMilestoneTimeString
: "") +
"<br />" + "<br />" +
'<span class="is-size-7">' + '<span class="is-size-7">' +
cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") + cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") +
@ -1068,19 +1039,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</div>" + "</div>" +
"</div>") + "</div>") +
"</div>"; "</div>";
if (milestone.workOrderMilestoneCompletionDate) { (_a = panelBlockElement
panelBlockElement .querySelector(".button--reopenMilestone")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", reopenMilestone);
.querySelector(".button--reopenMilestone") (_b = panelBlockElement
.addEventListener("click", reopenMilestone); .querySelector(".button--editMilestone")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", editMilestone);
} (_c = panelBlockElement
else { .querySelector(".button--completeMilestone")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", completeMilestone);
panelBlockElement
.querySelector(".button--editMilestone")
.addEventListener("click", editMilestone);
panelBlockElement
.querySelector(".button--completeMilestone")
.addEventListener("click", completeMilestone);
}
panelBlockElement panelBlockElement
.querySelector(".button--deleteMilestone") .querySelector(".button--deleteMilestone")
.addEventListener("click", deleteMilestone); .addEventListener("click", deleteMilestone);
@ -1126,7 +1090,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
}; };
cityssm.openHtmlModal("workOrder-addMilestone", { cityssm.openHtmlModal("workOrder-addMilestone", {
onshow(modalElement) { onshow(modalElement) {
modalElement.querySelector("#milestoneAdd--workOrderId").value = workOrderId; modalElement.querySelector("#milestoneAdd--workOrderId").value =
workOrderId;
const milestoneTypeElement = modalElement.querySelector("#milestoneAdd--workOrderMilestoneTypeId"); const milestoneTypeElement = modalElement.querySelector("#milestoneAdd--workOrderMilestoneTypeId");
for (const milestoneType of exports.workOrderMilestoneTypes) { for (const milestoneType of exports.workOrderMilestoneTypes) {
const optionElement = document.createElement("option"); const optionElement = document.createElement("option");

View File

@ -3,8 +3,7 @@
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
(() => { (() => {
const los = exports.los; const los = exports.los;
const workOrderId = document.querySelector("#workOrderEdit--workOrderId") const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
.value;
const isCreate = workOrderId === ""; const isCreate = workOrderId === "";
const workOrderFormElement = document.querySelector("#form--workOrderEdit"); const workOrderFormElement = document.querySelector("#form--workOrderEdit");
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field")); los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
@ -46,8 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
workOrderId workOrderId
}, (responseJSON) => { }, (responseJSON) => {
if (responseJSON.success) { if (responseJSON.success) {
window.location.href = window.location.href = los.urlPrefix + "/workOrders/" + workOrderId;
los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
@ -83,8 +81,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
if (hasOpenMilestones) { if (hasOpenMilestones) {
bulmaJS.alert({ bulmaJS.alert({
title: "Outstanding Milestones", title: "Outstanding Milestones",
message: "You cannot close a work order with outstanding milestones." + message: `You cannot close a work order with outstanding milestones.
" Either complete the outstanding milestones, or remove them from the work order.", Either complete the outstanding milestones, or remove them from the work order.`,
contextualColorName: "warning" contextualColorName: "warning"
}); });
/* /*
@ -113,9 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
} }
}); });
document document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => {
.querySelector("#button--deleteWorkOrder")
.addEventListener("click", (clickEvent) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
bulmaJS.confirm({ bulmaJS.confirm({
title: "Delete Work Order", title: "Delete Work Order",
@ -157,7 +153,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
function completeMilestone(clickEvent) { function completeMilestone(clickEvent) {
clickEvent.preventDefault(); clickEvent.preventDefault();
const currentDateString = cityssm.dateToString(new Date()); 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) => { const workOrderMilestone = workOrderMilestones.find((currentMilestone) => {
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
}); });
@ -221,7 +218,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
function editMilestone(clickEvent) { function editMilestone(clickEvent) {
clickEvent.preventDefault(); 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) => { const workOrderMilestone = workOrderMilestones.find((currentMilestone) => {
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId; return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
}); });
@ -236,8 +234,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
}); });
}; };
cityssm.openHtmlModal("workOrder-editMilestone", { cityssm.openHtmlModal("workOrder-editMilestone", {
onshow: (modalElement) => { onshow(modalElement) {
modalElement.querySelector("#milestoneEdit--workOrderId").value = workOrderId; modalElement.querySelector("#milestoneEdit--workOrderId").value =
workOrderId;
modalElement.querySelector("#milestoneEdit--workOrderMilestoneId").value = workOrderMilestone.workOrderMilestoneId.toString(); modalElement.querySelector("#milestoneEdit--workOrderMilestoneId").value = workOrderMilestone.workOrderMilestoneId.toString();
const milestoneTypeElement = modalElement.querySelector("#milestoneEdit--workOrderMilestoneTypeId"); const milestoneTypeElement = modalElement.querySelector("#milestoneEdit--workOrderMilestoneTypeId");
let milestoneTypeFound = false; let milestoneTypeFound = false;
@ -245,8 +244,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
const optionElement = document.createElement("option"); const optionElement = document.createElement("option");
optionElement.value = milestoneType.workOrderMilestoneTypeId.toString(); optionElement.value = milestoneType.workOrderMilestoneTypeId.toString();
optionElement.textContent = milestoneType.workOrderMilestoneType; optionElement.textContent = milestoneType.workOrderMilestoneType;
if (milestoneType.workOrderMilestoneTypeId === if (milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId) {
workOrderMilestone.workOrderMilestoneTypeId) {
optionElement.selected = true; optionElement.selected = true;
milestoneTypeFound = true; milestoneTypeFound = true;
} }
@ -265,19 +263,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
modalElement.querySelector("#milestoneEdit--workOrderMilestoneDescription").value = workOrderMilestone.workOrderMilestoneDescription; modalElement.querySelector("#milestoneEdit--workOrderMilestoneDescription").value = workOrderMilestone.workOrderMilestoneDescription;
}, },
onshown: (modalElement, closeModalFunction) => { onshown(modalElement, closeModalFunction) {
editCloseModalFunction = closeModalFunction; editCloseModalFunction = closeModalFunction;
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
los.initializeDatePickers(modalElement); los.initializeDatePickers(modalElement);
// los.initializeTimePickers(modalElement); // los.initializeTimePickers(modalElement);
modalElement.querySelector("form").addEventListener("submit", doEdit); modalElement.querySelector("form").addEventListener("submit", doEdit);
}, },
onremoved: () => { onremoved() {
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
} }
}); });
} }
function renderMilestones() { function renderMilestones() {
var _a, _b, _c;
// Clear milestones panel // Clear milestones panel
const milestonesPanelElement = document.querySelector("#panel--milestones"); const milestonesPanelElement = document.querySelector("#panel--milestones");
const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll(".panel-block"); const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll(".panel-block");
@ -287,8 +286,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
for (const milestone of workOrderMilestones) { for (const milestone of workOrderMilestones) {
const panelBlockElement = document.createElement("div"); const panelBlockElement = document.createElement("div");
panelBlockElement.className = "panel-block is-block container--milestone"; panelBlockElement.className = "panel-block is-block container--milestone";
panelBlockElement.dataset.workOrderMilestoneId = panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId.toString();
milestone.workOrderMilestoneId.toString();
panelBlockElement.innerHTML = panelBlockElement.innerHTML =
'<div class="columns is-mobile">' + '<div class="columns is-mobile">' +
('<div class="column is-narrow">' + ('<div class="column is-narrow">' +
@ -311,9 +309,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</strong><br />" "</strong><br />"
: "") + : "") +
milestone.workOrderMilestoneDateString + milestone.workOrderMilestoneDateString +
(milestone.workOrderMilestoneTime (milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") +
? " " + milestone.workOrderMilestoneTimeString
: "") +
"<br />" + "<br />" +
'<span class="is-size-7">' + '<span class="is-size-7">' +
cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") + cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") +
@ -347,19 +343,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</div>" + "</div>" +
"</div>") + "</div>") +
"</div>"; "</div>";
if (milestone.workOrderMilestoneCompletionDate) { (_a = panelBlockElement
panelBlockElement .querySelector(".button--reopenMilestone")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", reopenMilestone);
.querySelector(".button--reopenMilestone") (_b = panelBlockElement
.addEventListener("click", reopenMilestone); .querySelector(".button--editMilestone")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", editMilestone);
} (_c = panelBlockElement
else { .querySelector(".button--completeMilestone")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", completeMilestone);
panelBlockElement
.querySelector(".button--editMilestone")
.addEventListener("click", editMilestone);
panelBlockElement
.querySelector(".button--completeMilestone")
.addEventListener("click", completeMilestone);
}
panelBlockElement panelBlockElement
.querySelector(".button--deleteMilestone") .querySelector(".button--deleteMilestone")
.addEventListener("click", deleteMilestone); .addEventListener("click", deleteMilestone);
@ -405,7 +394,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
}; };
cityssm.openHtmlModal("workOrder-addMilestone", { cityssm.openHtmlModal("workOrder-addMilestone", {
onshow(modalElement) { onshow(modalElement) {
modalElement.querySelector("#milestoneAdd--workOrderId").value = workOrderId; modalElement.querySelector("#milestoneAdd--workOrderId").value =
workOrderId;
const milestoneTypeElement = modalElement.querySelector("#milestoneAdd--workOrderMilestoneTypeId"); const milestoneTypeElement = modalElement.querySelector("#milestoneAdd--workOrderMilestoneTypeId");
for (const milestoneType of exports.workOrderMilestoneTypes) { for (const milestoneType of exports.workOrderMilestoneTypes) {
const optionElement = document.createElement("option"); const optionElement = document.createElement("option");

View File

@ -12,8 +12,7 @@ declare const bulmaJS: BulmaJS;
(() => { (() => {
const los = exports.los as globalTypes.LOS; const los = exports.los as globalTypes.LOS;
const workOrderId = (document.querySelector("#workOrderEdit--workOrderId") as HTMLInputElement) const workOrderId = (document.querySelector("#workOrderEdit--workOrderId") as HTMLInputElement).value;
.value;
const isCreate = workOrderId === ""; const isCreate = workOrderId === "";
@ -21,9 +20,7 @@ declare const bulmaJS: BulmaJS;
los.initializeDatePickers( los.initializeDatePickers(
( (
workOrderFormElement.querySelector( workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString") as HTMLInputElement
"#workOrderEdit--workOrderOpenDateString"
) as HTMLInputElement
).closest(".field") as HTMLElement ).closest(".field") as HTMLElement
); );
los.initializeUnlockFieldButtons(workOrderFormElement); los.initializeUnlockFieldButtons(workOrderFormElement);
@ -78,8 +75,7 @@ declare const bulmaJS: BulmaJS;
}, },
(responseJSON: { success: boolean; errorMessage?: string }) => { (responseJSON: { success: boolean; errorMessage?: string }) => {
if (responseJSON.success) { if (responseJSON.success) {
window.location.href = window.location.href = los.urlPrefix + "/workOrders/" + workOrderId;
los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Closing Work Order", title: "Error Closing Work Order",
@ -122,9 +118,8 @@ declare const bulmaJS: BulmaJS;
if (hasOpenMilestones) { if (hasOpenMilestones) {
bulmaJS.alert({ bulmaJS.alert({
title: "Outstanding Milestones", title: "Outstanding Milestones",
message: message: `You cannot close a work order with outstanding milestones.
"You cannot close a work order with outstanding milestones." + Either complete the outstanding milestones, or remove them from the work order.`,
" Either complete the outstanding milestones, or remove them from the work order.",
contextualColorName: "warning" contextualColorName: "warning"
}); });
@ -154,9 +149,7 @@ declare const bulmaJS: BulmaJS;
} }
}); });
document document.querySelector("#button--deleteWorkOrder")!.addEventListener("click", (clickEvent: Event) => {
.querySelector("#button--deleteWorkOrder")!
.addEventListener("click", (clickEvent: Event) => {
clickEvent.preventDefault(); clickEvent.preventDefault();
bulmaJS.confirm({ bulmaJS.confirm({
@ -212,11 +205,8 @@ declare const bulmaJS: BulmaJS;
const currentDateString = cityssm.dateToString(new Date()); const currentDateString = cityssm.dateToString(new Date());
const workOrderMilestoneId = Number.parseInt( const workOrderMilestoneId = Number.parseInt(
( ((clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement)
(clickEvent.currentTarget as HTMLElement).closest( .dataset.workOrderMilestoneId!,
".container--milestone"
) as HTMLElement
).dataset.workOrderMilestoneId!,
10 10
); );
@ -255,9 +245,7 @@ declare const bulmaJS: BulmaJS;
clickEvent.preventDefault(); clickEvent.preventDefault();
const workOrderMilestoneId = ( const workOrderMilestoneId = (
(clickEvent.currentTarget as HTMLElement).closest( (clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement
".container--milestone"
) as HTMLElement
).dataset.workOrderMilestoneId; ).dataset.workOrderMilestoneId;
const doReopen = () => { const doReopen = () => {
@ -287,9 +275,7 @@ declare const bulmaJS: BulmaJS;
clickEvent.preventDefault(); clickEvent.preventDefault();
const workOrderMilestoneId = ( const workOrderMilestoneId = (
(clickEvent.currentTarget as HTMLElement).closest( (clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement
".container--milestone"
) as HTMLElement
).dataset.workOrderMilestoneId; ).dataset.workOrderMilestoneId;
const doDelete = () => { const doDelete = () => {
@ -318,11 +304,8 @@ declare const bulmaJS: BulmaJS;
clickEvent.preventDefault(); clickEvent.preventDefault();
const workOrderMilestoneId = Number.parseInt( const workOrderMilestoneId = Number.parseInt(
( ((clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement)
(clickEvent.currentTarget as HTMLElement).closest( .dataset.workOrderMilestoneId!,
".container--milestone"
) as HTMLElement
).dataset.workOrderMilestoneId!,
10 10
); );
@ -352,15 +335,12 @@ declare const bulmaJS: BulmaJS;
}; };
cityssm.openHtmlModal("workOrder-editMilestone", { cityssm.openHtmlModal("workOrder-editMilestone", {
onshow: (modalElement) => { onshow(modalElement) {
( (modalElement.querySelector("#milestoneEdit--workOrderId") as HTMLInputElement).value =
modalElement.querySelector("#milestoneEdit--workOrderId") as HTMLInputElement workOrderId;
).value = workOrderId;
( (
modalElement.querySelector( modalElement.querySelector("#milestoneEdit--workOrderMilestoneId") as HTMLInputElement
"#milestoneEdit--workOrderMilestoneId"
) as HTMLInputElement
).value = workOrderMilestone.workOrderMilestoneId!.toString(); ).value = workOrderMilestone.workOrderMilestoneId!.toString();
const milestoneTypeElement = modalElement.querySelector( const milestoneTypeElement = modalElement.querySelector(
@ -376,8 +356,7 @@ declare const bulmaJS: BulmaJS;
optionElement.textContent = milestoneType.workOrderMilestoneType; optionElement.textContent = milestoneType.workOrderMilestoneType;
if ( if (
milestoneType.workOrderMilestoneTypeId === milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId
workOrderMilestone.workOrderMilestoneTypeId
) { ) {
optionElement.selected = true; optionElement.selected = true;
milestoneTypeFound = true; milestoneTypeFound = true;
@ -414,7 +393,7 @@ declare const bulmaJS: BulmaJS;
) as HTMLTextAreaElement ) as HTMLTextAreaElement
).value = workOrderMilestone.workOrderMilestoneDescription!; ).value = workOrderMilestone.workOrderMilestoneDescription!;
}, },
onshown: (modalElement, closeModalFunction) => { onshown(modalElement, closeModalFunction) {
editCloseModalFunction = closeModalFunction; editCloseModalFunction = closeModalFunction;
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
@ -423,7 +402,7 @@ declare const bulmaJS: BulmaJS;
// los.initializeTimePickers(modalElement); // los.initializeTimePickers(modalElement);
modalElement.querySelector("form")!.addEventListener("submit", doEdit); modalElement.querySelector("form")!.addEventListener("submit", doEdit);
}, },
onremoved: () => { onremoved() {
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
} }
}); });
@ -443,8 +422,7 @@ declare const bulmaJS: BulmaJS;
const panelBlockElement = document.createElement("div"); const panelBlockElement = document.createElement("div");
panelBlockElement.className = "panel-block is-block container--milestone"; panelBlockElement.className = "panel-block is-block container--milestone";
panelBlockElement.dataset.workOrderMilestoneId = panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId!.toString();
milestone.workOrderMilestoneId!.toString();
panelBlockElement.innerHTML = panelBlockElement.innerHTML =
'<div class="columns is-mobile">' + '<div class="columns is-mobile">' +
@ -468,9 +446,7 @@ declare const bulmaJS: BulmaJS;
"</strong><br />" "</strong><br />"
: "") + : "") +
milestone.workOrderMilestoneDateString + milestone.workOrderMilestoneDateString +
(milestone.workOrderMilestoneTime (milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") +
? " " + milestone.workOrderMilestoneTimeString
: "") +
"<br />" + "<br />" +
'<span class="is-size-7">' + '<span class="is-size-7">' +
cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") + cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") +
@ -505,19 +481,16 @@ declare const bulmaJS: BulmaJS;
"</div>") + "</div>") +
"</div>"; "</div>";
if (milestone.workOrderMilestoneCompletionDate) {
panelBlockElement panelBlockElement
.querySelector(".button--reopenMilestone")! .querySelector(".button--reopenMilestone")
.addEventListener("click", reopenMilestone); ?.addEventListener("click", reopenMilestone);
} else {
panelBlockElement panelBlockElement
.querySelector(".button--editMilestone")! .querySelector(".button--editMilestone")
.addEventListener("click", editMilestone); ?.addEventListener("click", editMilestone);
panelBlockElement panelBlockElement
.querySelector(".button--completeMilestone")! .querySelector(".button--completeMilestone")
.addEventListener("click", completeMilestone); ?.addEventListener("click", completeMilestone);
}
panelBlockElement panelBlockElement
.querySelector(".button--deleteMilestone")! .querySelector(".button--deleteMilestone")!
@ -574,8 +547,7 @@ declare const bulmaJS: BulmaJS;
) { ) {
bulmaJS.confirm({ bulmaJS.confirm({
title: "Milestone Date in the Past", title: "Milestone Date in the Past",
message: message: "Are you sure you want to create a milestone with a date in the past?",
"Are you sure you want to create a milestone with a date in the past?",
contextualColorName: "warning", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Create a Past Milestone", text: "Yes, Create a Past Milestone",
@ -589,9 +561,8 @@ declare const bulmaJS: BulmaJS;
cityssm.openHtmlModal("workOrder-addMilestone", { cityssm.openHtmlModal("workOrder-addMilestone", {
onshow(modalElement) { onshow(modalElement) {
( (modalElement.querySelector("#milestoneAdd--workOrderId") as HTMLInputElement).value =
modalElement.querySelector("#milestoneAdd--workOrderId") as HTMLInputElement workOrderId;
).value = workOrderId;
const milestoneTypeElement = modalElement.querySelector( const milestoneTypeElement = modalElement.querySelector(
"#milestoneAdd--workOrderMilestoneTypeId" "#milestoneAdd--workOrderMilestoneTypeId"

View File

@ -29,7 +29,8 @@ const openEditWorkOrderComment = (clickEvent) => {
} }
cityssm.openHtmlModal("workOrder-editComment", { cityssm.openHtmlModal("workOrder-editComment", {
onshow(modalElement) { onshow(modalElement) {
modalElement.querySelector("#workOrderCommentEdit--workOrderId").value = workOrderId; modalElement.querySelector("#workOrderCommentEdit--workOrderId").value =
workOrderId;
modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId").value = workOrderCommentId.toString(); modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId").value = workOrderCommentId.toString();
modalElement.querySelector("#workOrderCommentEdit--workOrderComment").value = workOrderComment.workOrderComment; modalElement.querySelector("#workOrderCommentEdit--workOrderComment").value = workOrderComment.workOrderComment;
const workOrderCommentDateStringElement = modalElement.querySelector("#workOrderCommentEdit--workOrderCommentDateString"); const workOrderCommentDateStringElement = modalElement.querySelector("#workOrderCommentEdit--workOrderCommentDateString");
@ -88,26 +89,21 @@ function deleteWorkOrderComment(clickEvent) {
function renderWorkOrderComments() { function renderWorkOrderComments() {
const containerElement = document.querySelector("#container--workOrderComments"); const containerElement = document.querySelector("#container--workOrderComments");
if (workOrderComments.length === 0) { if (workOrderComments.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no comments to display.</p>
'<p class="message-body">There are no comments to display.</p>' + </div>`;
"</div>";
return; return;
} }
const tableElement = document.createElement("table"); const tableElement = document.createElement("table");
tableElement.className = "table is-fullwidth is-striped is-hoverable"; tableElement.className = "table is-fullwidth is-striped is-hoverable";
tableElement.innerHTML = tableElement.innerHTML = `<thead><tr>
"<thead><tr>" + <th>Commentor</th>
"<th>Commentor</th>" + <th>Comment Date</th>
"<th>Comment Date</th>" + <th>Comment</th>
"<th>Comment</th>" + <th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>`;
'<th class="is-hidden-print"><span class="is-sr-only">Options</span></th>' +
"</tr></thead>" +
"<tbody></tbody>";
for (const workOrderComment of workOrderComments) { for (const workOrderComment of workOrderComments) {
const tableRowElement = document.createElement("tr"); const tableRowElement = document.createElement("tr");
tableRowElement.dataset.workOrderCommentId = tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId.toString();
workOrderComment.workOrderCommentId.toString();
tableRowElement.innerHTML = tableRowElement.innerHTML =
"<td>" + "<td>" +
cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") + cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") +
@ -132,12 +128,8 @@ function renderWorkOrderComments() {
"</button>") + "</button>") +
"</div>" + "</div>" +
"</td>"); "</td>");
tableRowElement tableRowElement.querySelector(".button--edit").addEventListener("click", openEditWorkOrderComment);
.querySelector(".button--edit") tableRowElement.querySelector(".button--delete").addEventListener("click", deleteWorkOrderComment);
.addEventListener("click", openEditWorkOrderComment);
tableRowElement
.querySelector(".button--delete")
.addEventListener("click", deleteWorkOrderComment);
tableElement.querySelector("tbody").append(tableRowElement); tableElement.querySelector("tbody").append(tableRowElement);
} }
containerElement.innerHTML = ""; containerElement.innerHTML = "";
@ -158,7 +150,8 @@ function openAddCommentModal() {
cityssm.openHtmlModal("workOrder-addComment", { cityssm.openHtmlModal("workOrder-addComment", {
onshow(modalElement) { onshow(modalElement) {
los.populateAliases(modalElement); los.populateAliases(modalElement);
modalElement.querySelector("#workOrderCommentAdd--workOrderId").value = workOrderId; modalElement.querySelector("#workOrderCommentAdd--workOrderId").value =
workOrderId;
modalElement.querySelector("form").addEventListener("submit", doAddComment); modalElement.querySelector("form").addEventListener("submit", doAddComment);
}, },
onshown(modalElement, closeModalFunction) { onshown(modalElement, closeModalFunction) {
@ -173,8 +166,6 @@ function openAddCommentModal() {
}); });
} }
if (!isCreate) { if (!isCreate) {
document document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal);
.querySelector("#workOrderComments--add")
.addEventListener("click", openAddCommentModal);
renderWorkOrderComments(); renderWorkOrderComments();
} }

View File

@ -58,19 +58,14 @@ const openEditWorkOrderComment = (clickEvent: Event) => {
cityssm.openHtmlModal("workOrder-editComment", { cityssm.openHtmlModal("workOrder-editComment", {
onshow(modalElement) { onshow(modalElement) {
(modalElement.querySelector("#workOrderCommentEdit--workOrderId") as HTMLInputElement).value =
workOrderId;
( (
modalElement.querySelector("#workOrderCommentEdit--workOrderId") as HTMLInputElement modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId") as HTMLInputElement
).value = workOrderId;
(
modalElement.querySelector(
"#workOrderCommentEdit--workOrderCommentId"
) as HTMLInputElement
).value = workOrderCommentId.toString(); ).value = workOrderCommentId.toString();
( (
modalElement.querySelector( modalElement.querySelector("#workOrderCommentEdit--workOrderComment") as HTMLInputElement
"#workOrderCommentEdit--workOrderComment"
) as HTMLInputElement
).value = workOrderComment.workOrderComment!; ).value = workOrderComment.workOrderComment!;
const workOrderCommentDateStringElement = modalElement.querySelector( const workOrderCommentDateStringElement = modalElement.querySelector(
@ -99,9 +94,7 @@ const openEditWorkOrderComment = (clickEvent: Event) => {
// los.initializeTimePickers(modalElement); // los.initializeTimePickers(modalElement);
( (
modalElement.querySelector( modalElement.querySelector("#workOrderCommentEdit--workOrderComment") as HTMLTextAreaElement
"#workOrderCommentEdit--workOrderComment"
) as HTMLTextAreaElement
).focus(); ).focus();
editFormElement = modalElement.querySelector("form")!; editFormElement = modalElement.querySelector("form")!;
@ -162,28 +155,23 @@ function renderWorkOrderComments() {
const containerElement = document.querySelector("#container--workOrderComments") as HTMLElement; const containerElement = document.querySelector("#container--workOrderComments") as HTMLElement;
if (workOrderComments.length === 0) { if (workOrderComments.length === 0) {
containerElement.innerHTML = containerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no comments to display.</p>
'<p class="message-body">There are no comments to display.</p>' + </div>`;
"</div>";
return; return;
} }
const tableElement = document.createElement("table"); const tableElement = document.createElement("table");
tableElement.className = "table is-fullwidth is-striped is-hoverable"; tableElement.className = "table is-fullwidth is-striped is-hoverable";
tableElement.innerHTML = tableElement.innerHTML = `<thead><tr>
"<thead><tr>" + <th>Commentor</th>
"<th>Commentor</th>" + <th>Comment Date</th>
"<th>Comment Date</th>" + <th>Comment</th>
"<th>Comment</th>" + <th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>`;
'<th class="is-hidden-print"><span class="is-sr-only">Options</span></th>' +
"</tr></thead>" +
"<tbody></tbody>";
for (const workOrderComment of workOrderComments) { for (const workOrderComment of workOrderComments) {
const tableRowElement = document.createElement("tr"); const tableRowElement = document.createElement("tr");
tableRowElement.dataset.workOrderCommentId = tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId!.toString();
workOrderComment.workOrderCommentId!.toString();
tableRowElement.innerHTML = tableRowElement.innerHTML =
"<td>" + "<td>" +
@ -210,13 +198,9 @@ function renderWorkOrderComments() {
"</div>" + "</div>" +
"</td>"); "</td>");
tableRowElement tableRowElement.querySelector(".button--edit")!.addEventListener("click", openEditWorkOrderComment);
.querySelector(".button--edit")!
.addEventListener("click", openEditWorkOrderComment);
tableRowElement tableRowElement.querySelector(".button--delete")!.addEventListener("click", deleteWorkOrderComment);
.querySelector(".button--delete")!
.addEventListener("click", deleteWorkOrderComment);
tableElement.querySelector("tbody")!.append(tableRowElement); tableElement.querySelector("tbody")!.append(tableRowElement);
} }
@ -234,10 +218,7 @@ function openAddCommentModal() {
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + "/workOrders/doAddWorkOrderComment", los.urlPrefix + "/workOrders/doAddWorkOrderComment",
formEvent.currentTarget, formEvent.currentTarget,
(responseJSON: { (responseJSON: { success: boolean; workOrderComments?: recordTypes.WorkOrderComment[] }) => {
success: boolean;
workOrderComments?: recordTypes.WorkOrderComment[];
}) => {
if (responseJSON.success) { if (responseJSON.success) {
workOrderComments = responseJSON.workOrderComments!; workOrderComments = responseJSON.workOrderComments!;
renderWorkOrderComments(); renderWorkOrderComments();
@ -250,18 +231,15 @@ function openAddCommentModal() {
cityssm.openHtmlModal("workOrder-addComment", { cityssm.openHtmlModal("workOrder-addComment", {
onshow(modalElement) { onshow(modalElement) {
los.populateAliases(modalElement); los.populateAliases(modalElement);
( (modalElement.querySelector("#workOrderCommentAdd--workOrderId") as HTMLInputElement).value =
modalElement.querySelector("#workOrderCommentAdd--workOrderId") as HTMLInputElement workOrderId;
).value = workOrderId;
modalElement.querySelector("form")!.addEventListener("submit", doAddComment); modalElement.querySelector("form")!.addEventListener("submit", doAddComment);
}, },
onshown(modalElement, closeModalFunction) { onshown(modalElement, closeModalFunction) {
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
addCommentCloseModalFunction = closeModalFunction; addCommentCloseModalFunction = closeModalFunction;
( (
modalElement.querySelector( modalElement.querySelector("#workOrderCommentAdd--workOrderComment") as HTMLTextAreaElement
"#workOrderCommentAdd--workOrderComment"
) as HTMLTextAreaElement
).focus(); ).focus();
}, },
onremoved() { onremoved() {
@ -272,9 +250,7 @@ function openAddCommentModal() {
} }
if (!isCreate) { if (!isCreate) {
document document.querySelector("#workOrderComments--add")!.addEventListener("click", openAddCommentModal);
.querySelector("#workOrderComments--add")!
.addEventListener("click", openAddCommentModal);
renderWorkOrderComments(); renderWorkOrderComments();
} }

View File

@ -26,8 +26,8 @@ function deleteLotOccupancy(clickEvent) {
}); });
} }
bulmaJS.confirm({ bulmaJS.confirm({
title: `Delete ${exports.aliases.occupancy} Relationship`, title: `Delete ${los.escapedAliases.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.`, 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", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Delete Relationship", text: "Yes, Delete Relationship",
@ -46,7 +46,7 @@ function addLot(lotId, callbackFunction) {
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.lot, title: "Error Adding " + los.escapedAliases.Lot,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -67,7 +67,7 @@ function addLotOccupancy(lotOccupancyId, callbackFunction) {
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.occupancy, title: "Error Adding " + los.escapedAliases.Occupancy,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -82,12 +82,13 @@ function addLotFromLotOccupancy(clickEvent) {
addLot(lotId); addLot(lotId);
} }
function renderRelatedOccupancies() { function renderRelatedOccupancies() {
var _a; var _a, _b;
const occupanciesContainerElement = document.querySelector("#container--lotOccupancies"); 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) { if (workOrderLotOccupancies.length === 0) {
occupanciesContainerElement.innerHTML = `<div class="message is-info"> occupanciesContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body">There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.</p> <p class="message-body">There are no ${los.escapedAliases.occupancies} associated with this work order.</p>
</div>`; </div>`;
return; return;
} }
@ -105,8 +106,7 @@ function renderRelatedOccupancies() {
const rowElement = document.createElement("tr"); const rowElement = document.createElement("tr");
rowElement.className = "container--lotOccupancy"; rowElement.className = "container--lotOccupancy";
rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString(); rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString();
const isActive = !(lotOccupancy.occupancyEndDate && const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString < currentDateString);
lotOccupancy.occupancyEndDateString < currentDateString);
const hasLotRecord = lotOccupancy.lotId && const hasLotRecord = lotOccupancy.lotId &&
workOrderLots.some((lot) => { workOrderLots.some((lot) => {
return lotOccupancy.lotId === lot.lotId; return lotOccupancy.lotId === lot.lotId;
@ -114,12 +114,8 @@ function renderRelatedOccupancies() {
rowElement.innerHTML = rowElement.innerHTML =
'<td class="is-width-1 has-text-centered">' + '<td class="is-width-1 has-text-centered">' +
(isActive (isActive
? '<i class="fas fa-play" title="Current ' + ? '<i class="fas fa-play" title="Current ' + los.escapedAliases.Occupancy + '"></i>'
cityssm.escapeHTML(exports.aliases.occupancy) + : '<i class="fas fa-stop" title="Previous ' + los.escapedAliases.Occupancy + '"></i>') +
'"></i>'
: '<i class="fas fa-stop" title="Previous ' +
cityssm.escapeHTML(exports.aliases.occupancy) +
'"></i>') +
"</td>" + "</td>" +
("<td>" + ("<td>" +
'<a class="has-text-weight-bold" href="' + '<a class="has-text-weight-bold" href="' +
@ -140,17 +136,17 @@ function renderRelatedOccupancies() {
lotOccupancy.lotId + lotOccupancy.lotId +
'"' + '"' +
' data-tooltip="Add ' + ' data-tooltip="Add ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
'"' + '"' +
' aria-label="Add ' + ' aria-label="Add ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
'" type="button">' + '" type="button">' +
'<i class="fas fa-plus" aria-hidden="true"></i>' + '<i class="fas fa-plus" aria-hidden="true"></i>' +
"</button>") + "</button>") +
"</td>"); "</td>");
} }
else { else {
rowElement.insertAdjacentHTML("beforeend", `<td><span class="has-text-grey">(No ${exports.aliases.lot})</span></td>`); rowElement.insertAdjacentHTML("beforeend", `<td><span class="has-text-grey">(No ${los.escapedAliases.Lot})</span></td>`);
} }
rowElement.insertAdjacentHTML("beforeend", "<td>" + rowElement.insertAdjacentHTML("beforeend", "<td>" +
lotOccupancy.occupancyStartDateString + lotOccupancy.occupancyStartDateString +
@ -162,9 +158,7 @@ function renderRelatedOccupancies() {
"</td>") + "</td>") +
("<td>" + ("<td>" +
(lotOccupancy.lotOccupancyOccupants.length === 0 (lotOccupancy.lotOccupancyOccupants.length === 0
? '<span class="has-text-grey">(No ' + ? '<span class="has-text-grey">(No ' + los.escapedAliases.Occupants + ")</span>"
cityssm.escapeHTML(exports.aliases.occupants) +
")</span>"
: (_a = lotOccupancy.lotOccupancyOccupants) === null || _a === void 0 ? void 0 : _a.reduce((soFar, occupant) => { : (_a = lotOccupancy.lotOccupancyOccupants) === null || _a === void 0 ? void 0 : _a.reduce((soFar, occupant) => {
return (soFar + return (soFar +
'<span class="has-tooltip-left" data-tooltip="' + '<span class="has-tooltip-left" data-tooltip="' +
@ -173,7 +167,7 @@ function renderRelatedOccupancies() {
'<i class="fas fa-fw fa-' + '<i class="fas fa-fw fa-' +
cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") + cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") +
'" aria-label="' + '" aria-label="' +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
'"></i> ' + '"></i> ' +
cityssm.escapeHTML(occupant.occupantName) + cityssm.escapeHTML(occupant.occupantName) +
"</span><br />"); "</span><br />");
@ -184,11 +178,7 @@ function renderRelatedOccupancies() {
'<i class="fas fa-trash" aria-hidden="true"></i>' + '<i class="fas fa-trash" aria-hidden="true"></i>' +
"</button>" + "</button>" +
"</td>")); "</td>"));
if (lotOccupancy.lotId && !hasLotRecord) { (_b = rowElement.querySelector(".button--addLot")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", addLotFromLotOccupancy);
rowElement
.querySelector(".button--addLot")
.addEventListener("click", addLotFromLotOccupancy);
}
rowElement rowElement
.querySelector(".button--deleteLotOccupancy") .querySelector(".button--deleteLotOccupancy")
.addEventListener("click", deleteLotOccupancy); .addEventListener("click", deleteLotOccupancy);
@ -196,8 +186,7 @@ function renderRelatedOccupancies() {
} }
} }
function openEditLotStatus(clickEvent) { function openEditLotStatus(clickEvent) {
const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot") const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot").dataset.lotId, 10);
.dataset.lotId, 10);
const lot = workOrderLots.find((possibleLot) => { const lot = workOrderLots.find((possibleLot) => {
return possibleLot.lotId === lotId; return possibleLot.lotId === lotId;
}); });
@ -224,8 +213,7 @@ function openEditLotStatus(clickEvent) {
los.populateAliases(modalElement); los.populateAliases(modalElement);
modalElement.querySelector("#lotStatusEdit--lotId").value = modalElement.querySelector("#lotStatusEdit--lotId").value =
lotId.toString(); lotId.toString();
modalElement.querySelector("#lotStatusEdit--lotName").value = modalElement.querySelector("#lotStatusEdit--lotName").value = lot.lotName;
lot.lotName;
const lotStatusElement = modalElement.querySelector("#lotStatusEdit--lotStatusId"); const lotStatusElement = modalElement.querySelector("#lotStatusEdit--lotStatusId");
let lotStatusFound = false; let lotStatusFound = false;
for (const lotStatus of exports.lotStatuses) { for (const lotStatus of exports.lotStatuses) {
@ -248,7 +236,7 @@ function openEditLotStatus(clickEvent) {
} }
modalElement modalElement
.querySelector("form") .querySelector("form")
.insertAdjacentHTML("beforeend", '<input name="workOrderId" type="hidden" value="' + workOrderId + '" />'); .insertAdjacentHTML("beforeend", `<input name="workOrderId" type="hidden" value="${workOrderId}" />`);
}, },
onshown(modalElement, closeModalFunction) { onshown(modalElement, closeModalFunction) {
editCloseModalFunction = closeModalFunction; editCloseModalFunction = closeModalFunction;
@ -261,7 +249,8 @@ function openEditLotStatus(clickEvent) {
}); });
} }
function deleteLot(clickEvent) { function deleteLot(clickEvent) {
const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId; const lotId = clickEvent.currentTarget.closest(".container--lot")
.dataset.lotId;
function doDelete() { function doDelete() {
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", { cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", {
workOrderId, workOrderId,
@ -339,9 +328,7 @@ function renderRelatedLots() {
'<i class="fas fa-trash" aria-hidden="true"></i>' + '<i class="fas fa-trash" aria-hidden="true"></i>' +
"</button>" + "</button>" +
"</td>"); "</td>");
rowElement rowElement.querySelector(".button--editLotStatus").addEventListener("click", openEditLotStatus);
.querySelector(".button--editLotStatus")
.addEventListener("click", openEditLotStatus);
rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot); rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot);
lotsContainerElement.querySelector("tbody").append(rowElement); lotsContainerElement.querySelector("tbody").append(rowElement);
} }
@ -370,10 +357,9 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", ()
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML("Searching..."); searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => { cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => {
if (responseJSON.lotOccupancies.length === 0) { if (responseJSON.lotOccupancies.length === 0) {
searchResultsContainerElement.innerHTML = searchResultsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no records that meet the search criteria.</p>
'<p class="message-body">There are no records that meet the search criteria.</p>' + </div>`;
"</div>";
return; return;
} }
searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable"> searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable">
@ -421,8 +407,7 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", ()
")</span>" ")</span>"
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) + : cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
(lotOccupancy.lotOccupancyOccupants.length > 1 (lotOccupancy.lotOccupancyOccupants.length > 1
? " plus " + ? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1)
(lotOccupancy.lotOccupancyOccupants.length - 1)
: "")) + : "")) +
"</td>")); "</td>"));
rowElement rowElement
@ -437,7 +422,8 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", ()
los.populateAliases(modalElement); los.populateAliases(modalElement);
searchFormElement = modalElement.querySelector("form"); searchFormElement = modalElement.querySelector("form");
searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotOccupancyAdd"); 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; modalElement.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value = document.querySelector("#workOrderEdit--workOrderOpenDateString").value;
doSearch(); doSearch();
}, },
@ -505,9 +491,7 @@ document.querySelector("#button--addLot").addEventListener("click", () => {
"</td>" + "</td>" +
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") + ("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>"); ("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>");
rowElement rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot);
.querySelector(".button--addLot")
.addEventListener("click", doAddLot);
searchResultsContainerElement.querySelector("tbody").append(rowElement); searchResultsContainerElement.querySelector("tbody").append(rowElement);
} }
}); });

View File

@ -51,8 +51,8 @@ function deleteLotOccupancy(clickEvent: Event): void {
} }
bulmaJS.confirm({ bulmaJS.confirm({
title: `Delete ${exports.aliases.occupancy} Relationship`, title: `Delete ${los.escapedAliases.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.`, 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", contextualColorName: "warning",
okButton: { okButton: {
text: "Yes, Delete Relationship", text: "Yes, Delete Relationship",
@ -68,17 +68,13 @@ function addLot(lotId: number | string, callbackFunction?: (success?: boolean) =
workOrderId, workOrderId,
lotId lotId
}, },
(responseJSON: { (responseJSON: { success: boolean; errorMessage?: string; workOrderLots?: recordTypes.Lot[] }) => {
success: boolean;
errorMessage?: string;
workOrderLots?: recordTypes.Lot[];
}) => {
if (responseJSON.success) { if (responseJSON.success) {
workOrderLots = responseJSON.workOrderLots!; workOrderLots = responseJSON.workOrderLots!;
renderRelatedLotsAndOccupancies(); renderRelatedLotsAndOccupancies();
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.lot, title: "Error Adding " + los.escapedAliases.Lot,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -111,7 +107,7 @@ function addLotOccupancy(
renderRelatedLotsAndOccupancies(); renderRelatedLotsAndOccupancies();
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding " + exports.aliases.occupancy, title: "Error Adding " + los.escapedAliases.Occupancy,
message: responseJSON.errorMessage || "", message: responseJSON.errorMessage || "",
contextualColorName: "danger" contextualColorName: "danger"
}); });
@ -130,17 +126,14 @@ function addLotFromLotOccupancy(clickEvent: Event): void {
} }
function renderRelatedOccupancies(): void { function renderRelatedOccupancies(): void {
const occupanciesContainerElement = document.querySelector( const occupanciesContainerElement = document.querySelector("#container--lotOccupancies") as HTMLElement;
"#container--lotOccupancies"
) as HTMLElement;
( (document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag") as HTMLElement).textContent =
document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag") as HTMLElement workOrderLotOccupancies.length.toString();
).textContent = workOrderLotOccupancies.length.toString();
if (workOrderLotOccupancies.length === 0) { if (workOrderLotOccupancies.length === 0) {
occupanciesContainerElement.innerHTML = `<div class="message is-info"> occupanciesContainerElement.innerHTML = `<div class="message is-info">
<p class="message-body">There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.</p> <p class="message-body">There are no ${los.escapedAliases.occupancies} associated with this work order.</p>
</div>`; </div>`;
return; return;
@ -164,8 +157,7 @@ function renderRelatedOccupancies(): void {
rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId!.toString(); rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId!.toString();
const isActive = !( const isActive = !(
lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString! < currentDateString
lotOccupancy.occupancyEndDateString! < currentDateString
); );
const hasLotRecord = const hasLotRecord =
@ -177,12 +169,8 @@ function renderRelatedOccupancies(): void {
rowElement.innerHTML = rowElement.innerHTML =
'<td class="is-width-1 has-text-centered">' + '<td class="is-width-1 has-text-centered">' +
(isActive (isActive
? '<i class="fas fa-play" title="Current ' + ? '<i class="fas fa-play" title="Current ' + los.escapedAliases.Occupancy + '"></i>'
cityssm.escapeHTML(exports.aliases.occupancy) + : '<i class="fas fa-stop" title="Previous ' + los.escapedAliases.Occupancy + '"></i>') +
'"></i>'
: '<i class="fas fa-stop" title="Previous ' +
cityssm.escapeHTML(exports.aliases.occupancy) +
'"></i>') +
"</td>" + "</td>" +
("<td>" + ("<td>" +
'<a class="has-text-weight-bold" href="' + '<a class="has-text-weight-bold" href="' +
@ -206,10 +194,10 @@ function renderRelatedOccupancies(): void {
lotOccupancy.lotId + lotOccupancy.lotId +
'"' + '"' +
' data-tooltip="Add ' + ' data-tooltip="Add ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
'"' + '"' +
' aria-label="Add ' + ' aria-label="Add ' +
cityssm.escapeHTML(exports.aliases.lot) + los.escapedAliases.Lot +
'" type="button">' + '" type="button">' +
'<i class="fas fa-plus" aria-hidden="true"></i>' + '<i class="fas fa-plus" aria-hidden="true"></i>' +
"</button>") + "</button>") +
@ -218,7 +206,7 @@ function renderRelatedOccupancies(): void {
} else { } else {
rowElement.insertAdjacentHTML( rowElement.insertAdjacentHTML(
"beforeend", "beforeend",
`<td><span class="has-text-grey">(No ${exports.aliases.lot})</span></td>` `<td><span class="has-text-grey">(No ${los.escapedAliases.Lot})</span></td>`
); );
} }
@ -234,9 +222,7 @@ function renderRelatedOccupancies(): void {
"</td>") + "</td>") +
("<td>" + ("<td>" +
(lotOccupancy.lotOccupancyOccupants!.length === 0 (lotOccupancy.lotOccupancyOccupants!.length === 0
? '<span class="has-text-grey">(No ' + ? '<span class="has-text-grey">(No ' + los.escapedAliases.Occupants + ")</span>"
cityssm.escapeHTML(exports.aliases.occupants) +
")</span>"
: lotOccupancy.lotOccupancyOccupants?.reduce((soFar, occupant) => { : lotOccupancy.lotOccupancyOccupants?.reduce((soFar, occupant) => {
return ( return (
soFar + soFar +
@ -246,7 +232,7 @@ function renderRelatedOccupancies(): void {
'<i class="fas fa-fw fa-' + '<i class="fas fa-fw fa-' +
cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") + cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") +
'" aria-label="' + '" aria-label="' +
cityssm.escapeHTML(exports.aliases.occupant) + los.escapedAliases.Occupant +
'"></i> ' + '"></i> ' +
cityssm.escapeHTML(occupant.occupantName!) + cityssm.escapeHTML(occupant.occupantName!) +
"</span><br />" "</span><br />"
@ -260,11 +246,7 @@ function renderRelatedOccupancies(): void {
"</td>") "</td>")
); );
if (lotOccupancy.lotId && !hasLotRecord) { rowElement.querySelector(".button--addLot")?.addEventListener("click", addLotFromLotOccupancy);
rowElement
.querySelector(".button--addLot")!
.addEventListener("click", addLotFromLotOccupancy);
}
rowElement rowElement
.querySelector(".button--deleteLotOccupancy")! .querySelector(".button--deleteLotOccupancy")!
@ -276,8 +258,7 @@ function renderRelatedOccupancies(): void {
function openEditLotStatus(clickEvent: Event): void { function openEditLotStatus(clickEvent: Event): void {
const lotId = Number.parseInt( const lotId = Number.parseInt(
((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement) ((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement).dataset.lotId!,
.dataset.lotId!,
10 10
); );
@ -320,8 +301,7 @@ function openEditLotStatus(clickEvent: Event): void {
(modalElement.querySelector("#lotStatusEdit--lotId") as HTMLInputElement).value = (modalElement.querySelector("#lotStatusEdit--lotId") as HTMLInputElement).value =
lotId.toString(); lotId.toString();
(modalElement.querySelector("#lotStatusEdit--lotName") as HTMLInputElement).value = (modalElement.querySelector("#lotStatusEdit--lotName") as HTMLInputElement).value = lot.lotName!;
lot.lotName!;
const lotStatusElement = modalElement.querySelector( const lotStatusElement = modalElement.querySelector(
"#lotStatusEdit--lotStatusId" "#lotStatusEdit--lotStatusId"
@ -356,7 +336,7 @@ function openEditLotStatus(clickEvent: Event): void {
.querySelector("form")! .querySelector("form")!
.insertAdjacentHTML( .insertAdjacentHTML(
"beforeend", "beforeend",
'<input name="workOrderId" type="hidden" value="' + workOrderId + '" />' `<input name="workOrderId" type="hidden" value="${workOrderId}" />`
); );
}, },
onshown(modalElement, closeModalFunction) { onshown(modalElement, closeModalFunction) {
@ -373,9 +353,8 @@ function openEditLotStatus(clickEvent: Event): void {
} }
function deleteLot(clickEvent: Event): void { function deleteLot(clickEvent: Event): void {
const lotId = ( const lotId = ((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement)
(clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement .dataset.lotId;
).dataset.lotId;
function doDelete(): void { function doDelete(): void {
cityssm.postJSON( cityssm.postJSON(
@ -471,9 +450,7 @@ function renderRelatedLots(): void {
"</button>" + "</button>" +
"</td>"); "</td>");
rowElement rowElement.querySelector(".button--editLotStatus")!.addEventListener("click", openEditLotStatus);
.querySelector(".button--editLotStatus")!
.addEventListener("click", openEditLotStatus);
rowElement.querySelector(".button--deleteLot")!.addEventListener("click", deleteLot); rowElement.querySelector(".button--deleteLot")!.addEventListener("click", deleteLot);
@ -516,10 +493,9 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", ()
searchFormElement, searchFormElement,
(responseJSON: { lotOccupancies: recordTypes.LotOccupancy[] }) => { (responseJSON: { lotOccupancies: recordTypes.LotOccupancy[] }) => {
if (responseJSON.lotOccupancies.length === 0) { if (responseJSON.lotOccupancies.length === 0) {
searchResultsContainerElement.innerHTML = searchResultsContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no records that meet the search criteria.</p>
'<p class="message-body">There are no records that meet the search criteria.</p>' + </div>`;
"</div>";
return; return;
} }
@ -582,8 +558,7 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", ()
lotOccupancy.lotOccupancyOccupants![0].occupantName! lotOccupancy.lotOccupancyOccupants![0].occupantName!
) + ) +
(lotOccupancy.lotOccupancyOccupants!.length > 1 (lotOccupancy.lotOccupancyOccupants!.length > 1
? " plus " + ? " plus " + (lotOccupancy.lotOccupancyOccupants!.length - 1)
(lotOccupancy.lotOccupancyOccupants!.length - 1)
: "")) + : "")) +
"</td>") "</td>")
); );
@ -608,20 +583,15 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", ()
"#resultsContainer--lotOccupancyAdd" "#resultsContainer--lotOccupancyAdd"
) as HTMLElement; ) as HTMLElement;
( (modalElement.querySelector("#lotOccupancySearch--notWorkOrderId") as HTMLInputElement).value =
modalElement.querySelector( workOrderId;
"#lotOccupancySearch--notWorkOrderId"
) as HTMLInputElement
).value = workOrderId;
( (
modalElement.querySelector( modalElement.querySelector(
"#lotOccupancySearch--occupancyEffectiveDateString" "#lotOccupancySearch--occupancyEffectiveDateString"
) as HTMLInputElement ) as HTMLInputElement
).value = ( ).value = (
document.querySelector( document.querySelector("#workOrderEdit--workOrderOpenDateString") as HTMLInputElement
"#workOrderEdit--workOrderOpenDateString"
) as HTMLInputElement
).value; ).value;
doSearch(); doSearch();
@ -633,9 +603,10 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", ()
modalElement.querySelector("#lotOccupancySearch--occupantName") as HTMLInputElement modalElement.querySelector("#lotOccupancySearch--occupantName") as HTMLInputElement
).addEventListener("change", doSearch); ).addEventListener("change", doSearch);
( (modalElement.querySelector("#lotOccupancySearch--lotName") as HTMLInputElement).addEventListener(
modalElement.querySelector("#lotOccupancySearch--lotName") as HTMLInputElement "change",
).addEventListener("change", doSearch); doSearch
);
searchFormElement.addEventListener("submit", doSearch); searchFormElement.addEventListener("submit", doSearch);
}, },
@ -712,9 +683,7 @@ document.querySelector("#button--addLot")!.addEventListener("click", () => {
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") + ("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>"); ("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>");
rowElement rowElement.querySelector(".button--addLot")!.addEventListener("click", doAddLot);
.querySelector(".button--addLot")!
.addEventListener("click", doAddLot);
searchResultsContainerElement.querySelector("tbody")!.append(rowElement); searchResultsContainerElement.querySelector("tbody")!.append(rowElement);
} }
@ -751,13 +720,15 @@ document.querySelector("#button--addLot")!.addEventListener("click", () => {
onshown(modalElement) { onshown(modalElement) {
bulmaJS.toggleHtmlClipped(); bulmaJS.toggleHtmlClipped();
( (modalElement.querySelector("#lotSearch--lotName") as HTMLInputElement).addEventListener(
modalElement.querySelector("#lotSearch--lotName") as HTMLInputElement "change",
).addEventListener("change", doSearch); doSearch
);
( (modalElement.querySelector("#lotSearch--lotStatusId") as HTMLSelectElement).addEventListener(
modalElement.querySelector("#lotSearch--lotStatusId") as HTMLSelectElement "change",
).addEventListener("change", doSearch); doSearch
);
searchFormElement.addEventListener("submit", doSearch); searchFormElement.addEventListener("submit", doSearch);
}, },

View File

@ -9,10 +9,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
const milestoneCalendarContainerElement = document.querySelector("#container--milestoneCalendar"); const milestoneCalendarContainerElement = document.querySelector("#container--milestoneCalendar");
function renderMilestones(workOrderMilestones) { function renderMilestones(workOrderMilestones) {
if (workOrderMilestones.length === 0) { if (workOrderMilestones.length === 0) {
milestoneCalendarContainerElement.innerHTML = milestoneCalendarContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no milestones that meet the search criteria.</p>
'<p class="message-body">There are no milestones that meet the search criteria.</p>' + </div>`;
"</div>";
return; return;
} }
milestoneCalendarContainerElement.innerHTML = ""; milestoneCalendarContainerElement.innerHTML = "";
@ -26,8 +25,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
currentPanelElement = document.createElement("div"); currentPanelElement = document.createElement("div");
currentPanelElement.className = "panel"; currentPanelElement.className = "panel";
currentPanelElement.innerHTML = currentPanelElement.innerHTML = `<h2 class="panel-heading">${milestone.workOrderMilestoneDateString}</h2>`;
'<h2 class="panel-heading">' + milestone.workOrderMilestoneDateString + "</h2>";
currentPanelDateString = milestone.workOrderMilestoneDateString; currentPanelDateString = milestone.workOrderMilestoneDateString;
} }
const panelBlockElement = document.createElement("div"); const panelBlockElement = document.createElement("div");
@ -110,8 +108,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
if (event) { if (event) {
event.preventDefault(); event.preventDefault();
} }
milestoneCalendarContainerElement.innerHTML = milestoneCalendarContainerElement.innerHTML = los.getLoadingParagraphHTML("Loading Milestones...");
los.getLoadingParagraphHTML("Loading Milestones...");
cityssm.postJSON(los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => { cityssm.postJSON(los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => {
renderMilestones(responseJSON.workOrderMilestones); renderMilestones(responseJSON.workOrderMilestones);
}); });

View File

@ -27,10 +27,9 @@ declare const cityssm: cityssmGlobal;
function renderMilestones(workOrderMilestones: recordTypes.WorkOrderMilestone[]) { function renderMilestones(workOrderMilestones: recordTypes.WorkOrderMilestone[]) {
if (workOrderMilestones.length === 0) { if (workOrderMilestones.length === 0) {
milestoneCalendarContainerElement.innerHTML = milestoneCalendarContainerElement.innerHTML = `<div class="message is-info">
'<div class="message is-info">' + <p class="message-body">There are no milestones that meet the search criteria.</p>
'<p class="message-body">There are no milestones that meet the search criteria.</p>' + </div>`;
"</div>";
return; return;
} }
@ -50,8 +49,7 @@ declare const cityssm: cityssmGlobal;
currentPanelElement = document.createElement("div"); currentPanelElement = document.createElement("div");
currentPanelElement.className = "panel"; currentPanelElement.className = "panel";
currentPanelElement.innerHTML = currentPanelElement.innerHTML = `<h2 class="panel-heading">${milestone.workOrderMilestoneDateString}</h2>`;
'<h2 class="panel-heading">' + milestone.workOrderMilestoneDateString + "</h2>";
currentPanelDateString = milestone.workOrderMilestoneDateString!; currentPanelDateString = milestone.workOrderMilestoneDateString!;
} }
@ -148,8 +146,7 @@ declare const cityssm: cityssmGlobal;
event.preventDefault(); event.preventDefault();
} }
milestoneCalendarContainerElement.innerHTML = milestoneCalendarContainerElement.innerHTML = los.getLoadingParagraphHTML("Loading Milestones...");
los.getLoadingParagraphHTML("Loading Milestones...");
cityssm.postJSON( cityssm.postJSON(
los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", los.urlPrefix + "/workOrders/doGetWorkOrderMilestones",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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='<div class="message is-info"><p class="message-body">There are no '+e.escapedAliases.lots+" that meet the search criteria.</p></div>");const o=document.createElement("tbody");for(const s of t.lots)o.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName||"")+'</a></td><td><a href="'+e.urlPrefix+"/maps/"+s.mapId+'">'+(s.mapName?cityssm.escapeHTML(s.mapName):'<span class="has-text-grey">(No Name)</span>')+"</a></td><td>"+cityssm.escapeHTML(s.lotType||"")+"</td><td>"+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus||""):'<span class="has-text-grey">(No Status)</span>')+"<br />"+(s.lotOccupancyCount>0?'<span class="is-size-7">Currently Occupied</span>':"")+"</td></tr>");s.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">\n <thead><tr>\n <th>${e.escapedAliases.Lot}</th>\n <th>${e.escapedAliases.Map}</th>\n <th>${e.escapedAliases.Lot} Type</th>\n <th>Status</th>\n </tr></thead>\n <table>`,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()})(); "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=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.lots} that meet the search criteria.</p>\n </div>`);const o=document.createElement("tbody");for(const s of t.lots)o.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName||"")+'</a></td><td><a href="'+e.urlPrefix+"/maps/"+s.mapId+'">'+(s.mapName?cityssm.escapeHTML(s.mapName):'<span class="has-text-grey">(No Name)</span>')+"</a></td><td>"+cityssm.escapeHTML(s.lotType||"")+"</td><td>"+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus||""):'<span class="has-text-grey">(No Status)</span>')+"<br />"+(s.lotOccupancyCount>0?'<span class="is-size-7">Currently Occupied</span>':"")+"</td></tr>");s.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">\n <thead><tr>\n <th>${e.escapedAliases.Lot}</th>\n <th>${e.escapedAliases.Map}</th>\n <th>${e.escapedAliases.Lot} Type</th>\n <th>Status</th>\n </tr></thead>\n <table>`,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()})();

View File

@ -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",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/maps/"+a.mapId+'">'+cityssm.escapeHTML(a.mapName||"(No Name)")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(a.mapDescription||"")+"</span></td><td>"+(a.mapAddress1?cityssm.escapeHTML(a.mapAddress1)+"<br />":"")+(a.mapAddress2?cityssm.escapeHTML(a.mapAddress2)+"<br />":"")+(a.mapCity||a.mapProvince?cityssm.escapeHTML(a.mapCity||"")+", "+cityssm.escapeHTML(a.mapProvince||"")+"<br />":"")+(a.mapPostalCode?cityssm.escapeHTML(a.mapPostalCode):"")+"</td><td>"+cityssm.escapeHTML(a.mapPhoneNumber||"")+'</td><td class="has-text-centered">'+(a.mapLatitude&&a.mapLongitude?'<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>':"")+'</td><td class="has-text-centered">'+(a.mapSVG?'<span data-tooltip="Has Image"><i class="fas fa-image" aria-label="Has Image"></i></span>':"")+'</td><td class="has-text-right"><a href="'+e.urlPrefix+"/lots?mapId="+a.mapId+'">'+a.lotCount+"</a></td></tr>"))}if(t.innerHTML="",0===r)t.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.maps} that meet the search criteria.</p>\n </div>`;else{const s=document.createElement("table");s.className="table is-fullwidth is-striped is-hoverable has-sticky-header",s.innerHTML=`<thead><tr>\n <th>${e.escapedAliases.Map}</th>\n <th>Address</th>\n <th>Phone Number</th>\n <th class="has-text-centered">Coordinates</th>\n <th class="has-text-centered">Image</th>\n <th class="has-text-right">${e.escapedAliases.Lot} Count</th>\n </tr></thead>`,s.append(i),t.append(s)}}a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})(); "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=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",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/maps/"+a.mapId+'">'+cityssm.escapeHTML(a.mapName||"(No Name)")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(a.mapDescription||"")+"</span></td><td>"+(a.mapAddress1?cityssm.escapeHTML(a.mapAddress1)+"<br />":"")+(a.mapAddress2?cityssm.escapeHTML(a.mapAddress2)+"<br />":"")+(a.mapCity||a.mapProvince?cityssm.escapeHTML(a.mapCity||"")+", "+cityssm.escapeHTML(a.mapProvince||"")+"<br />":"")+(a.mapPostalCode?cityssm.escapeHTML(a.mapPostalCode):"")+"</td><td>"+cityssm.escapeHTML(a.mapPhoneNumber||"")+'</td><td class="has-text-centered">'+(a.mapLatitude&&a.mapLongitude?'<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>':"")+'</td><td class="has-text-centered">'+(a.mapSVG?'<span data-tooltip="Has Image"><i class="fas fa-image" aria-label="Has Image"></i></span>':"")+'</td><td class="has-text-right"><a href="'+e.urlPrefix+"/lots?mapId="+a.mapId+'">'+a.lotCount+"</a></td></tr>"))}if(t.innerHTML="",0===r)t.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.maps} that meet the search criteria.</p>\n </div>`;else{const s=document.createElement("table");s.className="table is-fullwidth is-striped is-hoverable has-sticky-header",s.innerHTML=`<thead><tr>\n <th>${e.escapedAliases.Map}</th>\n <th>Address</th>\n <th>Phone Number</th>\n <th class="has-text-centered">Coordinates</th>\n <th class="has-text-centered">Image</th>\n <th class="has-text-right">${e.escapedAliases.Lot} Count</th>\n </tr></thead>`,s.append(i),t.append(s)}}a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})();

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
"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='<div class="message is-info"><p class="message-body">There are no milestones that meet the search criteria.</p></div>');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='<h2 class="panel-heading">'+o.workOrderMilestoneDateString+"</h2>",i=o.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!o.workOrderMilestoneCompletionDate&&o.workOrderMilestoneDateString<r&&s.classList.add("has-background-warning-light");let n="";for(const s of o.workOrderLots)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(s.mapName||"")+'"><i class="fas fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(s.lotName||"")+"</span><br />";for(const s of o.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(r.lotOccupantType||"")+'"><i class="fas fa-user" aria-label="'+e.escapedAliases.Occupancy+'"></i> '+cityssm.escapeHTML(r.occupantName||"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(o.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===o.workOrderMilestoneTime?"":o.workOrderMilestoneTimeString+"<br />")+(o.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(o.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(o.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(o.workOrderNumber||"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.urlPrefix+"/workOrders/"+o.workOrderId+'">'+cityssm.escapeHTML(o.workOrderNumber||"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(o.workOrderDescription||"")+'</span></div><div class="column is-size-7">'+n+"</div></div>",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()})(); "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='<div class="message is-info">\n <p class="message-body">There are no milestones that meet the search criteria.</p>\n </div>');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=`<h2 class="panel-heading">${o.workOrderMilestoneDateString}</h2>`,i=o.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!o.workOrderMilestoneCompletionDate&&o.workOrderMilestoneDateString<r&&s.classList.add("has-background-warning-light");let n="";for(const s of o.workOrderLots)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(s.mapName||"")+'"><i class="fas fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(s.lotName||"")+"</span><br />";for(const s of o.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(r.lotOccupantType||"")+'"><i class="fas fa-user" aria-label="'+e.escapedAliases.Occupancy+'"></i> '+cityssm.escapeHTML(r.occupantName||"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(o.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===o.workOrderMilestoneTime?"":o.workOrderMilestoneTimeString+"<br />")+(o.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(o.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(o.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(o.workOrderNumber||"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.urlPrefix+"/workOrders/"+o.workOrderId+'">'+cityssm.escapeHTML(o.workOrderNumber||"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(o.workOrderDescription||"")+'</span></div><div class="column is-size-7">'+n+"</div></div>",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()})();