refactoring
parent
d73f0811db
commit
41e453e180
|
|
@ -43,17 +43,14 @@ declare const bulmaJS: BulmaJS;
|
|||
);
|
||||
};
|
||||
|
||||
(document.querySelector("#button--cleanupDatabase") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
bulmaJS.confirm({
|
||||
title: "Cleanup Database",
|
||||
message: "Are you sure you want to cleanup up the database?",
|
||||
okButton: {
|
||||
text: "Yes, Cleanup Database",
|
||||
callbackFunction: doCleanup
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
document.querySelector("#button--cleanupDatabase")!.addEventListener("click", () => {
|
||||
bulmaJS.confirm({
|
||||
title: "Cleanup Database",
|
||||
message: "Are you sure you want to cleanup up the database?",
|
||||
okButton: {
|
||||
text: "Yes, Cleanup Database",
|
||||
callbackFunction: doCleanup
|
||||
}
|
||||
});
|
||||
});
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -225,7 +225,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||
updateMaximumLengthMin();
|
||||
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||
modalElement.querySelector("#button--deleteOccupancyTypeField").addEventListener("click", confirmDoDelete);
|
||||
modalElement
|
||||
.querySelector("#button--deleteOccupancyTypeField")
|
||||
.addEventListener("click", confirmDoDelete);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -291,7 +293,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
"</div>" +
|
||||
"</div>";
|
||||
panelBlockElement.querySelector(".button--editOccupancyTypeField").addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||
panelBlockElement
|
||||
.querySelector(".button--editOccupancyTypeField")
|
||||
.addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||
panelBlockElement.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click", moveOccupancyTypeFieldUp);
|
||||
panelBlockElement.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click", moveOccupancyTypeFieldDown);
|
||||
panelElement.append(panelBlockElement);
|
||||
|
|
@ -418,7 +422,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>";
|
||||
panelBlockElement.querySelector(".button--moveOccupancyTypePrintUp").addEventListener("click", moveOccupancyTypePrintUp);
|
||||
panelBlockElement.querySelector(".button--moveOccupancyTypePrintDown").addEventListener("click", moveOccupancyTypePrintDown);
|
||||
panelBlockElement.querySelector(".button--deleteOccupancyTypePrint").addEventListener("click", deleteOccupancyTypePrint);
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteOccupancyTypePrint")
|
||||
.addEventListener("click", deleteOccupancyTypePrint);
|
||||
panelElement.append(panelBlockElement);
|
||||
}
|
||||
}
|
||||
|
|
@ -448,7 +454,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>";
|
||||
occupancyTypePrintsContainerElement.innerHTML = "";
|
||||
renderOccupancyTypeFields(occupancyTypesContainerElement.querySelector("#container--allOccupancyTypeFields"), undefined, allOccupancyTypeFields);
|
||||
occupancyTypesContainerElement.querySelector(".button--addOccupancyTypeField").addEventListener("click", openAddOccupancyTypeField);
|
||||
occupancyTypesContainerElement
|
||||
.querySelector(".button--addOccupancyTypeField")
|
||||
.addEventListener("click", openAddOccupancyTypeField);
|
||||
if (occupancyTypes.length === 0) {
|
||||
occupancyTypesContainerElement.insertAdjacentHTML("afterbegin", `<div class="message is-warning>
|
||||
<p class="message-body">There are no active ${los.escapedAliases.occupancy} types.</p>
|
||||
|
|
@ -510,10 +518,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>";
|
||||
renderOccupancyTypeFields(occupancyTypeContainer, occupancyType.occupancyTypeId, occupancyType.occupancyTypeFields);
|
||||
occupancyTypeContainer.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click", toggleOccupancyTypeFields);
|
||||
occupancyTypeContainer.querySelector(".button--deleteOccupancyType").addEventListener("click", deleteOccupancyType);
|
||||
occupancyTypeContainer.querySelector(".button--editOccupancyType").addEventListener("click", openEditOccupancyType);
|
||||
occupancyTypeContainer.querySelector(".button--addOccupancyTypeField").addEventListener("click", openAddOccupancyTypeField);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--toggleOccupancyTypeFields")
|
||||
.addEventListener("click", toggleOccupancyTypeFields);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--deleteOccupancyType")
|
||||
.addEventListener("click", deleteOccupancyType);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--editOccupancyType")
|
||||
.addEventListener("click", openEditOccupancyType);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--addOccupancyTypeField")
|
||||
.addEventListener("click", openAddOccupancyTypeField);
|
||||
occupancyTypeContainer.querySelector(".button--moveOccupancyTypeUp").addEventListener("click", moveOccupancyTypeUp);
|
||||
occupancyTypeContainer.querySelector(".button--moveOccupancyTypeDown").addEventListener("click", moveOccupancyTypeDown);
|
||||
occupancyTypesContainerElement.append(occupancyTypeContainer);
|
||||
|
|
@ -545,7 +561,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>";
|
||||
renderOccupancyTypePrints(occupancyTypePrintContainer, occupancyType.occupancyTypeId, occupancyType.occupancyTypePrints);
|
||||
occupancyTypePrintContainer.querySelector(".button--addOccupancyTypePrint").addEventListener("click", openAddOccupancyTypePrint);
|
||||
occupancyTypePrintContainer
|
||||
.querySelector(".button--addOccupancyTypePrint")
|
||||
.addEventListener("click", openAddOccupancyTypePrint);
|
||||
occupancyTypePrintsContainerElement.append(occupancyTypePrintContainer);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -436,11 +436,9 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#button--deleteOccupancyTypeField"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", confirmDoDelete);
|
||||
modalElement
|
||||
.querySelector("#button--deleteOccupancyTypeField")!
|
||||
.addEventListener("click", confirmDoDelete);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -560,11 +558,9 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</div>";
|
||||
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--editOccupancyTypeField"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||
panelBlockElement
|
||||
.querySelector(".button--editOccupancyTypeField")!
|
||||
.addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
|
|
@ -583,7 +579,7 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
}
|
||||
|
||||
function openAddOccupancyTypePrint(clickEvent: MouseEvent): void {
|
||||
function openAddOccupancyTypePrint(clickEvent: Event): void {
|
||||
const occupancyTypeId = (
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--occupancyTypePrintList"
|
||||
|
|
@ -696,7 +692,7 @@ declare const bulmaJS: BulmaJS;
|
|||
);
|
||||
}
|
||||
|
||||
function deleteOccupancyTypePrint(clickEvent: MouseEvent): void {
|
||||
function deleteOccupancyTypePrint(clickEvent: Event): void {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const printEJS = (
|
||||
|
|
@ -807,11 +803,9 @@ declare const bulmaJS: BulmaJS;
|
|||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveOccupancyTypePrintDown);
|
||||
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--deleteOccupancyTypePrint"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", deleteOccupancyTypePrint);
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteOccupancyTypePrint")!
|
||||
.addEventListener("click", deleteOccupancyTypePrint);
|
||||
|
||||
panelElement.append(panelBlockElement);
|
||||
}
|
||||
|
|
@ -852,11 +846,9 @@ declare const bulmaJS: BulmaJS;
|
|||
allOccupancyTypeFields
|
||||
);
|
||||
|
||||
(
|
||||
occupancyTypesContainerElement.querySelector(
|
||||
".button--addOccupancyTypeField"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openAddOccupancyTypeField);
|
||||
occupancyTypesContainerElement
|
||||
.querySelector(".button--addOccupancyTypeField")!
|
||||
.addEventListener("click", openAddOccupancyTypeField);
|
||||
|
||||
if (occupancyTypes.length === 0) {
|
||||
occupancyTypesContainerElement.insertAdjacentHTML(
|
||||
|
|
@ -940,29 +932,21 @@ declare const bulmaJS: BulmaJS;
|
|||
occupancyType.occupancyTypeFields!
|
||||
);
|
||||
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--toggleOccupancyTypeFields"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", toggleOccupancyTypeFields);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--toggleOccupancyTypeFields")!
|
||||
.addEventListener("click", toggleOccupancyTypeFields);
|
||||
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--deleteOccupancyType"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", deleteOccupancyType);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--deleteOccupancyType")!
|
||||
.addEventListener("click", deleteOccupancyType);
|
||||
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--editOccupancyType"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openEditOccupancyType);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--editOccupancyType")!
|
||||
.addEventListener("click", openEditOccupancyType);
|
||||
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--addOccupancyTypeField"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openAddOccupancyTypeField);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--addOccupancyTypeField")!
|
||||
.addEventListener("click", openAddOccupancyTypeField);
|
||||
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
|
|
@ -1015,18 +999,16 @@ declare const bulmaJS: BulmaJS;
|
|||
occupancyType.occupancyTypePrints!
|
||||
);
|
||||
|
||||
(
|
||||
occupancyTypePrintContainer.querySelector(
|
||||
".button--addOccupancyTypePrint"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openAddOccupancyTypePrint);
|
||||
occupancyTypePrintContainer
|
||||
.querySelector(".button--addOccupancyTypePrint")!
|
||||
.addEventListener("click", openAddOccupancyTypePrint);
|
||||
|
||||
occupancyTypePrintsContainerElement.append(occupancyTypePrintContainer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
(document.querySelector("#button--addOccupancyType") as HTMLButtonElement).addEventListener(
|
||||
document.querySelector("#button--addOccupancyType")!.addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
let addCloseModalFunction: () => void;
|
||||
|
|
|
|||
|
|
@ -166,7 +166,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click", moveWorkOrderTypeUp);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click", moveWorkOrderTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteWorkOrderType").addEventListener("click", deleteWorkOrderType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderType")
|
||||
.addEventListener("click", deleteWorkOrderType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
@ -347,7 +349,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderMilestoneType);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderMilestoneType")
|
||||
.addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
@ -532,7 +536,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
||||
tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatusUp);
|
||||
tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatusDown);
|
||||
tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotStatus")
|
||||
.addEventListener("click", deleteLotStatus);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
@ -781,7 +787,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateLotOccupantType);
|
||||
tableRowElement.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click", moveLotOccupantTypeUp);
|
||||
tableRowElement.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click", moveLotOccupantTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteLotOccupantType").addEventListener("click", deleteLotOccupantType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotOccupantType")
|
||||
.addEventListener("click", deleteLotOccupantType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -222,7 +222,9 @@ const renderLotOccupantTypes = () => {
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateLotOccupantType);
|
||||
tableRowElement.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click", moveLotOccupantTypeUp);
|
||||
tableRowElement.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click", moveLotOccupantTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteLotOccupantType").addEventListener("click", deleteLotOccupantType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotOccupantType")
|
||||
.addEventListener("click", deleteLotOccupantType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -309,9 +309,9 @@ const renderLotOccupantTypes = () => {
|
|||
tableRowElement.querySelector(".button--moveLotOccupantTypeDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotOccupantTypeDown);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--deleteLotOccupantType") as HTMLButtonElement
|
||||
).addEventListener("click", deleteLotOccupantType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotOccupantType")!
|
||||
.addEventListener("click", deleteLotOccupantType);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,7 +158,9 @@ const renderLotStatuses = () => {
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
||||
tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatusUp);
|
||||
tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatusDown);
|
||||
tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotStatus")
|
||||
.addEventListener("click", deleteLotStatus);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -233,9 +233,9 @@ const renderLotStatuses = () => {
|
|||
tableRowElement.querySelector(".button--moveLotStatusDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotStatusDown);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--deleteLotStatus") as HTMLButtonElement
|
||||
).addEventListener("click", deleteLotStatus);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotStatus")!
|
||||
.addEventListener("click", deleteLotStatus);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,7 +154,9 @@ const renderWorkOrderMilestoneTypes = () => {
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderMilestoneType);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderMilestoneType")
|
||||
.addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -236,11 +236,9 @@ const renderWorkOrderMilestoneTypes = () => {
|
|||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(
|
||||
".button--deleteWorkOrderMilestoneType"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderMilestoneType")!
|
||||
.addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -153,7 +153,9 @@ const renderWorkOrderTypes = () => {
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click", moveWorkOrderTypeUp);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click", moveWorkOrderTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteWorkOrderType").addEventListener("click", deleteWorkOrderType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderType")
|
||||
.addEventListener("click", deleteWorkOrderType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -228,9 +228,9 @@ const renderWorkOrderTypes = () => {
|
|||
tableRowElement.querySelector(".button--moveWorkOrderTypeDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderTypeDown);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--deleteWorkOrderType") as HTMLButtonElement
|
||||
).addEventListener("click", deleteWorkOrderType);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderType")!
|
||||
.addEventListener("click", deleteWorkOrderType);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,9 +5,13 @@ import type * as globalTypes from "../types/globalTypes";
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const workOrderNumberCircleElements = document.querySelectorAll(".fa-circle[data-work-order-number") as NodeListOf<HTMLElement>;
|
||||
const workOrderNumberCircleElements = document.querySelectorAll(
|
||||
".fa-circle[data-work-order-number"
|
||||
) as NodeListOf<HTMLElement>;
|
||||
|
||||
for (const workOrderNumberCircleElement of workOrderNumberCircleElements) {
|
||||
workOrderNumberCircleElement.style.color = los.getRandomColor(workOrderNumberCircleElement.dataset.workOrderNumber || "");
|
||||
workOrderNumberCircleElement.style.color = los.getRandomColor(
|
||||
workOrderNumberCircleElement.dataset.workOrderNumber || ""
|
||||
);
|
||||
}
|
||||
})();
|
||||
|
|
@ -312,8 +312,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotComment);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotComment);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
|
|||
|
|
@ -63,46 +63,43 @@ declare const bulmaJS: BulmaJS;
|
|||
los.initializeUnlockFieldButtons(formElement);
|
||||
|
||||
if (!isCreate) {
|
||||
(document.querySelector("#button--deleteLot") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
(clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
document.querySelector("#button--deleteLot")!.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lots/doDeleteLot",
|
||||
{
|
||||
lotId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href = los.urlPrefix + "/lots/?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lots/doDeleteLot",
|
||||
{
|
||||
lotId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href = los.urlPrefix + "/lots/?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot,
|
||||
message:
|
||||
"Are you sure you want to delete this " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
"?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.lot,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
);
|
||||
};
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot,
|
||||
message:
|
||||
"Are you sure you want to delete this " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
"?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.lot,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Lot Type
|
||||
|
|
@ -446,14 +443,13 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</td>");
|
||||
|
||||
(tableRowElement.querySelector(".button--edit") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
openEditLotComment
|
||||
);
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")!
|
||||
.addEventListener("click", openEditLotComment);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--delete") as HTMLButtonElement
|
||||
).addEventListener("click", deleteLotComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")!
|
||||
.addEventListener("click", deleteLotComment);
|
||||
|
||||
tableElement.querySelector("tbody")!.append(tableRowElement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -435,8 +435,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
});
|
||||
document.querySelector(".is-lot-view-button").addEventListener("click", () => {
|
||||
const lotId = document.querySelector("#lotOccupancy--lotId")
|
||||
.value;
|
||||
const lotId = document.querySelector("#lotOccupancy--lotId").value;
|
||||
if (lotId) {
|
||||
window.open(los.urlPrefix + "/lots/" + lotId);
|
||||
}
|
||||
|
|
@ -652,8 +651,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotOccupancyOccupant);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotOccupancyOccupant);
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotOccupancyOccupant);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotOccupancyOccupant);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
occupantsContainer.append(tableElement);
|
||||
|
|
@ -756,8 +759,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
('<div class="column">' +
|
||||
(occupant.occupantPhoneNumber
|
||||
? cityssm.escapeHTML(occupant.occupantPhoneNumber) +
|
||||
"<br />"
|
||||
? cityssm.escapeHTML(occupant.occupantPhoneNumber) + "<br />"
|
||||
: "") +
|
||||
cityssm.escapeHTML(occupant.occupantEmailAddress || "") +
|
||||
"<br />" +
|
||||
|
|
@ -945,8 +947,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotOccupancyComment);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotOccupancyComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotOccupancyComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotOccupancyComment);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
|
|||
|
|
@ -435,8 +435,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
});
|
||||
document.querySelector(".is-lot-view-button").addEventListener("click", () => {
|
||||
const lotId = document.querySelector("#lotOccupancy--lotId")
|
||||
.value;
|
||||
const lotId = document.querySelector("#lotOccupancy--lotId").value;
|
||||
if (lotId) {
|
||||
window.open(los.urlPrefix + "/lots/" + lotId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -631,38 +631,31 @@ declare const bulmaJS: BulmaJS;
|
|||
});
|
||||
});
|
||||
|
||||
(document.querySelector(".is-lot-view-button") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
const lotId = (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement)
|
||||
.value;
|
||||
document.querySelector(".is-lot-view-button")!.addEventListener("click", () => {
|
||||
const lotId = (document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value;
|
||||
|
||||
if (lotId) {
|
||||
window.open(los.urlPrefix + "/lots/" + lotId);
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
message: "No " + exports.aliases.lot.toLowerCase() + " selected.",
|
||||
contextualColorName: "info"
|
||||
});
|
||||
}
|
||||
if (lotId) {
|
||||
window.open(los.urlPrefix + "/lots/" + lotId);
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
message: "No " + exports.aliases.lot.toLowerCase() + " selected.",
|
||||
contextualColorName: "info"
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
(document.querySelector(".is-clear-lot-button") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
if (lotNameElement.disabled) {
|
||||
bulmaJS.alert({
|
||||
message: "You need to unlock the field before clearing it.",
|
||||
contextualColorName: "info"
|
||||
});
|
||||
} else {
|
||||
lotNameElement.value = "(No " + exports.aliases.lot + ")";
|
||||
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = "";
|
||||
los.setUnsavedChanges();
|
||||
}
|
||||
document.querySelector(".is-clear-lot-button")!.addEventListener("click", () => {
|
||||
if (lotNameElement.disabled) {
|
||||
bulmaJS.alert({
|
||||
message: "You need to unlock the field before clearing it.",
|
||||
contextualColorName: "info"
|
||||
});
|
||||
} else {
|
||||
lotNameElement.value = "(No " + exports.aliases.lot + ")";
|
||||
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = "";
|
||||
los.setUnsavedChanges();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
// Start Date
|
||||
|
||||
|
|
|
|||
|
|
@ -134,8 +134,12 @@ const renderLotOccupancyComments = () => {
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotOccupancyComment);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotOccupancyComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotOccupancyComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotOccupancyComment);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
|
|||
|
|
@ -217,15 +217,13 @@ const renderLotOccupancyComments = () => {
|
|||
"</div>" +
|
||||
"</td>");
|
||||
|
||||
(tableRowElement.querySelector(".button--edit") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
openEditLotOccupancyComment
|
||||
);
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")!
|
||||
.addEventListener("click", openEditLotOccupancyComment);
|
||||
|
||||
(tableRowElement.querySelector(".button--delete") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
deleteLotOccupancyComment
|
||||
);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")!
|
||||
.addEventListener("click", deleteLotOccupancyComment);
|
||||
|
||||
tableElement.querySelector("tbody")!.append(tableRowElement);
|
||||
}
|
||||
|
|
@ -234,67 +232,64 @@ const renderLotOccupancyComments = () => {
|
|||
containerElement.append(tableElement);
|
||||
};
|
||||
|
||||
(document.querySelector("#button--addComment") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
let addFormElement: HTMLFormElement;
|
||||
let addCloseModalFunction: () => void;
|
||||
document.querySelector("#button--addComment")!.addEventListener("click", () => {
|
||||
let addFormElement: HTMLFormElement;
|
||||
let addCloseModalFunction: () => void;
|
||||
|
||||
const addComment = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const addComment = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doAddLotOccupancyComment",
|
||||
addFormElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotOccupancyComments?: recordTypes.LotOccupancyComment[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyComments = responseJSON.lotOccupancyComments!;
|
||||
addCloseModalFunction();
|
||||
renderLotOccupancyComments();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Comment",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doAddLotOccupancyComment",
|
||||
addFormElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotOccupancyComments?: recordTypes.LotOccupancyComment[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyComments = responseJSON.lotOccupancyComments!;
|
||||
addCloseModalFunction();
|
||||
renderLotOccupancyComments();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Comment",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("lotOccupancy-addComment", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyCommentAdd--lotOccupancyId"
|
||||
) as HTMLInputElement
|
||||
).value = lotOccupancyId;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyCommentAdd--lotOccupancyComment"
|
||||
) as HTMLTextAreaElement
|
||||
).focus();
|
||||
|
||||
addFormElement = modalElement.querySelector("form")!;
|
||||
addFormElement.addEventListener("submit", addComment);
|
||||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("lotOccupancy-addComment", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyCommentAdd--lotOccupancyId"
|
||||
) as HTMLInputElement
|
||||
).value = lotOccupancyId;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyCommentAdd--lotOccupancyComment"
|
||||
) as HTMLTextAreaElement
|
||||
).focus();
|
||||
|
||||
addFormElement = modalElement.querySelector("form")!;
|
||||
addFormElement.addEventListener("submit", addComment);
|
||||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
renderLotOccupancyComments();
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ const renderLotOccupancyFees = () => {
|
|||
renderLotOccupancyTransactions();
|
||||
};
|
||||
|
||||
(document.querySelector("#button--addFee") as HTMLButtonElement).addEventListener("click", () => {
|
||||
document.querySelector("#button--addFee")!.addEventListener("click", () => {
|
||||
if (hasUnsavedChanges) {
|
||||
bulmaJS.alert({
|
||||
message: "Please save all unsaved changes before adding fees.",
|
||||
|
|
@ -530,76 +530,73 @@ const renderLotOccupancyTransactions = () => {
|
|||
}
|
||||
};
|
||||
|
||||
(document.querySelector("#button--addTransaction") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
let addCloseModalFunction: () => void;
|
||||
document.querySelector("#button--addTransaction")!.addEventListener("click", () => {
|
||||
let addCloseModalFunction: () => void;
|
||||
|
||||
const doAddTransaction = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const doAddTransaction = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doAddLotOccupancyTransaction",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotOccupancyTransactions?: recordTypes.LotOccupancyTransaction[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions!;
|
||||
addCloseModalFunction();
|
||||
renderLotOccupancyTransactions();
|
||||
} else {
|
||||
bulmaJS.confirm({
|
||||
title: "Error Adding Transaction",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doAddLotOccupancyTransaction",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotOccupancyTransactions?: recordTypes.LotOccupancyTransaction[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions!;
|
||||
addCloseModalFunction();
|
||||
renderLotOccupancyTransactions();
|
||||
} else {
|
||||
bulmaJS.confirm({
|
||||
title: "Error Adding Transaction",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("lotOccupancy-addTransaction", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyTransactionAdd--lotOccupancyId"
|
||||
) as HTMLInputElement
|
||||
).value = lotOccupancyId.toString();
|
||||
|
||||
const feeGrandTotal = getFeeGrandTotal();
|
||||
const transactionGrandTotal = getTransactionGrandTotal();
|
||||
|
||||
const transactionAmountElement = modalElement.querySelector(
|
||||
"#lotOccupancyTransactionAdd--transactionAmount"
|
||||
) as HTMLInputElement;
|
||||
|
||||
transactionAmountElement.min = (-1 * transactionGrandTotal).toFixed(2);
|
||||
transactionAmountElement.max = Math.max(
|
||||
feeGrandTotal - transactionGrandTotal,
|
||||
0
|
||||
).toFixed(2);
|
||||
transactionAmountElement.value = Math.max(
|
||||
feeGrandTotal - transactionGrandTotal,
|
||||
0
|
||||
).toFixed(2);
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAddTransaction);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("lotOccupancy-addTransaction", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyTransactionAdd--lotOccupancyId"
|
||||
) as HTMLInputElement
|
||||
).value = lotOccupancyId.toString();
|
||||
|
||||
const feeGrandTotal = getFeeGrandTotal();
|
||||
const transactionGrandTotal = getTransactionGrandTotal();
|
||||
|
||||
const transactionAmountElement = modalElement.querySelector(
|
||||
"#lotOccupancyTransactionAdd--transactionAmount"
|
||||
) as HTMLInputElement;
|
||||
|
||||
transactionAmountElement.min = (-1 * transactionGrandTotal).toFixed(2);
|
||||
transactionAmountElement.max = Math.max(
|
||||
feeGrandTotal - transactionGrandTotal,
|
||||
0
|
||||
).toFixed(2);
|
||||
transactionAmountElement.value = Math.max(
|
||||
feeGrandTotal - transactionGrandTotal,
|
||||
0
|
||||
).toFixed(2);
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAddTransaction);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
renderLotOccupancyFees();
|
||||
|
|
|
|||
|
|
@ -179,8 +179,12 @@ const renderLotOccupancyOccupants = () => {
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotOccupancyOccupant);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotOccupancyOccupant);
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotOccupancyOccupant);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotOccupancyOccupant);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
occupantsContainer.append(tableElement);
|
||||
|
|
@ -283,8 +287,7 @@ else {
|
|||
"</div>") +
|
||||
('<div class="column">' +
|
||||
(occupant.occupantPhoneNumber
|
||||
? cityssm.escapeHTML(occupant.occupantPhoneNumber) +
|
||||
"<br />"
|
||||
? cityssm.escapeHTML(occupant.occupantPhoneNumber) + "<br />"
|
||||
: "") +
|
||||
cityssm.escapeHTML(occupant.occupantEmailAddress || "") +
|
||||
"<br />" +
|
||||
|
|
|
|||
|
|
@ -299,15 +299,13 @@ const renderLotOccupancyOccupants = () => {
|
|||
"</div>" +
|
||||
"</td>");
|
||||
|
||||
(tableRowElement.querySelector(".button--edit") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
openEditLotOccupancyOccupant
|
||||
);
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")!
|
||||
.addEventListener("click", openEditLotOccupancyOccupant);
|
||||
|
||||
(tableRowElement.querySelector(".button--delete") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
deleteLotOccupancyOccupant
|
||||
);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")!
|
||||
.addEventListener("click", deleteLotOccupancyOccupant);
|
||||
|
||||
tableElement.querySelector("tbody")!.append(tableRowElement);
|
||||
}
|
||||
|
|
@ -333,236 +331,228 @@ if (isCreate) {
|
|||
lotOccupancyOccupants = exports.lotOccupancyOccupants;
|
||||
delete exports.lotOccupancyOccupants;
|
||||
|
||||
(document.querySelector("#button--addOccupant") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
let addCloseModalFunction: () => void;
|
||||
document.querySelector("#button--addOccupant")!.addEventListener("click", () => {
|
||||
let addCloseModalFunction: () => void;
|
||||
|
||||
let addFormElement: HTMLFormElement;
|
||||
let addFormElement: HTMLFormElement;
|
||||
|
||||
let searchFormElement: HTMLFormElement;
|
||||
let searchResultsElement: HTMLElement;
|
||||
let searchFormElement: HTMLFormElement;
|
||||
let searchResultsElement: HTMLElement;
|
||||
|
||||
const addOccupant = (
|
||||
formOrObject: HTMLFormElement | recordTypes.LotOccupancyOccupant
|
||||
) => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doAddLotOccupancyOccupant",
|
||||
formOrObject,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotOccupancyOccupants?: recordTypes.LotOccupancyOccupant[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants!;
|
||||
addCloseModalFunction();
|
||||
renderLotOccupancyOccupants();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupant,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
const addOccupant = (formOrObject: HTMLFormElement | recordTypes.LotOccupancyOccupant) => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doAddLotOccupancyOccupant",
|
||||
formOrObject,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotOccupancyOccupants?: recordTypes.LotOccupancyOccupant[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants!;
|
||||
addCloseModalFunction();
|
||||
renderLotOccupancyOccupants();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupant,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
const addOccupantFromForm = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
addOccupant(addFormElement);
|
||||
};
|
||||
|
||||
let pastOccupantSearchResults: recordTypes.LotOccupancyOccupant[] = [];
|
||||
|
||||
const addOccupantFromCopy = (clickEvent: MouseEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const panelBlockElement = clickEvent.currentTarget as HTMLElement;
|
||||
|
||||
const occupant =
|
||||
pastOccupantSearchResults[
|
||||
Number.parseInt(panelBlockElement.dataset.index!, 10)
|
||||
];
|
||||
|
||||
const lotOccupantTypeId = (
|
||||
panelBlockElement
|
||||
.closest(".modal")!
|
||||
.querySelector(
|
||||
"#lotOccupancyOccupantCopy--lotOccupantTypeId"
|
||||
) as HTMLSelectElement
|
||||
).value;
|
||||
|
||||
if (lotOccupantTypeId === "") {
|
||||
bulmaJS.alert({
|
||||
title: "No " + exports.aliases.occupant + " Type Selected",
|
||||
message:
|
||||
"Select a type to apply to the newly added " +
|
||||
exports.aliases.occupant.toLowerCase() +
|
||||
".",
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
} else {
|
||||
occupant.lotOccupantTypeId = Number.parseInt(lotOccupantTypeId, 10);
|
||||
occupant.lotOccupancyId = Number.parseInt(lotOccupancyId, 10);
|
||||
addOccupant(occupant);
|
||||
}
|
||||
};
|
||||
);
|
||||
};
|
||||
|
||||
const searchOccupants = (event: Event) => {
|
||||
event.preventDefault();
|
||||
const addOccupantFromForm = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
addOccupant(addFormElement);
|
||||
};
|
||||
|
||||
if (
|
||||
(
|
||||
searchFormElement.querySelector(
|
||||
"#lotOccupancyOccupantCopy--searchFilter"
|
||||
) as HTMLInputElement
|
||||
).value === ""
|
||||
) {
|
||||
searchResultsElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">Enter a partial name or address in the search field above.</p>' +
|
||||
"</div>";
|
||||
let pastOccupantSearchResults: recordTypes.LotOccupancyOccupant[] = [];
|
||||
|
||||
return;
|
||||
}
|
||||
const addOccupantFromCopy = (clickEvent: MouseEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
searchResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
|
||||
const panelBlockElement = clickEvent.currentTarget as HTMLElement;
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doSearchPastOccupants",
|
||||
searchFormElement,
|
||||
(responseJSON: { occupants: recordTypes.LotOccupancyOccupant[] }) => {
|
||||
pastOccupantSearchResults = responseJSON.occupants;
|
||||
const occupant =
|
||||
pastOccupantSearchResults[Number.parseInt(panelBlockElement.dataset.index!, 10)];
|
||||
|
||||
const panelElement = document.createElement("div");
|
||||
panelElement.className = "panel";
|
||||
|
||||
for (const [index, occupant] of pastOccupantSearchResults.entries()) {
|
||||
const panelBlockElement = document.createElement("a");
|
||||
panelBlockElement.className = "panel-block is-block";
|
||||
panelBlockElement.dataset.index = index.toString();
|
||||
|
||||
panelBlockElement.innerHTML =
|
||||
"<strong>" +
|
||||
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||
"</strong>" +
|
||||
"<br />" +
|
||||
'<div class="columns">' +
|
||||
('<div class="column">' +
|
||||
cityssm.escapeHTML(occupant.occupantAddress1 || "") +
|
||||
"<br />" +
|
||||
(occupant.occupantAddress2
|
||||
? cityssm.escapeHTML(occupant.occupantAddress2) + "<br />"
|
||||
: "") +
|
||||
cityssm.escapeHTML(occupant.occupantCity || "") +
|
||||
", " +
|
||||
cityssm.escapeHTML(occupant.occupantProvince || "") +
|
||||
"<br />" +
|
||||
cityssm.escapeHTML(occupant.occupantPostalCode || "") +
|
||||
"</div>") +
|
||||
('<div class="column">' +
|
||||
(occupant.occupantPhoneNumber
|
||||
? cityssm.escapeHTML(occupant.occupantPhoneNumber) +
|
||||
"<br />"
|
||||
: "") +
|
||||
cityssm.escapeHTML(occupant.occupantEmailAddress || "") +
|
||||
"<br />" +
|
||||
"</div>") +
|
||||
"</div>";
|
||||
|
||||
panelBlockElement.addEventListener("click", addOccupantFromCopy);
|
||||
|
||||
panelElement.append(panelBlockElement);
|
||||
}
|
||||
|
||||
searchResultsElement.innerHTML = "";
|
||||
searchResultsElement.append(panelElement);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("lotOccupancy-addOccupant", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--lotOccupancyId"
|
||||
) as HTMLInputElement
|
||||
).value = lotOccupancyId;
|
||||
|
||||
const lotOccupantTypeSelectElement = modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--lotOccupantTypeId"
|
||||
) as HTMLSelectElement;
|
||||
|
||||
const lotOccupantTypeCopySelectElement = modalElement.querySelector(
|
||||
const lotOccupantTypeId = (
|
||||
panelBlockElement
|
||||
.closest(".modal")!
|
||||
.querySelector(
|
||||
"#lotOccupancyOccupantCopy--lotOccupantTypeId"
|
||||
) as HTMLSelectElement;
|
||||
) as HTMLSelectElement
|
||||
).value;
|
||||
|
||||
for (const lotOccupantType of exports.lotOccupantTypes as recordTypes.LotOccupantType[]) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = lotOccupantType.lotOccupantTypeId.toString();
|
||||
optionElement.textContent = lotOccupantType.lotOccupantType;
|
||||
if (lotOccupantTypeId === "") {
|
||||
bulmaJS.alert({
|
||||
title: "No " + exports.aliases.occupant + " Type Selected",
|
||||
message:
|
||||
"Select a type to apply to the newly added " +
|
||||
exports.aliases.occupant.toLowerCase() +
|
||||
".",
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
} else {
|
||||
occupant.lotOccupantTypeId = Number.parseInt(lotOccupantTypeId, 10);
|
||||
occupant.lotOccupancyId = Number.parseInt(lotOccupancyId, 10);
|
||||
addOccupant(occupant);
|
||||
}
|
||||
};
|
||||
|
||||
lotOccupantTypeSelectElement.append(optionElement);
|
||||
const searchOccupants = (event: Event) => {
|
||||
event.preventDefault();
|
||||
|
||||
lotOccupantTypeCopySelectElement.append(optionElement.cloneNode(true));
|
||||
if (
|
||||
(
|
||||
searchFormElement.querySelector(
|
||||
"#lotOccupancyOccupantCopy--searchFilter"
|
||||
) as HTMLInputElement
|
||||
).value === ""
|
||||
) {
|
||||
searchResultsElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">Enter a partial name or address in the search field above.</p>' +
|
||||
"</div>";
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
searchResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doSearchPastOccupants",
|
||||
searchFormElement,
|
||||
(responseJSON: { occupants: recordTypes.LotOccupancyOccupant[] }) => {
|
||||
pastOccupantSearchResults = responseJSON.occupants;
|
||||
|
||||
const panelElement = document.createElement("div");
|
||||
panelElement.className = "panel";
|
||||
|
||||
for (const [index, occupant] of pastOccupantSearchResults.entries()) {
|
||||
const panelBlockElement = document.createElement("a");
|
||||
panelBlockElement.className = "panel-block is-block";
|
||||
panelBlockElement.dataset.index = index.toString();
|
||||
|
||||
panelBlockElement.innerHTML =
|
||||
"<strong>" +
|
||||
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||
"</strong>" +
|
||||
"<br />" +
|
||||
'<div class="columns">' +
|
||||
('<div class="column">' +
|
||||
cityssm.escapeHTML(occupant.occupantAddress1 || "") +
|
||||
"<br />" +
|
||||
(occupant.occupantAddress2
|
||||
? cityssm.escapeHTML(occupant.occupantAddress2) + "<br />"
|
||||
: "") +
|
||||
cityssm.escapeHTML(occupant.occupantCity || "") +
|
||||
", " +
|
||||
cityssm.escapeHTML(occupant.occupantProvince || "") +
|
||||
"<br />" +
|
||||
cityssm.escapeHTML(occupant.occupantPostalCode || "") +
|
||||
"</div>") +
|
||||
('<div class="column">' +
|
||||
(occupant.occupantPhoneNumber
|
||||
? cityssm.escapeHTML(occupant.occupantPhoneNumber) + "<br />"
|
||||
: "") +
|
||||
cityssm.escapeHTML(occupant.occupantEmailAddress || "") +
|
||||
"<br />" +
|
||||
"</div>") +
|
||||
"</div>";
|
||||
|
||||
panelBlockElement.addEventListener("click", addOccupantFromCopy);
|
||||
|
||||
panelElement.append(panelBlockElement);
|
||||
}
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--occupantCity"
|
||||
) as HTMLInputElement
|
||||
).value = exports.occupantCityDefault;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--occupantProvince"
|
||||
) as HTMLInputElement
|
||||
).value = exports.occupantProvinceDefault;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
bulmaJS.init(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--lotOccupantTypeId"
|
||||
) as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
addFormElement = modalElement.querySelector(
|
||||
"#form--lotOccupancyOccupantAdd"
|
||||
) as HTMLFormElement;
|
||||
addFormElement.addEventListener("submit", addOccupantFromForm);
|
||||
|
||||
searchResultsElement = modalElement.querySelector(
|
||||
"#lotOccupancyOccupantCopy--searchResults"
|
||||
) as HTMLElement;
|
||||
|
||||
searchFormElement = modalElement.querySelector(
|
||||
"#form--lotOccupancyOccupantCopy"
|
||||
) as HTMLFormElement;
|
||||
searchFormElement.addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
});
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantCopy--searchFilter"
|
||||
) as HTMLInputElement
|
||||
).addEventListener("change", searchOccupants);
|
||||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
searchResultsElement.innerHTML = "";
|
||||
searchResultsElement.append(panelElement);
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("lotOccupancy-addOccupant", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--lotOccupancyId"
|
||||
) as HTMLInputElement
|
||||
).value = lotOccupancyId;
|
||||
|
||||
const lotOccupantTypeSelectElement = modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--lotOccupantTypeId"
|
||||
) as HTMLSelectElement;
|
||||
|
||||
const lotOccupantTypeCopySelectElement = modalElement.querySelector(
|
||||
"#lotOccupancyOccupantCopy--lotOccupantTypeId"
|
||||
) as HTMLSelectElement;
|
||||
|
||||
for (const lotOccupantType of exports.lotOccupantTypes as recordTypes.LotOccupantType[]) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = lotOccupantType.lotOccupantTypeId.toString();
|
||||
optionElement.textContent = lotOccupantType.lotOccupantType;
|
||||
|
||||
lotOccupantTypeSelectElement.append(optionElement);
|
||||
|
||||
lotOccupantTypeCopySelectElement.append(optionElement.cloneNode(true));
|
||||
}
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--occupantCity"
|
||||
) as HTMLInputElement
|
||||
).value = exports.occupantCityDefault;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--occupantProvince"
|
||||
) as HTMLInputElement
|
||||
).value = exports.occupantProvinceDefault;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
bulmaJS.init(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantAdd--lotOccupantTypeId"
|
||||
) as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
addFormElement = modalElement.querySelector(
|
||||
"#form--lotOccupancyOccupantAdd"
|
||||
) as HTMLFormElement;
|
||||
addFormElement.addEventListener("submit", addOccupantFromForm);
|
||||
|
||||
searchResultsElement = modalElement.querySelector(
|
||||
"#lotOccupancyOccupantCopy--searchResults"
|
||||
) as HTMLElement;
|
||||
|
||||
searchFormElement = modalElement.querySelector(
|
||||
"#form--lotOccupancyOccupantCopy"
|
||||
) as HTMLFormElement;
|
||||
searchFormElement.addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
});
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancyOccupantCopy--searchFilter"
|
||||
) as HTMLInputElement
|
||||
).addEventListener("change", searchOccupants);
|
||||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
renderLotOccupancyOccupants();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,10 +159,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>";
|
||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||
if (responseJSON.offset > 0) {
|
||||
searchResultsContainerElement.querySelector("button[data-page='previous']").addEventListener("click", previousAndGetLotOccupancies);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")
|
||||
.addEventListener("click", previousAndGetLotOccupancies);
|
||||
}
|
||||
if (limit + responseJSON.offset < responseJSON.count) {
|
||||
searchResultsContainerElement.querySelector("button[data-page='next']").addEventListener("click", nextAndGetLotOccupancies);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")
|
||||
.addEventListener("click", nextAndGetLotOccupancies);
|
||||
}
|
||||
}
|
||||
function getLotOccupancies() {
|
||||
|
|
|
|||
|
|
@ -194,19 +194,15 @@ declare const cityssm: cityssmGlobal;
|
|||
searchResultsContainerElement.querySelector("table")!.append(resultsTbodyElement);
|
||||
|
||||
if (responseJSON.offset > 0) {
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='previous']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", previousAndGetLotOccupancies);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")!
|
||||
.addEventListener("click", previousAndGetLotOccupancies);
|
||||
}
|
||||
|
||||
if (limit + responseJSON.offset < responseJSON.count) {
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='next']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", nextAndGetLotOccupancies);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")!
|
||||
.addEventListener("click", nextAndGetLotOccupancies);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,10 +92,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>";
|
||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||
if (responseJSON.offset > 0) {
|
||||
searchResultsContainerElement.querySelector("button[data-page='previous']").addEventListener("click", previousAndGetLots);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")
|
||||
.addEventListener("click", previousAndGetLots);
|
||||
}
|
||||
if (limit + responseJSON.offset < responseJSON.count) {
|
||||
searchResultsContainerElement.querySelector("button[data-page='next']").addEventListener("click", nextAndGetLots);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")
|
||||
.addEventListener("click", nextAndGetLots);
|
||||
}
|
||||
}
|
||||
function getLots() {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ declare const cityssm: cityssmGlobal;
|
|||
const searchFilterFormElement = document.querySelector(
|
||||
"#form--searchFilters"
|
||||
) as HTMLFormElement;
|
||||
|
||||
const searchResultsContainerElement = document.querySelector(
|
||||
"#container--searchResults"
|
||||
) as HTMLElement;
|
||||
|
|
@ -121,19 +122,15 @@ declare const cityssm: cityssmGlobal;
|
|||
searchResultsContainerElement.querySelector("table")!.append(resultsTbodyElement);
|
||||
|
||||
if (responseJSON.offset > 0) {
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='previous']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", previousAndGetLots);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")!
|
||||
.addEventListener("click", previousAndGetLots);
|
||||
}
|
||||
|
||||
if (limit + responseJSON.offset < responseJSON.count) {
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='next']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", nextAndGetLots);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")!
|
||||
.addEventListener("click", nextAndGetLots);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const mapId = document.querySelector("#map--mapId").value;
|
||||
const isCreate = mapId === "";
|
||||
const mapForm = document.querySelector("#form--map");
|
||||
const updateMap = (formEvent) => {
|
||||
function updateMap(formEvent) {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"), mapForm, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -30,7 +30,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
mapForm.addEventListener("submit", updateMap);
|
||||
const inputElements = mapForm.querySelectorAll("input, select");
|
||||
for (const inputElement of inputElements) {
|
||||
|
|
@ -39,7 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
if (!isCreate) {
|
||||
document.querySelector("#button--deleteMap").addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + "/maps/doDeleteMap", {
|
||||
mapId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -54,17 +54,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.map,
|
||||
message: "Are you sure you want to delete this " +
|
||||
exports.aliases.map.toLowerCase() +
|
||||
" and all related " +
|
||||
exports.aliases.lots.toLowerCase() +
|
||||
"?",
|
||||
message: `Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.map + "?",
|
||||
text: `Yes, Delete ${exports.aliases.map}`,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
const mapForm = document.querySelector("#form--map") as HTMLFormElement;
|
||||
|
||||
const updateMap = (formEvent: SubmitEvent) => {
|
||||
function updateMap(formEvent: SubmitEvent) {
|
||||
formEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
|
|
@ -44,7 +44,7 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
mapForm.addEventListener("submit", updateMap);
|
||||
|
||||
|
|
@ -57,46 +57,39 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
|
||||
if (!isCreate) {
|
||||
(document.querySelector("#button--deleteMap") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
(clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
document.querySelector("#button--deleteMap")!.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/maps/doDeleteMap",
|
||||
{
|
||||
mapId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href = los.urlPrefix + "/maps?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.map,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
function doDelete() {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/maps/doDeleteMap",
|
||||
{
|
||||
mapId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string; }) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href = los.urlPrefix + "/maps?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.map,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.map,
|
||||
message:
|
||||
"Are you sure you want to delete this " +
|
||||
exports.aliases.map.toLowerCase() +
|
||||
" and all related " +
|
||||
exports.aliases.lots.toLowerCase() +
|
||||
"?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.map + "?",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.map,
|
||||
message:
|
||||
`Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: `Yes, Delete ${exports.aliases.map}`,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const maps = exports.maps;
|
||||
const searchFilterElement = document.querySelector("#searchFilter--map");
|
||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||
const renderResults = () => {
|
||||
function renderResults() {
|
||||
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(`Loading ${exports.aliases.maps}...`);
|
||||
let searchResultCount = 0;
|
||||
const searchResultsTbodyElement = document.createElement("tbody");
|
||||
|
|
@ -86,19 +86,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const searchResultsTableElement = document.createElement("table");
|
||||
searchResultsTableElement.className =
|
||||
"table is-fullwidth is-striped is-hoverable has-sticky-header";
|
||||
searchResultsTableElement.innerHTML =
|
||||
"<thead><tr>" +
|
||||
("<th>" + exports.aliases.map + "</th>") +
|
||||
"<th>Address</th>" +
|
||||
"<th>Phone Number</th>" +
|
||||
'<th class="has-text-centered">Coordinates</th>' +
|
||||
'<th class="has-text-centered">Image</th>' +
|
||||
('<th class="has-text-right">' + exports.aliases.lot + " Count</th>") +
|
||||
"</tr></thead>";
|
||||
searchResultsTableElement.innerHTML = `<thead><tr>
|
||||
<th>${los.escapedAliases.Map}</th>
|
||||
<th>Address</th>
|
||||
<th>Phone Number</th>
|
||||
<th class="has-text-centered">Coordinates</th>
|
||||
<th class="has-text-centered">Image</th>
|
||||
<th class="has-text-right">${los.escapedAliases.Lot} Count</th>
|
||||
</tr></thead>`;
|
||||
searchResultsTableElement.append(searchResultsTbodyElement);
|
||||
searchResultsContainerElement.append(searchResultsTableElement);
|
||||
}
|
||||
};
|
||||
}
|
||||
searchFilterElement.addEventListener("keyup", renderResults);
|
||||
document.querySelector("#form--searchFilters").addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ declare const cityssm: cityssmGlobal;
|
|||
"#container--searchResults"
|
||||
) as HTMLElement;
|
||||
|
||||
const renderResults = () => {
|
||||
function renderResults(): void {
|
||||
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(
|
||||
`Loading ${exports.aliases.maps}...`
|
||||
);
|
||||
|
|
@ -116,31 +116,27 @@ declare const cityssm: cityssmGlobal;
|
|||
searchResultsTableElement.className =
|
||||
"table is-fullwidth is-striped is-hoverable has-sticky-header";
|
||||
|
||||
searchResultsTableElement.innerHTML =
|
||||
"<thead><tr>" +
|
||||
("<th>" + exports.aliases.map + "</th>") +
|
||||
"<th>Address</th>" +
|
||||
"<th>Phone Number</th>" +
|
||||
'<th class="has-text-centered">Coordinates</th>' +
|
||||
'<th class="has-text-centered">Image</th>' +
|
||||
('<th class="has-text-right">' + exports.aliases.lot + " Count</th>") +
|
||||
"</tr></thead>";
|
||||
searchResultsTableElement.innerHTML = `<thead><tr>
|
||||
<th>${los.escapedAliases.Map}</th>
|
||||
<th>Address</th>
|
||||
<th>Phone Number</th>
|
||||
<th class="has-text-centered">Coordinates</th>
|
||||
<th class="has-text-centered">Image</th>
|
||||
<th class="has-text-right">${los.escapedAliases.Lot} Count</th>
|
||||
</tr></thead>`;
|
||||
|
||||
searchResultsTableElement.append(searchResultsTbodyElement);
|
||||
|
||||
searchResultsContainerElement.append(searchResultsTableElement);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
searchFilterElement.addEventListener("keyup", renderResults);
|
||||
|
||||
(document.querySelector("#form--searchFilters") as HTMLFormElement).addEventListener(
|
||||
"submit",
|
||||
(formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
renderResults();
|
||||
}
|
||||
);
|
||||
document.querySelector("#form--searchFilters")!.addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
renderResults();
|
||||
});
|
||||
|
||||
renderResults();
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
(() => {
|
||||
const menuTabElements = document.querySelectorAll(".menu a");
|
||||
const tabContainerElements = document.querySelectorAll(".tabs-container > div");
|
||||
const selectTab = (clickEvent) => {
|
||||
function selectTab(clickEvent) {
|
||||
clickEvent.preventDefault();
|
||||
// Remove .is-active from all tabs
|
||||
for (const menuTabElement of menuTabElements) {
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
tabContainerElement.classList.add("is-hidden");
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
for (const menuTabElement of menuTabElements) {
|
||||
menuTabElement.addEventListener("click", selectTab);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,22 +6,19 @@
|
|||
".tabs-container > div"
|
||||
) as NodeListOf<HTMLElement>;
|
||||
|
||||
const selectTab = (clickEvent: Event) => {
|
||||
function selectTab(clickEvent: Event) {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
// Remove .is-active from all tabs
|
||||
|
||||
for (const menuTabElement of menuTabElements) {
|
||||
menuTabElement.classList.remove("is-active");
|
||||
}
|
||||
|
||||
// Set .is-active on clicked tab
|
||||
|
||||
const selectedTabElement = clickEvent.currentTarget as HTMLAnchorElement;
|
||||
selectedTabElement.classList.add("is-active");
|
||||
|
||||
// Hide all but selected tab
|
||||
|
||||
const selectedTabContainerId = selectedTabElement.href.slice(
|
||||
Math.max(0, selectedTabElement.href.indexOf("#") + 1)
|
||||
);
|
||||
|
|
@ -33,7 +30,7 @@
|
|||
tabContainerElement.classList.add("is-hidden");
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
for (const menuTabElement of menuTabElements) {
|
||||
menuTabElement.addEventListener("click", selectTab);
|
||||
|
|
|
|||
|
|
@ -1069,13 +1069,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
"</div>";
|
||||
if (milestone.workOrderMilestoneCompletionDate) {
|
||||
panelBlockElement.querySelector(".button--reopenMilestone").addEventListener("click", reopenMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")
|
||||
.addEventListener("click", reopenMilestone);
|
||||
}
|
||||
else {
|
||||
panelBlockElement.querySelector(".button--editMilestone").addEventListener("click", editMilestone);
|
||||
panelBlockElement.querySelector(".button--completeMilestone").addEventListener("click", completeMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--editMilestone")
|
||||
.addEventListener("click", editMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--completeMilestone")
|
||||
.addEventListener("click", completeMilestone);
|
||||
}
|
||||
panelBlockElement.querySelector(".button--deleteMilestone").addEventListener("click", deleteMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteMilestone")
|
||||
.addEventListener("click", deleteMilestone);
|
||||
milestonesPanelElement.append(panelBlockElement);
|
||||
}
|
||||
bulmaJS.init(milestonesPanelElement);
|
||||
|
|
|
|||
|
|
@ -348,13 +348,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
"</div>";
|
||||
if (milestone.workOrderMilestoneCompletionDate) {
|
||||
panelBlockElement.querySelector(".button--reopenMilestone").addEventListener("click", reopenMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")
|
||||
.addEventListener("click", reopenMilestone);
|
||||
}
|
||||
else {
|
||||
panelBlockElement.querySelector(".button--editMilestone").addEventListener("click", editMilestone);
|
||||
panelBlockElement.querySelector(".button--completeMilestone").addEventListener("click", completeMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--editMilestone")
|
||||
.addEventListener("click", editMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--completeMilestone")
|
||||
.addEventListener("click", completeMilestone);
|
||||
}
|
||||
panelBlockElement.querySelector(".button--deleteMilestone").addEventListener("click", deleteMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteMilestone")
|
||||
.addEventListener("click", deleteMilestone);
|
||||
milestonesPanelElement.append(panelBlockElement);
|
||||
}
|
||||
bulmaJS.init(milestonesPanelElement);
|
||||
|
|
|
|||
|
|
@ -506,24 +506,22 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>";
|
||||
|
||||
if (milestone.workOrderMilestoneCompletionDate) {
|
||||
(
|
||||
panelBlockElement.querySelector(".button--reopenMilestone") as HTMLButtonElement
|
||||
).addEventListener("click", reopenMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")!
|
||||
.addEventListener("click", reopenMilestone);
|
||||
} else {
|
||||
(
|
||||
panelBlockElement.querySelector(".button--editMilestone") as HTMLButtonElement
|
||||
).addEventListener("click", editMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--editMilestone")!
|
||||
.addEventListener("click", editMilestone);
|
||||
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--completeMilestone"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", completeMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--completeMilestone")!
|
||||
.addEventListener("click", completeMilestone);
|
||||
}
|
||||
|
||||
(
|
||||
panelBlockElement.querySelector(".button--deleteMilestone") as HTMLButtonElement
|
||||
).addEventListener("click", deleteMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteMilestone")!
|
||||
.addEventListener("click", deleteMilestone);
|
||||
|
||||
milestonesPanelElement.append(panelBlockElement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const workOrderMilestoneDateFilterElement = workOrderSearchFiltersFormElement.querySelector("#searchFilter--workOrderMilestoneDateFilter");
|
||||
const workOrderMilestoneDateStringElement = workOrderSearchFiltersFormElement.querySelector("#searchFilter--workOrderMilestoneDateString");
|
||||
const milestoneCalendarContainerElement = document.querySelector("#container--milestoneCalendar");
|
||||
const renderMilestones = (workOrderMilestones) => {
|
||||
function renderMilestones(workOrderMilestones) {
|
||||
if (workOrderMilestones.length === 0) {
|
||||
milestoneCalendarContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -105,8 +105,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
currentPanelElement.append(panelBlockElement);
|
||||
}
|
||||
milestoneCalendarContainerElement.append(currentPanelElement);
|
||||
};
|
||||
const getMilestones = (event) => {
|
||||
}
|
||||
function getMilestones(event) {
|
||||
if (event) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
|
@ -115,7 +115,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
cityssm.postJSON(los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => {
|
||||
renderMilestones(responseJSON.workOrderMilestones);
|
||||
});
|
||||
};
|
||||
}
|
||||
workOrderMilestoneDateFilterElement.addEventListener("change", () => {
|
||||
workOrderMilestoneDateStringElement.closest("fieldset").disabled =
|
||||
workOrderMilestoneDateFilterElement.value !== "date";
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ declare const cityssm: cityssmGlobal;
|
|||
"#container--milestoneCalendar"
|
||||
) as HTMLElement;
|
||||
|
||||
const renderMilestones = (workOrderMilestones: recordTypes.WorkOrderMilestone[]) => {
|
||||
function renderMilestones(workOrderMilestones: recordTypes.WorkOrderMilestone[]) {
|
||||
if (workOrderMilestones.length === 0) {
|
||||
milestoneCalendarContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -141,9 +141,9 @@ declare const cityssm: cityssmGlobal;
|
|||
}
|
||||
|
||||
milestoneCalendarContainerElement.append(currentPanelElement!);
|
||||
};
|
||||
}
|
||||
|
||||
const getMilestones = (event?: Event) => {
|
||||
function getMilestones(event?: Event) {
|
||||
if (event) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
|
@ -158,7 +158,7 @@ declare const cityssm: cityssmGlobal;
|
|||
renderMilestones(responseJSON.workOrderMilestones);
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
workOrderMilestoneDateFilterElement.addEventListener("change", () => {
|
||||
workOrderMilestoneDateStringElement.closest("fieldset")!.disabled =
|
||||
|
|
|
|||
|
|
@ -154,10 +154,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>";
|
||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||
if (responseJSON.offset > 0) {
|
||||
searchResultsContainerElement.querySelector("button[data-page='previous']").addEventListener("click", previousAndGetWorkOrders);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")
|
||||
.addEventListener("click", previousAndGetWorkOrders);
|
||||
}
|
||||
if (limit + responseJSON.offset < responseJSON.count) {
|
||||
searchResultsContainerElement.querySelector("button[data-page='next']").addEventListener("click", nextAndGetWorkOrders);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")
|
||||
.addEventListener("click", nextAndGetWorkOrders);
|
||||
}
|
||||
}
|
||||
function getWorkOrders() {
|
||||
|
|
|
|||
|
|
@ -189,19 +189,15 @@ declare const cityssm: cityssmGlobal;
|
|||
searchResultsContainerElement.querySelector("table")!.append(resultsTbodyElement);
|
||||
|
||||
if (responseJSON.offset > 0) {
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='previous']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", previousAndGetWorkOrders);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")!
|
||||
.addEventListener("click", previousAndGetWorkOrders);
|
||||
}
|
||||
|
||||
if (limit + responseJSON.offset < responseJSON.count) {
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='next']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", nextAndGetWorkOrders);
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")!
|
||||
.addEventListener("click", nextAndGetWorkOrders);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,15 +5,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const los = exports.los;
|
||||
const reopenWorkOrderButtonElement = document.querySelector("#button--reopenWorkOrder");
|
||||
if (reopenWorkOrderButtonElement) {
|
||||
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
||||
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||
const doReopen = () => {
|
||||
function doReopen() {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doReopenWorkOrder", {
|
||||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
los.urlPrefix + "/workOrders/" + workOrderId + "/edit/?t=" + Date.now();
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
workOrderId +
|
||||
"/edit/?t=" +
|
||||
Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -23,7 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
bulmaJS.confirm({
|
||||
title: "Reopen Work Order",
|
||||
message: "Are you sure you want to remove the close date from this work order and reopen it?",
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@ declare const bulmaJS: BulmaJS;
|
|||
) as HTMLButtonElement;
|
||||
|
||||
if (reopenWorkOrderButtonElement) {
|
||||
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
||||
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||
|
||||
const doReopen = () => {
|
||||
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
||||
function doReopen() {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/workOrders/doReopenWorkOrder",
|
||||
{
|
||||
|
|
@ -29,7 +29,11 @@ declare const bulmaJS: BulmaJS;
|
|||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
los.urlPrefix + "/workOrders/" + workOrderId + "/edit/?t=" + Date.now();
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
workOrderId +
|
||||
"/edit/?t=" +
|
||||
Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Reopening Work Order",
|
||||
|
|
@ -39,7 +43,7 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Reopen Work Order",
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#map--mapId").value,a=""===t,s=document.querySelector("#form--map");s.addEventListener("submit",t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/maps/"+(a?"doCreateMap":"doUpdateMap"),s,t=>{t.success?(cityssm.disableNavBlocker(),a?window.location.href=e.urlPrefix+"/maps/"+t.mapId+"/edit":bulmaJS.alert({message:exports.aliases.map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.map,message:t.errorMessage||"",contextualColorName:"danger"})})});const o=s.querySelectorAll("input, select");for(const e of o)e.addEventListener("change",cityssm.enableNavBlocker);a||document.querySelector("#button--deleteMap").addEventListener("click",a=>{a.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.map,message:"Are you sure you want to delete this "+exports.aliases.map.toLowerCase()+" and all related "+exports.aliases.lots.toLowerCase()+"?",contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.map+"?",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/maps/doDeleteMap",{mapId:t},t=>{t.success?window.location.href=e.urlPrefix+"/maps?t="+Date.now():bulmaJS.alert({title:"Error Deleting "+exports.aliases.map,message:t.errorMessage||"",contextualColorName:"danger"})})}}})})})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#map--mapId").value,a=""===t,s=document.querySelector("#form--map");s.addEventListener("submit",function(t){t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/maps/"+(a?"doCreateMap":"doUpdateMap"),s,t=>{t.success?(cityssm.disableNavBlocker(),a?window.location.href=e.urlPrefix+"/maps/"+t.mapId+"/edit":bulmaJS.alert({message:exports.aliases.map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.map,message:t.errorMessage||"",contextualColorName:"danger"})})});const o=s.querySelectorAll("input, select");for(const e of o)e.addEventListener("change",cityssm.enableNavBlocker);a||document.querySelector("#button--deleteMap").addEventListener("click",a=>{a.preventDefault(),bulmaJS.confirm({title:"Delete "+exports.aliases.map,message:`Are you sure you want to delete this ${exports.aliases.map.toLowerCase()} and all related ${exports.aliases.lots.toLowerCase()}?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${exports.aliases.map}`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/maps/doDeleteMap",{mapId:t},t=>{t.success?window.location.href=e.urlPrefix+"/maps?t="+Date.now():bulmaJS.alert({title:"Error Deleting "+exports.aliases.map,message:t.errorMessage||"",contextualColorName:"danger"})})}}})})})();
|
||||
|
|
@ -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"),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 e=document.createElement("table");e.className="table is-fullwidth is-striped is-hoverable has-sticky-header",e.innerHTML="<thead><tr><th>"+exports.aliases.map+'</th><th>Address</th><th>Phone Number</th><th class="has-text-centered">Coordinates</th><th class="has-text-centered">Image</th><th class="has-text-right">'+exports.aliases.lot+" Count</th></tr></thead>",e.append(i),t.append(e)}};a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=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()})();
|
||||
|
|
@ -1 +1 @@
|
|||
(()=>{const e=document.querySelectorAll(".menu a"),s=document.querySelectorAll(".tabs-container > div"),t=t=>{t.preventDefault();for(const s of e)s.classList.remove("is-active");const c=t.currentTarget;c.classList.add("is-active");const i=c.href.slice(Math.max(0,c.href.indexOf("#")+1));for(const e of s)e.id===i?e.classList.remove("is-hidden"):e.classList.add("is-hidden")};for(const s of e)s.addEventListener("click",t)})();
|
||||
(()=>{const e=document.querySelectorAll(".menu a"),t=document.querySelectorAll(".tabs-container > div");function s(s){s.preventDefault();for(const t of e)t.classList.remove("is-active");const c=s.currentTarget;c.classList.add("is-active");const i=c.href.slice(Math.max(0,c.href.indexOf("#")+1));for(const e of t)e.id===i?e.classList.remove("is-hidden"):e.classList.add("is-hidden")}for(const t of e)t.addEventListener("click",s)})();
|
||||
|
|
@ -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"),i=r=>{r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{(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"><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()})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,r=document.querySelector("#button--reopenWorkOrder");r&&r.addEventListener("click",()=>{const o=r.dataset.workOrderId;bulmaJS.confirm({title:"Reopen Work Order",message:"Are you sure you want to remove the close date from this work order and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Work Order",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doReopenWorkOrder",{workOrderId:o},r=>{r.success?window.location.href=e.urlPrefix+"/workOrders/"+o+"/edit/?t="+Date.now():bulmaJS.alert({title:"Error Reopening Work Order",message:r.errorMessage||"",contextualColorName:"danger"})})}}})})})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,r=document.querySelector("#button--reopenWorkOrder");if(r){const o=r.dataset.workOrderId;r.addEventListener("click",()=>{bulmaJS.confirm({title:"Reopen Work Order",message:"Are you sure you want to remove the close date from this work order and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Work Order",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/workOrders/doReopenWorkOrder",{workOrderId:o},r=>{r.success?window.location.href=e.urlPrefix+"/workOrders/"+o+"/edit/?t="+Date.now():bulmaJS.alert({title:"Error Reopening Work Order",message:r.errorMessage||"",contextualColorName:"danger"})})}}})})}})();
|
||||
Loading…
Reference in New Issue