linting, cleanup
parent
f5f10a5d76
commit
991df98ff3
|
|
@ -90,14 +90,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
(fee.isRequired ? '<span class="tag is-warning">Required</span>' : "") +
|
||||
(fee.occupancyTypeId
|
||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
los.escapedAliases.Occupancy +
|
||||
' Type Filter">' +
|
||||
cityssm.escapeHTML(fee.occupancyType || "") +
|
||||
"</span>"
|
||||
: "") +
|
||||
(fee.lotTypeId
|
||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
' Type Filter">' +
|
||||
cityssm.escapeHTML(fee.lotType || "") +
|
||||
"</span>"
|
||||
|
|
|
|||
|
|
@ -118,14 +118,14 @@ declare const bulmaJS: BulmaJS;
|
|||
(fee.isRequired ? '<span class="tag is-warning">Required</span>' : "") +
|
||||
(fee.occupancyTypeId
|
||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
los.escapedAliases.Occupancy +
|
||||
' Type Filter">' +
|
||||
cityssm.escapeHTML(fee.occupancyType || "") +
|
||||
"</span>"
|
||||
: "") +
|
||||
(fee.lotTypeId
|
||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
' Type Filter">' +
|
||||
cityssm.escapeHTML(fee.lotType || "") +
|
||||
"</span>"
|
||||
|
|
|
|||
|
|
@ -39,7 +39,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
}
|
||||
function deleteLotType(clickEvent) {
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10);
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset
|
||||
.lotTypeId, 10);
|
||||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotType", {
|
||||
lotTypeId
|
||||
|
|
@ -56,7 +57,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
function openEditLotType(clickEvent) {
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10);
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset
|
||||
.lotTypeId, 10);
|
||||
const lotType = lotTypes.find((currentLotType) => {
|
||||
return lotTypeId === currentLotType.lotTypeId;
|
||||
});
|
||||
|
|
@ -90,7 +92,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
function openAddLotTypeField(clickEvent) {
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10);
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset
|
||||
.lotTypeId, 10);
|
||||
let addCloseModalFunction;
|
||||
const doAdd = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
|
@ -107,7 +110,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
onshow(modalElement) {
|
||||
los.populateAliases(modalElement);
|
||||
if (lotTypeId) {
|
||||
modalElement.querySelector("#lotTypeFieldAdd--lotTypeId").value = lotTypeId.toString();
|
||||
modalElement.querySelector("#lotTypeFieldAdd--lotTypeId").value =
|
||||
lotTypeId.toString();
|
||||
}
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
|
|
@ -123,13 +127,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
function moveLotType(clickEvent) {
|
||||
const buttonElement = clickEvent.currentTarget;
|
||||
const lotTypeId = buttonElement.closest(".container--lotType").dataset
|
||||
.lotTypeId;
|
||||
const lotTypeId = buttonElement.closest(".container--lotType").dataset.lotTypeId;
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
? "doMoveLotTypeUp"
|
||||
: "doMoveLotTypeDown"), {
|
||||
(buttonElement.dataset.direction === "up" ? "doMoveLotTypeUp" : "doMoveLotTypeDown"), {
|
||||
lotTypeId,
|
||||
moveToEnd: clickEvent.shiftKey ? "1" : "0"
|
||||
}, lotTypeResponseHandler);
|
||||
|
|
@ -194,9 +195,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
cityssm.openHtmlModal("adminLotTypes-editLotTypeField", {
|
||||
onshow(modalElement) {
|
||||
los.populateAliases(modalElement);
|
||||
modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value = lotTypeField.lotTypeFieldId.toString();
|
||||
modalElement.querySelector("#lotTypeFieldEdit--lotTypeField").value = lotTypeField.lotTypeField;
|
||||
modalElement.querySelector("#lotTypeFieldEdit--isRequired").value = lotTypeField.isRequired ? "1" : "0";
|
||||
modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId").value =
|
||||
lotTypeField.lotTypeFieldId.toString();
|
||||
modalElement.querySelector("#lotTypeFieldEdit--lotTypeField").value =
|
||||
lotTypeField.lotTypeField;
|
||||
modalElement.querySelector("#lotTypeFieldEdit--isRequired").value =
|
||||
lotTypeField.isRequired ? "1" : "0";
|
||||
minimumLengthElement = modalElement.querySelector("#lotTypeFieldEdit--minimumLength");
|
||||
minimumLengthElement.value = lotTypeField.minimumLength.toString();
|
||||
maximumLengthElement = modalElement.querySelector("#lotTypeFieldEdit--maximumLength");
|
||||
|
|
@ -228,14 +232,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
function openEditLotTypeFieldByClick(clickEvent) {
|
||||
clickEvent.preventDefault();
|
||||
const lotTypeFieldId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId, 10);
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10);
|
||||
const lotTypeFieldId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotTypeField")
|
||||
.dataset.lotTypeFieldId, 10);
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset
|
||||
.lotTypeId, 10);
|
||||
openEditLotTypeField(lotTypeId, lotTypeFieldId);
|
||||
}
|
||||
function moveLotTypeField(clickEvent) {
|
||||
const buttonElement = clickEvent.currentTarget;
|
||||
const lotTypeFieldId = buttonElement.closest(".container--lotTypeField")
|
||||
.dataset.lotTypeFieldId;
|
||||
const lotTypeFieldId = buttonElement.closest(".container--lotTypeField").dataset
|
||||
.lotTypeFieldId;
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
|
|
@ -373,7 +379,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Type",
|
||||
title: `Error Adding ${los.escapedAliases.Lot} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
|
|||
|
|
@ -63,11 +63,8 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
function deleteLotType(clickEvent: Event) {
|
||||
const lotTypeId = Number.parseInt(
|
||||
(
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotType"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeId!,
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset
|
||||
.lotTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -94,11 +91,8 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
function openEditLotType(clickEvent: Event) {
|
||||
const lotTypeId = Number.parseInt(
|
||||
(
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotType"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeId!,
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset
|
||||
.lotTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -154,11 +148,8 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
function openAddLotTypeField(clickEvent: Event) {
|
||||
const lotTypeId = Number.parseInt(
|
||||
(
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotType"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeId!,
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset
|
||||
.lotTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -192,19 +183,14 @@ declare const bulmaJS: BulmaJS;
|
|||
los.populateAliases(modalElement);
|
||||
|
||||
if (lotTypeId) {
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotTypeFieldAdd--lotTypeId"
|
||||
) as HTMLInputElement
|
||||
).value = lotTypeId.toString();
|
||||
(modalElement.querySelector("#lotTypeFieldAdd--lotTypeId") as HTMLInputElement).value =
|
||||
lotTypeId.toString();
|
||||
}
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
|
||||
(
|
||||
modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement
|
||||
).focus();
|
||||
(modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement).focus();
|
||||
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||
|
||||
|
|
@ -219,15 +205,12 @@ declare const bulmaJS: BulmaJS;
|
|||
function moveLotType(clickEvent: MouseEvent) {
|
||||
const buttonElement = clickEvent.currentTarget as HTMLButtonElement;
|
||||
|
||||
const lotTypeId = (buttonElement.closest(".container--lotType") as HTMLElement).dataset
|
||||
.lotTypeId;
|
||||
const lotTypeId = (buttonElement.closest(".container--lotType") as HTMLElement).dataset.lotTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
? "doMoveLotTypeUp"
|
||||
: "doMoveLotTypeDown"),
|
||||
(buttonElement.dataset.direction === "up" ? "doMoveLotTypeUp" : "doMoveLotTypeDown"),
|
||||
{
|
||||
lotTypeId,
|
||||
moveToEnd: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -323,21 +306,14 @@ declare const bulmaJS: BulmaJS;
|
|||
onshow(modalElement) {
|
||||
los.populateAliases(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--lotTypeFieldId"
|
||||
) as HTMLInputElement
|
||||
).value = lotTypeField.lotTypeFieldId.toString();
|
||||
(modalElement.querySelector("#lotTypeFieldEdit--lotTypeFieldId") as HTMLInputElement).value =
|
||||
lotTypeField.lotTypeFieldId.toString();
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--lotTypeField"
|
||||
) as HTMLInputElement
|
||||
).value = lotTypeField.lotTypeField!;
|
||||
(modalElement.querySelector("#lotTypeFieldEdit--lotTypeField") as HTMLInputElement).value =
|
||||
lotTypeField.lotTypeField!;
|
||||
|
||||
(
|
||||
modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement
|
||||
).value = lotTypeField.isRequired ? "1" : "0";
|
||||
(modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement).value =
|
||||
lotTypeField.isRequired ? "1" : "0";
|
||||
|
||||
minimumLengthElement = modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--minimumLength"
|
||||
|
|
@ -351,9 +327,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
maximumLengthElement.value = lotTypeField.maximumLength!.toString();
|
||||
|
||||
patternElement = modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--pattern"
|
||||
) as HTMLInputElement;
|
||||
patternElement = modalElement.querySelector("#lotTypeFieldEdit--pattern") as HTMLInputElement;
|
||||
|
||||
patternElement.value = lotTypeField.pattern!;
|
||||
|
||||
|
|
@ -394,20 +368,14 @@ declare const bulmaJS: BulmaJS;
|
|||
clickEvent.preventDefault();
|
||||
|
||||
const lotTypeFieldId = Number.parseInt(
|
||||
(
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotTypeField"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeFieldId!,
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--lotTypeField") as HTMLElement)
|
||||
.dataset.lotTypeFieldId!,
|
||||
10
|
||||
);
|
||||
|
||||
const lotTypeId = Number.parseInt(
|
||||
(
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotType"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeId!,
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--lotType") as HTMLElement).dataset
|
||||
.lotTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -417,8 +385,8 @@ declare const bulmaJS: BulmaJS;
|
|||
function moveLotTypeField(clickEvent: MouseEvent) {
|
||||
const buttonElement = clickEvent.currentTarget as HTMLButtonElement;
|
||||
|
||||
const lotTypeFieldId = (buttonElement.closest(".container--lotTypeField") as HTMLElement)
|
||||
.dataset.lotTypeFieldId;
|
||||
const lotTypeFieldId = (buttonElement.closest(".container--lotTypeField") as HTMLElement).dataset
|
||||
.lotTypeFieldId;
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix +
|
||||
|
|
@ -485,15 +453,11 @@ declare const bulmaJS: BulmaJS;
|
|||
.addEventListener("click", openEditLotTypeFieldByClick);
|
||||
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--moveLotTypeFieldUp"
|
||||
) as HTMLButtonElement
|
||||
panelBlockElement.querySelector(".button--moveLotTypeFieldUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotTypeField);
|
||||
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--moveLotTypeFieldDown"
|
||||
) as HTMLButtonElement
|
||||
panelBlockElement.querySelector(".button--moveLotTypeFieldDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotTypeField);
|
||||
|
||||
panelElement.append(panelBlockElement);
|
||||
|
|
@ -561,10 +525,7 @@ declare const bulmaJS: BulmaJS;
|
|||
"</button>" +
|
||||
"</div>") +
|
||||
('<div class="level-item">' +
|
||||
los.getMoveUpDownButtonFieldHTML(
|
||||
"button--moveLotTypeUp",
|
||||
"button--moveLotTypeDown"
|
||||
) +
|
||||
los.getMoveUpDownButtonFieldHTML("button--moveLotTypeUp", "button--moveLotTypeDown") +
|
||||
"</div>") +
|
||||
"</div>") +
|
||||
"</div>" +
|
||||
|
|
@ -588,9 +549,10 @@ declare const bulmaJS: BulmaJS;
|
|||
.querySelector(".button--addLotTypeField")!
|
||||
.addEventListener("click", openAddLotTypeField);
|
||||
|
||||
(
|
||||
lotTypeContainer.querySelector(".button--moveLotTypeUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotType);
|
||||
(lotTypeContainer.querySelector(".button--moveLotTypeUp") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
moveLotType
|
||||
);
|
||||
|
||||
(
|
||||
lotTypeContainer.querySelector(".button--moveLotTypeDown") as HTMLButtonElement
|
||||
|
|
@ -620,7 +582,7 @@ declare const bulmaJS: BulmaJS;
|
|||
renderLotTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Type",
|
||||
title: `Error Adding ${los.escapedAliases.Lot} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
|
|||
|
|
@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const los = exports.los;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const refreshFontAwesomeIcon = (changeEvent) => {
|
||||
function refreshFontAwesomeIcon(changeEvent) {
|
||||
const inputElement = changeEvent.currentTarget;
|
||||
const fontAwesomeIconClass = inputElement.value;
|
||||
inputElement.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML =
|
||||
'<i class="fas fa-fw fa-' + fontAwesomeIconClass + '" aria-hidden="true"></i>';
|
||||
};
|
||||
inputElement
|
||||
.closest(".field")
|
||||
.querySelectorAll(".button.is-static")[1].innerHTML = `<i class="fas fa-fw fa-${fontAwesomeIconClass}" aria-hidden="true"></i>`;
|
||||
}
|
||||
"use strict";
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
|
@ -66,8 +67,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order Type",
|
||||
message: "Are you sure you want to delete this work order type?<br />" +
|
||||
"Note that no work orders will be removed.",
|
||||
message: `Are you sure you want to delete this work order type?<br />
|
||||
Note that no work orders will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -82,9 +83,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
? "doMoveWorkOrderTypeUp"
|
||||
: "doMoveWorkOrderTypeDown"), {
|
||||
(buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"), {
|
||||
workOrderTypeId,
|
||||
moveToEnd: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -104,14 +103,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const renderWorkOrderTypes = () => {
|
||||
const containerElement = document.querySelector("#container--workOrderTypes");
|
||||
if (workOrderTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active work order types.</p>' +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active work order types.</p></div>
|
||||
</td></tr>`;
|
||||
return;
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -233,8 +227,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order Milestone Type",
|
||||
message: "Are you sure you want to delete this work order milestone type?<br />" +
|
||||
"Note that no work orders will be removed.",
|
||||
message: `Are you sure you want to delete this work order milestone type?<br />
|
||||
Note that no work orders will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -271,14 +265,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const renderWorkOrderMilestoneTypes = () => {
|
||||
const containerElement = document.querySelector("#container--workOrderMilestoneTypes");
|
||||
if (workOrderMilestoneTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active work order milestone types.</p>' +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active work order milestone types.</p></div>
|
||||
</td></tr>`;
|
||||
return;
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -357,13 +346,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot + " Status Updated Successfully",
|
||||
message: los.escapedAliases.Lot + " Status Updated Successfully",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot + " Status",
|
||||
title: "Error Updating " + los.escapedAliases.Lot + " Status",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -386,13 +375,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
tableRowElement.remove();
|
||||
}
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot + " Status Deleted Successfully",
|
||||
message: los.escapedAliases.Lot + " Status Deleted Successfully",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot + " Status",
|
||||
title: "Error Deleting " + los.escapedAliases.Lot + " Status",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -400,11 +389,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot + " Status",
|
||||
message: "Are you sure you want to delete this status?<br />" +
|
||||
"Note that no " +
|
||||
exports.aliases.lots.toLowerCase() +
|
||||
" will be removed.",
|
||||
title: `Delete ${los.escapedAliases.Lot} Status`,
|
||||
message: `Are you sure you want to delete this status?<br />
|
||||
Note that no ${los.escapedAliases.lot} will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -419,9 +406,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
? "doMoveLotStatusUp"
|
||||
: "doMoveLotStatusDown"), {
|
||||
(buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"), {
|
||||
lotStatusId,
|
||||
moveToEnd: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -441,16 +426,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const renderLotStatuses = () => {
|
||||
const containerElement = document.querySelector("#container--lotStatuses");
|
||||
if (lotStatuses.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
|
||||
" statuses.</p>" +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} statuses.</p></div>
|
||||
</td></tr>`;
|
||||
return;
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -491,9 +469,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
||||
tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatus);
|
||||
tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatus);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotStatus")
|
||||
.addEventListener("click", deleteLotStatus);
|
||||
tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
@ -509,7 +485,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Status",
|
||||
title: `Error Adding ${los.escapedAliases.Lot} Status`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -529,20 +505,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type Updated Successfully",
|
||||
message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`,
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -565,20 +534,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
tableRowElement.remove();
|
||||
}
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type Deleted Successfully",
|
||||
message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`,
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -586,21 +548,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type",
|
||||
message: "Are you sure you want to delete this " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
" " +
|
||||
exports.aliases.occupant.toLowerCase() +
|
||||
" type?<br />" +
|
||||
"Note that no " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
" " +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" will be removed.",
|
||||
title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?<br />
|
||||
Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type",
|
||||
text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
|
|
@ -623,11 +577,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -637,18 +587,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const renderLotOccupantTypes = () => {
|
||||
const containerElement = document.querySelector("#container--lotOccupantTypes");
|
||||
if (lotOccupantTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="3">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) +
|
||||
" types.</p>" +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="3">
|
||||
<div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.</p></div>
|
||||
</td></tr>`;
|
||||
return;
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -703,14 +644,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<div class="control">' +
|
||||
'<button class="button is-danger is-light button--deleteLotOccupantType"' +
|
||||
' data-tooltip="Delete ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
' Type" type="button"' +
|
||||
' aria-label="Delete ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
' Type">' +
|
||||
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
||||
"</button>" +
|
||||
|
|
@ -741,11 +682,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
|
|||
|
|
@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const los = exports.los;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const refreshFontAwesomeIcon = (changeEvent) => {
|
||||
function refreshFontAwesomeIcon(changeEvent) {
|
||||
const inputElement = changeEvent.currentTarget;
|
||||
const fontAwesomeIconClass = inputElement.value;
|
||||
inputElement.closest(".field").querySelectorAll(".button.is-static")[1].innerHTML =
|
||||
'<i class="fas fa-fw fa-' + fontAwesomeIconClass + '" aria-hidden="true"></i>';
|
||||
};
|
||||
inputElement
|
||||
.closest(".field")
|
||||
.querySelectorAll(".button.is-static")[1].innerHTML = `<i class="fas fa-fw fa-${fontAwesomeIconClass}" aria-hidden="true"></i>`;
|
||||
}
|
||||
//=include adminTablesWorkOrderTypes.js
|
||||
//=include adminTablesWorkOrderMilestoneTypes.js
|
||||
//=include adminTablesLotStatuses.js
|
||||
|
|
|
|||
|
|
@ -7,14 +7,17 @@ import type * as globalTypes from "../../types/globalTypes";
|
|||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const refreshFontAwesomeIcon = (changeEvent: Event) => {
|
||||
function refreshFontAwesomeIcon(changeEvent: Event) {
|
||||
const inputElement = changeEvent.currentTarget as HTMLInputElement;
|
||||
|
||||
const fontAwesomeIconClass = inputElement.value;
|
||||
|
||||
inputElement.closest(".field")!.querySelectorAll(".button.is-static")[1].innerHTML =
|
||||
'<i class="fas fa-fw fa-' + fontAwesomeIconClass + '" aria-hidden="true"></i>';
|
||||
};
|
||||
inputElement
|
||||
.closest(".field")!
|
||||
.querySelectorAll(
|
||||
".button.is-static"
|
||||
)[1].innerHTML = `<i class="fas fa-fw fa-${fontAwesomeIconClass}" aria-hidden="true"></i>`;
|
||||
}
|
||||
|
||||
//=include adminTablesWorkOrderTypes.js
|
||||
//=include adminTablesWorkOrderMilestoneTypes.js
|
||||
|
|
|
|||
|
|
@ -9,20 +9,13 @@ const updateLotOccupantType = (submitEvent) => {
|
|||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type Updated Successfully",
|
||||
message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`,
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -45,20 +38,13 @@ const deleteLotOccupantType = (clickEvent) => {
|
|||
tableRowElement.remove();
|
||||
}
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type Deleted Successfully",
|
||||
message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`,
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -66,21 +52,13 @@ const deleteLotOccupantType = (clickEvent) => {
|
|||
});
|
||||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type",
|
||||
message: "Are you sure you want to delete this " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
" " +
|
||||
exports.aliases.occupant.toLowerCase() +
|
||||
" type?<br />" +
|
||||
"Note that no " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
" " +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" will be removed.",
|
||||
title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?<br />
|
||||
Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type",
|
||||
text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
|
|
@ -103,11 +81,7 @@ const moveLotOccupantType = (clickEvent) => {
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -117,18 +91,9 @@ const moveLotOccupantType = (clickEvent) => {
|
|||
const renderLotOccupantTypes = () => {
|
||||
const containerElement = document.querySelector("#container--lotOccupantTypes");
|
||||
if (lotOccupantTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="3">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) +
|
||||
" types.</p>" +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="3">
|
||||
<div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.</p></div>
|
||||
</td></tr>`;
|
||||
return;
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -183,14 +148,14 @@ const renderLotOccupantTypes = () => {
|
|||
'<div class="control">' +
|
||||
'<button class="button is-danger is-light button--deleteLotOccupantType"' +
|
||||
' data-tooltip="Delete ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
' Type" type="button"' +
|
||||
' aria-label="Delete ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
' Type">' +
|
||||
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
||||
"</button>" +
|
||||
|
|
@ -221,11 +186,7 @@ document.querySelector("#form--addLotOccupantType").addEventListener("submit", (
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
|
|||
|
|
@ -31,21 +31,12 @@ const updateLotOccupantType = (submitEvent: SubmitEvent) => {
|
|||
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||
|
||||
bulmaJS.alert({
|
||||
message:
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type Updated Successfully",
|
||||
message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Updated Successfully`,
|
||||
contextualColorName: "success"
|
||||
});
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title:
|
||||
"Error Updating " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Updating ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -80,21 +71,12 @@ const deleteLotOccupantType = (clickEvent: Event) => {
|
|||
}
|
||||
|
||||
bulmaJS.alert({
|
||||
message:
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type Deleted Successfully",
|
||||
message: `${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type Deleted Successfully`,
|
||||
contextualColorName: "success"
|
||||
});
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title:
|
||||
"Error Deleting " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Deleting ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -104,22 +86,13 @@ const deleteLotOccupantType = (clickEvent: Event) => {
|
|||
};
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type",
|
||||
message:
|
||||
"Are you sure you want to delete this " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
" " +
|
||||
exports.aliases.occupant.toLowerCase() +
|
||||
" type?<br />" +
|
||||
"Note that no " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
" " +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" will be removed.",
|
||||
title: `Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: `Are you sure you want to delete this ${los.escapedAliases.lot} ${los.escapedAliases.occupant} type?<br />
|
||||
Note that no ${los.escapedAliases.lot} ${los.escapedAliases.occupants} will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type",
|
||||
text: `Yes, Delete ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
|
|
@ -152,12 +125,7 @@ const moveLotOccupantType = (clickEvent: MouseEvent) => {
|
|||
renderLotOccupantTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title:
|
||||
"Error Moving " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Moving ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -172,18 +140,9 @@ const renderLotOccupantTypes = () => {
|
|||
) as HTMLTableSectionElement;
|
||||
|
||||
if (lotOccupantTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="3">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant.toLowerCase()) +
|
||||
" types.</p>" +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="3">
|
||||
<div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} ${los.escapedAliases.occupant} types.</p></div>
|
||||
</td></tr>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -248,14 +207,14 @@ const renderLotOccupantTypes = () => {
|
|||
'<div class="control">' +
|
||||
'<button class="button is-danger is-light button--deleteLotOccupantType"' +
|
||||
' data-tooltip="Delete ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
' Type" type="button"' +
|
||||
' aria-label="Delete ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
" " +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
' Type">' +
|
||||
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
||||
"</button>" +
|
||||
|
|
@ -263,9 +222,7 @@ const renderLotOccupantTypes = () => {
|
|||
"</div>" +
|
||||
"</td>";
|
||||
|
||||
const fontAwesomeInputElement = tableRowElement.querySelector(
|
||||
"input[name='fontAwesomeIconClass']"
|
||||
)!;
|
||||
const fontAwesomeInputElement = tableRowElement.querySelector("input[name='fontAwesomeIconClass']")!;
|
||||
|
||||
fontAwesomeInputElement.addEventListener("keyup", refreshFontAwesomeIcon);
|
||||
fontAwesomeInputElement.addEventListener("change", refreshFontAwesomeIcon);
|
||||
|
|
@ -310,12 +267,7 @@ const renderLotOccupantTypes = () => {
|
|||
formElement.querySelector("input")!.focus();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title:
|
||||
"Error Adding " +
|
||||
exports.aliases.lot +
|
||||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
title: `Error Adding ${los.escapedAliases.Lot} ${los.escapedAliases.Occupant} Type`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@ const updateLotStatus = (submitEvent) => {
|
|||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot + " Status Updated Successfully",
|
||||
message: los.escapedAliases.Lot + " Status Updated Successfully",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot + " Status",
|
||||
title: "Error Updating " + los.escapedAliases.Lot + " Status",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -38,13 +38,13 @@ const deleteLotStatus = (clickEvent) => {
|
|||
tableRowElement.remove();
|
||||
}
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot + " Status Deleted Successfully",
|
||||
message: los.escapedAliases.Lot + " Status Deleted Successfully",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot + " Status",
|
||||
title: "Error Deleting " + los.escapedAliases.Lot + " Status",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -52,11 +52,9 @@ const deleteLotStatus = (clickEvent) => {
|
|||
});
|
||||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot + " Status",
|
||||
message: "Are you sure you want to delete this status?<br />" +
|
||||
"Note that no " +
|
||||
exports.aliases.lots.toLowerCase() +
|
||||
" will be removed.",
|
||||
title: `Delete ${los.escapedAliases.Lot} Status`,
|
||||
message: `Are you sure you want to delete this status?<br />
|
||||
Note that no ${los.escapedAliases.lot} will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -71,9 +69,7 @@ const moveLotStatus = (clickEvent) => {
|
|||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
? "doMoveLotStatusUp"
|
||||
: "doMoveLotStatusDown"), {
|
||||
(buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"), {
|
||||
lotStatusId,
|
||||
moveToEnd: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -93,16 +89,9 @@ const moveLotStatus = (clickEvent) => {
|
|||
const renderLotStatuses = () => {
|
||||
const containerElement = document.querySelector("#container--lotStatuses");
|
||||
if (lotStatuses.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
|
||||
" statuses.</p>" +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} statuses.</p></div>
|
||||
</td></tr>`;
|
||||
return;
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -143,9 +132,7 @@ const renderLotStatuses = () => {
|
|||
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
||||
tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatus);
|
||||
tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatus);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotStatus")
|
||||
.addEventListener("click", deleteLotStatus);
|
||||
tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
|
@ -161,7 +148,7 @@ document.querySelector("#form--addLotStatus").addEventListener("submit", (submit
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Status",
|
||||
title: `Error Adding ${los.escapedAliases.Lot} Status`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
|
|||
|
|
@ -30,12 +30,12 @@ const updateLotStatus = (submitEvent: SubmitEvent) => {
|
|||
lotStatuses = responseJSON.lotStatuses!;
|
||||
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot + " Status Updated Successfully",
|
||||
message: los.escapedAliases.Lot + " Status Updated Successfully",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot + " Status",
|
||||
title: "Error Updating " + los.escapedAliases.Lot + " Status",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -70,12 +70,12 @@ const deleteLotStatus = (clickEvent: Event) => {
|
|||
}
|
||||
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot + " Status Deleted Successfully",
|
||||
message: los.escapedAliases.Lot + " Status Deleted Successfully",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot + " Status",
|
||||
title: "Error Deleting " + los.escapedAliases.Lot + " Status",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -85,12 +85,9 @@ const deleteLotStatus = (clickEvent: Event) => {
|
|||
};
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot + " Status",
|
||||
message:
|
||||
"Are you sure you want to delete this status?<br />" +
|
||||
"Note that no " +
|
||||
exports.aliases.lots.toLowerCase() +
|
||||
" will be removed.",
|
||||
title: `Delete ${los.escapedAliases.Lot} Status`,
|
||||
message: `Are you sure you want to delete this status?<br />
|
||||
Note that no ${los.escapedAliases.lot} will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -110,9 +107,7 @@ const moveLotStatus = (clickEvent: MouseEvent) => {
|
|||
cityssm.postJSON(
|
||||
los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
? "doMoveLotStatusUp"
|
||||
: "doMoveLotStatusDown"),
|
||||
(buttonElement.dataset.direction === "up" ? "doMoveLotStatusUp" : "doMoveLotStatusDown"),
|
||||
{
|
||||
lotStatusId,
|
||||
moveToEnd: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -137,21 +132,12 @@ const moveLotStatus = (clickEvent: MouseEvent) => {
|
|||
};
|
||||
|
||||
const renderLotStatuses = () => {
|
||||
const containerElement = document.querySelector(
|
||||
"#container--lotStatuses"
|
||||
) as HTMLTableSectionElement;
|
||||
const containerElement = document.querySelector("#container--lotStatuses") as HTMLTableSectionElement;
|
||||
|
||||
if (lotStatuses.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot.toLowerCase()) +
|
||||
" statuses.</p>" +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active ${los.escapedAliases.lot} statuses.</p></div>
|
||||
</td></tr>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -185,11 +171,7 @@ const renderLotStatuses = () => {
|
|||
'<td class="is-nowrap">' +
|
||||
'<div class="field is-grouped">' +
|
||||
'<div class="control">' +
|
||||
los.getMoveUpDownButtonFieldHTML(
|
||||
"button--moveLotStatusUp",
|
||||
"button--moveLotStatusDown",
|
||||
false
|
||||
) +
|
||||
los.getMoveUpDownButtonFieldHTML("button--moveLotStatusUp", "button--moveLotStatusDown", false) +
|
||||
"</div>" +
|
||||
'<div class="control">' +
|
||||
'<button class="button is-danger is-light button--deleteLotStatus" data-tooltip="Delete Status" type="button" aria-label="Delete Status">' +
|
||||
|
|
@ -201,17 +183,17 @@ const renderLotStatuses = () => {
|
|||
|
||||
tableRowElement.querySelector("form")!.addEventListener("submit", updateLotStatus);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveLotStatusUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotStatus);
|
||||
(tableRowElement.querySelector(".button--moveLotStatusUp") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
moveLotStatus
|
||||
);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveLotStatusDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotStatus);
|
||||
(tableRowElement.querySelector(".button--moveLotStatusDown") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
moveLotStatus
|
||||
);
|
||||
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotStatus")!
|
||||
.addEventListener("click", deleteLotStatus);
|
||||
tableRowElement.querySelector(".button--deleteLotStatus")!.addEventListener("click", deleteLotStatus);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
|
|
@ -239,7 +221,7 @@ const renderLotStatuses = () => {
|
|||
formElement.querySelector("input")!.focus();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Status",
|
||||
title: `Error Adding ${los.escapedAliases.Lot} Status`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ const deleteWorkOrderMilestoneType = (clickEvent) => {
|
|||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order Milestone Type",
|
||||
message: "Are you sure you want to delete this work order milestone type?<br />" +
|
||||
"Note that no work orders will be removed.",
|
||||
message: `Are you sure you want to delete this work order milestone type?<br />
|
||||
Note that no work orders will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -91,14 +91,9 @@ const moveWorkOrderMilestoneType = (clickEvent) => {
|
|||
const renderWorkOrderMilestoneTypes = () => {
|
||||
const containerElement = document.querySelector("#container--workOrderMilestoneTypes");
|
||||
if (workOrderMilestoneTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active work order milestone types.</p>' +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active work order milestone types.</p></div>
|
||||
</td></tr>`;
|
||||
return;
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
|
|||
|
|
@ -86,9 +86,8 @@ const deleteWorkOrderMilestoneType = (clickEvent: Event) => {
|
|||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order Milestone Type",
|
||||
message:
|
||||
"Are you sure you want to delete this work order milestone type?<br />" +
|
||||
"Note that no work orders will be removed.",
|
||||
message: `Are you sure you want to delete this work order milestone type?<br />
|
||||
Note that no work orders will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -140,14 +139,9 @@ const renderWorkOrderMilestoneTypes = () => {
|
|||
) as HTMLTableSectionElement;
|
||||
|
||||
if (workOrderMilestoneTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active work order milestone types.</p>' +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active work order milestone types.</p></div>
|
||||
</td></tr>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -195,21 +189,14 @@ const renderWorkOrderMilestoneTypes = () => {
|
|||
"</div>" +
|
||||
"</td>";
|
||||
|
||||
(tableRowElement.querySelector("form") as HTMLFormElement).addEventListener(
|
||||
"submit",
|
||||
updateWorkOrderMilestoneType
|
||||
);
|
||||
tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderMilestoneType);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(
|
||||
".button--moveWorkOrderMilestoneTypeUp"
|
||||
) as HTMLButtonElement
|
||||
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderMilestoneType);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(
|
||||
".button--moveWorkOrderMilestoneTypeDown"
|
||||
) as HTMLButtonElement
|
||||
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderMilestoneType);
|
||||
|
||||
tableRowElement
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ const deleteWorkOrderType = (clickEvent) => {
|
|||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order Type",
|
||||
message: "Are you sure you want to delete this work order type?<br />" +
|
||||
"Note that no work orders will be removed.",
|
||||
message: `Are you sure you want to delete this work order type?<br />
|
||||
Note that no work orders will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -69,9 +69,7 @@ const moveWorkOrderType = (clickEvent) => {
|
|||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
? "doMoveWorkOrderTypeUp"
|
||||
: "doMoveWorkOrderTypeDown"), {
|
||||
(buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"), {
|
||||
workOrderTypeId,
|
||||
moveToEnd: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -91,14 +89,9 @@ const moveWorkOrderType = (clickEvent) => {
|
|||
const renderWorkOrderTypes = () => {
|
||||
const containerElement = document.querySelector("#container--workOrderTypes");
|
||||
if (workOrderTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active work order types.</p>' +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active work order types.</p></div>
|
||||
</td></tr>`;
|
||||
return;
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
|
|||
|
|
@ -86,9 +86,8 @@ const deleteWorkOrderType = (clickEvent: Event) => {
|
|||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order Type",
|
||||
message:
|
||||
"Are you sure you want to delete this work order type?<br />" +
|
||||
"Note that no work orders will be removed.",
|
||||
message: `Are you sure you want to delete this work order type?<br />
|
||||
Note that no work orders will be removed.`,
|
||||
messageIsHtml: true,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -108,9 +107,7 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => {
|
|||
cityssm.postJSON(
|
||||
los.urlPrefix +
|
||||
"/admin/" +
|
||||
(buttonElement.dataset.direction === "up"
|
||||
? "doMoveWorkOrderTypeUp"
|
||||
: "doMoveWorkOrderTypeDown"),
|
||||
(buttonElement.dataset.direction === "up" ? "doMoveWorkOrderTypeUp" : "doMoveWorkOrderTypeDown"),
|
||||
{
|
||||
workOrderTypeId,
|
||||
moveToEnd: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -135,19 +132,12 @@ const moveWorkOrderType = (clickEvent: MouseEvent) => {
|
|||
};
|
||||
|
||||
const renderWorkOrderTypes = () => {
|
||||
const containerElement = document.querySelector(
|
||||
"#container--workOrderTypes"
|
||||
) as HTMLTableSectionElement;
|
||||
const containerElement = document.querySelector("#container--workOrderTypes") as HTMLTableSectionElement;
|
||||
|
||||
if (workOrderTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
"<tr>" +
|
||||
'<td colspan="2">' +
|
||||
'<div class="message is-warning">' +
|
||||
'<p class="message-body">There are no active work order types.</p>' +
|
||||
"</div>" +
|
||||
"</td>" +
|
||||
"</tr>";
|
||||
containerElement.innerHTML = `<tr><td colspan="2">
|
||||
<div class="message is-warning"><p class="message-body">There are no active work order types.</p></div>
|
||||
</td></tr>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -196,9 +186,10 @@ const renderWorkOrderTypes = () => {
|
|||
|
||||
tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderType);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderType);
|
||||
(tableRowElement.querySelector(".button--moveWorkOrderTypeUp") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
moveWorkOrderType
|
||||
);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeDown") as HTMLButtonElement
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
(() => {
|
||||
var _a, _b, _c;
|
||||
const los = exports.los;
|
||||
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value;
|
||||
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId")
|
||||
.value;
|
||||
const isCreate = lotOccupancyId === "";
|
||||
/*
|
||||
* Main form
|
||||
|
|
@ -13,9 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const formElement = document.querySelector("#form--lotOccupancy");
|
||||
formElement.addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
los.clearUnsavedChanges();
|
||||
if (isCreate || refreshAfterSave) {
|
||||
|
|
@ -46,164 +45,150 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const formInputElement of formInputElements) {
|
||||
formInputElement.addEventListener("change", los.setUnsavedChanges);
|
||||
}
|
||||
if (!isCreate) {
|
||||
const doCopy = () => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", {
|
||||
const doCopy = () => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
var _a;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
((_a = responseJSON.lotOccupancyId) === null || _a === void 0 ? void 0 : _a.toString()) +
|
||||
"/edit";
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Copying Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
(_a = document.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
if (los.hasUnsavedChanges()) {
|
||||
bulmaJS.alert({
|
||||
title: "Unsaved Changes",
|
||||
message: "Please save all unsaved changes before continuing.",
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.confirm({
|
||||
title: "Copy " + los.escapedAliases.Occupancy + " Record as New",
|
||||
message: "Are you sure you want to copy this record to a new record?",
|
||||
contextualColorName: "info",
|
||||
okButton: {
|
||||
text: "Yes, Copy",
|
||||
callbackFunction: doCopy
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
(_b = document.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
var _a;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
((_a = responseJSON.lotOccupancyId) === null || _a === void 0 ? void 0 : _a.toString()) +
|
||||
"/edit";
|
||||
window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Copying Record",
|
||||
title: "Error Deleting Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
(_a = document
|
||||
.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
if (los.hasUnsavedChanges()) {
|
||||
bulmaJS.alert({
|
||||
title: "Unsaved Changes",
|
||||
message: "Please save all unsaved changes before continuing.",
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.confirm({
|
||||
title: "Copy " + exports.aliases.occupancy + " Record as New",
|
||||
message: "Are you sure you want to copy this record to a new record?",
|
||||
contextualColorName: "info",
|
||||
okButton: {
|
||||
text: "Yes, Copy",
|
||||
callbackFunction: doCopy
|
||||
}
|
||||
});
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.occupancy + " Record",
|
||||
message: "Are you sure you want to delete this record?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
(_b = document
|
||||
.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.occupancy + " Record",
|
||||
message: "Are you sure you want to delete this record?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
(_c = document
|
||||
.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
let createCloseModalFunction;
|
||||
const doCreate = (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doCreateWorkOrder", formEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction();
|
||||
bulmaJS.confirm({
|
||||
title: "Work Order Created Successfully",
|
||||
message: "Would you like to open the work order now?",
|
||||
contextualColorName: "success",
|
||||
okButton: {
|
||||
text: "Yes, Open the Work Order",
|
||||
callbackFunction: () => {
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
responseJSON.workOrderId +
|
||||
"/edit";
|
||||
}
|
||||
});
|
||||
(_c = document.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
let createCloseModalFunction;
|
||||
const doCreate = (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doCreateWorkOrder", formEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction();
|
||||
bulmaJS.confirm({
|
||||
title: "Work Order Created Successfully",
|
||||
message: "Would you like to open the work order now?",
|
||||
contextualColorName: "success",
|
||||
okButton: {
|
||||
text: "Yes, Open the Work Order",
|
||||
callbackFunction: () => {
|
||||
window.location.href =
|
||||
los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
|
||||
onshow: (modalElement) => {
|
||||
modalElement.querySelector("#workOrderCreate--lotOccupancyId").value = lotOccupancyId;
|
||||
modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date());
|
||||
const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId");
|
||||
const workOrderTypes = exports.workOrderTypes;
|
||||
if (workOrderTypes.length === 1) {
|
||||
workOrderTypeSelectElement.innerHTML = "";
|
||||
}
|
||||
for (const workOrderType of workOrderTypes) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = workOrderType.workOrderTypeId.toString();
|
||||
optionElement.textContent = workOrderType.workOrderType;
|
||||
workOrderTypeSelectElement.append(optionElement);
|
||||
}
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
var _a;
|
||||
createCloseModalFunction = closeModalFunction;
|
||||
(_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
|
||||
onshow(modalElement) {
|
||||
modalElement.querySelector("#workOrderCreate--lotOccupancyId").value =
|
||||
lotOccupancyId;
|
||||
modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date());
|
||||
const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId");
|
||||
const workOrderTypes = exports.workOrderTypes;
|
||||
if (workOrderTypes.length === 1) {
|
||||
workOrderTypeSelectElement.innerHTML = "";
|
||||
}
|
||||
for (const workOrderType of workOrderTypes) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = workOrderType.workOrderTypeId.toString();
|
||||
optionElement.textContent = workOrderType.workOrderType;
|
||||
workOrderTypeSelectElement.append(optionElement);
|
||||
}
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
var _a;
|
||||
createCloseModalFunction = closeModalFunction;
|
||||
(_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
// Occupancy Type
|
||||
const occupancyTypeIdElement = document.querySelector("#lotOccupancy--occupancyTypeId");
|
||||
if (isCreate) {
|
||||
const lotOccupancyFieldsContainerElement = document.querySelector("#container--lotOccupancyFields");
|
||||
occupancyTypeIdElement.addEventListener("change", () => {
|
||||
if (occupancyTypeIdElement.value === "") {
|
||||
lotOccupancyFieldsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">Select the ' +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type to load the available fields.</p>" +
|
||||
"</div>";
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">Select the ${los.escapedAliases.occupancy} type to load the available fields.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", {
|
||||
occupancyTypeId: occupancyTypeIdElement.value
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||
lotOccupancyFieldsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no additional fields for this ' +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type.</p>" +
|
||||
"</div>";
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
lotOccupancyFieldsContainerElement.innerHTML = "";
|
||||
|
|
@ -214,11 +199,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const fieldId = "lotOccupancy--" + fieldName;
|
||||
const fieldElement = document.createElement("div");
|
||||
fieldElement.className = "field";
|
||||
fieldElement.innerHTML =
|
||||
'<label class="label" for="' +
|
||||
fieldId +
|
||||
'"></label>' +
|
||||
'<div class="control"></div>';
|
||||
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
|
||||
fieldElement.querySelector("label").textContent =
|
||||
occupancyTypeField.occupancyTypeField;
|
||||
if (occupancyTypeField.occupancyTypeFieldValues === "") {
|
||||
|
|
@ -256,9 +237,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
lotOccupancyFieldsContainerElement.append(fieldElement);
|
||||
}
|
||||
lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", '<input name="occupancyTypeFieldIds" type="hidden" value="' +
|
||||
occupancyTypeFieldIds.slice(1) +
|
||||
'" />');
|
||||
lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(1)}" />`);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
@ -268,10 +247,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
if (occupancyTypeIdElement.value !== originalOccupancyTypeId) {
|
||||
bulmaJS.confirm({
|
||||
title: "Confirm Change",
|
||||
message: "Are you sure you want to change the " +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type?\n" +
|
||||
"This change affects the additional fields associated with this record, and may also affect the available fees.",
|
||||
message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n
|
||||
This change affects the additional fields associated with this record, and may also affect the available fees.`,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Keep the Change",
|
||||
|
|
@ -298,8 +275,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let lotSelectFormElement;
|
||||
let lotSelectResultsElement;
|
||||
const renderSelectedLotAndClose = (lotId, lotName) => {
|
||||
document.querySelector("#lotOccupancy--lotId").value =
|
||||
lotId.toString();
|
||||
document.querySelector("#lotOccupancy--lotId").value = lotId.toString();
|
||||
document.querySelector("#lotOccupancy--lotName").value = lotName;
|
||||
los.setUnsavedChanges();
|
||||
lotSelectCloseModalFunction();
|
||||
|
|
@ -310,19 +286,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName);
|
||||
};
|
||||
const searchLots = () => {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
'<p class="has-text-centered">' +
|
||||
'<i class="fas fa-3x fa-pulse fa-spinner" aria-hidden="true"></i><br />' +
|
||||
"Searching..." +
|
||||
"</p>";
|
||||
lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => {
|
||||
if (responseJSON.count === 0) {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">' +
|
||||
"No results." +
|
||||
"</p>" +
|
||||
"</div>";
|
||||
lotSelectResultsElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">No results.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
const panelElement = document.createElement("div");
|
||||
|
|
@ -359,14 +328,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const createLotAndSelect = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName").value;
|
||||
const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName")
|
||||
.value;
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
renderSelectedLotAndClose(responseJSON.lotId, lotName);
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating " + exports.aliases.lot,
|
||||
title: `Error Creating ${los.escapedAliases.Lot}`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -384,8 +354,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
bulmaJS.init(modalElement);
|
||||
// search Tab
|
||||
const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName");
|
||||
if (document.querySelector("#lotOccupancy--lotId").value !==
|
||||
"") {
|
||||
if (document.querySelector("#lotOccupancy--lotId").value !== "") {
|
||||
lotNameFilterElement.value = currentLotName;
|
||||
}
|
||||
lotNameFilterElement.focus();
|
||||
|
|
@ -404,7 +373,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
// Create Tab
|
||||
if (exports.lotNamePattern) {
|
||||
const regex = exports.lotNamePattern;
|
||||
modalElement.querySelector("#lotCreate--lotName").pattern = regex.source;
|
||||
modalElement.querySelector("#lotCreate--lotName").pattern =
|
||||
regex.source;
|
||||
}
|
||||
const lotTypeElement = modalElement.querySelector("#lotCreate--lotTypeId");
|
||||
for (const lotType of exports.lotTypes) {
|
||||
|
|
@ -441,7 +411,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
message: "No " + exports.aliases.lot.toLowerCase() + " selected.",
|
||||
message: `No ${los.escapedAliases.lot} selected.`,
|
||||
contextualColorName: "info"
|
||||
});
|
||||
}
|
||||
|
|
@ -454,7 +424,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
else {
|
||||
lotNameElement.value = "(No " + exports.aliases.lot + ")";
|
||||
lotNameElement.value = `(No ${los.escapedAliases.Lot})`;
|
||||
document.querySelector("#lotOccupancy--lotId").value = "";
|
||||
los.setUnsavedChanges();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
(() => {
|
||||
var _a, _b, _c;
|
||||
const los = exports.los;
|
||||
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value;
|
||||
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId")
|
||||
.value;
|
||||
const isCreate = lotOccupancyId === "";
|
||||
/*
|
||||
* Main form
|
||||
|
|
@ -13,9 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const formElement = document.querySelector("#form--lotOccupancy");
|
||||
formElement.addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
los.clearUnsavedChanges();
|
||||
if (isCreate || refreshAfterSave) {
|
||||
|
|
@ -46,164 +45,150 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const formInputElement of formInputElements) {
|
||||
formInputElement.addEventListener("change", los.setUnsavedChanges);
|
||||
}
|
||||
if (!isCreate) {
|
||||
const doCopy = () => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", {
|
||||
const doCopy = () => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy", {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
var _a;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
((_a = responseJSON.lotOccupancyId) === null || _a === void 0 ? void 0 : _a.toString()) +
|
||||
"/edit";
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Copying Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
(_a = document.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
if (los.hasUnsavedChanges()) {
|
||||
bulmaJS.alert({
|
||||
title: "Unsaved Changes",
|
||||
message: "Please save all unsaved changes before continuing.",
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.confirm({
|
||||
title: "Copy " + los.escapedAliases.Occupancy + " Record as New",
|
||||
message: "Are you sure you want to copy this record to a new record?",
|
||||
contextualColorName: "info",
|
||||
okButton: {
|
||||
text: "Yes, Copy",
|
||||
callbackFunction: doCopy
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
(_b = document.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
var _a;
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
((_a = responseJSON.lotOccupancyId) === null || _a === void 0 ? void 0 : _a.toString()) +
|
||||
"/edit";
|
||||
window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Copying Record",
|
||||
title: "Error Deleting Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
(_a = document
|
||||
.querySelector("#button--copyLotOccupancy")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
if (los.hasUnsavedChanges()) {
|
||||
bulmaJS.alert({
|
||||
title: "Unsaved Changes",
|
||||
message: "Please save all unsaved changes before continuing.",
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.confirm({
|
||||
title: "Copy " + exports.aliases.occupancy + " Record as New",
|
||||
message: "Are you sure you want to copy this record to a new record?",
|
||||
contextualColorName: "info",
|
||||
okButton: {
|
||||
text: "Yes, Copy",
|
||||
callbackFunction: doCopy
|
||||
}
|
||||
});
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.occupancy + " Record",
|
||||
message: "Are you sure you want to delete this record?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
(_b = document
|
||||
.querySelector("#button--deleteLotOccupancy")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.occupancy + " Record",
|
||||
message: "Are you sure you want to delete this record?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
(_c = document
|
||||
.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
let createCloseModalFunction;
|
||||
const doCreate = (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doCreateWorkOrder", formEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction();
|
||||
bulmaJS.confirm({
|
||||
title: "Work Order Created Successfully",
|
||||
message: "Would you like to open the work order now?",
|
||||
contextualColorName: "success",
|
||||
okButton: {
|
||||
text: "Yes, Open the Work Order",
|
||||
callbackFunction: () => {
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
responseJSON.workOrderId +
|
||||
"/edit";
|
||||
}
|
||||
});
|
||||
(_c = document.querySelector("#button--createWorkOrder")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
let createCloseModalFunction;
|
||||
const doCreate = (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doCreateWorkOrder", formEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction();
|
||||
bulmaJS.confirm({
|
||||
title: "Work Order Created Successfully",
|
||||
message: "Would you like to open the work order now?",
|
||||
contextualColorName: "success",
|
||||
okButton: {
|
||||
text: "Yes, Open the Work Order",
|
||||
callbackFunction: () => {
|
||||
window.location.href =
|
||||
los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
|
||||
onshow: (modalElement) => {
|
||||
modalElement.querySelector("#workOrderCreate--lotOccupancyId").value = lotOccupancyId;
|
||||
modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date());
|
||||
const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId");
|
||||
const workOrderTypes = exports.workOrderTypes;
|
||||
if (workOrderTypes.length === 1) {
|
||||
workOrderTypeSelectElement.innerHTML = "";
|
||||
}
|
||||
for (const workOrderType of workOrderTypes) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = workOrderType.workOrderTypeId.toString();
|
||||
optionElement.textContent = workOrderType.workOrderType;
|
||||
workOrderTypeSelectElement.append(optionElement);
|
||||
}
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
var _a;
|
||||
createCloseModalFunction = closeModalFunction;
|
||||
(_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
|
||||
onshow(modalElement) {
|
||||
modalElement.querySelector("#workOrderCreate--lotOccupancyId").value =
|
||||
lotOccupancyId;
|
||||
modalElement.querySelector("#workOrderCreate--workOrderOpenDateString").value = cityssm.dateToString(new Date());
|
||||
const workOrderTypeSelectElement = modalElement.querySelector("#workOrderCreate--workOrderTypeId");
|
||||
const workOrderTypes = exports.workOrderTypes;
|
||||
if (workOrderTypes.length === 1) {
|
||||
workOrderTypeSelectElement.innerHTML = "";
|
||||
}
|
||||
for (const workOrderType of workOrderTypes) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = workOrderType.workOrderTypeId.toString();
|
||||
optionElement.textContent = workOrderType.workOrderType;
|
||||
workOrderTypeSelectElement.append(optionElement);
|
||||
}
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
var _a;
|
||||
createCloseModalFunction = closeModalFunction;
|
||||
(_a = modalElement.querySelector("form")) === null || _a === void 0 ? void 0 : _a.addEventListener("submit", doCreate);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
// Occupancy Type
|
||||
const occupancyTypeIdElement = document.querySelector("#lotOccupancy--occupancyTypeId");
|
||||
if (isCreate) {
|
||||
const lotOccupancyFieldsContainerElement = document.querySelector("#container--lotOccupancyFields");
|
||||
occupancyTypeIdElement.addEventListener("change", () => {
|
||||
if (occupancyTypeIdElement.value === "") {
|
||||
lotOccupancyFieldsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">Select the ' +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type to load the available fields.</p>" +
|
||||
"</div>";
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">Select the ${los.escapedAliases.occupancy} type to load the available fields.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", {
|
||||
occupancyTypeId: occupancyTypeIdElement.value
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||
lotOccupancyFieldsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no additional fields for this ' +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type.</p>" +
|
||||
"</div>";
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
lotOccupancyFieldsContainerElement.innerHTML = "";
|
||||
|
|
@ -214,11 +199,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const fieldId = "lotOccupancy--" + fieldName;
|
||||
const fieldElement = document.createElement("div");
|
||||
fieldElement.className = "field";
|
||||
fieldElement.innerHTML =
|
||||
'<label class="label" for="' +
|
||||
fieldId +
|
||||
'"></label>' +
|
||||
'<div class="control"></div>';
|
||||
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
|
||||
fieldElement.querySelector("label").textContent =
|
||||
occupancyTypeField.occupancyTypeField;
|
||||
if (occupancyTypeField.occupancyTypeFieldValues === "") {
|
||||
|
|
@ -256,9 +237,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
lotOccupancyFieldsContainerElement.append(fieldElement);
|
||||
}
|
||||
lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", '<input name="occupancyTypeFieldIds" type="hidden" value="' +
|
||||
occupancyTypeFieldIds.slice(1) +
|
||||
'" />');
|
||||
lotOccupancyFieldsContainerElement.insertAdjacentHTML("beforeend", `<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(1)}" />`);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
@ -268,10 +247,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
if (occupancyTypeIdElement.value !== originalOccupancyTypeId) {
|
||||
bulmaJS.confirm({
|
||||
title: "Confirm Change",
|
||||
message: "Are you sure you want to change the " +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type?\n" +
|
||||
"This change affects the additional fields associated with this record, and may also affect the available fees.",
|
||||
message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n
|
||||
This change affects the additional fields associated with this record, and may also affect the available fees.`,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Keep the Change",
|
||||
|
|
@ -298,8 +275,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let lotSelectFormElement;
|
||||
let lotSelectResultsElement;
|
||||
const renderSelectedLotAndClose = (lotId, lotName) => {
|
||||
document.querySelector("#lotOccupancy--lotId").value =
|
||||
lotId.toString();
|
||||
document.querySelector("#lotOccupancy--lotId").value = lotId.toString();
|
||||
document.querySelector("#lotOccupancy--lotName").value = lotName;
|
||||
los.setUnsavedChanges();
|
||||
lotSelectCloseModalFunction();
|
||||
|
|
@ -310,19 +286,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
renderSelectedLotAndClose(selectedLotElement.dataset.lotId, selectedLotElement.dataset.lotName);
|
||||
};
|
||||
const searchLots = () => {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
'<p class="has-text-centered">' +
|
||||
'<i class="fas fa-3x fa-pulse fa-spinner" aria-hidden="true"></i><br />' +
|
||||
"Searching..." +
|
||||
"</p>";
|
||||
lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => {
|
||||
if (responseJSON.count === 0) {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">' +
|
||||
"No results." +
|
||||
"</p>" +
|
||||
"</div>";
|
||||
lotSelectResultsElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">No results.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
const panelElement = document.createElement("div");
|
||||
|
|
@ -359,14 +328,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const createLotAndSelect = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName").value;
|
||||
const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName")
|
||||
.value;
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
renderSelectedLotAndClose(responseJSON.lotId, lotName);
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating " + exports.aliases.lot,
|
||||
title: `Error Creating ${los.escapedAliases.Lot}`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -384,8 +354,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
bulmaJS.init(modalElement);
|
||||
// search Tab
|
||||
const lotNameFilterElement = modalElement.querySelector("#lotSelect--lotName");
|
||||
if (document.querySelector("#lotOccupancy--lotId").value !==
|
||||
"") {
|
||||
if (document.querySelector("#lotOccupancy--lotId").value !== "") {
|
||||
lotNameFilterElement.value = currentLotName;
|
||||
}
|
||||
lotNameFilterElement.focus();
|
||||
|
|
@ -404,7 +373,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
// Create Tab
|
||||
if (exports.lotNamePattern) {
|
||||
const regex = exports.lotNamePattern;
|
||||
modalElement.querySelector("#lotCreate--lotName").pattern = regex.source;
|
||||
modalElement.querySelector("#lotCreate--lotName").pattern =
|
||||
regex.source;
|
||||
}
|
||||
const lotTypeElement = modalElement.querySelector("#lotCreate--lotTypeId");
|
||||
for (const lotType of exports.lotTypes) {
|
||||
|
|
@ -441,7 +411,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
message: "No " + exports.aliases.lot.toLowerCase() + " selected.",
|
||||
message: `No ${los.escapedAliases.lot} selected.`,
|
||||
contextualColorName: "info"
|
||||
});
|
||||
}
|
||||
|
|
@ -454,7 +424,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
else {
|
||||
lotNameElement.value = "(No " + exports.aliases.lot + ")";
|
||||
lotNameElement.value = `(No ${los.escapedAliases.Lot})`;
|
||||
document.querySelector("#lotOccupancy--lotId").value = "";
|
||||
los.setUnsavedChanges();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,9 +13,8 @@ declare const bulmaJS: BulmaJS;
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const lotOccupancyId = (
|
||||
document.querySelector("#lotOccupancy--lotOccupancyId") as HTMLInputElement
|
||||
).value;
|
||||
const lotOccupancyId = (document.querySelector("#lotOccupancy--lotOccupancyId") as HTMLInputElement)
|
||||
.value;
|
||||
const isCreate = lotOccupancyId === "";
|
||||
|
||||
/*
|
||||
|
|
@ -30,15 +29,9 @@ declare const bulmaJS: BulmaJS;
|
|||
formEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"),
|
||||
los.urlPrefix + "/lotOccupancies/" + (isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"),
|
||||
formElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
lotOccupancyId?: number;
|
||||
errorMessage?: string;
|
||||
}) => {
|
||||
(responseJSON: { success: boolean; lotOccupancyId?: number; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
los.clearUnsavedChanges();
|
||||
|
||||
|
|
@ -72,28 +65,69 @@ declare const bulmaJS: BulmaJS;
|
|||
formInputElement.addEventListener("change", los.setUnsavedChanges);
|
||||
}
|
||||
|
||||
if (!isCreate) {
|
||||
const doCopy = () => {
|
||||
const doCopy = () => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy",
|
||||
{
|
||||
lotOccupancyId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string; lotOccupancyId?: number }) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
responseJSON.lotOccupancyId?.toString() +
|
||||
"/edit";
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Copying Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
document.querySelector("#button--copyLotOccupancy")?.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
if (los.hasUnsavedChanges()) {
|
||||
bulmaJS.alert({
|
||||
title: "Unsaved Changes",
|
||||
message: "Please save all unsaved changes before continuing.",
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
} else {
|
||||
bulmaJS.confirm({
|
||||
title: "Copy " + los.escapedAliases.Occupancy + " Record as New",
|
||||
message: "Are you sure you want to copy this record to a new record?",
|
||||
contextualColorName: "info",
|
||||
okButton: {
|
||||
text: "Yes, Copy",
|
||||
callbackFunction: doCopy
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
document.querySelector("#button--deleteLotOccupancy")?.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doCopyLotOccupancy",
|
||||
los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy",
|
||||
{
|
||||
lotOccupancyId
|
||||
},
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotOccupancyId?: number;
|
||||
}) => {
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
responseJSON.lotOccupancyId?.toString() +
|
||||
"/edit";
|
||||
window.location.href = los.urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Copying Record",
|
||||
title: "Error Deleting Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -102,157 +136,90 @@ declare const bulmaJS: BulmaJS;
|
|||
);
|
||||
};
|
||||
|
||||
document
|
||||
.querySelector("#button--copyLotOccupancy")
|
||||
?.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.occupancy + " Record",
|
||||
message: "Are you sure you want to delete this record?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
if (los.hasUnsavedChanges()) {
|
||||
bulmaJS.alert({
|
||||
title: "Unsaved Changes",
|
||||
message: "Please save all unsaved changes before continuing.",
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
} else {
|
||||
bulmaJS.confirm({
|
||||
title: "Copy " + exports.aliases.occupancy + " Record as New",
|
||||
message: "Are you sure you want to copy this record to a new record?",
|
||||
contextualColorName: "info",
|
||||
okButton: {
|
||||
text: "Yes, Copy",
|
||||
callbackFunction: doCopy
|
||||
}
|
||||
});
|
||||
document.querySelector("#button--createWorkOrder")?.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
let createCloseModalFunction: () => void;
|
||||
|
||||
const doCreate = (formEvent: SubmitEvent) => {
|
||||
formEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/workOrders/doCreateWorkOrder",
|
||||
formEvent.currentTarget,
|
||||
(responseJSON: { success: boolean; errorMessage?: string; workOrderId?: number }) => {
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction();
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Work Order Created Successfully",
|
||||
message: "Would you like to open the work order now?",
|
||||
contextualColorName: "success",
|
||||
okButton: {
|
||||
text: "Yes, Open the Work Order",
|
||||
callbackFunction: () => {
|
||||
window.location.href =
|
||||
los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Work Order",
|
||||
message: responseJSON.errorMessage as string,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
);
|
||||
};
|
||||
|
||||
document
|
||||
.querySelector("#button--deleteLotOccupancy")
|
||||
?.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
|
||||
onshow(modalElement) {
|
||||
(modalElement.querySelector("#workOrderCreate--lotOccupancyId") as HTMLInputElement).value =
|
||||
lotOccupancyId;
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy",
|
||||
{
|
||||
lotOccupancyId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
los.urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Record",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#workOrderCreate--workOrderOpenDateString"
|
||||
) as HTMLInputElement
|
||||
).value = cityssm.dateToString(new Date());
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.occupancy + " Record",
|
||||
message: "Are you sure you want to delete this record?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
const workOrderTypeSelectElement = modalElement.querySelector(
|
||||
"#workOrderCreate--workOrderTypeId"
|
||||
) as HTMLSelectElement;
|
||||
|
||||
document
|
||||
.querySelector("#button--createWorkOrder")
|
||||
?.addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const workOrderTypes = exports.workOrderTypes as recordTypes.WorkOrderType[];
|
||||
|
||||
let createCloseModalFunction: () => void;
|
||||
if (workOrderTypes.length === 1) {
|
||||
workOrderTypeSelectElement.innerHTML = "";
|
||||
}
|
||||
|
||||
const doCreate = (formEvent: SubmitEvent) => {
|
||||
formEvent.preventDefault();
|
||||
for (const workOrderType of workOrderTypes) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = (workOrderType.workOrderTypeId as number).toString();
|
||||
optionElement.textContent = workOrderType.workOrderType as string;
|
||||
workOrderTypeSelectElement.append(optionElement);
|
||||
}
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
createCloseModalFunction = closeModalFunction;
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/workOrders/doCreateWorkOrder",
|
||||
formEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
workOrderId?: number;
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
createCloseModalFunction();
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Work Order Created Successfully",
|
||||
message: "Would you like to open the work order now?",
|
||||
contextualColorName: "success",
|
||||
okButton: {
|
||||
text: "Yes, Open the Work Order",
|
||||
callbackFunction: () => {
|
||||
window.location.href =
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
responseJSON.workOrderId +
|
||||
"/edit";
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Work Order",
|
||||
message: responseJSON.errorMessage as string,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("lotOccupancy-createWorkOrder", {
|
||||
onshow: (modalElement) => {
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#workOrderCreate--lotOccupancyId"
|
||||
) as HTMLInputElement
|
||||
).value = lotOccupancyId;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#workOrderCreate--workOrderOpenDateString"
|
||||
) as HTMLInputElement
|
||||
).value = cityssm.dateToString(new Date());
|
||||
|
||||
const workOrderTypeSelectElement = modalElement.querySelector(
|
||||
"#workOrderCreate--workOrderTypeId"
|
||||
) as HTMLSelectElement;
|
||||
|
||||
const workOrderTypes =
|
||||
exports.workOrderTypes as recordTypes.WorkOrderType[];
|
||||
|
||||
if (workOrderTypes.length === 1) {
|
||||
workOrderTypeSelectElement.innerHTML = "";
|
||||
}
|
||||
|
||||
for (const workOrderType of workOrderTypes) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = (
|
||||
workOrderType.workOrderTypeId as number
|
||||
).toString();
|
||||
optionElement.textContent = workOrderType.workOrderType as string;
|
||||
workOrderTypeSelectElement.append(optionElement);
|
||||
}
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
createCloseModalFunction = closeModalFunction;
|
||||
|
||||
modalElement.querySelector("form")?.addEventListener("submit", doCreate);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
modalElement.querySelector("form")?.addEventListener("submit", doCreate);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Occupancy Type
|
||||
|
||||
|
|
@ -267,12 +234,9 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
occupancyTypeIdElement.addEventListener("change", () => {
|
||||
if (occupancyTypeIdElement.value === "") {
|
||||
lotOccupancyFieldsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">Select the ' +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type to load the available fields.</p>" +
|
||||
"</div>";
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">Select the ${los.escapedAliases.occupancy} type to load the available fields.</p>
|
||||
</div>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -284,12 +248,9 @@ declare const bulmaJS: BulmaJS;
|
|||
},
|
||||
(responseJSON: { occupancyTypeFields: recordTypes.OccupancyTypeField[] }) => {
|
||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||
lotOccupancyFieldsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no additional fields for this ' +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type.</p>" +
|
||||
"</div>";
|
||||
lotOccupancyFieldsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no additional fields for this ${los.escapedAliases.occupancy} type.</p>
|
||||
</div>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -301,18 +262,13 @@ declare const bulmaJS: BulmaJS;
|
|||
for (const occupancyTypeField of responseJSON.occupancyTypeFields) {
|
||||
occupancyTypeFieldIds += "," + occupancyTypeField.occupancyTypeFieldId;
|
||||
|
||||
const fieldName =
|
||||
"lotOccupancyFieldValue_" + occupancyTypeField.occupancyTypeFieldId;
|
||||
const fieldName = "lotOccupancyFieldValue_" + occupancyTypeField.occupancyTypeFieldId;
|
||||
|
||||
const fieldId = "lotOccupancy--" + fieldName;
|
||||
|
||||
const fieldElement = document.createElement("div");
|
||||
fieldElement.className = "field";
|
||||
fieldElement.innerHTML =
|
||||
'<label class="label" for="' +
|
||||
fieldId +
|
||||
'"></label>' +
|
||||
'<div class="control"></div>';
|
||||
fieldElement.innerHTML = `<label class="label" for="${fieldId}"></label><div class="control"></div>`;
|
||||
|
||||
(fieldElement.querySelector("label") as HTMLLabelElement).textContent =
|
||||
occupancyTypeField.occupancyTypeField as string;
|
||||
|
|
@ -336,9 +292,7 @@ declare const bulmaJS: BulmaJS;
|
|||
inputElement.pattern = occupancyTypeField.pattern;
|
||||
}
|
||||
|
||||
(fieldElement.querySelector(".control") as HTMLElement).append(
|
||||
inputElement
|
||||
);
|
||||
(fieldElement.querySelector(".control") as HTMLElement).append(inputElement);
|
||||
} else {
|
||||
(fieldElement.querySelector(".control") as HTMLElement).innerHTML =
|
||||
'<div class="select is-fullwidth"><select id="' +
|
||||
|
|
@ -349,9 +303,7 @@ declare const bulmaJS: BulmaJS;
|
|||
'<option value="">(Not Set)</option>' +
|
||||
"</select></div>";
|
||||
|
||||
const selectElement = fieldElement.querySelector(
|
||||
"select"
|
||||
) as HTMLSelectElement;
|
||||
const selectElement = fieldElement.querySelector("select") as HTMLSelectElement;
|
||||
|
||||
selectElement.required = occupancyTypeField.isRequired as boolean;
|
||||
|
||||
|
|
@ -372,9 +324,9 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
lotOccupancyFieldsContainerElement.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
'<input name="occupancyTypeFieldIds" type="hidden" value="' +
|
||||
occupancyTypeFieldIds.slice(1) +
|
||||
'" />'
|
||||
`<input name="occupancyTypeFieldIds" type="hidden" value="${occupancyTypeFieldIds.slice(
|
||||
1
|
||||
)}" />`
|
||||
);
|
||||
}
|
||||
);
|
||||
|
|
@ -386,11 +338,8 @@ declare const bulmaJS: BulmaJS;
|
|||
if (occupancyTypeIdElement.value !== originalOccupancyTypeId) {
|
||||
bulmaJS.confirm({
|
||||
title: "Confirm Change",
|
||||
message:
|
||||
"Are you sure you want to change the " +
|
||||
exports.aliases.occupancy.toLowerCase() +
|
||||
" type?\n" +
|
||||
"This change affects the additional fields associated with this record, and may also affect the available fees.",
|
||||
message: `Are you sure you want to change the ${los.escapedAliases.occupancy} type?\n
|
||||
This change affects the additional fields associated with this record, and may also affect the available fees.`,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Keep the Change",
|
||||
|
|
@ -423,8 +372,7 @@ declare const bulmaJS: BulmaJS;
|
|||
let lotSelectResultsElement: HTMLElement;
|
||||
|
||||
const renderSelectedLotAndClose = (lotId: number | string, lotName: string) => {
|
||||
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value =
|
||||
lotId.toString();
|
||||
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = lotId.toString();
|
||||
(document.querySelector("#lotOccupancy--lotName") as HTMLInputElement).value = lotName;
|
||||
|
||||
los.setUnsavedChanges();
|
||||
|
|
@ -436,30 +384,20 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
const selectedLotElement = clickEvent.currentTarget as HTMLElement;
|
||||
|
||||
renderSelectedLotAndClose(
|
||||
selectedLotElement.dataset.lotId!,
|
||||
selectedLotElement.dataset.lotName!
|
||||
);
|
||||
renderSelectedLotAndClose(selectedLotElement.dataset.lotId!, selectedLotElement.dataset.lotName!);
|
||||
};
|
||||
|
||||
const searchLots = () => {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
'<p class="has-text-centered">' +
|
||||
'<i class="fas fa-3x fa-pulse fa-spinner" aria-hidden="true"></i><br />' +
|
||||
"Searching..." +
|
||||
"</p>";
|
||||
lotSelectResultsElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lots/doSearchLots",
|
||||
lotSelectFormElement,
|
||||
(responseJSON: { count: number; lots: recordTypes.Lot[] }) => {
|
||||
if (responseJSON.count === 0) {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">' +
|
||||
"No results." +
|
||||
"</p>" +
|
||||
"</div>";
|
||||
lotSelectResultsElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">No results.</p>
|
||||
</div>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -507,9 +445,8 @@ declare const bulmaJS: BulmaJS;
|
|||
const createLotAndSelect = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
const lotName = (
|
||||
lotSelectModalElement.querySelector("#lotCreate--lotName") as HTMLInputElement
|
||||
).value;
|
||||
const lotName = (lotSelectModalElement.querySelector("#lotCreate--lotName") as HTMLInputElement)
|
||||
.value;
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lots/doCreateLot",
|
||||
|
|
@ -519,7 +456,7 @@ declare const bulmaJS: BulmaJS;
|
|||
renderSelectedLotAndClose(responseJSON.lotId!, lotName);
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating " + exports.aliases.lot,
|
||||
title: `Error Creating ${los.escapedAliases.Lot}`,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -546,10 +483,7 @@ declare const bulmaJS: BulmaJS;
|
|||
"#lotSelect--lotName"
|
||||
) as HTMLInputElement;
|
||||
|
||||
if (
|
||||
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value !==
|
||||
""
|
||||
) {
|
||||
if ((document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value !== "") {
|
||||
lotNameFilterElement.value = currentLotName;
|
||||
}
|
||||
|
||||
|
|
@ -565,9 +499,7 @@ declare const bulmaJS: BulmaJS;
|
|||
occupancyStatusFilterElement.value = "";
|
||||
}
|
||||
|
||||
lotSelectFormElement = modalElement.querySelector(
|
||||
"#form--lotSelect"
|
||||
) as HTMLFormElement;
|
||||
lotSelectFormElement = modalElement.querySelector("#form--lotSelect") as HTMLFormElement;
|
||||
lotSelectResultsElement = modalElement.querySelector(
|
||||
"#resultsContainer--lotSelect"
|
||||
) as HTMLElement;
|
||||
|
|
@ -583,9 +515,8 @@ declare const bulmaJS: BulmaJS;
|
|||
if (exports.lotNamePattern) {
|
||||
const regex = exports.lotNamePattern as RegExp;
|
||||
|
||||
(
|
||||
modalElement.querySelector("#lotCreate--lotName") as HTMLInputElement
|
||||
).pattern = regex.source;
|
||||
(modalElement.querySelector("#lotCreate--lotName") as HTMLInputElement).pattern =
|
||||
regex.source;
|
||||
}
|
||||
|
||||
const lotTypeElement = modalElement.querySelector(
|
||||
|
|
@ -610,9 +541,7 @@ declare const bulmaJS: BulmaJS;
|
|||
lotStatusElement.append(optionElement);
|
||||
}
|
||||
|
||||
const mapElement = modalElement.querySelector(
|
||||
"#lotCreate--mapId"
|
||||
) as HTMLSelectElement;
|
||||
const mapElement = modalElement.querySelector("#lotCreate--mapId") as HTMLSelectElement;
|
||||
|
||||
for (const map of exports.maps as recordTypes.Map[]) {
|
||||
const optionElement = document.createElement("option");
|
||||
|
|
@ -621,9 +550,10 @@ declare const bulmaJS: BulmaJS;
|
|||
mapElement.append(optionElement);
|
||||
}
|
||||
|
||||
(
|
||||
modalElement.querySelector("#form--lotCreate") as HTMLFormElement
|
||||
).addEventListener("submit", createLotAndSelect);
|
||||
(modalElement.querySelector("#form--lotCreate") as HTMLFormElement).addEventListener(
|
||||
"submit",
|
||||
createLotAndSelect
|
||||
);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -638,7 +568,7 @@ declare const bulmaJS: BulmaJS;
|
|||
window.open(los.urlPrefix + "/lots/" + lotId);
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
message: "No " + exports.aliases.lot.toLowerCase() + " selected.",
|
||||
message: `No ${los.escapedAliases.lot} selected.`,
|
||||
contextualColorName: "info"
|
||||
});
|
||||
}
|
||||
|
|
@ -651,7 +581,7 @@ declare const bulmaJS: BulmaJS;
|
|||
contextualColorName: "info"
|
||||
});
|
||||
} else {
|
||||
lotNameElement.value = "(No " + exports.aliases.lot + ")";
|
||||
lotNameElement.value = `(No ${los.escapedAliases.Lot})`;
|
||||
(document.querySelector("#lotOccupancy--lotId") as HTMLInputElement).value = "";
|
||||
los.setUnsavedChanges();
|
||||
}
|
||||
|
|
@ -661,9 +591,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
los.initializeDatePickers(formElement);
|
||||
|
||||
(
|
||||
document.querySelector("#lotOccupancy--occupancyStartDateString") as HTMLInputElement
|
||||
).addEventListener("change", () => {
|
||||
document.querySelector("#lotOccupancy--occupancyStartDateString")!.addEventListener("change", () => {
|
||||
const endDatePicker = (
|
||||
document.querySelector("#lotOccupancy--occupancyEndDateString") as HTMLInputElement
|
||||
).bulmaCalendar.datePicker;
|
||||
|
|
|
|||
|
|
@ -10,12 +10,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function renderLots(responseJSON) {
|
||||
var _a, _b;
|
||||
if (responseJSON.lots.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no ' +
|
||||
los.escapedAliases.lots +
|
||||
" that meet the search criteria.</p>" +
|
||||
"</div>";
|
||||
searchResultsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no ${los.escapedAliases.lots} that meet the search criteria.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
const resultsTbodyElement = document.createElement("tbody");
|
||||
|
|
|
|||
|
|
@ -22,12 +22,9 @@ declare const cityssm: cityssmGlobal;
|
|||
|
||||
function renderLots(responseJSON: { count: number; offset: number; lots: recordTypes.Lot[] }): void {
|
||||
if (responseJSON.lots.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no ' +
|
||||
los.escapedAliases.lots +
|
||||
" that meet the search criteria.</p>" +
|
||||
"</div>";
|
||||
searchResultsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no ${los.escapedAliases.lots} that meet the search criteria.</p>
|
||||
</div>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,13 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const searchResultsTbodyElement = document.createElement("tbody");
|
||||
const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" ");
|
||||
for (const map of maps) {
|
||||
const mapSearchString = (map.mapName +
|
||||
" " +
|
||||
map.mapDescription +
|
||||
" " +
|
||||
map.mapAddress1 +
|
||||
" " +
|
||||
map.mapAddress2).toLowerCase();
|
||||
const mapSearchString = `${map.mapName} ${map.mapDescription} ${map.mapAddress1} ${map.mapAddress2}`.toLowerCase();
|
||||
let showMap = true;
|
||||
for (const filterStringPiece of filterStringSplit) {
|
||||
if (!mapSearchString.includes(filterStringPiece)) {
|
||||
|
|
|
|||
|
|
@ -14,9 +14,7 @@ declare const cityssm: cityssmGlobal;
|
|||
|
||||
const searchFilterElement = document.querySelector("#searchFilter--map") as HTMLInputElement;
|
||||
|
||||
const searchResultsContainerElement = document.querySelector(
|
||||
"#container--searchResults"
|
||||
) as HTMLElement;
|
||||
const searchResultsContainerElement = document.querySelector("#container--searchResults") as HTMLElement;
|
||||
|
||||
function renderResults(): void {
|
||||
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML(
|
||||
|
|
@ -29,15 +27,8 @@ declare const cityssm: cityssmGlobal;
|
|||
const filterStringSplit = searchFilterElement.value.trim().toLowerCase().split(" ");
|
||||
|
||||
for (const map of maps) {
|
||||
const mapSearchString = (
|
||||
map.mapName +
|
||||
" " +
|
||||
map.mapDescription +
|
||||
" " +
|
||||
map.mapAddress1 +
|
||||
" " +
|
||||
map.mapAddress2
|
||||
).toLowerCase();
|
||||
const mapSearchString =
|
||||
`${map.mapName} ${map.mapDescription} ${map.mapAddress1} ${map.mapAddress2}`.toLowerCase();
|
||||
|
||||
let showMap = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const workOrderId = document.querySelector("#workOrderEdit--workOrderId")
|
||||
.value;
|
||||
const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
|
||||
const isCreate = workOrderId === "";
|
||||
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
||||
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
|
||||
|
|
@ -46,8 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
|
||||
window.location.href = los.urlPrefix + "/workOrders/" + workOrderId;
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -83,8 +81,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
if (hasOpenMilestones) {
|
||||
bulmaJS.alert({
|
||||
title: "Outstanding Milestones",
|
||||
message: "You cannot close a work order with outstanding milestones." +
|
||||
" Either complete the outstanding milestones, or remove them from the work order.",
|
||||
message: `You cannot close a work order with outstanding milestones.
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
/*
|
||||
|
|
@ -113,9 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
});
|
||||
document
|
||||
.querySelector("#button--deleteWorkOrder")
|
||||
.addEventListener("click", (clickEvent) => {
|
||||
document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order",
|
||||
|
|
@ -160,8 +156,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
bulmaJS.confirm({
|
||||
title: `Delete ${exports.aliases.occupancy} Relationship`,
|
||||
message: `Are you sure you want to remove the relationship to this ${exports.aliases.occupancy.toLowerCase()} record from this work order? Note that the record will remain.`,
|
||||
title: `Delete ${los.escapedAliases.Occupancy} Relationship`,
|
||||
message: `Are you sure you want to remove the relationship to this ${los.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete Relationship",
|
||||
|
|
@ -180,7 +176,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot,
|
||||
title: "Error Adding " + los.escapedAliases.Lot,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -201,7 +197,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupancy,
|
||||
title: "Error Adding " + los.escapedAliases.Occupancy,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -216,12 +212,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
addLot(lotId);
|
||||
}
|
||||
function renderRelatedOccupancies() {
|
||||
var _a;
|
||||
var _a, _b;
|
||||
const occupanciesContainerElement = document.querySelector("#container--lotOccupancies");
|
||||
document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = workOrderLotOccupancies.length.toString();
|
||||
document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent =
|
||||
workOrderLotOccupancies.length.toString();
|
||||
if (workOrderLotOccupancies.length === 0) {
|
||||
occupanciesContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.</p>
|
||||
<p class="message-body">There are no ${los.escapedAliases.occupancies} associated with this work order.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
|
|
@ -239,8 +236,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const rowElement = document.createElement("tr");
|
||||
rowElement.className = "container--lotOccupancy";
|
||||
rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString();
|
||||
const isActive = !(lotOccupancy.occupancyEndDate &&
|
||||
lotOccupancy.occupancyEndDateString < currentDateString);
|
||||
const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString < currentDateString);
|
||||
const hasLotRecord = lotOccupancy.lotId &&
|
||||
workOrderLots.some((lot) => {
|
||||
return lotOccupancy.lotId === lot.lotId;
|
||||
|
|
@ -248,12 +244,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
rowElement.innerHTML =
|
||||
'<td class="is-width-1 has-text-centered">' +
|
||||
(isActive
|
||||
? '<i class="fas fa-play" title="Current ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
'"></i>'
|
||||
: '<i class="fas fa-stop" title="Previous ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
'"></i>') +
|
||||
? '<i class="fas fa-play" title="Current ' + los.escapedAliases.Occupancy + '"></i>'
|
||||
: '<i class="fas fa-stop" title="Previous ' + los.escapedAliases.Occupancy + '"></i>') +
|
||||
"</td>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
|
|
@ -274,17 +266,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
lotOccupancy.lotId +
|
||||
'"' +
|
||||
' data-tooltip="Add ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
'"' +
|
||||
' aria-label="Add ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
'" type="button">' +
|
||||
'<i class="fas fa-plus" aria-hidden="true"></i>' +
|
||||
"</button>") +
|
||||
"</td>");
|
||||
}
|
||||
else {
|
||||
rowElement.insertAdjacentHTML("beforeend", `<td><span class="has-text-grey">(No ${exports.aliases.lot})</span></td>`);
|
||||
rowElement.insertAdjacentHTML("beforeend", `<td><span class="has-text-grey">(No ${los.escapedAliases.Lot})</span></td>`);
|
||||
}
|
||||
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
||||
lotOccupancy.occupancyStartDateString +
|
||||
|
|
@ -296,9 +288,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</td>") +
|
||||
("<td>" +
|
||||
(lotOccupancy.lotOccupancyOccupants.length === 0
|
||||
? '<span class="has-text-grey">(No ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupants) +
|
||||
")</span>"
|
||||
? '<span class="has-text-grey">(No ' + los.escapedAliases.Occupants + ")</span>"
|
||||
: (_a = lotOccupancy.lotOccupancyOccupants) === null || _a === void 0 ? void 0 : _a.reduce((soFar, occupant) => {
|
||||
return (soFar +
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
|
|
@ -307,7 +297,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-fw fa-' +
|
||||
cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") +
|
||||
'" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
"</span><br />");
|
||||
|
|
@ -318,11 +308,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
||||
"</button>" +
|
||||
"</td>"));
|
||||
if (lotOccupancy.lotId && !hasLotRecord) {
|
||||
rowElement
|
||||
.querySelector(".button--addLot")
|
||||
.addEventListener("click", addLotFromLotOccupancy);
|
||||
}
|
||||
(_b = rowElement.querySelector(".button--addLot")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", addLotFromLotOccupancy);
|
||||
rowElement
|
||||
.querySelector(".button--deleteLotOccupancy")
|
||||
.addEventListener("click", deleteLotOccupancy);
|
||||
|
|
@ -330,8 +316,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
}
|
||||
function openEditLotStatus(clickEvent) {
|
||||
const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot")
|
||||
.dataset.lotId, 10);
|
||||
const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot").dataset.lotId, 10);
|
||||
const lot = workOrderLots.find((possibleLot) => {
|
||||
return possibleLot.lotId === lotId;
|
||||
});
|
||||
|
|
@ -358,8 +343,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
los.populateAliases(modalElement);
|
||||
modalElement.querySelector("#lotStatusEdit--lotId").value =
|
||||
lotId.toString();
|
||||
modalElement.querySelector("#lotStatusEdit--lotName").value =
|
||||
lot.lotName;
|
||||
modalElement.querySelector("#lotStatusEdit--lotName").value = lot.lotName;
|
||||
const lotStatusElement = modalElement.querySelector("#lotStatusEdit--lotStatusId");
|
||||
let lotStatusFound = false;
|
||||
for (const lotStatus of exports.lotStatuses) {
|
||||
|
|
@ -382,7 +366,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
modalElement
|
||||
.querySelector("form")
|
||||
.insertAdjacentHTML("beforeend", '<input name="workOrderId" type="hidden" value="' + workOrderId + '" />');
|
||||
.insertAdjacentHTML("beforeend", `<input name="workOrderId" type="hidden" value="${workOrderId}" />`);
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
editCloseModalFunction = closeModalFunction;
|
||||
|
|
@ -395,7 +379,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
function deleteLot(clickEvent) {
|
||||
const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId;
|
||||
const lotId = clickEvent.currentTarget.closest(".container--lot")
|
||||
.dataset.lotId;
|
||||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", {
|
||||
workOrderId,
|
||||
|
|
@ -473,9 +458,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
||||
"</button>" +
|
||||
"</td>");
|
||||
rowElement
|
||||
.querySelector(".button--editLotStatus")
|
||||
.addEventListener("click", openEditLotStatus);
|
||||
rowElement.querySelector(".button--editLotStatus").addEventListener("click", openEditLotStatus);
|
||||
rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot);
|
||||
lotsContainerElement.querySelector("tbody").append(rowElement);
|
||||
}
|
||||
|
|
@ -504,10 +487,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => {
|
||||
if (responseJSON.lotOccupancies.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no records that meet the search criteria.</p>' +
|
||||
"</div>";
|
||||
searchResultsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no records that meet the search criteria.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable">
|
||||
|
|
@ -555,8 +537,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
")</span>"
|
||||
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
|
||||
(lotOccupancy.lotOccupancyOccupants.length > 1
|
||||
? " plus " +
|
||||
(lotOccupancy.lotOccupancyOccupants.length - 1)
|
||||
? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1)
|
||||
: "")) +
|
||||
"</td>"));
|
||||
rowElement
|
||||
|
|
@ -571,7 +552,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
los.populateAliases(modalElement);
|
||||
searchFormElement = modalElement.querySelector("form");
|
||||
searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotOccupancyAdd");
|
||||
modalElement.querySelector("#lotOccupancySearch--notWorkOrderId").value = workOrderId;
|
||||
modalElement.querySelector("#lotOccupancySearch--notWorkOrderId").value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value = document.querySelector("#workOrderEdit--workOrderOpenDateString").value;
|
||||
doSearch();
|
||||
},
|
||||
|
|
@ -639,9 +621,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</td>" +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>");
|
||||
rowElement
|
||||
.querySelector(".button--addLot")
|
||||
.addEventListener("click", doAddLot);
|
||||
rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot);
|
||||
searchResultsContainerElement.querySelector("tbody").append(rowElement);
|
||||
}
|
||||
});
|
||||
|
|
@ -709,7 +689,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
cityssm.openHtmlModal("workOrder-editComment", {
|
||||
onshow(modalElement) {
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderId").value = workOrderId;
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderId").value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId").value = workOrderCommentId.toString();
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderComment").value = workOrderComment.workOrderComment;
|
||||
const workOrderCommentDateStringElement = modalElement.querySelector("#workOrderCommentEdit--workOrderCommentDateString");
|
||||
|
|
@ -768,26 +749,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function renderWorkOrderComments() {
|
||||
const containerElement = document.querySelector("#container--workOrderComments");
|
||||
if (workOrderComments.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no comments to display.</p>' +
|
||||
"</div>";
|
||||
containerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no comments to display.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
const tableElement = document.createElement("table");
|
||||
tableElement.className = "table is-fullwidth is-striped is-hoverable";
|
||||
tableElement.innerHTML =
|
||||
"<thead><tr>" +
|
||||
"<th>Commentor</th>" +
|
||||
"<th>Comment Date</th>" +
|
||||
"<th>Comment</th>" +
|
||||
'<th class="is-hidden-print"><span class="is-sr-only">Options</span></th>' +
|
||||
"</tr></thead>" +
|
||||
"<tbody></tbody>";
|
||||
tableElement.innerHTML = `<thead><tr>
|
||||
<th>Commentor</th>
|
||||
<th>Comment Date</th>
|
||||
<th>Comment</th>
|
||||
<th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>`;
|
||||
for (const workOrderComment of workOrderComments) {
|
||||
const tableRowElement = document.createElement("tr");
|
||||
tableRowElement.dataset.workOrderCommentId =
|
||||
workOrderComment.workOrderCommentId.toString();
|
||||
tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId.toString();
|
||||
tableRowElement.innerHTML =
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") +
|
||||
|
|
@ -812,12 +788,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditWorkOrderComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteWorkOrderComment);
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditWorkOrderComment);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteWorkOrderComment);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -838,7 +810,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
cityssm.openHtmlModal("workOrder-addComment", {
|
||||
onshow(modalElement) {
|
||||
los.populateAliases(modalElement);
|
||||
modalElement.querySelector("#workOrderCommentAdd--workOrderId").value = workOrderId;
|
||||
modalElement.querySelector("#workOrderCommentAdd--workOrderId").value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("form").addEventListener("submit", doAddComment);
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
|
|
@ -853,9 +826,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
if (!isCreate) {
|
||||
document
|
||||
.querySelector("#workOrderComments--add")
|
||||
.addEventListener("click", openAddCommentModal);
|
||||
document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal);
|
||||
renderWorkOrderComments();
|
||||
}
|
||||
|
||||
|
|
@ -878,7 +849,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function completeMilestone(clickEvent) {
|
||||
clickEvent.preventDefault();
|
||||
const currentDateString = cityssm.dateToString(new Date());
|
||||
const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId, 10);
|
||||
const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone")
|
||||
.dataset.workOrderMilestoneId, 10);
|
||||
const workOrderMilestone = workOrderMilestones.find((currentMilestone) => {
|
||||
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
|
||||
});
|
||||
|
|
@ -942,7 +914,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
function editMilestone(clickEvent) {
|
||||
clickEvent.preventDefault();
|
||||
const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId, 10);
|
||||
const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone")
|
||||
.dataset.workOrderMilestoneId, 10);
|
||||
const workOrderMilestone = workOrderMilestones.find((currentMilestone) => {
|
||||
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
|
||||
});
|
||||
|
|
@ -957,8 +930,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
cityssm.openHtmlModal("workOrder-editMilestone", {
|
||||
onshow: (modalElement) => {
|
||||
modalElement.querySelector("#milestoneEdit--workOrderId").value = workOrderId;
|
||||
onshow(modalElement) {
|
||||
modalElement.querySelector("#milestoneEdit--workOrderId").value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("#milestoneEdit--workOrderMilestoneId").value = workOrderMilestone.workOrderMilestoneId.toString();
|
||||
const milestoneTypeElement = modalElement.querySelector("#milestoneEdit--workOrderMilestoneTypeId");
|
||||
let milestoneTypeFound = false;
|
||||
|
|
@ -966,8 +940,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const optionElement = document.createElement("option");
|
||||
optionElement.value = milestoneType.workOrderMilestoneTypeId.toString();
|
||||
optionElement.textContent = milestoneType.workOrderMilestoneType;
|
||||
if (milestoneType.workOrderMilestoneTypeId ===
|
||||
workOrderMilestone.workOrderMilestoneTypeId) {
|
||||
if (milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId) {
|
||||
optionElement.selected = true;
|
||||
milestoneTypeFound = true;
|
||||
}
|
||||
|
|
@ -986,19 +959,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
modalElement.querySelector("#milestoneEdit--workOrderMilestoneDescription").value = workOrderMilestone.workOrderMilestoneDescription;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
editCloseModalFunction = closeModalFunction;
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
los.initializeDatePickers(modalElement);
|
||||
// los.initializeTimePickers(modalElement);
|
||||
modalElement.querySelector("form").addEventListener("submit", doEdit);
|
||||
},
|
||||
onremoved: () => {
|
||||
onremoved() {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
}
|
||||
function renderMilestones() {
|
||||
var _a, _b, _c;
|
||||
// Clear milestones panel
|
||||
const milestonesPanelElement = document.querySelector("#panel--milestones");
|
||||
const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll(".panel-block");
|
||||
|
|
@ -1008,8 +982,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const milestone of workOrderMilestones) {
|
||||
const panelBlockElement = document.createElement("div");
|
||||
panelBlockElement.className = "panel-block is-block container--milestone";
|
||||
panelBlockElement.dataset.workOrderMilestoneId =
|
||||
milestone.workOrderMilestoneId.toString();
|
||||
panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId.toString();
|
||||
panelBlockElement.innerHTML =
|
||||
'<div class="columns is-mobile">' +
|
||||
('<div class="column is-narrow">' +
|
||||
|
|
@ -1032,9 +1005,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</strong><br />"
|
||||
: "") +
|
||||
milestone.workOrderMilestoneDateString +
|
||||
(milestone.workOrderMilestoneTime
|
||||
? " " + milestone.workOrderMilestoneTimeString
|
||||
: "") +
|
||||
(milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") +
|
||||
"<br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") +
|
||||
|
|
@ -1068,19 +1039,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>") +
|
||||
"</div>";
|
||||
if (milestone.workOrderMilestoneCompletionDate) {
|
||||
panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")
|
||||
.addEventListener("click", reopenMilestone);
|
||||
}
|
||||
else {
|
||||
panelBlockElement
|
||||
.querySelector(".button--editMilestone")
|
||||
.addEventListener("click", editMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--completeMilestone")
|
||||
.addEventListener("click", completeMilestone);
|
||||
}
|
||||
(_a = panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", reopenMilestone);
|
||||
(_b = panelBlockElement
|
||||
.querySelector(".button--editMilestone")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", editMilestone);
|
||||
(_c = panelBlockElement
|
||||
.querySelector(".button--completeMilestone")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", completeMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteMilestone")
|
||||
.addEventListener("click", deleteMilestone);
|
||||
|
|
@ -1126,7 +1090,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
cityssm.openHtmlModal("workOrder-addMilestone", {
|
||||
onshow(modalElement) {
|
||||
modalElement.querySelector("#milestoneAdd--workOrderId").value = workOrderId;
|
||||
modalElement.querySelector("#milestoneAdd--workOrderId").value =
|
||||
workOrderId;
|
||||
const milestoneTypeElement = modalElement.querySelector("#milestoneAdd--workOrderMilestoneTypeId");
|
||||
for (const milestoneType of exports.workOrderMilestoneTypes) {
|
||||
const optionElement = document.createElement("option");
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const workOrderId = document.querySelector("#workOrderEdit--workOrderId")
|
||||
.value;
|
||||
const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
|
||||
const isCreate = workOrderId === "";
|
||||
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
||||
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
|
||||
|
|
@ -46,8 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
|
||||
window.location.href = los.urlPrefix + "/workOrders/" + workOrderId;
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -83,8 +81,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
if (hasOpenMilestones) {
|
||||
bulmaJS.alert({
|
||||
title: "Outstanding Milestones",
|
||||
message: "You cannot close a work order with outstanding milestones." +
|
||||
" Either complete the outstanding milestones, or remove them from the work order.",
|
||||
message: `You cannot close a work order with outstanding milestones.
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
/*
|
||||
|
|
@ -113,9 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
}
|
||||
});
|
||||
document
|
||||
.querySelector("#button--deleteWorkOrder")
|
||||
.addEventListener("click", (clickEvent) => {
|
||||
document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order",
|
||||
|
|
@ -157,7 +153,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function completeMilestone(clickEvent) {
|
||||
clickEvent.preventDefault();
|
||||
const currentDateString = cityssm.dateToString(new Date());
|
||||
const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId, 10);
|
||||
const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone")
|
||||
.dataset.workOrderMilestoneId, 10);
|
||||
const workOrderMilestone = workOrderMilestones.find((currentMilestone) => {
|
||||
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
|
||||
});
|
||||
|
|
@ -221,7 +218,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
function editMilestone(clickEvent) {
|
||||
clickEvent.preventDefault();
|
||||
const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId, 10);
|
||||
const workOrderMilestoneId = Number.parseInt(clickEvent.currentTarget.closest(".container--milestone")
|
||||
.dataset.workOrderMilestoneId, 10);
|
||||
const workOrderMilestone = workOrderMilestones.find((currentMilestone) => {
|
||||
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
|
||||
});
|
||||
|
|
@ -236,8 +234,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
cityssm.openHtmlModal("workOrder-editMilestone", {
|
||||
onshow: (modalElement) => {
|
||||
modalElement.querySelector("#milestoneEdit--workOrderId").value = workOrderId;
|
||||
onshow(modalElement) {
|
||||
modalElement.querySelector("#milestoneEdit--workOrderId").value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("#milestoneEdit--workOrderMilestoneId").value = workOrderMilestone.workOrderMilestoneId.toString();
|
||||
const milestoneTypeElement = modalElement.querySelector("#milestoneEdit--workOrderMilestoneTypeId");
|
||||
let milestoneTypeFound = false;
|
||||
|
|
@ -245,8 +244,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const optionElement = document.createElement("option");
|
||||
optionElement.value = milestoneType.workOrderMilestoneTypeId.toString();
|
||||
optionElement.textContent = milestoneType.workOrderMilestoneType;
|
||||
if (milestoneType.workOrderMilestoneTypeId ===
|
||||
workOrderMilestone.workOrderMilestoneTypeId) {
|
||||
if (milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId) {
|
||||
optionElement.selected = true;
|
||||
milestoneTypeFound = true;
|
||||
}
|
||||
|
|
@ -265,19 +263,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
modalElement.querySelector("#milestoneEdit--workOrderMilestoneDescription").value = workOrderMilestone.workOrderMilestoneDescription;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
editCloseModalFunction = closeModalFunction;
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
los.initializeDatePickers(modalElement);
|
||||
// los.initializeTimePickers(modalElement);
|
||||
modalElement.querySelector("form").addEventListener("submit", doEdit);
|
||||
},
|
||||
onremoved: () => {
|
||||
onremoved() {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
}
|
||||
function renderMilestones() {
|
||||
var _a, _b, _c;
|
||||
// Clear milestones panel
|
||||
const milestonesPanelElement = document.querySelector("#panel--milestones");
|
||||
const panelBlockElementsToDelete = milestonesPanelElement.querySelectorAll(".panel-block");
|
||||
|
|
@ -287,8 +286,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const milestone of workOrderMilestones) {
|
||||
const panelBlockElement = document.createElement("div");
|
||||
panelBlockElement.className = "panel-block is-block container--milestone";
|
||||
panelBlockElement.dataset.workOrderMilestoneId =
|
||||
milestone.workOrderMilestoneId.toString();
|
||||
panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId.toString();
|
||||
panelBlockElement.innerHTML =
|
||||
'<div class="columns is-mobile">' +
|
||||
('<div class="column is-narrow">' +
|
||||
|
|
@ -311,9 +309,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</strong><br />"
|
||||
: "") +
|
||||
milestone.workOrderMilestoneDateString +
|
||||
(milestone.workOrderMilestoneTime
|
||||
? " " + milestone.workOrderMilestoneTimeString
|
||||
: "") +
|
||||
(milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") +
|
||||
"<br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") +
|
||||
|
|
@ -347,19 +343,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>") +
|
||||
"</div>";
|
||||
if (milestone.workOrderMilestoneCompletionDate) {
|
||||
panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")
|
||||
.addEventListener("click", reopenMilestone);
|
||||
}
|
||||
else {
|
||||
panelBlockElement
|
||||
.querySelector(".button--editMilestone")
|
||||
.addEventListener("click", editMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--completeMilestone")
|
||||
.addEventListener("click", completeMilestone);
|
||||
}
|
||||
(_a = panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")) === null || _a === void 0 ? void 0 : _a.addEventListener("click", reopenMilestone);
|
||||
(_b = panelBlockElement
|
||||
.querySelector(".button--editMilestone")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", editMilestone);
|
||||
(_c = panelBlockElement
|
||||
.querySelector(".button--completeMilestone")) === null || _c === void 0 ? void 0 : _c.addEventListener("click", completeMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteMilestone")
|
||||
.addEventListener("click", deleteMilestone);
|
||||
|
|
@ -405,7 +394,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
cityssm.openHtmlModal("workOrder-addMilestone", {
|
||||
onshow(modalElement) {
|
||||
modalElement.querySelector("#milestoneAdd--workOrderId").value = workOrderId;
|
||||
modalElement.querySelector("#milestoneAdd--workOrderId").value =
|
||||
workOrderId;
|
||||
const milestoneTypeElement = modalElement.querySelector("#milestoneAdd--workOrderMilestoneTypeId");
|
||||
for (const milestoneType of exports.workOrderMilestoneTypes) {
|
||||
const optionElement = document.createElement("option");
|
||||
|
|
|
|||
|
|
@ -12,8 +12,7 @@ declare const bulmaJS: BulmaJS;
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const workOrderId = (document.querySelector("#workOrderEdit--workOrderId") as HTMLInputElement)
|
||||
.value;
|
||||
const workOrderId = (document.querySelector("#workOrderEdit--workOrderId") as HTMLInputElement).value;
|
||||
|
||||
const isCreate = workOrderId === "";
|
||||
|
||||
|
|
@ -21,9 +20,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
los.initializeDatePickers(
|
||||
(
|
||||
workOrderFormElement.querySelector(
|
||||
"#workOrderEdit--workOrderOpenDateString"
|
||||
) as HTMLInputElement
|
||||
workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString") as HTMLInputElement
|
||||
).closest(".field") as HTMLElement
|
||||
);
|
||||
los.initializeUnlockFieldButtons(workOrderFormElement);
|
||||
|
|
@ -78,8 +75,7 @@ declare const bulmaJS: BulmaJS;
|
|||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
|
||||
window.location.href = los.urlPrefix + "/workOrders/" + workOrderId;
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Closing Work Order",
|
||||
|
|
@ -122,9 +118,8 @@ declare const bulmaJS: BulmaJS;
|
|||
if (hasOpenMilestones) {
|
||||
bulmaJS.alert({
|
||||
title: "Outstanding Milestones",
|
||||
message:
|
||||
"You cannot close a work order with outstanding milestones." +
|
||||
" Either complete the outstanding milestones, or remove them from the work order.",
|
||||
message: `You cannot close a work order with outstanding milestones.
|
||||
Either complete the outstanding milestones, or remove them from the work order.`,
|
||||
contextualColorName: "warning"
|
||||
});
|
||||
|
||||
|
|
@ -154,21 +149,19 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
});
|
||||
|
||||
document
|
||||
.querySelector("#button--deleteWorkOrder")!
|
||||
.addEventListener("click", (clickEvent: Event) => {
|
||||
clickEvent.preventDefault();
|
||||
document.querySelector("#button--deleteWorkOrder")!.addEventListener("click", (clickEvent: Event) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order",
|
||||
message: "Are you sure you want to delete this work order?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete Work Order",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order",
|
||||
message: "Are you sure you want to delete this work order?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete Work Order",
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -212,11 +205,8 @@ declare const bulmaJS: BulmaJS;
|
|||
const currentDateString = cityssm.dateToString(new Date());
|
||||
|
||||
const workOrderMilestoneId = Number.parseInt(
|
||||
(
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--milestone"
|
||||
) as HTMLElement
|
||||
).dataset.workOrderMilestoneId!,
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement)
|
||||
.dataset.workOrderMilestoneId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -255,9 +245,7 @@ declare const bulmaJS: BulmaJS;
|
|||
clickEvent.preventDefault();
|
||||
|
||||
const workOrderMilestoneId = (
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--milestone"
|
||||
) as HTMLElement
|
||||
(clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement
|
||||
).dataset.workOrderMilestoneId;
|
||||
|
||||
const doReopen = () => {
|
||||
|
|
@ -287,9 +275,7 @@ declare const bulmaJS: BulmaJS;
|
|||
clickEvent.preventDefault();
|
||||
|
||||
const workOrderMilestoneId = (
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--milestone"
|
||||
) as HTMLElement
|
||||
(clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement
|
||||
).dataset.workOrderMilestoneId;
|
||||
|
||||
const doDelete = () => {
|
||||
|
|
@ -318,11 +304,8 @@ declare const bulmaJS: BulmaJS;
|
|||
clickEvent.preventDefault();
|
||||
|
||||
const workOrderMilestoneId = Number.parseInt(
|
||||
(
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--milestone"
|
||||
) as HTMLElement
|
||||
).dataset.workOrderMilestoneId!,
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--milestone") as HTMLElement)
|
||||
.dataset.workOrderMilestoneId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -352,15 +335,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
cityssm.openHtmlModal("workOrder-editMilestone", {
|
||||
onshow: (modalElement) => {
|
||||
(
|
||||
modalElement.querySelector("#milestoneEdit--workOrderId") as HTMLInputElement
|
||||
).value = workOrderId;
|
||||
onshow(modalElement) {
|
||||
(modalElement.querySelector("#milestoneEdit--workOrderId") as HTMLInputElement).value =
|
||||
workOrderId;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#milestoneEdit--workOrderMilestoneId"
|
||||
) as HTMLInputElement
|
||||
modalElement.querySelector("#milestoneEdit--workOrderMilestoneId") as HTMLInputElement
|
||||
).value = workOrderMilestone.workOrderMilestoneId!.toString();
|
||||
|
||||
const milestoneTypeElement = modalElement.querySelector(
|
||||
|
|
@ -376,8 +356,7 @@ declare const bulmaJS: BulmaJS;
|
|||
optionElement.textContent = milestoneType.workOrderMilestoneType;
|
||||
|
||||
if (
|
||||
milestoneType.workOrderMilestoneTypeId ===
|
||||
workOrderMilestone.workOrderMilestoneTypeId
|
||||
milestoneType.workOrderMilestoneTypeId === workOrderMilestone.workOrderMilestoneTypeId
|
||||
) {
|
||||
optionElement.selected = true;
|
||||
milestoneTypeFound = true;
|
||||
|
|
@ -414,7 +393,7 @@ declare const bulmaJS: BulmaJS;
|
|||
) as HTMLTextAreaElement
|
||||
).value = workOrderMilestone.workOrderMilestoneDescription!;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
editCloseModalFunction = closeModalFunction;
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -423,7 +402,7 @@ declare const bulmaJS: BulmaJS;
|
|||
// los.initializeTimePickers(modalElement);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doEdit);
|
||||
},
|
||||
onremoved: () => {
|
||||
onremoved() {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
|
|
@ -443,8 +422,7 @@ declare const bulmaJS: BulmaJS;
|
|||
const panelBlockElement = document.createElement("div");
|
||||
panelBlockElement.className = "panel-block is-block container--milestone";
|
||||
|
||||
panelBlockElement.dataset.workOrderMilestoneId =
|
||||
milestone.workOrderMilestoneId!.toString();
|
||||
panelBlockElement.dataset.workOrderMilestoneId = milestone.workOrderMilestoneId!.toString();
|
||||
|
||||
panelBlockElement.innerHTML =
|
||||
'<div class="columns is-mobile">' +
|
||||
|
|
@ -468,9 +446,7 @@ declare const bulmaJS: BulmaJS;
|
|||
"</strong><br />"
|
||||
: "") +
|
||||
milestone.workOrderMilestoneDateString +
|
||||
(milestone.workOrderMilestoneTime
|
||||
? " " + milestone.workOrderMilestoneTimeString
|
||||
: "") +
|
||||
(milestone.workOrderMilestoneTime ? " " + milestone.workOrderMilestoneTimeString : "") +
|
||||
"<br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") +
|
||||
|
|
@ -505,19 +481,16 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>") +
|
||||
"</div>";
|
||||
|
||||
if (milestone.workOrderMilestoneCompletionDate) {
|
||||
panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")!
|
||||
.addEventListener("click", reopenMilestone);
|
||||
} else {
|
||||
panelBlockElement
|
||||
.querySelector(".button--editMilestone")!
|
||||
.addEventListener("click", editMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")
|
||||
?.addEventListener("click", reopenMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--editMilestone")
|
||||
?.addEventListener("click", editMilestone);
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--completeMilestone")!
|
||||
.addEventListener("click", completeMilestone);
|
||||
}
|
||||
panelBlockElement
|
||||
.querySelector(".button--completeMilestone")
|
||||
?.addEventListener("click", completeMilestone);
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteMilestone")!
|
||||
|
|
@ -574,8 +547,7 @@ declare const bulmaJS: BulmaJS;
|
|||
) {
|
||||
bulmaJS.confirm({
|
||||
title: "Milestone Date in the Past",
|
||||
message:
|
||||
"Are you sure you want to create a milestone with a date in the past?",
|
||||
message: "Are you sure you want to create a milestone with a date in the past?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Create a Past Milestone",
|
||||
|
|
@ -589,9 +561,8 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
cityssm.openHtmlModal("workOrder-addMilestone", {
|
||||
onshow(modalElement) {
|
||||
(
|
||||
modalElement.querySelector("#milestoneAdd--workOrderId") as HTMLInputElement
|
||||
).value = workOrderId;
|
||||
(modalElement.querySelector("#milestoneAdd--workOrderId") as HTMLInputElement).value =
|
||||
workOrderId;
|
||||
|
||||
const milestoneTypeElement = modalElement.querySelector(
|
||||
"#milestoneAdd--workOrderMilestoneTypeId"
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@ const openEditWorkOrderComment = (clickEvent) => {
|
|||
}
|
||||
cityssm.openHtmlModal("workOrder-editComment", {
|
||||
onshow(modalElement) {
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderId").value = workOrderId;
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderId").value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId").value = workOrderCommentId.toString();
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderComment").value = workOrderComment.workOrderComment;
|
||||
const workOrderCommentDateStringElement = modalElement.querySelector("#workOrderCommentEdit--workOrderCommentDateString");
|
||||
|
|
@ -88,26 +89,21 @@ function deleteWorkOrderComment(clickEvent) {
|
|||
function renderWorkOrderComments() {
|
||||
const containerElement = document.querySelector("#container--workOrderComments");
|
||||
if (workOrderComments.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no comments to display.</p>' +
|
||||
"</div>";
|
||||
containerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no comments to display.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
const tableElement = document.createElement("table");
|
||||
tableElement.className = "table is-fullwidth is-striped is-hoverable";
|
||||
tableElement.innerHTML =
|
||||
"<thead><tr>" +
|
||||
"<th>Commentor</th>" +
|
||||
"<th>Comment Date</th>" +
|
||||
"<th>Comment</th>" +
|
||||
'<th class="is-hidden-print"><span class="is-sr-only">Options</span></th>' +
|
||||
"</tr></thead>" +
|
||||
"<tbody></tbody>";
|
||||
tableElement.innerHTML = `<thead><tr>
|
||||
<th>Commentor</th>
|
||||
<th>Comment Date</th>
|
||||
<th>Comment</th>
|
||||
<th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>`;
|
||||
for (const workOrderComment of workOrderComments) {
|
||||
const tableRowElement = document.createElement("tr");
|
||||
tableRowElement.dataset.workOrderCommentId =
|
||||
workOrderComment.workOrderCommentId.toString();
|
||||
tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId.toString();
|
||||
tableRowElement.innerHTML =
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") +
|
||||
|
|
@ -132,12 +128,8 @@ function renderWorkOrderComments() {
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditWorkOrderComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteWorkOrderComment);
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditWorkOrderComment);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteWorkOrderComment);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -158,7 +150,8 @@ function openAddCommentModal() {
|
|||
cityssm.openHtmlModal("workOrder-addComment", {
|
||||
onshow(modalElement) {
|
||||
los.populateAliases(modalElement);
|
||||
modalElement.querySelector("#workOrderCommentAdd--workOrderId").value = workOrderId;
|
||||
modalElement.querySelector("#workOrderCommentAdd--workOrderId").value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("form").addEventListener("submit", doAddComment);
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
|
|
@ -173,8 +166,6 @@ function openAddCommentModal() {
|
|||
});
|
||||
}
|
||||
if (!isCreate) {
|
||||
document
|
||||
.querySelector("#workOrderComments--add")
|
||||
.addEventListener("click", openAddCommentModal);
|
||||
document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal);
|
||||
renderWorkOrderComments();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,19 +58,14 @@ const openEditWorkOrderComment = (clickEvent: Event) => {
|
|||
|
||||
cityssm.openHtmlModal("workOrder-editComment", {
|
||||
onshow(modalElement) {
|
||||
(modalElement.querySelector("#workOrderCommentEdit--workOrderId") as HTMLInputElement).value =
|
||||
workOrderId;
|
||||
(
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderId") as HTMLInputElement
|
||||
).value = workOrderId;
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#workOrderCommentEdit--workOrderCommentId"
|
||||
) as HTMLInputElement
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderCommentId") as HTMLInputElement
|
||||
).value = workOrderCommentId.toString();
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#workOrderCommentEdit--workOrderComment"
|
||||
) as HTMLInputElement
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderComment") as HTMLInputElement
|
||||
).value = workOrderComment.workOrderComment!;
|
||||
|
||||
const workOrderCommentDateStringElement = modalElement.querySelector(
|
||||
|
|
@ -99,9 +94,7 @@ const openEditWorkOrderComment = (clickEvent: Event) => {
|
|||
// los.initializeTimePickers(modalElement);
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#workOrderCommentEdit--workOrderComment"
|
||||
) as HTMLTextAreaElement
|
||||
modalElement.querySelector("#workOrderCommentEdit--workOrderComment") as HTMLTextAreaElement
|
||||
).focus();
|
||||
|
||||
editFormElement = modalElement.querySelector("form")!;
|
||||
|
|
@ -162,28 +155,23 @@ function renderWorkOrderComments() {
|
|||
const containerElement = document.querySelector("#container--workOrderComments") as HTMLElement;
|
||||
|
||||
if (workOrderComments.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no comments to display.</p>' +
|
||||
"</div>";
|
||||
containerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no comments to display.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
|
||||
const tableElement = document.createElement("table");
|
||||
tableElement.className = "table is-fullwidth is-striped is-hoverable";
|
||||
tableElement.innerHTML =
|
||||
"<thead><tr>" +
|
||||
"<th>Commentor</th>" +
|
||||
"<th>Comment Date</th>" +
|
||||
"<th>Comment</th>" +
|
||||
'<th class="is-hidden-print"><span class="is-sr-only">Options</span></th>' +
|
||||
"</tr></thead>" +
|
||||
"<tbody></tbody>";
|
||||
tableElement.innerHTML = `<thead><tr>
|
||||
<th>Commentor</th>
|
||||
<th>Comment Date</th>
|
||||
<th>Comment</th>
|
||||
<th class="is-hidden-print"><span class="is-sr-only">Options</span></th></tr></thead><tbody></tbody>`;
|
||||
|
||||
for (const workOrderComment of workOrderComments) {
|
||||
const tableRowElement = document.createElement("tr");
|
||||
tableRowElement.dataset.workOrderCommentId =
|
||||
workOrderComment.workOrderCommentId!.toString();
|
||||
tableRowElement.dataset.workOrderCommentId = workOrderComment.workOrderCommentId!.toString();
|
||||
|
||||
tableRowElement.innerHTML =
|
||||
"<td>" +
|
||||
|
|
@ -210,13 +198,9 @@ function renderWorkOrderComments() {
|
|||
"</div>" +
|
||||
"</td>");
|
||||
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")!
|
||||
.addEventListener("click", openEditWorkOrderComment);
|
||||
tableRowElement.querySelector(".button--edit")!.addEventListener("click", openEditWorkOrderComment);
|
||||
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")!
|
||||
.addEventListener("click", deleteWorkOrderComment);
|
||||
tableRowElement.querySelector(".button--delete")!.addEventListener("click", deleteWorkOrderComment);
|
||||
|
||||
tableElement.querySelector("tbody")!.append(tableRowElement);
|
||||
}
|
||||
|
|
@ -234,10 +218,7 @@ function openAddCommentModal() {
|
|||
cityssm.postJSON(
|
||||
los.urlPrefix + "/workOrders/doAddWorkOrderComment",
|
||||
formEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
workOrderComments?: recordTypes.WorkOrderComment[];
|
||||
}) => {
|
||||
(responseJSON: { success: boolean; workOrderComments?: recordTypes.WorkOrderComment[] }) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderComments = responseJSON.workOrderComments!;
|
||||
renderWorkOrderComments();
|
||||
|
|
@ -250,18 +231,15 @@ function openAddCommentModal() {
|
|||
cityssm.openHtmlModal("workOrder-addComment", {
|
||||
onshow(modalElement) {
|
||||
los.populateAliases(modalElement);
|
||||
(
|
||||
modalElement.querySelector("#workOrderCommentAdd--workOrderId") as HTMLInputElement
|
||||
).value = workOrderId;
|
||||
(modalElement.querySelector("#workOrderCommentAdd--workOrderId") as HTMLInputElement).value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAddComment);
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
addCommentCloseModalFunction = closeModalFunction;
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#workOrderCommentAdd--workOrderComment"
|
||||
) as HTMLTextAreaElement
|
||||
modalElement.querySelector("#workOrderCommentAdd--workOrderComment") as HTMLTextAreaElement
|
||||
).focus();
|
||||
},
|
||||
onremoved() {
|
||||
|
|
@ -272,9 +250,7 @@ function openAddCommentModal() {
|
|||
}
|
||||
|
||||
if (!isCreate) {
|
||||
document
|
||||
.querySelector("#workOrderComments--add")!
|
||||
.addEventListener("click", openAddCommentModal);
|
||||
|
||||
document.querySelector("#workOrderComments--add")!.addEventListener("click", openAddCommentModal);
|
||||
|
||||
renderWorkOrderComments();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ function deleteLotOccupancy(clickEvent) {
|
|||
});
|
||||
}
|
||||
bulmaJS.confirm({
|
||||
title: `Delete ${exports.aliases.occupancy} Relationship`,
|
||||
message: `Are you sure you want to remove the relationship to this ${exports.aliases.occupancy.toLowerCase()} record from this work order? Note that the record will remain.`,
|
||||
title: `Delete ${los.escapedAliases.Occupancy} Relationship`,
|
||||
message: `Are you sure you want to remove the relationship to this ${los.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete Relationship",
|
||||
|
|
@ -46,7 +46,7 @@ function addLot(lotId, callbackFunction) {
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot,
|
||||
title: "Error Adding " + los.escapedAliases.Lot,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -67,7 +67,7 @@ function addLotOccupancy(lotOccupancyId, callbackFunction) {
|
|||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupancy,
|
||||
title: "Error Adding " + los.escapedAliases.Occupancy,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -82,12 +82,13 @@ function addLotFromLotOccupancy(clickEvent) {
|
|||
addLot(lotId);
|
||||
}
|
||||
function renderRelatedOccupancies() {
|
||||
var _a;
|
||||
var _a, _b;
|
||||
const occupanciesContainerElement = document.querySelector("#container--lotOccupancies");
|
||||
document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = workOrderLotOccupancies.length.toString();
|
||||
document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent =
|
||||
workOrderLotOccupancies.length.toString();
|
||||
if (workOrderLotOccupancies.length === 0) {
|
||||
occupanciesContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.</p>
|
||||
<p class="message-body">There are no ${los.escapedAliases.occupancies} associated with this work order.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
|
|
@ -105,8 +106,7 @@ function renderRelatedOccupancies() {
|
|||
const rowElement = document.createElement("tr");
|
||||
rowElement.className = "container--lotOccupancy";
|
||||
rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId.toString();
|
||||
const isActive = !(lotOccupancy.occupancyEndDate &&
|
||||
lotOccupancy.occupancyEndDateString < currentDateString);
|
||||
const isActive = !(lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString < currentDateString);
|
||||
const hasLotRecord = lotOccupancy.lotId &&
|
||||
workOrderLots.some((lot) => {
|
||||
return lotOccupancy.lotId === lot.lotId;
|
||||
|
|
@ -114,12 +114,8 @@ function renderRelatedOccupancies() {
|
|||
rowElement.innerHTML =
|
||||
'<td class="is-width-1 has-text-centered">' +
|
||||
(isActive
|
||||
? '<i class="fas fa-play" title="Current ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
'"></i>'
|
||||
: '<i class="fas fa-stop" title="Previous ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
'"></i>') +
|
||||
? '<i class="fas fa-play" title="Current ' + los.escapedAliases.Occupancy + '"></i>'
|
||||
: '<i class="fas fa-stop" title="Previous ' + los.escapedAliases.Occupancy + '"></i>') +
|
||||
"</td>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
|
|
@ -140,17 +136,17 @@ function renderRelatedOccupancies() {
|
|||
lotOccupancy.lotId +
|
||||
'"' +
|
||||
' data-tooltip="Add ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
'"' +
|
||||
' aria-label="Add ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
'" type="button">' +
|
||||
'<i class="fas fa-plus" aria-hidden="true"></i>' +
|
||||
"</button>") +
|
||||
"</td>");
|
||||
}
|
||||
else {
|
||||
rowElement.insertAdjacentHTML("beforeend", `<td><span class="has-text-grey">(No ${exports.aliases.lot})</span></td>`);
|
||||
rowElement.insertAdjacentHTML("beforeend", `<td><span class="has-text-grey">(No ${los.escapedAliases.Lot})</span></td>`);
|
||||
}
|
||||
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
||||
lotOccupancy.occupancyStartDateString +
|
||||
|
|
@ -162,9 +158,7 @@ function renderRelatedOccupancies() {
|
|||
"</td>") +
|
||||
("<td>" +
|
||||
(lotOccupancy.lotOccupancyOccupants.length === 0
|
||||
? '<span class="has-text-grey">(No ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupants) +
|
||||
")</span>"
|
||||
? '<span class="has-text-grey">(No ' + los.escapedAliases.Occupants + ")</span>"
|
||||
: (_a = lotOccupancy.lotOccupancyOccupants) === null || _a === void 0 ? void 0 : _a.reduce((soFar, occupant) => {
|
||||
return (soFar +
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
|
|
@ -173,7 +167,7 @@ function renderRelatedOccupancies() {
|
|||
'<i class="fas fa-fw fa-' +
|
||||
cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") +
|
||||
'" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
"</span><br />");
|
||||
|
|
@ -184,11 +178,7 @@ function renderRelatedOccupancies() {
|
|||
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
||||
"</button>" +
|
||||
"</td>"));
|
||||
if (lotOccupancy.lotId && !hasLotRecord) {
|
||||
rowElement
|
||||
.querySelector(".button--addLot")
|
||||
.addEventListener("click", addLotFromLotOccupancy);
|
||||
}
|
||||
(_b = rowElement.querySelector(".button--addLot")) === null || _b === void 0 ? void 0 : _b.addEventListener("click", addLotFromLotOccupancy);
|
||||
rowElement
|
||||
.querySelector(".button--deleteLotOccupancy")
|
||||
.addEventListener("click", deleteLotOccupancy);
|
||||
|
|
@ -196,8 +186,7 @@ function renderRelatedOccupancies() {
|
|||
}
|
||||
}
|
||||
function openEditLotStatus(clickEvent) {
|
||||
const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot")
|
||||
.dataset.lotId, 10);
|
||||
const lotId = Number.parseInt(clickEvent.currentTarget.closest(".container--lot").dataset.lotId, 10);
|
||||
const lot = workOrderLots.find((possibleLot) => {
|
||||
return possibleLot.lotId === lotId;
|
||||
});
|
||||
|
|
@ -224,8 +213,7 @@ function openEditLotStatus(clickEvent) {
|
|||
los.populateAliases(modalElement);
|
||||
modalElement.querySelector("#lotStatusEdit--lotId").value =
|
||||
lotId.toString();
|
||||
modalElement.querySelector("#lotStatusEdit--lotName").value =
|
||||
lot.lotName;
|
||||
modalElement.querySelector("#lotStatusEdit--lotName").value = lot.lotName;
|
||||
const lotStatusElement = modalElement.querySelector("#lotStatusEdit--lotStatusId");
|
||||
let lotStatusFound = false;
|
||||
for (const lotStatus of exports.lotStatuses) {
|
||||
|
|
@ -248,7 +236,7 @@ function openEditLotStatus(clickEvent) {
|
|||
}
|
||||
modalElement
|
||||
.querySelector("form")
|
||||
.insertAdjacentHTML("beforeend", '<input name="workOrderId" type="hidden" value="' + workOrderId + '" />');
|
||||
.insertAdjacentHTML("beforeend", `<input name="workOrderId" type="hidden" value="${workOrderId}" />`);
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
editCloseModalFunction = closeModalFunction;
|
||||
|
|
@ -261,7 +249,8 @@ function openEditLotStatus(clickEvent) {
|
|||
});
|
||||
}
|
||||
function deleteLot(clickEvent) {
|
||||
const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId;
|
||||
const lotId = clickEvent.currentTarget.closest(".container--lot")
|
||||
.dataset.lotId;
|
||||
function doDelete() {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", {
|
||||
workOrderId,
|
||||
|
|
@ -339,9 +328,7 @@ function renderRelatedLots() {
|
|||
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
||||
"</button>" +
|
||||
"</td>");
|
||||
rowElement
|
||||
.querySelector(".button--editLotStatus")
|
||||
.addEventListener("click", openEditLotStatus);
|
||||
rowElement.querySelector(".button--editLotStatus").addEventListener("click", openEditLotStatus);
|
||||
rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot);
|
||||
lotsContainerElement.querySelector("tbody").append(rowElement);
|
||||
}
|
||||
|
|
@ -370,10 +357,9 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", ()
|
|||
searchResultsContainerElement.innerHTML = los.getLoadingParagraphHTML("Searching...");
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => {
|
||||
if (responseJSON.lotOccupancies.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no records that meet the search criteria.</p>' +
|
||||
"</div>";
|
||||
searchResultsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no records that meet the search criteria.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
searchResultsContainerElement.innerHTML = `<table class="table is-fullwidth is-striped is-hoverable">
|
||||
|
|
@ -421,8 +407,7 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", ()
|
|||
")</span>"
|
||||
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
|
||||
(lotOccupancy.lotOccupancyOccupants.length > 1
|
||||
? " plus " +
|
||||
(lotOccupancy.lotOccupancyOccupants.length - 1)
|
||||
? " plus " + (lotOccupancy.lotOccupancyOccupants.length - 1)
|
||||
: "")) +
|
||||
"</td>"));
|
||||
rowElement
|
||||
|
|
@ -437,7 +422,8 @@ document.querySelector("#button--addLotOccupancy").addEventListener("click", ()
|
|||
los.populateAliases(modalElement);
|
||||
searchFormElement = modalElement.querySelector("form");
|
||||
searchResultsContainerElement = modalElement.querySelector("#resultsContainer--lotOccupancyAdd");
|
||||
modalElement.querySelector("#lotOccupancySearch--notWorkOrderId").value = workOrderId;
|
||||
modalElement.querySelector("#lotOccupancySearch--notWorkOrderId").value =
|
||||
workOrderId;
|
||||
modalElement.querySelector("#lotOccupancySearch--occupancyEffectiveDateString").value = document.querySelector("#workOrderEdit--workOrderOpenDateString").value;
|
||||
doSearch();
|
||||
},
|
||||
|
|
@ -505,9 +491,7 @@ document.querySelector("#button--addLot").addEventListener("click", () => {
|
|||
"</td>" +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>");
|
||||
rowElement
|
||||
.querySelector(".button--addLot")
|
||||
.addEventListener("click", doAddLot);
|
||||
rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot);
|
||||
searchResultsContainerElement.querySelector("tbody").append(rowElement);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@ function deleteLotOccupancy(clickEvent: Event): void {
|
|||
}
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: `Delete ${exports.aliases.occupancy} Relationship`,
|
||||
message: `Are you sure you want to remove the relationship to this ${exports.aliases.occupancy.toLowerCase()} record from this work order? Note that the record will remain.`,
|
||||
title: `Delete ${los.escapedAliases.Occupancy} Relationship`,
|
||||
message: `Are you sure you want to remove the relationship to this ${los.escapedAliases.occupancy} record from this work order? Note that the record will remain.`,
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete Relationship",
|
||||
|
|
@ -68,17 +68,13 @@ function addLot(lotId: number | string, callbackFunction?: (success?: boolean) =
|
|||
workOrderId,
|
||||
lotId
|
||||
},
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
workOrderLots?: recordTypes.Lot[];
|
||||
}) => {
|
||||
(responseJSON: { success: boolean; errorMessage?: string; workOrderLots?: recordTypes.Lot[] }) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderLots = responseJSON.workOrderLots!;
|
||||
renderRelatedLotsAndOccupancies();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot,
|
||||
title: "Error Adding " + los.escapedAliases.Lot,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -111,7 +107,7 @@ function addLotOccupancy(
|
|||
renderRelatedLotsAndOccupancies();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupancy,
|
||||
title: "Error Adding " + los.escapedAliases.Occupancy,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
|
|
@ -130,17 +126,14 @@ function addLotFromLotOccupancy(clickEvent: Event): void {
|
|||
}
|
||||
|
||||
function renderRelatedOccupancies(): void {
|
||||
const occupanciesContainerElement = document.querySelector(
|
||||
"#container--lotOccupancies"
|
||||
) as HTMLElement;
|
||||
const occupanciesContainerElement = document.querySelector("#container--lotOccupancies") as HTMLElement;
|
||||
|
||||
(
|
||||
document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag") as HTMLElement
|
||||
).textContent = workOrderLotOccupancies.length.toString();
|
||||
(document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag") as HTMLElement).textContent =
|
||||
workOrderLotOccupancies.length.toString();
|
||||
|
||||
if (workOrderLotOccupancies.length === 0) {
|
||||
occupanciesContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no ${exports.aliases.occupancies.toLowerCase()} associated with this work order.</p>
|
||||
<p class="message-body">There are no ${los.escapedAliases.occupancies} associated with this work order.</p>
|
||||
</div>`;
|
||||
|
||||
return;
|
||||
|
|
@ -164,8 +157,7 @@ function renderRelatedOccupancies(): void {
|
|||
rowElement.dataset.lotOccupancyId = lotOccupancy.lotOccupancyId!.toString();
|
||||
|
||||
const isActive = !(
|
||||
lotOccupancy.occupancyEndDate &&
|
||||
lotOccupancy.occupancyEndDateString! < currentDateString
|
||||
lotOccupancy.occupancyEndDate && lotOccupancy.occupancyEndDateString! < currentDateString
|
||||
);
|
||||
|
||||
const hasLotRecord =
|
||||
|
|
@ -177,12 +169,8 @@ function renderRelatedOccupancies(): void {
|
|||
rowElement.innerHTML =
|
||||
'<td class="is-width-1 has-text-centered">' +
|
||||
(isActive
|
||||
? '<i class="fas fa-play" title="Current ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
'"></i>'
|
||||
: '<i class="fas fa-stop" title="Previous ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
'"></i>') +
|
||||
? '<i class="fas fa-play" title="Current ' + los.escapedAliases.Occupancy + '"></i>'
|
||||
: '<i class="fas fa-stop" title="Previous ' + los.escapedAliases.Occupancy + '"></i>') +
|
||||
"</td>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
|
|
@ -206,10 +194,10 @@ function renderRelatedOccupancies(): void {
|
|||
lotOccupancy.lotId +
|
||||
'"' +
|
||||
' data-tooltip="Add ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
'"' +
|
||||
' aria-label="Add ' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
los.escapedAliases.Lot +
|
||||
'" type="button">' +
|
||||
'<i class="fas fa-plus" aria-hidden="true"></i>' +
|
||||
"</button>") +
|
||||
|
|
@ -218,7 +206,7 @@ function renderRelatedOccupancies(): void {
|
|||
} else {
|
||||
rowElement.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
`<td><span class="has-text-grey">(No ${exports.aliases.lot})</span></td>`
|
||||
`<td><span class="has-text-grey">(No ${los.escapedAliases.Lot})</span></td>`
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -234,9 +222,7 @@ function renderRelatedOccupancies(): void {
|
|||
"</td>") +
|
||||
("<td>" +
|
||||
(lotOccupancy.lotOccupancyOccupants!.length === 0
|
||||
? '<span class="has-text-grey">(No ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupants) +
|
||||
")</span>"
|
||||
? '<span class="has-text-grey">(No ' + los.escapedAliases.Occupants + ")</span>"
|
||||
: lotOccupancy.lotOccupancyOccupants?.reduce((soFar, occupant) => {
|
||||
return (
|
||||
soFar +
|
||||
|
|
@ -246,7 +232,7 @@ function renderRelatedOccupancies(): void {
|
|||
'<i class="fas fa-fw fa-' +
|
||||
cityssm.escapeHTML(occupant.fontAwesomeIconClass || "user") +
|
||||
'" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
los.escapedAliases.Occupant +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(occupant.occupantName!) +
|
||||
"</span><br />"
|
||||
|
|
@ -260,11 +246,7 @@ function renderRelatedOccupancies(): void {
|
|||
"</td>")
|
||||
);
|
||||
|
||||
if (lotOccupancy.lotId && !hasLotRecord) {
|
||||
rowElement
|
||||
.querySelector(".button--addLot")!
|
||||
.addEventListener("click", addLotFromLotOccupancy);
|
||||
}
|
||||
rowElement.querySelector(".button--addLot")?.addEventListener("click", addLotFromLotOccupancy);
|
||||
|
||||
rowElement
|
||||
.querySelector(".button--deleteLotOccupancy")!
|
||||
|
|
@ -276,8 +258,7 @@ function renderRelatedOccupancies(): void {
|
|||
|
||||
function openEditLotStatus(clickEvent: Event): void {
|
||||
const lotId = Number.parseInt(
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement)
|
||||
.dataset.lotId!,
|
||||
((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement).dataset.lotId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -320,8 +301,7 @@ function openEditLotStatus(clickEvent: Event): void {
|
|||
(modalElement.querySelector("#lotStatusEdit--lotId") as HTMLInputElement).value =
|
||||
lotId.toString();
|
||||
|
||||
(modalElement.querySelector("#lotStatusEdit--lotName") as HTMLInputElement).value =
|
||||
lot.lotName!;
|
||||
(modalElement.querySelector("#lotStatusEdit--lotName") as HTMLInputElement).value = lot.lotName!;
|
||||
|
||||
const lotStatusElement = modalElement.querySelector(
|
||||
"#lotStatusEdit--lotStatusId"
|
||||
|
|
@ -356,7 +336,7 @@ function openEditLotStatus(clickEvent: Event): void {
|
|||
.querySelector("form")!
|
||||
.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
'<input name="workOrderId" type="hidden" value="' + workOrderId + '" />'
|
||||
`<input name="workOrderId" type="hidden" value="${workOrderId}" />`
|
||||
);
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
|
|
@ -373,9 +353,8 @@ function openEditLotStatus(clickEvent: Event): void {
|
|||
}
|
||||
|
||||
function deleteLot(clickEvent: Event): void {
|
||||
const lotId = (
|
||||
(clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement
|
||||
).dataset.lotId;
|
||||
const lotId = ((clickEvent.currentTarget as HTMLElement).closest(".container--lot") as HTMLElement)
|
||||
.dataset.lotId;
|
||||
|
||||
function doDelete(): void {
|
||||
cityssm.postJSON(
|
||||
|
|
@ -471,9 +450,7 @@ function renderRelatedLots(): void {
|
|||
"</button>" +
|
||||
"</td>");
|
||||
|
||||
rowElement
|
||||
.querySelector(".button--editLotStatus")!
|
||||
.addEventListener("click", openEditLotStatus);
|
||||
rowElement.querySelector(".button--editLotStatus")!.addEventListener("click", openEditLotStatus);
|
||||
|
||||
rowElement.querySelector(".button--deleteLot")!.addEventListener("click", deleteLot);
|
||||
|
||||
|
|
@ -516,10 +493,9 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", ()
|
|||
searchFormElement,
|
||||
(responseJSON: { lotOccupancies: recordTypes.LotOccupancy[] }) => {
|
||||
if (responseJSON.lotOccupancies.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no records that meet the search criteria.</p>' +
|
||||
"</div>";
|
||||
searchResultsContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no records that meet the search criteria.</p>
|
||||
</div>`;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -582,8 +558,7 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", ()
|
|||
lotOccupancy.lotOccupancyOccupants![0].occupantName!
|
||||
) +
|
||||
(lotOccupancy.lotOccupancyOccupants!.length > 1
|
||||
? " plus " +
|
||||
(lotOccupancy.lotOccupancyOccupants!.length - 1)
|
||||
? " plus " + (lotOccupancy.lotOccupancyOccupants!.length - 1)
|
||||
: "")) +
|
||||
"</td>")
|
||||
);
|
||||
|
|
@ -608,20 +583,15 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", ()
|
|||
"#resultsContainer--lotOccupancyAdd"
|
||||
) as HTMLElement;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancySearch--notWorkOrderId"
|
||||
) as HTMLInputElement
|
||||
).value = workOrderId;
|
||||
(modalElement.querySelector("#lotOccupancySearch--notWorkOrderId") as HTMLInputElement).value =
|
||||
workOrderId;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotOccupancySearch--occupancyEffectiveDateString"
|
||||
) as HTMLInputElement
|
||||
).value = (
|
||||
document.querySelector(
|
||||
"#workOrderEdit--workOrderOpenDateString"
|
||||
) as HTMLInputElement
|
||||
document.querySelector("#workOrderEdit--workOrderOpenDateString") as HTMLInputElement
|
||||
).value;
|
||||
|
||||
doSearch();
|
||||
|
|
@ -633,9 +603,10 @@ document.querySelector("#button--addLotOccupancy")!.addEventListener("click", ()
|
|||
modalElement.querySelector("#lotOccupancySearch--occupantName") as HTMLInputElement
|
||||
).addEventListener("change", doSearch);
|
||||
|
||||
(
|
||||
modalElement.querySelector("#lotOccupancySearch--lotName") as HTMLInputElement
|
||||
).addEventListener("change", doSearch);
|
||||
(modalElement.querySelector("#lotOccupancySearch--lotName") as HTMLInputElement).addEventListener(
|
||||
"change",
|
||||
doSearch
|
||||
);
|
||||
|
||||
searchFormElement.addEventListener("submit", doSearch);
|
||||
},
|
||||
|
|
@ -712,9 +683,7 @@ document.querySelector("#button--addLot")!.addEventListener("click", () => {
|
|||
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>");
|
||||
|
||||
rowElement
|
||||
.querySelector(".button--addLot")!
|
||||
.addEventListener("click", doAddLot);
|
||||
rowElement.querySelector(".button--addLot")!.addEventListener("click", doAddLot);
|
||||
|
||||
searchResultsContainerElement.querySelector("tbody")!.append(rowElement);
|
||||
}
|
||||
|
|
@ -751,13 +720,15 @@ document.querySelector("#button--addLot")!.addEventListener("click", () => {
|
|||
onshown(modalElement) {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
||||
(
|
||||
modalElement.querySelector("#lotSearch--lotName") as HTMLInputElement
|
||||
).addEventListener("change", doSearch);
|
||||
(modalElement.querySelector("#lotSearch--lotName") as HTMLInputElement).addEventListener(
|
||||
"change",
|
||||
doSearch
|
||||
);
|
||||
|
||||
(
|
||||
modalElement.querySelector("#lotSearch--lotStatusId") as HTMLSelectElement
|
||||
).addEventListener("change", doSearch);
|
||||
(modalElement.querySelector("#lotSearch--lotStatusId") as HTMLSelectElement).addEventListener(
|
||||
"change",
|
||||
doSearch
|
||||
);
|
||||
|
||||
searchFormElement.addEventListener("submit", doSearch);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -9,10 +9,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const milestoneCalendarContainerElement = document.querySelector("#container--milestoneCalendar");
|
||||
function renderMilestones(workOrderMilestones) {
|
||||
if (workOrderMilestones.length === 0) {
|
||||
milestoneCalendarContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no milestones that meet the search criteria.</p>' +
|
||||
"</div>";
|
||||
milestoneCalendarContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no milestones that meet the search criteria.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
milestoneCalendarContainerElement.innerHTML = "";
|
||||
|
|
@ -26,8 +25,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
currentPanelElement = document.createElement("div");
|
||||
currentPanelElement.className = "panel";
|
||||
currentPanelElement.innerHTML =
|
||||
'<h2 class="panel-heading">' + milestone.workOrderMilestoneDateString + "</h2>";
|
||||
currentPanelElement.innerHTML = `<h2 class="panel-heading">${milestone.workOrderMilestoneDateString}</h2>`;
|
||||
currentPanelDateString = milestone.workOrderMilestoneDateString;
|
||||
}
|
||||
const panelBlockElement = document.createElement("div");
|
||||
|
|
@ -110,8 +108,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
if (event) {
|
||||
event.preventDefault();
|
||||
}
|
||||
milestoneCalendarContainerElement.innerHTML =
|
||||
los.getLoadingParagraphHTML("Loading Milestones...");
|
||||
milestoneCalendarContainerElement.innerHTML = los.getLoadingParagraphHTML("Loading Milestones...");
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => {
|
||||
renderMilestones(responseJSON.workOrderMilestones);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -27,10 +27,9 @@ declare const cityssm: cityssmGlobal;
|
|||
|
||||
function renderMilestones(workOrderMilestones: recordTypes.WorkOrderMilestone[]) {
|
||||
if (workOrderMilestones.length === 0) {
|
||||
milestoneCalendarContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no milestones that meet the search criteria.</p>' +
|
||||
"</div>";
|
||||
milestoneCalendarContainerElement.innerHTML = `<div class="message is-info">
|
||||
<p class="message-body">There are no milestones that meet the search criteria.</p>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -50,8 +49,7 @@ declare const cityssm: cityssmGlobal;
|
|||
currentPanelElement = document.createElement("div");
|
||||
currentPanelElement.className = "panel";
|
||||
|
||||
currentPanelElement.innerHTML =
|
||||
'<h2 class="panel-heading">' + milestone.workOrderMilestoneDateString + "</h2>";
|
||||
currentPanelElement.innerHTML = `<h2 class="panel-heading">${milestone.workOrderMilestoneDateString}</h2>`;
|
||||
|
||||
currentPanelDateString = milestone.workOrderMilestoneDateString!;
|
||||
}
|
||||
|
|
@ -148,8 +146,7 @@ declare const cityssm: cityssmGlobal;
|
|||
event.preventDefault();
|
||||
}
|
||||
|
||||
milestoneCalendarContainerElement.innerHTML =
|
||||
los.getLoadingParagraphHTML("Loading Milestones...");
|
||||
milestoneCalendarContainerElement.innerHTML = los.getLoadingParagraphHTML("Loading Milestones...");
|
||||
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/workOrders/doGetWorkOrderMilestones",
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),r=document.querySelector("#searchFilter--offset");function n(t){var r,n;if(0===t.lots.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+e.escapedAliases.lots+" that meet the search criteria.</p></div>");const o=document.createElement("tbody");for(const s of t.lots)o.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName||"")+'</a></td><td><a href="'+e.urlPrefix+"/maps/"+s.mapId+'">'+(s.mapName?cityssm.escapeHTML(s.mapName):'<span class="has-text-grey">(No Name)</span>')+"</a></td><td>"+cityssm.escapeHTML(s.lotType||"")+"</td><td>"+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus||""):'<span class="has-text-grey">(No Status)</span>')+"<br />"+(s.lotOccupancyCount>0?'<span class="is-size-7">Currently Occupied</span>':"")+"</td></tr>");s.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">\n <thead><tr>\n <th>${e.escapedAliases.Lot}</th>\n <th>${e.escapedAliases.Map}</th>\n <th>${e.escapedAliases.Lot} Type</th>\n <th>Status</th>\n </tr></thead>\n <table>`,s.insertAdjacentHTML("beforeend",e.getSearchResultsPagerHTML(a,t.offset,t.count)),s.querySelector("table").append(o),null===(r=s.querySelector("button[data-page='previous']"))||void 0===r||r.addEventListener("click",l),null===(n=s.querySelector("button[data-page='next']"))||void 0===n||n.addEventListener("click",i)}function o(){s.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Lots}...`),cityssm.postJSON(e.urlPrefix+"/lots/doSearchLots",t,n)}function c(){r.value="0",o()}function l(){r.value=Math.max(Number.parseInt(r.value,10)-a,0).toString(),o()}function i(){r.value=(Number.parseInt(r.value,10)+a).toString(),o()}const d=t.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",c);t.addEventListener("submit",e=>{e.preventDefault(),c()}),o()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),r=document.querySelector("#searchFilter--offset");function n(t){var r,n;if(0===t.lots.length)return void(s.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.lots} that meet the search criteria.</p>\n </div>`);const o=document.createElement("tbody");for(const s of t.lots)o.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName||"")+'</a></td><td><a href="'+e.urlPrefix+"/maps/"+s.mapId+'">'+(s.mapName?cityssm.escapeHTML(s.mapName):'<span class="has-text-grey">(No Name)</span>')+"</a></td><td>"+cityssm.escapeHTML(s.lotType||"")+"</td><td>"+(s.lotStatusId?cityssm.escapeHTML(s.lotStatus||""):'<span class="has-text-grey">(No Status)</span>')+"<br />"+(s.lotOccupancyCount>0?'<span class="is-size-7">Currently Occupied</span>':"")+"</td></tr>");s.innerHTML=`<table class="table is-fullwidth is-striped is-hoverable has-sticky-header">\n <thead><tr>\n <th>${e.escapedAliases.Lot}</th>\n <th>${e.escapedAliases.Map}</th>\n <th>${e.escapedAliases.Lot} Type</th>\n <th>Status</th>\n </tr></thead>\n <table>`,s.insertAdjacentHTML("beforeend",e.getSearchResultsPagerHTML(a,t.offset,t.count)),s.querySelector("table").append(o),null===(r=s.querySelector("button[data-page='previous']"))||void 0===r||r.addEventListener("click",l),null===(n=s.querySelector("button[data-page='next']"))||void 0===n||n.addEventListener("click",i)}function o(){s.innerHTML=e.getLoadingParagraphHTML(`Loading ${e.escapedAliases.Lots}...`),cityssm.postJSON(e.urlPrefix+"/lots/doSearchLots",t,n)}function c(){r.value="0",o()}function l(){r.value=Math.max(Number.parseInt(r.value,10)-a,0).toString(),o()}function i(){r.value=(Number.parseInt(r.value,10)+a).toString(),o()}const d=t.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",c);t.addEventListener("submit",e=>{e.preventDefault(),c()}),o()})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=exports.maps,a=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function r(){t.innerHTML=e.getLoadingParagraphHTML(`Loading ${exports.aliases.maps}...`);let r=0;const i=document.createElement("tbody"),d=a.value.trim().toLowerCase().split(" ");for(const a of s){const s=(a.mapName+" "+a.mapDescription+" "+a.mapAddress1+" "+a.mapAddress2).toLowerCase();let t=!0;for(const e of d)if(!s.includes(e)){t=!1;break}t&&(r+=1,i.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/maps/"+a.mapId+'">'+cityssm.escapeHTML(a.mapName||"(No Name)")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(a.mapDescription||"")+"</span></td><td>"+(a.mapAddress1?cityssm.escapeHTML(a.mapAddress1)+"<br />":"")+(a.mapAddress2?cityssm.escapeHTML(a.mapAddress2)+"<br />":"")+(a.mapCity||a.mapProvince?cityssm.escapeHTML(a.mapCity||"")+", "+cityssm.escapeHTML(a.mapProvince||"")+"<br />":"")+(a.mapPostalCode?cityssm.escapeHTML(a.mapPostalCode):"")+"</td><td>"+cityssm.escapeHTML(a.mapPhoneNumber||"")+'</td><td class="has-text-centered">'+(a.mapLatitude&&a.mapLongitude?'<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>':"")+'</td><td class="has-text-centered">'+(a.mapSVG?'<span data-tooltip="Has Image"><i class="fas fa-image" aria-label="Has Image"></i></span>':"")+'</td><td class="has-text-right"><a href="'+e.urlPrefix+"/lots?mapId="+a.mapId+'">'+a.lotCount+"</a></td></tr>"))}if(t.innerHTML="",0===r)t.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.maps} that meet the search criteria.</p>\n </div>`;else{const s=document.createElement("table");s.className="table is-fullwidth is-striped is-hoverable has-sticky-header",s.innerHTML=`<thead><tr>\n <th>${e.escapedAliases.Map}</th>\n <th>Address</th>\n <th>Phone Number</th>\n <th class="has-text-centered">Coordinates</th>\n <th class="has-text-centered">Image</th>\n <th class="has-text-right">${e.escapedAliases.Lot} Count</th>\n </tr></thead>`,s.append(i),t.append(s)}}a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=exports.maps,a=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults");function r(){t.innerHTML=e.getLoadingParagraphHTML(`Loading ${exports.aliases.maps}...`);let r=0;const i=document.createElement("tbody"),d=a.value.trim().toLowerCase().split(" ");for(const a of s){const s=`${a.mapName} ${a.mapDescription} ${a.mapAddress1} ${a.mapAddress2}`.toLowerCase();let t=!0;for(const e of d)if(!s.includes(e)){t=!1;break}t&&(r+=1,i.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/maps/"+a.mapId+'">'+cityssm.escapeHTML(a.mapName||"(No Name)")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(a.mapDescription||"")+"</span></td><td>"+(a.mapAddress1?cityssm.escapeHTML(a.mapAddress1)+"<br />":"")+(a.mapAddress2?cityssm.escapeHTML(a.mapAddress2)+"<br />":"")+(a.mapCity||a.mapProvince?cityssm.escapeHTML(a.mapCity||"")+", "+cityssm.escapeHTML(a.mapProvince||"")+"<br />":"")+(a.mapPostalCode?cityssm.escapeHTML(a.mapPostalCode):"")+"</td><td>"+cityssm.escapeHTML(a.mapPhoneNumber||"")+'</td><td class="has-text-centered">'+(a.mapLatitude&&a.mapLongitude?'<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>':"")+'</td><td class="has-text-centered">'+(a.mapSVG?'<span data-tooltip="Has Image"><i class="fas fa-image" aria-label="Has Image"></i></span>':"")+'</td><td class="has-text-right"><a href="'+e.urlPrefix+"/lots?mapId="+a.mapId+'">'+a.lotCount+"</a></td></tr>"))}if(t.innerHTML="",0===r)t.innerHTML=`<div class="message is-info">\n <p class="message-body">There are no ${e.escapedAliases.maps} that meet the search criteria.</p>\n </div>`;else{const s=document.createElement("table");s.className="table is-fullwidth is-striped is-hoverable has-sticky-header",s.innerHTML=`<thead><tr>\n <th>${e.escapedAliases.Map}</th>\n <th>Address</th>\n <th>Phone Number</th>\n <th class="has-text-centered">Coordinates</th>\n <th class="has-text-centered">Image</th>\n <th class="has-text-right">${e.escapedAliases.Lot} Count</th>\n </tr></thead>`,s.append(i),t.append(s)}}a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})();
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){if(0===s.length)return void(t.innerHTML='<div class="message is-info"><p class="message-body">There are no milestones that meet the search criteria.</p></div>');t.innerHTML="";const r=cityssm.dateToString(new Date);let a,i="";for(const o of s){i!==o.workOrderMilestoneDateString&&(a&&t.append(a),(a=document.createElement("div")).className="panel",a.innerHTML='<h2 class="panel-heading">'+o.workOrderMilestoneDateString+"</h2>",i=o.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!o.workOrderMilestoneCompletionDate&&o.workOrderMilestoneDateString<r&&s.classList.add("has-background-warning-light");let n="";for(const s of o.workOrderLots)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(s.mapName||"")+'"><i class="fas fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(s.lotName||"")+"</span><br />";for(const s of o.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(r.lotOccupantType||"")+'"><i class="fas fa-user" aria-label="'+e.escapedAliases.Occupancy+'"></i> '+cityssm.escapeHTML(r.occupantName||"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(o.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===o.workOrderMilestoneTime?"":o.workOrderMilestoneTimeString+"<br />")+(o.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(o.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(o.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(o.workOrderNumber||"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.urlPrefix+"/workOrders/"+o.workOrderId+'">'+cityssm.escapeHTML(o.workOrderNumber||"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(o.workOrderDescription||"")+'</span></div><div class="column is-size-7">'+n+"</div></div>",a.append(s)}t.append(a)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){if(0===s.length)return void(t.innerHTML='<div class="message is-info">\n <p class="message-body">There are no milestones that meet the search criteria.</p>\n </div>');t.innerHTML="";const r=cityssm.dateToString(new Date);let a,i="";for(const o of s){i!==o.workOrderMilestoneDateString&&(a&&t.append(a),(a=document.createElement("div")).className="panel",a.innerHTML=`<h2 class="panel-heading">${o.workOrderMilestoneDateString}</h2>`,i=o.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!o.workOrderMilestoneCompletionDate&&o.workOrderMilestoneDateString<r&&s.classList.add("has-background-warning-light");let n="";for(const s of o.workOrderLots)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(s.mapName||"")+'"><i class="fas fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(s.lotName||"")+"</span><br />";for(const s of o.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(r.lotOccupantType||"")+'"><i class="fas fa-user" aria-label="'+e.escapedAliases.Occupancy+'"></i> '+cityssm.escapeHTML(r.occupantName||"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(o.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===o.workOrderMilestoneTime?"":o.workOrderMilestoneTimeString+"<br />")+(o.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(o.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(o.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(o.workOrderNumber||"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.urlPrefix+"/workOrders/"+o.workOrderId+'">'+cityssm.escapeHTML(o.workOrderNumber||"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(o.workOrderDescription||"")+'</span></div><div class="column is-size-7">'+n+"</div></div>",a.append(s)}t.append(a)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})();
|
||||
Loading…
Reference in New Issue