client side javascript null checks
parent
ff78cdef12
commit
b488d3a6df
|
|
@ -5,7 +5,7 @@
|
|||
},
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"project": ["./tsconfig.json", "./public-typescript/tsconfig.json"],
|
||||
"project": ["./tsconfig.json", "./tsconfig.client.json"],
|
||||
"ecmaVersion": 2020,
|
||||
"sourceType": "module"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,20 +1,23 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los;
|
||||
const doCleanup = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doCleanupDatabase", {}, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doCleanupDatabase", {}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
bulmaJS.alert({
|
||||
title: "Database Cleaned Up Successfully",
|
||||
message: responseJSON.inactivedRecordCount + " records inactivated, " + responseJSON.purgedRecordCount + " permanently deleted.",
|
||||
message: responseJSON.inactivedRecordCount +
|
||||
" records inactivated, " +
|
||||
responseJSON.purgedRecordCount +
|
||||
" permanently deleted.",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Cleaning Database",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
|
||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||
|
||||
|
|
@ -8,11 +10,11 @@ declare const cityssm: cityssmGlobal;
|
|||
declare const bulmaJS: BulmaJS;
|
||||
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const doCleanup = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doCleanupDatabase",
|
||||
los.urlPrefix + "/admin/doCleanupDatabase",
|
||||
{},
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -23,13 +25,17 @@ declare const bulmaJS: BulmaJS;
|
|||
if (responseJSON.success) {
|
||||
bulmaJS.alert({
|
||||
title: "Database Cleaned Up Successfully",
|
||||
message: responseJSON.inactivedRecordCount + " records inactivated, " + responseJSON.purgedRecordCount + " permanently deleted.",
|
||||
message:
|
||||
responseJSON.inactivedRecordCount +
|
||||
" records inactivated, " +
|
||||
responseJSON.purgedRecordCount +
|
||||
" permanently deleted.",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Cleaning Database",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -37,14 +43,17 @@ declare const bulmaJS: BulmaJS;
|
|||
);
|
||||
};
|
||||
|
||||
document.querySelector("#button--cleanupDatabase").addEventListener("click", () => {
|
||||
bulmaJS.confirm({
|
||||
title: "Cleanup Database",
|
||||
message: "Are you sure you want to cleanup up the database?",
|
||||
okButton: {
|
||||
text: "Yes, Cleanup Database",
|
||||
callbackFunction: doCleanup
|
||||
}
|
||||
});
|
||||
});
|
||||
(document.querySelector("#button--cleanupDatabase") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
bulmaJS.confirm({
|
||||
title: "Cleanup Database",
|
||||
message: "Are you sure you want to cleanup up the database?",
|
||||
okButton: {
|
||||
text: "Yes, Cleanup Database",
|
||||
callbackFunction: doCleanup
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const feeCategoriesContainerElement = document.querySelector("#container--feeCategories");
|
||||
let feeCategories = exports.feeCategories;
|
||||
delete exports.feeCategories;
|
||||
|
|
@ -25,7 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<div class="columns">' +
|
||||
('<div class="column">' +
|
||||
'<h2 class="title is-4">' +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||
"</h2>" +
|
||||
"</div>") +
|
||||
('<div class="column is-narrow">' +
|
||||
|
|
@ -71,7 +70,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
feeCategoryContainerElement.insertAdjacentHTML("beforeend", '<div class="panel-block is-block">' +
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no fees in the "' +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||
'" category.</p>' +
|
||||
"</div>" +
|
||||
"</div>");
|
||||
|
|
@ -86,10 +85,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
('<div class="column is-half">' +
|
||||
"<p>" +
|
||||
'<a class="has-text-weight-bold" href="#">' +
|
||||
cityssm.escapeHTML(fee.feeName) +
|
||||
cityssm.escapeHTML(fee.feeName || "") +
|
||||
"</a><br />" +
|
||||
"<small>" +
|
||||
cityssm.escapeHTML(fee.feeDescription).replace(/\n/g, "<br />") +
|
||||
cityssm.escapeHTML(fee.feeDescription || "").replace(/\n/g, "<br />") +
|
||||
"</small>" +
|
||||
"</p>" +
|
||||
'<p class="tags">' +
|
||||
|
|
@ -98,14 +97,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
' Type Filter">' +
|
||||
cityssm.escapeHTML(fee.occupancyType) +
|
||||
cityssm.escapeHTML(fee.occupancyType || "") +
|
||||
"</span>"
|
||||
: "") +
|
||||
(fee.lotTypeId
|
||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
' Type Filter">' +
|
||||
cityssm.escapeHTML(fee.lotType) +
|
||||
cityssm.escapeHTML(fee.lotType || "") +
|
||||
"</span>"
|
||||
: "") +
|
||||
"</p>" +
|
||||
|
|
@ -130,7 +129,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
('<div class="column has-text-centered">' +
|
||||
(fee.includeQuantity
|
||||
? cityssm.escapeHTML(fee.quantityUnit) +
|
||||
? cityssm.escapeHTML(fee.quantityUnit || "") +
|
||||
"<br />" +
|
||||
"<small>Quantity</small>"
|
||||
: "") +
|
||||
|
|
@ -153,32 +152,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
"</div>";
|
||||
panelBlockElement.querySelector("a").addEventListener("click", openEditFee);
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveFeeUp")
|
||||
.addEventListener("click", moveFeeUp);
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveFeeDown")
|
||||
.addEventListener("click", moveFeeDown);
|
||||
panelBlockElement.querySelector(".button--moveFeeUp").addEventListener("click", moveFeeUp);
|
||||
panelBlockElement.querySelector(".button--moveFeeDown").addEventListener("click", moveFeeDown);
|
||||
feeCategoryContainerElement.append(panelBlockElement);
|
||||
}
|
||||
}
|
||||
if (feeCategory.fees.length === 0) {
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--deleteFeeCategory")
|
||||
.addEventListener("click", confirmDeleteFeeCategory);
|
||||
feeCategoryContainerElement.querySelector(".button--deleteFeeCategory").addEventListener("click", confirmDeleteFeeCategory);
|
||||
}
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--editFeeCategory")
|
||||
.addEventListener("click", openEditFeeCategory);
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--addFee")
|
||||
.addEventListener("click", openAddFee);
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--moveFeeCategoryUp")
|
||||
.addEventListener("click", moveFeeCategoryUp);
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--moveFeeCategoryDown")
|
||||
.addEventListener("click", moveFeeCategoryDown);
|
||||
feeCategoryContainerElement.querySelector(".button--editFeeCategory").addEventListener("click", openEditFeeCategory);
|
||||
feeCategoryContainerElement.querySelector(".button--addFee").addEventListener("click", openAddFee);
|
||||
feeCategoryContainerElement.querySelector(".button--moveFeeCategoryUp").addEventListener("click", moveFeeCategoryUp);
|
||||
feeCategoryContainerElement.querySelector(".button--moveFeeCategoryDown").addEventListener("click", moveFeeCategoryDown);
|
||||
feeCategoriesContainerElement.append(feeCategoryContainerElement);
|
||||
}
|
||||
};
|
||||
|
|
@ -186,7 +171,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCloseModalFunction;
|
||||
const doAddFeeCategory = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddFeeCategory", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddFeeCategory", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
addCloseModalFunction();
|
||||
|
|
@ -195,7 +180,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -206,7 +191,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
bulmaJS.toggleHtmlClipped();
|
||||
modalElement.querySelector("#feeCategoryAdd--feeCategory").focus();
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
modalElement.querySelector("form").addEventListener("submit", doAddFeeCategory);
|
||||
modalElement
|
||||
.querySelector("form")
|
||||
.addEventListener("submit", doAddFeeCategory);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -221,7 +208,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const doUpdateFeeCategory = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateFeeCategory", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateFeeCategory", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
editCloseModalFunction();
|
||||
|
|
@ -230,7 +217,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -255,7 +242,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const confirmDeleteFeeCategory = (clickEvent) => {
|
||||
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteFeeCategory", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteFeeCategory", {
|
||||
feeCategoryId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -265,7 +252,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -283,7 +270,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const moveFeeCategoryUp = (clickEvent) => {
|
||||
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveFeeCategoryUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveFeeCategoryUp", {
|
||||
feeCategoryId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -294,7 +281,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -302,7 +289,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const moveFeeCategoryDown = (clickEvent) => {
|
||||
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveFeeCategoryDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveFeeCategoryDown", {
|
||||
feeCategoryId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -313,7 +300,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -324,7 +311,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCloseModalFunction;
|
||||
const doAddFee = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddFee", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddFee", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
addCloseModalFunction();
|
||||
|
|
@ -333,7 +320,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -373,9 +360,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
addCloseModalFunction = closeModalFunction;
|
||||
modalElement.querySelector("form").addEventListener("submit", doAddFee);
|
||||
modalElement.querySelector("#feeAdd--feeName").focus();
|
||||
modalElement
|
||||
.querySelector("#feeAdd--feeFunction")
|
||||
.addEventListener("change", () => {
|
||||
modalElement.querySelector("#feeAdd--feeFunction").addEventListener("change", () => {
|
||||
const feeAmountElement = modalElement.querySelector("#feeAdd--feeAmount");
|
||||
const feeFunctionElement = modalElement.querySelector("#feeAdd--feeFunction");
|
||||
if (feeFunctionElement.value === "") {
|
||||
|
|
@ -389,9 +374,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
feeAmountElement.disabled = true;
|
||||
}
|
||||
});
|
||||
modalElement
|
||||
.querySelector("#feeAdd--taxPercentage")
|
||||
.addEventListener("keyup", () => {
|
||||
modalElement.querySelector("#feeAdd--taxPercentage").addEventListener("keyup", () => {
|
||||
const taxAmountElement = modalElement.querySelector("#feeAdd--taxAmount");
|
||||
const taxPercentageElement = modalElement.querySelector("#feeAdd--taxPercentage");
|
||||
if (taxPercentageElement.value === "") {
|
||||
|
|
@ -405,9 +388,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
taxAmountElement.disabled = true;
|
||||
}
|
||||
});
|
||||
modalElement
|
||||
.querySelector("#feeAdd--includeQuantity")
|
||||
.addEventListener("change", () => {
|
||||
modalElement.querySelector("#feeAdd--includeQuantity").addEventListener("change", () => {
|
||||
modalElement.querySelector("#feeAdd--quantityUnit").disabled =
|
||||
modalElement.querySelector("#feeAdd--includeQuantity").value === "";
|
||||
});
|
||||
|
|
@ -433,7 +414,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editModalElement;
|
||||
const doUpdateFee = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateFee", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateFee", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
editCloseModalFunction();
|
||||
|
|
@ -442,7 +423,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -451,7 +432,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const confirmDeleteFee = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteFee", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteFee", {
|
||||
feeId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -462,7 +443,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -551,9 +532,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
modalElement.querySelector("#feeEdit--feeAmount").value =
|
||||
fee.feeAmount ? fee.feeAmount.toFixed(2) : "";
|
||||
modalElement
|
||||
.querySelector("#feeEdit--feeFunction")
|
||||
.addEventListener("change", toggleFeeFields);
|
||||
modalElement.querySelector("#feeEdit--feeFunction").addEventListener("change", toggleFeeFields);
|
||||
toggleFeeFields();
|
||||
modalElement.querySelector("#feeEdit--taxAmount").value =
|
||||
fee.taxAmount ? fee.taxAmount.toFixed(2) : "";
|
||||
|
|
@ -579,9 +558,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
editCloseModalFunction = closeModalFunction;
|
||||
modalElement.querySelector("form").addEventListener("submit", doUpdateFee);
|
||||
bulmaJS.init(modalElement);
|
||||
modalElement
|
||||
.querySelector(".button--deleteFee")
|
||||
.addEventListener("click", confirmDeleteFee);
|
||||
modalElement.querySelector(".button--deleteFee").addEventListener("click", confirmDeleteFee);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -591,7 +568,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveFeeUp = (clickEvent) => {
|
||||
const feeContainerElement = clickEvent.currentTarget.closest(".container--fee");
|
||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveFeeUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveFeeUp", {
|
||||
feeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -602,7 +579,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -611,7 +588,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveFeeDown = (clickEvent) => {
|
||||
const feeContainerElement = clickEvent.currentTarget.closest(".container--fee");
|
||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveFeeDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveFeeDown", {
|
||||
feeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -622,7 +599,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
|
|
@ -13,8 +13,6 @@ declare const bulmaJS: BulmaJS;
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
|
||||
const feeCategoriesContainerElement = document.querySelector(
|
||||
"#container--feeCategories"
|
||||
) as HTMLElement;
|
||||
|
|
@ -40,19 +38,19 @@ declare const bulmaJS: BulmaJS;
|
|||
feeCategoryContainerElement.className = "panel container--feeCategory";
|
||||
|
||||
feeCategoryContainerElement.dataset.feeCategoryId =
|
||||
feeCategory.feeCategoryId.toString();
|
||||
feeCategory.feeCategoryId!.toString();
|
||||
|
||||
feeCategoryContainerElement.innerHTML =
|
||||
'<div class="panel-heading">' +
|
||||
'<div class="columns">' +
|
||||
('<div class="column">' +
|
||||
'<h2 class="title is-4">' +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||
"</h2>" +
|
||||
"</div>") +
|
||||
('<div class="column is-narrow">' +
|
||||
'<div class="field is-grouped is-justify-content-end">' +
|
||||
(feeCategory.fees.length === 0
|
||||
(feeCategory.fees!.length === 0
|
||||
? '<div class="control">' +
|
||||
'<button class="button is-small is-danger button--deleteFeeCategory" type="button">' +
|
||||
'<span class="icon is-small"><i class="fas fa-trash" aria-hidden="true"></i></span>' +
|
||||
|
|
@ -90,32 +88,32 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</div>";
|
||||
|
||||
if (feeCategory.fees.length === 0) {
|
||||
if (feeCategory.fees!.length === 0) {
|
||||
feeCategoryContainerElement.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
'<div class="panel-block is-block">' +
|
||||
'<div class="message is-info">' +
|
||||
'<p class="message-body">There are no fees in the "' +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||
'" category.</p>' +
|
||||
"</div>" +
|
||||
"</div>"
|
||||
);
|
||||
} else {
|
||||
for (const fee of feeCategory.fees) {
|
||||
for (const fee of feeCategory.fees!) {
|
||||
const panelBlockElement = document.createElement("div");
|
||||
panelBlockElement.className = "panel-block is-block container--fee";
|
||||
panelBlockElement.dataset.feeId = fee.feeId.toString();
|
||||
panelBlockElement.dataset.feeId = fee.feeId!.toString();
|
||||
|
||||
panelBlockElement.innerHTML =
|
||||
'<div class="columns">' +
|
||||
('<div class="column is-half">' +
|
||||
"<p>" +
|
||||
'<a class="has-text-weight-bold" href="#">' +
|
||||
cityssm.escapeHTML(fee.feeName) +
|
||||
cityssm.escapeHTML(fee.feeName || "") +
|
||||
"</a><br />" +
|
||||
"<small>" +
|
||||
cityssm.escapeHTML(fee.feeDescription).replace(/\n/g, "<br />") +
|
||||
cityssm.escapeHTML(fee.feeDescription || "").replace(/\n/g, "<br />") +
|
||||
"</small>" +
|
||||
"</p>" +
|
||||
'<p class="tags">' +
|
||||
|
|
@ -124,14 +122,14 @@ declare const bulmaJS: BulmaJS;
|
|||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||
' Type Filter">' +
|
||||
cityssm.escapeHTML(fee.occupancyType) +
|
||||
cityssm.escapeHTML(fee.occupancyType || "") +
|
||||
"</span>"
|
||||
: "") +
|
||||
(fee.lotTypeId
|
||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
' Type Filter">' +
|
||||
cityssm.escapeHTML(fee.lotType) +
|
||||
cityssm.escapeHTML(fee.lotType || "") +
|
||||
"</span>"
|
||||
: "") +
|
||||
"</p>" +
|
||||
|
|
@ -144,19 +142,19 @@ declare const bulmaJS: BulmaJS;
|
|||
"<br />" +
|
||||
"<small>Fee Function</small>"
|
||||
: "$" +
|
||||
fee.feeAmount.toFixed(2) +
|
||||
fee.feeAmount!.toFixed(2) +
|
||||
"<br />" +
|
||||
"<small>Fee</small>") +
|
||||
"</div>") +
|
||||
('<div class="column has-text-centered">' +
|
||||
(fee.taxPercentage
|
||||
? fee.taxPercentage + "%"
|
||||
: "$" + fee.taxAmount.toFixed(2)) +
|
||||
: "$" + fee.taxAmount!.toFixed(2)) +
|
||||
"<br /><small>Tax</small>" +
|
||||
"</div>") +
|
||||
('<div class="column has-text-centered">' +
|
||||
(fee.includeQuantity
|
||||
? cityssm.escapeHTML(fee.quantityUnit) +
|
||||
? cityssm.escapeHTML(fee.quantityUnit || "") +
|
||||
"<br />" +
|
||||
"<small>Quantity</small>"
|
||||
: "") +
|
||||
|
|
@ -179,40 +177,49 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>") +
|
||||
"</div>";
|
||||
|
||||
panelBlockElement.querySelector("a").addEventListener("click", openEditFee);
|
||||
panelBlockElement.querySelector("a")!.addEventListener("click", openEditFee);
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveFeeUp")
|
||||
.addEventListener("click", moveFeeUp);
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveFeeDown")
|
||||
.addEventListener("click", moveFeeDown);
|
||||
(
|
||||
panelBlockElement.querySelector(".button--moveFeeUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveFeeUp);
|
||||
|
||||
(
|
||||
panelBlockElement.querySelector(".button--moveFeeDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveFeeDown);
|
||||
|
||||
feeCategoryContainerElement.append(panelBlockElement);
|
||||
}
|
||||
}
|
||||
|
||||
if (feeCategory.fees.length === 0) {
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--deleteFeeCategory")
|
||||
.addEventListener("click", confirmDeleteFeeCategory);
|
||||
if (feeCategory.fees!.length === 0) {
|
||||
(
|
||||
feeCategoryContainerElement.querySelector(
|
||||
".button--deleteFeeCategory"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", confirmDeleteFeeCategory);
|
||||
}
|
||||
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--editFeeCategory")
|
||||
.addEventListener("click", openEditFeeCategory);
|
||||
(
|
||||
feeCategoryContainerElement.querySelector(
|
||||
".button--editFeeCategory"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openEditFeeCategory);
|
||||
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--addFee")
|
||||
.addEventListener("click", openAddFee);
|
||||
(
|
||||
feeCategoryContainerElement.querySelector(".button--addFee") as HTMLButtonElement
|
||||
).addEventListener("click", openAddFee);
|
||||
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--moveFeeCategoryUp")
|
||||
.addEventListener("click", moveFeeCategoryUp);
|
||||
(
|
||||
feeCategoryContainerElement.querySelector(
|
||||
".button--moveFeeCategoryUp"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveFeeCategoryUp);
|
||||
|
||||
feeCategoryContainerElement
|
||||
.querySelector(".button--moveFeeCategoryDown")
|
||||
.addEventListener("click", moveFeeCategoryDown);
|
||||
(
|
||||
feeCategoryContainerElement.querySelector(
|
||||
".button--moveFeeCategoryDown"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveFeeCategoryDown);
|
||||
|
||||
feeCategoriesContainerElement.append(feeCategoryContainerElement);
|
||||
}
|
||||
|
|
@ -222,50 +229,57 @@ declare const bulmaJS: BulmaJS;
|
|||
* Fee Categories
|
||||
*/
|
||||
|
||||
document.querySelector("#button--addFeeCategory").addEventListener("click", () => {
|
||||
let addCloseModalFunction: () => void;
|
||||
(document.querySelector("#button--addFeeCategory") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
let addCloseModalFunction: () => void;
|
||||
|
||||
const doAddFeeCategory = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const doAddFeeCategory = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddFeeCategory",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
feeCategories: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
addCloseModalFunction();
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/admin/doAddFeeCategory",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
feeCategories: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
addCloseModalFunction();
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Creating Fee Category",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("adminFees-addFeeCategory", {
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#feeCategoryAdd--feeCategory"
|
||||
) as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
modalElement
|
||||
.querySelector("form")!
|
||||
.addEventListener("submit", doAddFeeCategory);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("adminFees-addFeeCategory", {
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
(
|
||||
modalElement.querySelector("#feeCategoryAdd--feeCategory") as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
modalElement.querySelector("form").addEventListener("submit", doAddFeeCategory);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
const openEditFeeCategory = (clickEvent: Event) => {
|
||||
const feeCategoryId = Number.parseInt(
|
||||
|
|
@ -273,13 +287,13 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--feeCategory"
|
||||
) as HTMLElement
|
||||
).dataset.feeCategoryId,
|
||||
).dataset.feeCategoryId!,
|
||||
10
|
||||
);
|
||||
|
||||
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
||||
return currentFeeCategory.feeCategoryId === feeCategoryId;
|
||||
});
|
||||
})!;
|
||||
|
||||
let editCloseModalFunction: () => void;
|
||||
|
||||
|
|
@ -287,7 +301,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateFeeCategory",
|
||||
los.urlPrefix + "/admin/doUpdateFeeCategory",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -301,7 +315,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -315,17 +329,17 @@ declare const bulmaJS: BulmaJS;
|
|||
modalElement.querySelector(
|
||||
"#feeCategoryEdit--feeCategoryId"
|
||||
) as HTMLInputElement
|
||||
).value = feeCategory.feeCategoryId.toString();
|
||||
).value = feeCategory.feeCategoryId!.toString();
|
||||
(
|
||||
modalElement.querySelector("#feeCategoryEdit--feeCategory") as HTMLInputElement
|
||||
).value = feeCategory.feeCategory;
|
||||
).value = feeCategory.feeCategory!;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
||||
editCloseModalFunction = closeModalFunction;
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doUpdateFeeCategory);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doUpdateFeeCategory);
|
||||
|
||||
(
|
||||
modalElement.querySelector("#feeCategoryEdit--feeCategory") as HTMLInputElement
|
||||
|
|
@ -343,13 +357,13 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--feeCategory"
|
||||
) as HTMLElement
|
||||
).dataset.feeCategoryId,
|
||||
).dataset.feeCategoryId!,
|
||||
10
|
||||
);
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteFeeCategory",
|
||||
los.urlPrefix + "/admin/doDeleteFeeCategory",
|
||||
{
|
||||
feeCategoryId
|
||||
},
|
||||
|
|
@ -359,12 +373,12 @@ declare const bulmaJS: BulmaJS;
|
|||
feeCategories?: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
feeCategories = responseJSON.feeCategories!;
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -389,12 +403,12 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--feeCategory"
|
||||
) as HTMLElement
|
||||
).dataset.feeCategoryId,
|
||||
).dataset.feeCategoryId!,
|
||||
10
|
||||
);
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveFeeCategoryUp",
|
||||
los.urlPrefix + "/admin/doMoveFeeCategoryUp",
|
||||
{
|
||||
feeCategoryId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -405,12 +419,12 @@ declare const bulmaJS: BulmaJS;
|
|||
feeCategories?: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
feeCategories = responseJSON.feeCategories!;
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -424,12 +438,12 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--feeCategory"
|
||||
) as HTMLElement
|
||||
).dataset.feeCategoryId,
|
||||
).dataset.feeCategoryId!,
|
||||
10
|
||||
);
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveFeeCategoryDown",
|
||||
los.urlPrefix + "/admin/doMoveFeeCategoryDown",
|
||||
{
|
||||
feeCategoryId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -440,12 +454,12 @@ declare const bulmaJS: BulmaJS;
|
|||
feeCategories?: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
feeCategories = responseJSON.feeCategories!;
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Fee Category",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -463,7 +477,7 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--feeCategory"
|
||||
) as HTMLElement
|
||||
).dataset.feeCategoryId,
|
||||
).dataset.feeCategoryId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -473,7 +487,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddFee",
|
||||
los.urlPrefix + "/admin/doAddFee",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -487,7 +501,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -503,8 +517,8 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
for (const feeCategory of feeCategories) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = feeCategory.feeCategoryId.toString();
|
||||
optionElement.textContent = feeCategory.feeCategory;
|
||||
optionElement.value = feeCategory.feeCategoryId!.toString();
|
||||
optionElement.textContent = feeCategory.feeCategory!;
|
||||
|
||||
if (feeCategory.feeCategoryId === feeCategoryId) {
|
||||
optionElement.selected = true;
|
||||
|
|
@ -546,68 +560,68 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doAddFee);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAddFee);
|
||||
|
||||
(modalElement.querySelector("#feeAdd--feeName") as HTMLInputElement).focus();
|
||||
|
||||
modalElement
|
||||
.querySelector("#feeAdd--feeFunction")
|
||||
.addEventListener("change", () => {
|
||||
const feeAmountElement = modalElement.querySelector(
|
||||
"#feeAdd--feeAmount"
|
||||
) as HTMLInputElement;
|
||||
const feeFunctionElement = modalElement.querySelector(
|
||||
"#feeAdd--feeFunction"
|
||||
) as HTMLSelectElement;
|
||||
(
|
||||
modalElement.querySelector("#feeAdd--feeFunction") as HTMLInputElement
|
||||
).addEventListener("change", () => {
|
||||
const feeAmountElement = modalElement.querySelector(
|
||||
"#feeAdd--feeAmount"
|
||||
) as HTMLInputElement;
|
||||
const feeFunctionElement = modalElement.querySelector(
|
||||
"#feeAdd--feeFunction"
|
||||
) as HTMLSelectElement;
|
||||
|
||||
if (feeFunctionElement.value === "") {
|
||||
feeFunctionElement.closest(".select").classList.remove("is-success");
|
||||
if (feeFunctionElement.value === "") {
|
||||
feeFunctionElement.closest(".select")!.classList.remove("is-success");
|
||||
|
||||
feeAmountElement.classList.add("is-success");
|
||||
feeAmountElement.disabled = false;
|
||||
} else {
|
||||
feeFunctionElement.closest(".select").classList.add("is-success");
|
||||
feeAmountElement.classList.add("is-success");
|
||||
feeAmountElement.disabled = false;
|
||||
} else {
|
||||
feeFunctionElement.closest(".select")!.classList.add("is-success");
|
||||
|
||||
feeAmountElement.classList.remove("is-success");
|
||||
feeAmountElement.disabled = true;
|
||||
}
|
||||
});
|
||||
feeAmountElement.classList.remove("is-success");
|
||||
feeAmountElement.disabled = true;
|
||||
}
|
||||
});
|
||||
|
||||
modalElement
|
||||
.querySelector("#feeAdd--taxPercentage")
|
||||
.addEventListener("keyup", () => {
|
||||
const taxAmountElement = modalElement.querySelector(
|
||||
"#feeAdd--taxAmount"
|
||||
) as HTMLInputElement;
|
||||
const taxPercentageElement = modalElement.querySelector(
|
||||
"#feeAdd--taxPercentage"
|
||||
) as HTMLInputElement;
|
||||
(
|
||||
modalElement.querySelector("#feeAdd--taxPercentage") as HTMLInputElement
|
||||
).addEventListener("keyup", () => {
|
||||
const taxAmountElement = modalElement.querySelector(
|
||||
"#feeAdd--taxAmount"
|
||||
) as HTMLInputElement;
|
||||
const taxPercentageElement = modalElement.querySelector(
|
||||
"#feeAdd--taxPercentage"
|
||||
) as HTMLInputElement;
|
||||
|
||||
if (taxPercentageElement.value === "") {
|
||||
taxPercentageElement.classList.remove("is-success");
|
||||
if (taxPercentageElement.value === "") {
|
||||
taxPercentageElement.classList.remove("is-success");
|
||||
|
||||
taxAmountElement.classList.add("is-success");
|
||||
taxAmountElement.disabled = false;
|
||||
} else {
|
||||
taxPercentageElement.classList.add("is-success");
|
||||
taxAmountElement.classList.add("is-success");
|
||||
taxAmountElement.disabled = false;
|
||||
} else {
|
||||
taxPercentageElement.classList.add("is-success");
|
||||
|
||||
taxAmountElement.classList.remove("is-success");
|
||||
taxAmountElement.disabled = true;
|
||||
}
|
||||
});
|
||||
taxAmountElement.classList.remove("is-success");
|
||||
taxAmountElement.disabled = true;
|
||||
}
|
||||
});
|
||||
|
||||
modalElement
|
||||
.querySelector("#feeAdd--includeQuantity")
|
||||
.addEventListener("change", () => {
|
||||
(
|
||||
modalElement.querySelector("#feeAdd--includeQuantity") as HTMLSelectElement
|
||||
).addEventListener("change", () => {
|
||||
(
|
||||
modalElement.querySelector("#feeAdd--quantityUnit") as HTMLInputElement
|
||||
).disabled =
|
||||
(
|
||||
modalElement.querySelector("#feeAdd--quantityUnit") as HTMLInputElement
|
||||
).disabled =
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#feeAdd--includeQuantity"
|
||||
) as HTMLSelectElement
|
||||
).value === "";
|
||||
});
|
||||
modalElement.querySelector(
|
||||
"#feeAdd--includeQuantity"
|
||||
) as HTMLSelectElement
|
||||
).value === "";
|
||||
});
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -622,19 +636,19 @@ declare const bulmaJS: BulmaJS;
|
|||
".container--fee"
|
||||
) as HTMLElement;
|
||||
|
||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId!, 10);
|
||||
const feeCategoryId = Number.parseInt(
|
||||
(feeContainerElement.closest(".container--feeCategory") as HTMLElement).dataset
|
||||
.feeCategoryId
|
||||
.feeCategoryId!
|
||||
);
|
||||
|
||||
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
||||
return currentFeeCategory.feeCategoryId === feeCategoryId;
|
||||
});
|
||||
})!;
|
||||
|
||||
const fee = feeCategory.fees.find((currentFee) => {
|
||||
const fee = feeCategory.fees!.find((currentFee) => {
|
||||
return currentFee.feeId === feeId;
|
||||
});
|
||||
})!;
|
||||
|
||||
let editCloseModalFunction: () => void;
|
||||
let editModalElement: HTMLElement;
|
||||
|
|
@ -643,7 +657,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateFee",
|
||||
los.urlPrefix + "/admin/doUpdateFee",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -651,13 +665,13 @@ declare const bulmaJS: BulmaJS;
|
|||
feeCategories?: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
feeCategories = responseJSON.feeCategories!;
|
||||
editCloseModalFunction();
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -670,7 +684,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteFee",
|
||||
los.urlPrefix + "/admin/doDeleteFee",
|
||||
{
|
||||
feeId
|
||||
},
|
||||
|
|
@ -680,13 +694,13 @@ declare const bulmaJS: BulmaJS;
|
|||
feeCategories?: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
feeCategories = responseJSON.feeCategories!;
|
||||
editCloseModalFunction();
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -714,12 +728,12 @@ declare const bulmaJS: BulmaJS;
|
|||
) as HTMLSelectElement;
|
||||
|
||||
if (feeFunctionElement.value === "") {
|
||||
feeFunctionElement.closest(".select").classList.remove("is-success");
|
||||
feeFunctionElement.closest(".select")!.classList.remove("is-success");
|
||||
|
||||
feeAmountElement.classList.add("is-success");
|
||||
feeAmountElement.disabled = false;
|
||||
} else {
|
||||
feeFunctionElement.closest(".select").classList.add("is-success");
|
||||
feeFunctionElement.closest(".select")!.classList.add("is-success");
|
||||
|
||||
feeAmountElement.classList.remove("is-success");
|
||||
feeAmountElement.disabled = true;
|
||||
|
|
@ -760,7 +774,7 @@ declare const bulmaJS: BulmaJS;
|
|||
editModalElement = modalElement;
|
||||
|
||||
(modalElement.querySelector("#feeEdit--feeId") as HTMLInputElement).value =
|
||||
fee.feeId.toString();
|
||||
fee.feeId!.toString();
|
||||
|
||||
const feeCategoryElement = modalElement.querySelector(
|
||||
"#feeEdit--feeCategoryId"
|
||||
|
|
@ -768,8 +782,8 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
for (const feeCategory of feeCategories) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = feeCategory.feeCategoryId.toString();
|
||||
optionElement.textContent = feeCategory.feeCategory;
|
||||
optionElement.value = feeCategory.feeCategoryId!.toString();
|
||||
optionElement.textContent = feeCategory.feeCategory!;
|
||||
|
||||
if (feeCategory.feeCategoryId === feeCategoryId) {
|
||||
optionElement.selected = true;
|
||||
|
|
@ -779,10 +793,10 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
|
||||
(modalElement.querySelector("#feeEdit--feeName") as HTMLInputElement).value =
|
||||
fee.feeName;
|
||||
fee.feeName!;
|
||||
(
|
||||
modalElement.querySelector("#feeEdit--feeDescription") as HTMLTextAreaElement
|
||||
).value = fee.feeDescription;
|
||||
).value = fee.feeDescription!;
|
||||
|
||||
const occupancyTypeElement = modalElement.querySelector(
|
||||
"#feeEdit--occupancyTypeId"
|
||||
|
|
@ -818,9 +832,9 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
(modalElement.querySelector("#feeEdit--feeAmount") as HTMLInputElement).value =
|
||||
fee.feeAmount ? fee.feeAmount.toFixed(2) : "";
|
||||
modalElement
|
||||
.querySelector("#feeEdit--feeFunction")
|
||||
.addEventListener("change", toggleFeeFields);
|
||||
(
|
||||
modalElement.querySelector("#feeEdit--feeFunction") as HTMLSelectElement
|
||||
).addEventListener("change", toggleFeeFields);
|
||||
|
||||
toggleFeeFields();
|
||||
|
||||
|
|
@ -863,13 +877,13 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
editCloseModalFunction = closeModalFunction;
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doUpdateFee);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doUpdateFee);
|
||||
|
||||
bulmaJS.init(modalElement);
|
||||
|
||||
modalElement
|
||||
.querySelector(".button--deleteFee")
|
||||
.addEventListener("click", confirmDeleteFee);
|
||||
(
|
||||
modalElement.querySelector(".button--deleteFee") as HTMLButtonElement
|
||||
).addEventListener("click", confirmDeleteFee);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -882,10 +896,10 @@ declare const bulmaJS: BulmaJS;
|
|||
".container--fee"
|
||||
) as HTMLElement;
|
||||
|
||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId!, 10);
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveFeeUp",
|
||||
los.urlPrefix + "/admin/doMoveFeeUp",
|
||||
{
|
||||
feeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -896,12 +910,12 @@ declare const bulmaJS: BulmaJS;
|
|||
feeCategories?: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
feeCategories = responseJSON.feeCategories!;
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -914,10 +928,10 @@ declare const bulmaJS: BulmaJS;
|
|||
".container--fee"
|
||||
) as HTMLElement;
|
||||
|
||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId!, 10);
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveFeeDown",
|
||||
los.urlPrefix + "/admin/doMoveFeeDown",
|
||||
{
|
||||
feeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -928,12 +942,12 @@ declare const bulmaJS: BulmaJS;
|
|||
feeCategories?: recordTypes.FeeCategory[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
feeCategories = responseJSON.feeCategories!;
|
||||
renderFeeCategories();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const containerElement = document.querySelector("#container--lotTypes");
|
||||
let lotTypes = exports.lotTypes;
|
||||
delete exports.lotTypes;
|
||||
|
|
@ -33,7 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot + " Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -41,7 +40,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const deleteLotType = (clickEvent) => {
|
||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10);
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteLotType", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotType", {
|
||||
lotTypeId
|
||||
}, lotTypeResponseHandler);
|
||||
};
|
||||
|
|
@ -65,7 +64,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const doEdit = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateLotType", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateLotType", submitEvent.currentTarget, (responseJSON) => {
|
||||
lotTypeResponseHandler(responseJSON);
|
||||
if (responseJSON.success) {
|
||||
editCloseModalFunction();
|
||||
|
|
@ -96,7 +95,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCloseModalFunction;
|
||||
const doAdd = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddLotTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddLotTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||
expandedLotTypes.add(lotTypeId);
|
||||
lotTypeResponseHandler(responseJSON);
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -126,7 +125,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveLotTypeUp = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const lotTypeId = clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotTypeUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotTypeUp", {
|
||||
lotTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, lotTypeResponseHandler);
|
||||
|
|
@ -134,7 +133,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveLotTypeDown = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const lotTypeId = clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotTypeDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotTypeDown", {
|
||||
lotTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, lotTypeResponseHandler);
|
||||
|
|
@ -168,7 +167,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const doUpdate = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateLotTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateLotTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||
lotTypeResponseHandler(responseJSON);
|
||||
if (responseJSON.success) {
|
||||
editCloseModalFunction();
|
||||
|
|
@ -177,7 +176,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const doDelete = () => {
|
||||
const _doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteLotTypeField", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotTypeField", {
|
||||
lotTypeFieldId
|
||||
}, (responseJSON) => {
|
||||
lotTypeResponseHandler(responseJSON);
|
||||
|
|
@ -221,9 +220,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||
updateMaximumLengthMin();
|
||||
lotTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||
modalElement
|
||||
.querySelector("#button--deleteLotTypeField")
|
||||
.addEventListener("click", doDelete);
|
||||
modalElement.querySelector("#button--deleteLotTypeField").addEventListener("click", doDelete);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -240,7 +237,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveLotTypeFieldUp = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const lotTypeFieldId = clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotTypeFieldUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotTypeFieldUp", {
|
||||
lotTypeFieldId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, lotTypeResponseHandler);
|
||||
|
|
@ -248,7 +245,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveLotTypeFieldDown = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const lotTypeFieldId = clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotTypeFieldDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotTypeFieldDown", {
|
||||
lotTypeFieldId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, lotTypeResponseHandler);
|
||||
|
|
@ -276,7 +273,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<div class="level-left">' +
|
||||
('<div class="level-item">' +
|
||||
'<a class="has-text-weight-bold button--editLotTypeField" href="#">' +
|
||||
cityssm.escapeHTML(lotTypeField.lotTypeField) +
|
||||
cityssm.escapeHTML(lotTypeField.lotTypeField || "") +
|
||||
"</a>" +
|
||||
"</div>") +
|
||||
"</div>" +
|
||||
|
|
@ -297,15 +294,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
"</div>" +
|
||||
"</div>";
|
||||
panelBlockElement
|
||||
.querySelector(".button--editLotTypeField")
|
||||
.addEventListener("click", openEditLotTypeFieldByClick);
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveLotTypeFieldUp")
|
||||
.addEventListener("click", moveLotTypeFieldUp);
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveLotTypeFieldDown")
|
||||
.addEventListener("click", moveLotTypeFieldDown);
|
||||
panelBlockElement.querySelector(".button--editLotTypeField").addEventListener("click", openEditLotTypeFieldByClick);
|
||||
panelBlockElement.querySelector(".button--moveLotTypeFieldUp").addEventListener("click", moveLotTypeFieldUp);
|
||||
panelBlockElement.querySelector(".button--moveLotTypeFieldDown").addEventListener("click", moveLotTypeFieldDown);
|
||||
panelElement.append(panelBlockElement);
|
||||
}
|
||||
}
|
||||
|
|
@ -380,24 +371,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>";
|
||||
renderLotTypeFields(lotTypeContainer, lotType.lotTypeId, lotType.lotTypeFields);
|
||||
lotTypeContainer
|
||||
.querySelector(".button--toggleLotTypeFields")
|
||||
.addEventListener("click", toggleLotTypeFields);
|
||||
lotTypeContainer
|
||||
.querySelector(".button--deleteLotType")
|
||||
.addEventListener("click", deleteLotType);
|
||||
lotTypeContainer
|
||||
.querySelector(".button--editLotType")
|
||||
.addEventListener("click", openEditLotType);
|
||||
lotTypeContainer
|
||||
.querySelector(".button--addLotTypeField")
|
||||
.addEventListener("click", openAddLotTypeField);
|
||||
lotTypeContainer
|
||||
.querySelector(".button--moveLotTypeUp")
|
||||
.addEventListener("click", moveLotTypeUp);
|
||||
lotTypeContainer
|
||||
.querySelector(".button--moveLotTypeDown")
|
||||
.addEventListener("click", moveLotTypeDown);
|
||||
lotTypeContainer.querySelector(".button--toggleLotTypeFields").addEventListener("click", toggleLotTypeFields);
|
||||
lotTypeContainer.querySelector(".button--deleteLotType").addEventListener("click", deleteLotType);
|
||||
lotTypeContainer.querySelector(".button--editLotType").addEventListener("click", openEditLotType);
|
||||
lotTypeContainer.querySelector(".button--addLotTypeField").addEventListener("click", openAddLotTypeField);
|
||||
lotTypeContainer.querySelector(".button--moveLotTypeUp").addEventListener("click", moveLotTypeUp);
|
||||
lotTypeContainer.querySelector(".button--moveLotTypeDown").addEventListener("click", moveLotTypeDown);
|
||||
containerElement.append(lotTypeContainer);
|
||||
}
|
||||
};
|
||||
|
|
@ -405,7 +384,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCloseModalFunction;
|
||||
const doAdd = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddLotType", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddLotType", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
addCloseModalFunction();
|
||||
lotTypes = responseJSON.lotTypes;
|
||||
|
|
@ -414,7 +393,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
|
|
@ -13,8 +13,6 @@ declare const bulmaJS: BulmaJS;
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
|
||||
const containerElement = document.querySelector("#container--lotTypes") as HTMLElement;
|
||||
|
||||
let lotTypes: recordTypes.LotType[] = exports.lotTypes;
|
||||
|
|
@ -27,7 +25,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
const lotTypeElement = toggleButtonElement.closest(".container--lotType") as HTMLElement;
|
||||
|
||||
const lotTypeId = Number.parseInt(lotTypeElement.dataset.lotTypeId, 10);
|
||||
const lotTypeId = Number.parseInt(lotTypeElement.dataset.lotTypeId!, 10);
|
||||
|
||||
if (expandedLotTypes.has(lotTypeId)) {
|
||||
expandedLotTypes.delete(lotTypeId);
|
||||
|
|
@ -52,12 +50,12 @@ declare const bulmaJS: BulmaJS;
|
|||
lotTypes?: recordTypes.LotType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotTypes = responseJSON.lotTypes;
|
||||
lotTypes = responseJSON.lotTypes!;
|
||||
renderLotTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot + " Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -69,13 +67,13 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotType"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeId,
|
||||
).dataset.lotTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteLotType",
|
||||
los.urlPrefix + "/admin/doDeleteLotType",
|
||||
{
|
||||
lotTypeId
|
||||
},
|
||||
|
|
@ -103,13 +101,13 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotType"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeId,
|
||||
).dataset.lotTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
const lotType = lotTypes.find((currentLotType) => {
|
||||
return lotTypeId === currentLotType.lotTypeId;
|
||||
});
|
||||
})!;
|
||||
|
||||
let editCloseModalFunction: () => void;
|
||||
|
||||
|
|
@ -117,7 +115,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateLotType",
|
||||
los.urlPrefix + "/admin/doUpdateLotType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -147,7 +145,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
(modalElement.querySelector("#lotTypeEdit--lotType") as HTMLInputElement).focus();
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doEdit);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doEdit);
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
},
|
||||
|
|
@ -163,7 +161,7 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotType"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeId,
|
||||
).dataset.lotTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -173,7 +171,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddLotTypeField",
|
||||
los.urlPrefix + "/admin/doAddLotTypeField",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -186,7 +184,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
if (responseJSON.success) {
|
||||
addCloseModalFunction();
|
||||
openEditLotTypeField(lotTypeId, responseJSON.lotTypeFieldId);
|
||||
openEditLotTypeField(lotTypeId, responseJSON.lotTypeFieldId!);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
|
@ -211,7 +209,7 @@ declare const bulmaJS: BulmaJS;
|
|||
modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doAdd);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
},
|
||||
|
|
@ -229,7 +227,7 @@ declare const bulmaJS: BulmaJS;
|
|||
).dataset.lotTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveLotTypeUp",
|
||||
los.urlPrefix + "/admin/doMoveLotTypeUp",
|
||||
{
|
||||
lotTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -246,7 +244,7 @@ declare const bulmaJS: BulmaJS;
|
|||
).dataset.lotTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveLotTypeDown",
|
||||
los.urlPrefix + "/admin/doMoveLotTypeDown",
|
||||
{
|
||||
lotTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -258,11 +256,11 @@ declare const bulmaJS: BulmaJS;
|
|||
const openEditLotTypeField = (lotTypeId: number, lotTypeFieldId: number) => {
|
||||
const lotType = lotTypes.find((currentLotType) => {
|
||||
return currentLotType.lotTypeId === lotTypeId;
|
||||
});
|
||||
})!;
|
||||
|
||||
const lotTypeField = lotType.lotTypeFields.find((currentLotTypeField) => {
|
||||
const lotTypeField = lotType.lotTypeFields!.find((currentLotTypeField) => {
|
||||
return currentLotTypeField.lotTypeFieldId === lotTypeFieldId;
|
||||
});
|
||||
})!;
|
||||
|
||||
let minimumLengthElement: HTMLInputElement;
|
||||
let maximumLengthElement: HTMLInputElement;
|
||||
|
|
@ -291,7 +289,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateLotTypeField",
|
||||
los.urlPrefix + "/admin/doUpdateLotTypeField",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -309,7 +307,7 @@ declare const bulmaJS: BulmaJS;
|
|||
const doDelete = () => {
|
||||
const _doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteLotTypeField",
|
||||
los.urlPrefix + "/admin/doDeleteLotTypeField",
|
||||
{
|
||||
lotTypeFieldId
|
||||
},
|
||||
|
|
@ -346,13 +344,13 @@ declare const bulmaJS: BulmaJS;
|
|||
modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--lotTypeFieldId"
|
||||
) as HTMLInputElement
|
||||
).value = lotTypeField.lotTypeFieldId.toString();
|
||||
).value = lotTypeField.lotTypeFieldId!.toString();
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--lotTypeField"
|
||||
) as HTMLInputElement
|
||||
).value = lotTypeField.lotTypeField;
|
||||
).value = lotTypeField.lotTypeField!;
|
||||
|
||||
(
|
||||
modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement
|
||||
|
|
@ -360,25 +358,27 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
minimumLengthElement = modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--minimumLength"
|
||||
);
|
||||
) as HTMLInputElement;
|
||||
|
||||
minimumLengthElement.value = lotTypeField.minimumLength.toString();
|
||||
minimumLengthElement.value = lotTypeField.minimumLength!.toString();
|
||||
|
||||
maximumLengthElement = modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--maximumLength"
|
||||
);
|
||||
) as HTMLInputElement;
|
||||
|
||||
maximumLengthElement.value = lotTypeField.maximumLength.toString();
|
||||
maximumLengthElement.value = lotTypeField.maximumLength!.toString();
|
||||
|
||||
patternElement = modalElement.querySelector("#lotTypeFieldEdit--pattern");
|
||||
patternElement = modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--pattern"
|
||||
) as HTMLInputElement;
|
||||
|
||||
patternElement.value = lotTypeField.pattern;
|
||||
patternElement.value = lotTypeField.pattern!;
|
||||
|
||||
lotTypeFieldValuesElement = modalElement.querySelector(
|
||||
"#lotTypeFieldEdit--lotTypeFieldValues"
|
||||
);
|
||||
) as HTMLTextAreaElement;
|
||||
|
||||
lotTypeFieldValuesElement.value = lotTypeField.lotTypeFieldValues;
|
||||
lotTypeFieldValuesElement.value = lotTypeField.lotTypeFieldValues!;
|
||||
|
||||
toggleInputFields();
|
||||
},
|
||||
|
|
@ -389,16 +389,16 @@ declare const bulmaJS: BulmaJS;
|
|||
bulmaJS.toggleHtmlClipped();
|
||||
cityssm.enableNavBlocker();
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doUpdate);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doUpdate);
|
||||
|
||||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||
updateMaximumLengthMin();
|
||||
|
||||
lotTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||
|
||||
modalElement
|
||||
.querySelector("#button--deleteLotTypeField")
|
||||
.addEventListener("click", doDelete);
|
||||
(
|
||||
modalElement.querySelector("#button--deleteLotTypeField") as HTMLButtonElement
|
||||
).addEventListener("click", doDelete);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -415,7 +415,7 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotTypeField"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeFieldId,
|
||||
).dataset.lotTypeFieldId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -424,7 +424,7 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--lotType"
|
||||
) as HTMLElement
|
||||
).dataset.lotTypeId,
|
||||
).dataset.lotTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -441,7 +441,7 @@ declare const bulmaJS: BulmaJS;
|
|||
).dataset.lotTypeFieldId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveLotTypeFieldUp",
|
||||
los.urlPrefix + "/admin/doMoveLotTypeFieldUp",
|
||||
{
|
||||
lotTypeFieldId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -460,7 +460,7 @@ declare const bulmaJS: BulmaJS;
|
|||
).dataset.lotTypeFieldId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveLotTypeFieldDown",
|
||||
los.urlPrefix + "/admin/doMoveLotTypeFieldDown",
|
||||
{
|
||||
lotTypeFieldId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -494,14 +494,14 @@ declare const bulmaJS: BulmaJS;
|
|||
panelBlockElement.classList.add("is-hidden");
|
||||
}
|
||||
|
||||
panelBlockElement.dataset.lotTypeFieldId = lotTypeField.lotTypeFieldId.toString();
|
||||
panelBlockElement.dataset.lotTypeFieldId = lotTypeField.lotTypeFieldId!.toString();
|
||||
|
||||
panelBlockElement.innerHTML =
|
||||
'<div class="level is-mobile">' +
|
||||
'<div class="level-left">' +
|
||||
('<div class="level-item">' +
|
||||
'<a class="has-text-weight-bold button--editLotTypeField" href="#">' +
|
||||
cityssm.escapeHTML(lotTypeField.lotTypeField) +
|
||||
cityssm.escapeHTML(lotTypeField.lotTypeField || "") +
|
||||
"</a>" +
|
||||
"</div>") +
|
||||
"</div>" +
|
||||
|
|
@ -523,17 +523,23 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</div>";
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--editLotTypeField")
|
||||
.addEventListener("click", openEditLotTypeFieldByClick);
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--editLotTypeField"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openEditLotTypeFieldByClick);
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveLotTypeFieldUp")
|
||||
.addEventListener("click", moveLotTypeFieldUp);
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--moveLotTypeFieldUp"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveLotTypeFieldUp);
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveLotTypeFieldDown")
|
||||
.addEventListener("click", moveLotTypeFieldDown);
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--moveLotTypeFieldDown"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveLotTypeFieldDown);
|
||||
|
||||
panelElement.append(panelBlockElement);
|
||||
}
|
||||
|
|
@ -619,83 +625,88 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</div>";
|
||||
|
||||
renderLotTypeFields(lotTypeContainer, lotType.lotTypeId, lotType.lotTypeFields);
|
||||
renderLotTypeFields(lotTypeContainer, lotType.lotTypeId, lotType.lotTypeFields!);
|
||||
|
||||
lotTypeContainer
|
||||
.querySelector(".button--toggleLotTypeFields")
|
||||
.addEventListener("click", toggleLotTypeFields);
|
||||
(
|
||||
lotTypeContainer.querySelector(".button--toggleLotTypeFields") as HTMLButtonElement
|
||||
).addEventListener("click", toggleLotTypeFields);
|
||||
|
||||
lotTypeContainer
|
||||
.querySelector(".button--deleteLotType")
|
||||
.addEventListener("click", deleteLotType);
|
||||
(
|
||||
lotTypeContainer.querySelector(".button--deleteLotType") as HTMLButtonElement
|
||||
).addEventListener("click", deleteLotType);
|
||||
|
||||
lotTypeContainer
|
||||
.querySelector(".button--editLotType")
|
||||
.addEventListener("click", openEditLotType);
|
||||
(
|
||||
lotTypeContainer.querySelector(".button--editLotType") as HTMLButtonElement
|
||||
).addEventListener("click", openEditLotType);
|
||||
|
||||
lotTypeContainer
|
||||
.querySelector(".button--addLotTypeField")
|
||||
.addEventListener("click", openAddLotTypeField);
|
||||
(
|
||||
lotTypeContainer.querySelector(".button--addLotTypeField") as HTMLButtonElement
|
||||
).addEventListener("click", openAddLotTypeField);
|
||||
|
||||
lotTypeContainer
|
||||
.querySelector(".button--moveLotTypeUp")
|
||||
.addEventListener("click", moveLotTypeUp);
|
||||
(
|
||||
lotTypeContainer.querySelector(".button--moveLotTypeUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotTypeUp);
|
||||
|
||||
lotTypeContainer
|
||||
.querySelector(".button--moveLotTypeDown")
|
||||
.addEventListener("click", moveLotTypeDown);
|
||||
(
|
||||
lotTypeContainer.querySelector(".button--moveLotTypeDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotTypeDown);
|
||||
|
||||
containerElement.append(lotTypeContainer);
|
||||
}
|
||||
};
|
||||
|
||||
document.querySelector("#button--addLotType").addEventListener("click", () => {
|
||||
let addCloseModalFunction: () => void;
|
||||
(document.querySelector("#button--addLotType") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
let addCloseModalFunction: () => void;
|
||||
|
||||
const doAdd = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const doAdd = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddLotType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotTypes?: recordTypes.LotType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
addCloseModalFunction();
|
||||
lotTypes = responseJSON.lotTypes;
|
||||
renderLotTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Type",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/admin/doAddLotType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
lotTypes?: recordTypes.LotType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
addCloseModalFunction();
|
||||
lotTypes = responseJSON.lotTypes!;
|
||||
renderLotTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Type",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("adminLotTypes-addLotType", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
|
||||
(
|
||||
modalElement.querySelector("#lotTypeAdd--lotType") as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("adminLotTypes-addLotType", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
|
||||
(modalElement.querySelector("#lotTypeAdd--lotType") as HTMLInputElement).focus();
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doAdd);
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
renderLotTypes();
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const containerElement = document.querySelector("#container--occupancyTypes");
|
||||
let occupancyTypes = exports.occupancyTypes;
|
||||
delete exports.occupancyTypes;
|
||||
|
|
@ -36,7 +35,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.occupancy + " Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -44,7 +43,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const deleteOccupancyType = (clickEvent) => {
|
||||
const occupancyTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId, 10);
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteOccupancyType", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteOccupancyType", {
|
||||
occupancyTypeId
|
||||
}, occupancyTypeResponseHandler);
|
||||
};
|
||||
|
|
@ -68,7 +67,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const doEdit = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateOccupancyType", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateOccupancyType", submitEvent.currentTarget, (responseJSON) => {
|
||||
occupancyTypeResponseHandler(responseJSON);
|
||||
if (responseJSON.success) {
|
||||
editCloseModalFunction();
|
||||
|
|
@ -97,7 +96,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCloseModalFunction;
|
||||
const doAdd = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||
expandedOccupancyTypes.add(occupancyTypeId);
|
||||
occupancyTypeResponseHandler(responseJSON);
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -127,7 +126,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveOccupancyTypeUp = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeUp", {
|
||||
occupancyTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, occupancyTypeResponseHandler);
|
||||
|
|
@ -135,7 +134,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveOccupancyTypeDown = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeDown", {
|
||||
occupancyTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, occupancyTypeResponseHandler);
|
||||
|
|
@ -172,7 +171,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const doUpdate = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||
occupancyTypeResponseHandler(responseJSON);
|
||||
if (responseJSON.success) {
|
||||
editCloseModalFunction();
|
||||
|
|
@ -181,7 +180,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const doDelete = () => {
|
||||
const _doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteOccupancyTypeField", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteOccupancyTypeField", {
|
||||
occupancyTypeFieldId
|
||||
}, (responseJSON) => {
|
||||
occupancyTypeResponseHandler(responseJSON);
|
||||
|
|
@ -213,7 +212,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
patternElement = modalElement.querySelector("#occupancyTypeFieldEdit--pattern");
|
||||
patternElement.value = occupancyTypeField.pattern;
|
||||
occupancyTypeFieldValuesElement = modalElement.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues");
|
||||
occupancyTypeFieldValuesElement.value = occupancyTypeField.occupancyTypeFieldValues;
|
||||
occupancyTypeFieldValuesElement.value =
|
||||
occupancyTypeField.occupancyTypeFieldValues;
|
||||
toggleInputFields();
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
|
|
@ -225,9 +225,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||
updateMaximumLengthMin();
|
||||
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||
modalElement
|
||||
.querySelector("#button--deleteOccupancyTypeField")
|
||||
.addEventListener("click", doDelete);
|
||||
modalElement.querySelector("#button--deleteOccupancyTypeField").addEventListener("click", doDelete);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -244,7 +242,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveOccupancyTypeFieldUp = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const occupancyTypeFieldId = clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeFieldUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeFieldUp", {
|
||||
occupancyTypeFieldId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, occupancyTypeResponseHandler);
|
||||
|
|
@ -252,7 +250,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveOccupancyTypeFieldDown = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const occupancyTypeFieldId = clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeFieldDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeFieldDown", {
|
||||
occupancyTypeFieldId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, occupancyTypeResponseHandler);
|
||||
|
|
@ -283,7 +281,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<div class="level-left">' +
|
||||
('<div class="level-item">' +
|
||||
'<a class="has-text-weight-bold button--editOccupancyTypeField" href="#">' +
|
||||
cityssm.escapeHTML(occupancyTypeField.occupancyTypeField) +
|
||||
cityssm.escapeHTML(occupancyTypeField.occupancyTypeField || "") +
|
||||
"</a>" +
|
||||
"</div>") +
|
||||
"</div>" +
|
||||
|
|
@ -304,15 +302,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
"</div>" +
|
||||
"</div>";
|
||||
panelBlockElement
|
||||
.querySelector(".button--editOccupancyTypeField")
|
||||
.addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveOccupancyTypeFieldUp")
|
||||
.addEventListener("click", moveOccupancyTypeFieldUp);
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveOccupancyTypeFieldDown")
|
||||
.addEventListener("click", moveOccupancyTypeFieldDown);
|
||||
panelBlockElement.querySelector(".button--editOccupancyTypeField").addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||
panelBlockElement.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click", moveOccupancyTypeFieldUp);
|
||||
panelBlockElement.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click", moveOccupancyTypeFieldDown);
|
||||
panelElement.append(panelBlockElement);
|
||||
}
|
||||
}
|
||||
|
|
@ -337,9 +329,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>";
|
||||
renderOccupancyTypeFields(containerElement.querySelector("#container--allOccupancyTypeFields"), undefined, allOccupancyTypeFields);
|
||||
containerElement
|
||||
.querySelector(".button--addOccupancyTypeField")
|
||||
.addEventListener("click", openAddOccupancyTypeField);
|
||||
containerElement.querySelector(".button--addOccupancyTypeField").addEventListener("click", openAddOccupancyTypeField);
|
||||
if (occupancyTypes.length === 0) {
|
||||
containerElement.insertAdjacentHTML("afterbegin", '<div class="message is-warning>' +
|
||||
'<p class="message-body">There are no active ' +
|
||||
|
|
@ -409,24 +399,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>";
|
||||
renderOccupancyTypeFields(occupancyTypeContainer, occupancyType.occupancyTypeId, occupancyType.occupancyTypeFields);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--toggleOccupancyTypeFields")
|
||||
.addEventListener("click", toggleOccupancyTypeFields);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--deleteOccupancyType")
|
||||
.addEventListener("click", deleteOccupancyType);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--editOccupancyType")
|
||||
.addEventListener("click", openEditOccupancyType);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--addOccupancyTypeField")
|
||||
.addEventListener("click", openAddOccupancyTypeField);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--moveOccupancyTypeUp")
|
||||
.addEventListener("click", moveOccupancyTypeUp);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--moveOccupancyTypeDown")
|
||||
.addEventListener("click", moveOccupancyTypeDown);
|
||||
occupancyTypeContainer.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click", toggleOccupancyTypeFields);
|
||||
occupancyTypeContainer.querySelector(".button--deleteOccupancyType").addEventListener("click", deleteOccupancyType);
|
||||
occupancyTypeContainer.querySelector(".button--editOccupancyType").addEventListener("click", openEditOccupancyType);
|
||||
occupancyTypeContainer.querySelector(".button--addOccupancyTypeField").addEventListener("click", openAddOccupancyTypeField);
|
||||
occupancyTypeContainer.querySelector(".button--moveOccupancyTypeUp").addEventListener("click", moveOccupancyTypeUp);
|
||||
occupancyTypeContainer.querySelector(".button--moveOccupancyTypeDown").addEventListener("click", moveOccupancyTypeDown);
|
||||
containerElement.append(occupancyTypeContainer);
|
||||
}
|
||||
};
|
||||
|
|
@ -434,7 +412,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCloseModalFunction;
|
||||
const doAdd = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddOccupancyType", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddOccupancyType", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
addCloseModalFunction();
|
||||
occupancyTypes = responseJSON.occupancyTypes;
|
||||
|
|
@ -443,7 +421,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupancy + " Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
|
|
@ -13,8 +13,6 @@ declare const bulmaJS: BulmaJS;
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
|
||||
const containerElement = document.querySelector("#container--occupancyTypes") as HTMLElement;
|
||||
|
||||
let occupancyTypes: recordTypes.OccupancyType[] = exports.occupancyTypes;
|
||||
|
|
@ -32,7 +30,7 @@ declare const bulmaJS: BulmaJS;
|
|||
".container--occupancyType"
|
||||
) as HTMLElement;
|
||||
|
||||
const occupancyTypeId = Number.parseInt(occupancyTypeElement.dataset.occupancyTypeId, 10);
|
||||
const occupancyTypeId = Number.parseInt(occupancyTypeElement.dataset.occupancyTypeId!, 10);
|
||||
|
||||
if (expandedOccupancyTypes.has(occupancyTypeId)) {
|
||||
expandedOccupancyTypes.delete(occupancyTypeId);
|
||||
|
|
@ -58,13 +56,13 @@ declare const bulmaJS: BulmaJS;
|
|||
allOccupancyTypeFields?: recordTypes.OccupancyTypeField[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
occupancyTypes = responseJSON.occupancyTypes;
|
||||
allOccupancyTypeFields = responseJSON.allOccupancyTypeFields;
|
||||
occupancyTypes = responseJSON.occupancyTypes!;
|
||||
allOccupancyTypeFields = responseJSON.allOccupancyTypeFields!;
|
||||
renderOccupancyTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.occupancy + " Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -76,13 +74,13 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--occupancyType"
|
||||
) as HTMLElement
|
||||
).dataset.occupancyTypeId,
|
||||
).dataset.occupancyTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteOccupancyType",
|
||||
los.urlPrefix + "/admin/doDeleteOccupancyType",
|
||||
{
|
||||
occupancyTypeId
|
||||
},
|
||||
|
|
@ -110,13 +108,13 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--occupancyType"
|
||||
) as HTMLElement
|
||||
).dataset.occupancyTypeId,
|
||||
).dataset.occupancyTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||
return occupancyTypeId === currentOccupancyType.occupancyTypeId;
|
||||
});
|
||||
})!;
|
||||
|
||||
let editCloseModalFunction: () => void;
|
||||
|
||||
|
|
@ -124,7 +122,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateOccupancyType",
|
||||
los.urlPrefix + "/admin/doUpdateOccupancyType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -165,7 +163,7 @@ declare const bulmaJS: BulmaJS;
|
|||
) as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doEdit);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doEdit);
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
},
|
||||
|
|
@ -181,7 +179,7 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--occupancyType"
|
||||
) as HTMLElement
|
||||
).dataset.occupancyTypeId,
|
||||
).dataset.occupancyTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -191,7 +189,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddOccupancyTypeField",
|
||||
los.urlPrefix + "/admin/doAddOccupancyTypeField",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -207,7 +205,7 @@ declare const bulmaJS: BulmaJS;
|
|||
addCloseModalFunction();
|
||||
openEditOccupancyTypeField(
|
||||
occupancyTypeId,
|
||||
responseJSON.occupancyTypeFieldId
|
||||
responseJSON.occupancyTypeFieldId!
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -235,7 +233,7 @@ declare const bulmaJS: BulmaJS;
|
|||
) as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doAdd);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
},
|
||||
|
|
@ -255,7 +253,7 @@ declare const bulmaJS: BulmaJS;
|
|||
).dataset.occupancyTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveOccupancyTypeUp",
|
||||
los.urlPrefix + "/admin/doMoveOccupancyTypeUp",
|
||||
{
|
||||
occupancyTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -274,7 +272,7 @@ declare const bulmaJS: BulmaJS;
|
|||
).dataset.occupancyTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveOccupancyTypeDown",
|
||||
los.urlPrefix + "/admin/doMoveOccupancyTypeDown",
|
||||
{
|
||||
occupancyTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -284,7 +282,7 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const openEditOccupancyTypeField = (occupancyTypeId: number, occupancyTypeFieldId: number) => {
|
||||
let occupancyType: recordTypes.OccupancyType;
|
||||
let occupancyType: recordTypes.OccupancyType | undefined;
|
||||
|
||||
if (occupancyTypeId) {
|
||||
occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||
|
|
@ -293,10 +291,10 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
|
||||
const occupancyTypeField = (
|
||||
occupancyType ? occupancyType.occupancyTypeFields : allOccupancyTypeFields
|
||||
occupancyType ? occupancyType.occupancyTypeFields! : allOccupancyTypeFields
|
||||
).find((currentOccupancyTypeField) => {
|
||||
return currentOccupancyTypeField.occupancyTypeFieldId === occupancyTypeFieldId;
|
||||
});
|
||||
})!;
|
||||
|
||||
let minimumLengthElement: HTMLInputElement;
|
||||
let maximumLengthElement: HTMLInputElement;
|
||||
|
|
@ -325,7 +323,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateOccupancyTypeField",
|
||||
los.urlPrefix + "/admin/doUpdateOccupancyTypeField",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -343,7 +341,7 @@ declare const bulmaJS: BulmaJS;
|
|||
const doDelete = () => {
|
||||
const _doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteOccupancyTypeField",
|
||||
los.urlPrefix + "/admin/doDeleteOccupancyTypeField",
|
||||
{
|
||||
occupancyTypeFieldId
|
||||
},
|
||||
|
|
@ -380,13 +378,13 @@ declare const bulmaJS: BulmaJS;
|
|||
modalElement.querySelector(
|
||||
"#occupancyTypeFieldEdit--occupancyTypeFieldId"
|
||||
) as HTMLInputElement
|
||||
).value = occupancyTypeField.occupancyTypeFieldId.toString();
|
||||
).value = occupancyTypeField.occupancyTypeFieldId!.toString();
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#occupancyTypeFieldEdit--occupancyTypeField"
|
||||
) as HTMLInputElement
|
||||
).value = occupancyTypeField.occupancyTypeField;
|
||||
).value = occupancyTypeField.occupancyTypeField!;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
|
|
@ -396,25 +394,28 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
minimumLengthElement = modalElement.querySelector(
|
||||
"#occupancyTypeFieldEdit--minimumLength"
|
||||
);
|
||||
) as HTMLInputElement;
|
||||
|
||||
minimumLengthElement.value = occupancyTypeField.minimumLength.toString();
|
||||
minimumLengthElement.value = occupancyTypeField.minimumLength!.toString();
|
||||
|
||||
maximumLengthElement = modalElement.querySelector(
|
||||
"#occupancyTypeFieldEdit--maximumLength"
|
||||
);
|
||||
) as HTMLInputElement;
|
||||
|
||||
maximumLengthElement.value = occupancyTypeField.maximumLength.toString();
|
||||
maximumLengthElement.value = occupancyTypeField.maximumLength!.toString();
|
||||
|
||||
patternElement = modalElement.querySelector("#occupancyTypeFieldEdit--pattern");
|
||||
patternElement = modalElement.querySelector(
|
||||
"#occupancyTypeFieldEdit--pattern"
|
||||
) as HTMLInputElement;
|
||||
|
||||
patternElement.value = occupancyTypeField.pattern;
|
||||
patternElement.value = occupancyTypeField.pattern!;
|
||||
|
||||
occupancyTypeFieldValuesElement = modalElement.querySelector(
|
||||
"#occupancyTypeFieldEdit--occupancyTypeFieldValues"
|
||||
);
|
||||
) as HTMLTextAreaElement;
|
||||
|
||||
occupancyTypeFieldValuesElement.value = occupancyTypeField.occupancyTypeFieldValues;
|
||||
occupancyTypeFieldValuesElement.value =
|
||||
occupancyTypeField.occupancyTypeFieldValues!;
|
||||
|
||||
toggleInputFields();
|
||||
},
|
||||
|
|
@ -425,16 +426,18 @@ declare const bulmaJS: BulmaJS;
|
|||
bulmaJS.toggleHtmlClipped();
|
||||
cityssm.enableNavBlocker();
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doUpdate);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doUpdate);
|
||||
|
||||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||
updateMaximumLengthMin();
|
||||
|
||||
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||
|
||||
modalElement
|
||||
.querySelector("#button--deleteOccupancyTypeField")
|
||||
.addEventListener("click", doDelete);
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#button--deleteOccupancyTypeField"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", doDelete);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -451,7 +454,7 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--occupancyTypeField"
|
||||
) as HTMLElement
|
||||
).dataset.occupancyTypeFieldId,
|
||||
).dataset.occupancyTypeFieldId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -460,7 +463,7 @@ declare const bulmaJS: BulmaJS;
|
|||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--occupancyType"
|
||||
) as HTMLElement
|
||||
).dataset.occupancyTypeId,
|
||||
).dataset.occupancyTypeId!,
|
||||
10
|
||||
);
|
||||
|
||||
|
|
@ -477,7 +480,7 @@ declare const bulmaJS: BulmaJS;
|
|||
).dataset.occupancyTypeFieldId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveOccupancyTypeFieldUp",
|
||||
los.urlPrefix + "/admin/doMoveOccupancyTypeFieldUp",
|
||||
{
|
||||
occupancyTypeFieldId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -496,7 +499,7 @@ declare const bulmaJS: BulmaJS;
|
|||
).dataset.occupancyTypeFieldId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveOccupancyTypeFieldDown",
|
||||
los.urlPrefix + "/admin/doMoveOccupancyTypeFieldDown",
|
||||
{
|
||||
occupancyTypeFieldId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -533,14 +536,14 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
|
||||
panelBlockElement.dataset.occupancyTypeFieldId =
|
||||
occupancyTypeField.occupancyTypeFieldId.toString();
|
||||
occupancyTypeField.occupancyTypeFieldId!.toString();
|
||||
|
||||
panelBlockElement.innerHTML =
|
||||
'<div class="level is-mobile">' +
|
||||
'<div class="level-left">' +
|
||||
('<div class="level-item">' +
|
||||
'<a class="has-text-weight-bold button--editOccupancyTypeField" href="#">' +
|
||||
cityssm.escapeHTML(occupancyTypeField.occupancyTypeField) +
|
||||
cityssm.escapeHTML(occupancyTypeField.occupancyTypeField || "") +
|
||||
"</a>" +
|
||||
"</div>") +
|
||||
"</div>" +
|
||||
|
|
@ -562,17 +565,23 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</div>";
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--editOccupancyTypeField")
|
||||
.addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--editOccupancyTypeField"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveOccupancyTypeFieldUp")
|
||||
.addEventListener("click", moveOccupancyTypeFieldUp);
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--moveOccupancyTypeFieldUp"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveOccupancyTypeFieldUp);
|
||||
|
||||
panelBlockElement
|
||||
.querySelector(".button--moveOccupancyTypeFieldDown")
|
||||
.addEventListener("click", moveOccupancyTypeFieldDown);
|
||||
(
|
||||
panelBlockElement.querySelector(
|
||||
".button--moveOccupancyTypeFieldDown"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveOccupancyTypeFieldDown);
|
||||
|
||||
panelElement.append(panelBlockElement);
|
||||
}
|
||||
|
|
@ -600,14 +609,14 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>";
|
||||
|
||||
renderOccupancyTypeFields(
|
||||
containerElement.querySelector("#container--allOccupancyTypeFields"),
|
||||
containerElement.querySelector("#container--allOccupancyTypeFields") as HTMLElement,
|
||||
undefined,
|
||||
allOccupancyTypeFields
|
||||
);
|
||||
|
||||
containerElement
|
||||
.querySelector(".button--addOccupancyTypeField")
|
||||
.addEventListener("click", openAddOccupancyTypeField);
|
||||
(
|
||||
containerElement.querySelector(".button--addOccupancyTypeField") as HTMLButtonElement
|
||||
).addEventListener("click", openAddOccupancyTypeField);
|
||||
|
||||
if (occupancyTypes.length === 0) {
|
||||
containerElement.insertAdjacentHTML(
|
||||
|
|
@ -689,88 +698,103 @@ declare const bulmaJS: BulmaJS;
|
|||
renderOccupancyTypeFields(
|
||||
occupancyTypeContainer,
|
||||
occupancyType.occupancyTypeId,
|
||||
occupancyType.occupancyTypeFields
|
||||
occupancyType.occupancyTypeFields!
|
||||
);
|
||||
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--toggleOccupancyTypeFields")
|
||||
.addEventListener("click", toggleOccupancyTypeFields);
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--toggleOccupancyTypeFields"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", toggleOccupancyTypeFields);
|
||||
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--deleteOccupancyType")
|
||||
.addEventListener("click", deleteOccupancyType);
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--deleteOccupancyType"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", deleteOccupancyType);
|
||||
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--editOccupancyType")
|
||||
.addEventListener("click", openEditOccupancyType);
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--editOccupancyType"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openEditOccupancyType);
|
||||
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--addOccupancyTypeField")
|
||||
.addEventListener("click", openAddOccupancyTypeField);
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--addOccupancyTypeField"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", openAddOccupancyTypeField);
|
||||
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--moveOccupancyTypeUp")
|
||||
.addEventListener("click", moveOccupancyTypeUp);
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--moveOccupancyTypeUp"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveOccupancyTypeUp);
|
||||
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--moveOccupancyTypeDown")
|
||||
.addEventListener("click", moveOccupancyTypeDown);
|
||||
(
|
||||
occupancyTypeContainer.querySelector(
|
||||
".button--moveOccupancyTypeDown"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveOccupancyTypeDown);
|
||||
|
||||
containerElement.append(occupancyTypeContainer);
|
||||
}
|
||||
};
|
||||
|
||||
document.querySelector("#button--addOccupancyType").addEventListener("click", () => {
|
||||
let addCloseModalFunction: () => void;
|
||||
(document.querySelector("#button--addOccupancyType") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
() => {
|
||||
let addCloseModalFunction: () => void;
|
||||
|
||||
const doAdd = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const doAdd = (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddOccupancyType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
occupancyTypes?: recordTypes.OccupancyType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
addCloseModalFunction();
|
||||
occupancyTypes = responseJSON.occupancyTypes;
|
||||
renderOccupancyTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupancy + " Type",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/admin/doAddOccupancyType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
occupancyTypes?: recordTypes.OccupancyType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
addCloseModalFunction();
|
||||
occupancyTypes = responseJSON.occupancyTypes!;
|
||||
renderOccupancyTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupancy + " Type",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#occupancyTypeAdd--occupancyType"
|
||||
) as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType", {
|
||||
onshow: (modalElement) => {
|
||||
los.populateAliases(modalElement);
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#occupancyTypeAdd--occupancyType"
|
||||
) as HTMLInputElement
|
||||
).focus();
|
||||
|
||||
modalElement.querySelector("form").addEventListener("submit", doAdd);
|
||||
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
renderOccupancyTypes();
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los;
|
||||
let workOrderTypes = exports.workOrderTypes;
|
||||
delete exports.workOrderTypes;
|
||||
const updateWorkOrderType = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateWorkOrderType", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateWorkOrderType", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderTypes = responseJSON.workOrderTypes;
|
||||
bulmaJS.alert({
|
||||
|
|
@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -27,7 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteWorkOrderType", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteWorkOrderType", {
|
||||
workOrderTypeId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -46,7 +46,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -67,7 +67,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveWorkOrderTypeUp = (clickEvent) => {
|
||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderTypeUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveWorkOrderTypeUp", {
|
||||
workOrderTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -78,7 +78,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -87,7 +87,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveWorkOrderTypeDown = (clickEvent) => {
|
||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderTypeDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveWorkOrderTypeDown", {
|
||||
workOrderTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -98,7 +98,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -130,7 +130,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
('<div class="field has-addons">' +
|
||||
'<div class="control">' +
|
||||
'<input class="input" name="workOrderType" type="text" value="' +
|
||||
cityssm.escapeHTML(workOrderType.workOrderType) +
|
||||
cityssm.escapeHTML(workOrderType.workOrderType || "") +
|
||||
'" maxlength="100" aria-label="Work Order Type" required />' +
|
||||
"</div>" +
|
||||
'<div class="control">' +
|
||||
|
|
@ -159,24 +159,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</td>";
|
||||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveWorkOrderTypeUp")
|
||||
.addEventListener("click", moveWorkOrderTypeUp);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveWorkOrderTypeDown")
|
||||
.addEventListener("click", moveWorkOrderTypeDown);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderType")
|
||||
.addEventListener("click", deleteWorkOrderType);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click", moveWorkOrderTypeUp);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click", moveWorkOrderTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteWorkOrderType").addEventListener("click", deleteWorkOrderType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
document
|
||||
.querySelector("#form--addWorkOrderType")
|
||||
.addEventListener("submit", (submitEvent) => {
|
||||
document.querySelector("#form--addWorkOrderType").addEventListener("submit", (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const formElement = submitEvent.currentTarget;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddWorkOrderType", formElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddWorkOrderType", formElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderTypes = responseJSON.workOrderTypes;
|
||||
renderWorkOrderTypes();
|
||||
|
|
@ -186,7 +178,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -197,7 +189,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
delete exports.workOrderMilestoneTypes;
|
||||
const updateWorkOrderMilestoneType = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateWorkOrderMilestoneType", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateWorkOrderMilestoneType", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||
bulmaJS.alert({
|
||||
|
|
@ -208,7 +200,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -218,7 +210,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteWorkOrderMilestoneType", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteWorkOrderMilestoneType", {
|
||||
workOrderMilestoneTypeId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -237,7 +229,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -258,7 +250,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveWorkOrderMilestoneTypeUp = (clickEvent) => {
|
||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp", {
|
||||
workOrderMilestoneTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -269,7 +261,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -278,7 +270,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveWorkOrderMilestoneTypeDown = (clickEvent) => {
|
||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown", {
|
||||
workOrderMilestoneTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -289,7 +281,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -350,27 +342,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>" +
|
||||
"</td>";
|
||||
tableRowElement
|
||||
.querySelector("form")
|
||||
.addEventListener("submit", updateWorkOrderMilestoneType);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveWorkOrderMilestoneTypeUp")
|
||||
.addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveWorkOrderMilestoneTypeDown")
|
||||
.addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderMilestoneType")
|
||||
.addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderMilestoneType);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
||||
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
document
|
||||
.querySelector("#form--addWorkOrderMilestoneType")
|
||||
.addEventListener("submit", (submitEvent) => {
|
||||
document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit", (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const formElement = submitEvent.currentTarget;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddWorkOrderMilestoneType", formElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddWorkOrderMilestoneType", formElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||
renderWorkOrderMilestoneTypes();
|
||||
|
|
@ -380,7 +362,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -391,7 +373,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
delete exports.lotStatuses;
|
||||
const updateLotStatus = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
bulmaJS.alert({
|
||||
|
|
@ -402,7 +384,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -412,7 +394,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteLotStatus", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotStatus", {
|
||||
lotStatusId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -431,7 +413,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -454,7 +436,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveLotStatusUp = (clickEvent) => {
|
||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotStatusUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotStatusUp", {
|
||||
lotStatusId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -465,7 +447,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -474,7 +456,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveLotStatusDown = (clickEvent) => {
|
||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotStatusDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotStatusDown", {
|
||||
lotStatusId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -485,7 +467,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -549,24 +531,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</td>";
|
||||
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveLotStatusUp")
|
||||
.addEventListener("click", moveLotStatusUp);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveLotStatusDown")
|
||||
.addEventListener("click", moveLotStatusDown);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotStatus")
|
||||
.addEventListener("click", deleteLotStatus);
|
||||
tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatusUp);
|
||||
tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatusDown);
|
||||
tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
document
|
||||
.querySelector("#form--addLotStatus")
|
||||
.addEventListener("submit", (submitEvent) => {
|
||||
document.querySelector("#form--addLotStatus").addEventListener("submit", (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const formElement = submitEvent.currentTarget;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddLotStatus", formElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddLotStatus", formElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
renderLotStatuses();
|
||||
|
|
@ -576,7 +550,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -587,7 +561,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
delete exports.lotOccupantTypes;
|
||||
const updateLotOccupantType = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateLotOccupantType", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateLotOccupantType", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
bulmaJS.alert({
|
||||
|
|
@ -605,7 +579,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -615,7 +589,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteLotOccupantType", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotOccupantType", {
|
||||
lotOccupantTypeId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
|
|
@ -641,7 +615,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -670,7 +644,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveLotOccupantTypeUp = (clickEvent) => {
|
||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotOccupantTypeUp", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotOccupantTypeUp", {
|
||||
lotOccupantTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -685,7 +659,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -694,7 +668,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const moveLotOccupantTypeDown = (clickEvent) => {
|
||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotOccupantTypeDown", {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotOccupantTypeDown", {
|
||||
lotOccupantTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -709,7 +683,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -787,25 +761,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>" +
|
||||
"</div>" +
|
||||
"</td>";
|
||||
tableRowElement.querySelector("form").addEventListener("submit", updateLotOccupantType);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveLotOccupantTypeUp")
|
||||
.addEventListener("click", moveLotOccupantTypeUp);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveLotOccupantTypeDown")
|
||||
.addEventListener("click", moveLotOccupantTypeDown);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotOccupantType")
|
||||
.addEventListener("click", deleteLotOccupantType);
|
||||
.querySelector("form")
|
||||
.addEventListener("submit", updateLotOccupantType);
|
||||
tableRowElement.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click", moveLotOccupantTypeUp);
|
||||
tableRowElement.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click", moveLotOccupantTypeDown);
|
||||
tableRowElement.querySelector(".button--deleteLotOccupantType").addEventListener("click", deleteLotOccupantType);
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
document
|
||||
.querySelector("#form--addLotOccupantType")
|
||||
.addEventListener("submit", (submitEvent) => {
|
||||
document.querySelector("#form--addLotOccupantType").addEventListener("submit", (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const formElement = submitEvent.currentTarget;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doAddLotOccupantType", formElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/admin/doAddLotOccupantType", formElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
renderLotOccupantTypes();
|
||||
|
|
@ -819,7 +787,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
|
||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||
|
|
@ -10,7 +11,7 @@ declare const cityssm: cityssmGlobal;
|
|||
declare const bulmaJS: BulmaJS;
|
||||
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
/*
|
||||
* Work Order Types
|
||||
|
|
@ -23,7 +24,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateWorkOrderType",
|
||||
los.urlPrefix + "/admin/doUpdateWorkOrderType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -31,7 +32,7 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderTypes = responseJSON.workOrderTypes;
|
||||
workOrderTypes = responseJSON.workOrderTypes!;
|
||||
|
||||
bulmaJS.alert({
|
||||
message: "Work Order Type Updated Successfully",
|
||||
|
|
@ -40,7 +41,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -49,13 +50,13 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const deleteWorkOrderType = (clickEvent: Event) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteWorkOrderType",
|
||||
los.urlPrefix + "/admin/doDeleteWorkOrderType",
|
||||
{
|
||||
workOrderTypeId
|
||||
},
|
||||
|
|
@ -65,7 +66,7 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderTypes = responseJSON.workOrderTypes;
|
||||
workOrderTypes = responseJSON.workOrderTypes!;
|
||||
|
||||
if (workOrderTypes.length === 0) {
|
||||
renderWorkOrderTypes();
|
||||
|
|
@ -80,7 +81,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -103,12 +104,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const moveWorkOrderTypeUp = (clickEvent: MouseEvent) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveWorkOrderTypeUp",
|
||||
los.urlPrefix + "/admin/doMoveWorkOrderTypeUp",
|
||||
{
|
||||
workOrderTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -119,12 +120,12 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderTypes = responseJSON.workOrderTypes;
|
||||
workOrderTypes = responseJSON.workOrderTypes!;
|
||||
renderWorkOrderTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -133,12 +134,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const moveWorkOrderTypeDown = (clickEvent: MouseEvent) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveWorkOrderTypeDown",
|
||||
los.urlPrefix + "/admin/doMoveWorkOrderTypeDown",
|
||||
{
|
||||
workOrderTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -149,12 +150,12 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderTypes = responseJSON.workOrderTypes;
|
||||
workOrderTypes = responseJSON.workOrderTypes!;
|
||||
renderWorkOrderTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -185,18 +186,18 @@ declare const bulmaJS: BulmaJS;
|
|||
for (const workOrderType of workOrderTypes) {
|
||||
const tableRowElement = document.createElement("tr");
|
||||
|
||||
tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId.toString();
|
||||
tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId!.toString();
|
||||
|
||||
tableRowElement.innerHTML =
|
||||
"<td>" +
|
||||
"<form>" +
|
||||
'<input name="workOrderTypeId" type="hidden" value="' +
|
||||
workOrderType.workOrderTypeId.toString() +
|
||||
workOrderType.workOrderTypeId!.toString() +
|
||||
'" />' +
|
||||
('<div class="field has-addons">' +
|
||||
'<div class="control">' +
|
||||
'<input class="input" name="workOrderType" type="text" value="' +
|
||||
cityssm.escapeHTML(workOrderType.workOrderType) +
|
||||
cityssm.escapeHTML(workOrderType.workOrderType || "") +
|
||||
'" maxlength="100" aria-label="Work Order Type" required />' +
|
||||
"</div>" +
|
||||
'<div class="control">' +
|
||||
|
|
@ -225,30 +226,33 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</td>";
|
||||
|
||||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveWorkOrderTypeUp")
|
||||
.addEventListener("click", moveWorkOrderTypeUp);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveWorkOrderTypeDown")
|
||||
.addEventListener("click", moveWorkOrderTypeDown);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderType")
|
||||
.addEventListener("click", deleteWorkOrderType);
|
||||
tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderType);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderTypeUp);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveWorkOrderTypeDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderTypeDown);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--deleteWorkOrderType") as HTMLButtonElement
|
||||
).addEventListener("click", deleteWorkOrderType);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
||||
document
|
||||
.querySelector("#form--addWorkOrderType")
|
||||
.addEventListener("submit", (submitEvent: SubmitEvent) => {
|
||||
(document.querySelector("#form--addWorkOrderType") as HTMLFormElement).addEventListener(
|
||||
"submit",
|
||||
(submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddWorkOrderType",
|
||||
los.urlPrefix + "/admin/doAddWorkOrderType",
|
||||
formElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -256,20 +260,21 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderTypes = responseJSON.workOrderTypes;
|
||||
workOrderTypes = responseJSON.workOrderTypes!;
|
||||
renderWorkOrderTypes();
|
||||
formElement.reset();
|
||||
formElement.querySelector("input").focus();
|
||||
formElement.querySelector("input")!.focus();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Work Order Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
renderWorkOrderTypes();
|
||||
|
||||
|
|
@ -285,7 +290,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateWorkOrderMilestoneType",
|
||||
los.urlPrefix + "/admin/doUpdateWorkOrderMilestoneType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -293,7 +298,7 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||
|
||||
bulmaJS.alert({
|
||||
message: "Work Order Milestone Type Updated Successfully",
|
||||
|
|
@ -302,7 +307,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -311,13 +316,13 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const deleteWorkOrderMilestoneType = (clickEvent: Event) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteWorkOrderMilestoneType",
|
||||
los.urlPrefix + "/admin/doDeleteWorkOrderMilestoneType",
|
||||
{
|
||||
workOrderMilestoneTypeId
|
||||
},
|
||||
|
|
@ -327,7 +332,7 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||
|
||||
if (workOrderMilestoneTypes.length === 0) {
|
||||
renderWorkOrderMilestoneTypes();
|
||||
|
|
@ -342,7 +347,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -365,12 +370,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const moveWorkOrderMilestoneTypeUp = (clickEvent: MouseEvent) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp",
|
||||
los.urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp",
|
||||
{
|
||||
workOrderMilestoneTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -381,12 +386,12 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||
renderWorkOrderMilestoneTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -395,12 +400,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const moveWorkOrderMilestoneTypeDown = (clickEvent: MouseEvent) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown",
|
||||
los.urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown",
|
||||
{
|
||||
workOrderMilestoneTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -411,12 +416,12 @@ declare const bulmaJS: BulmaJS;
|
|||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||
renderWorkOrderMilestoneTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -488,53 +493,63 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</td>";
|
||||
|
||||
tableRowElement
|
||||
.querySelector("form")
|
||||
.addEventListener("submit", updateWorkOrderMilestoneType);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveWorkOrderMilestoneTypeUp")
|
||||
.addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveWorkOrderMilestoneTypeDown")
|
||||
.addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteWorkOrderMilestoneType")
|
||||
.addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
(tableRowElement.querySelector("form") as HTMLFormElement).addEventListener(
|
||||
"submit",
|
||||
updateWorkOrderMilestoneType
|
||||
);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(
|
||||
".button--moveWorkOrderMilestoneTypeUp"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(
|
||||
".button--moveWorkOrderMilestoneTypeDown"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(
|
||||
".button--deleteWorkOrderMilestoneType"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", deleteWorkOrderMilestoneType);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
||||
document
|
||||
.querySelector("#form--addWorkOrderMilestoneType")
|
||||
.addEventListener("submit", (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
(
|
||||
document.querySelector("#form--addWorkOrderMilestoneType") as HTMLFormElement
|
||||
).addEventListener("submit", (submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddWorkOrderMilestoneType",
|
||||
formElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||
renderWorkOrderMilestoneTypes();
|
||||
formElement.reset();
|
||||
formElement.querySelector("input").focus();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/admin/doAddWorkOrderMilestoneType",
|
||||
formElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||
renderWorkOrderMilestoneTypes();
|
||||
formElement.reset();
|
||||
formElement.querySelector("input")!.focus();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Work Order Milestone Type",
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
renderWorkOrderMilestoneTypes();
|
||||
|
||||
|
|
@ -549,7 +564,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateLotStatus",
|
||||
los.urlPrefix + "/admin/doUpdateLotStatus",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -557,7 +572,7 @@ declare const bulmaJS: BulmaJS;
|
|||
lotStatuses?: recordTypes.LotStatus[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
lotStatuses = responseJSON.lotStatuses!;
|
||||
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot + " Status Updated Successfully",
|
||||
|
|
@ -566,7 +581,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -575,13 +590,13 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const deleteLotStatus = (clickEvent: Event) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteLotStatus",
|
||||
los.urlPrefix + "/admin/doDeleteLotStatus",
|
||||
{
|
||||
lotStatusId
|
||||
},
|
||||
|
|
@ -591,7 +606,7 @@ declare const bulmaJS: BulmaJS;
|
|||
lotStatuses?: recordTypes.LotStatus[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
lotStatuses = responseJSON.lotStatuses!;
|
||||
|
||||
if (lotStatuses.length === 0) {
|
||||
renderLotStatuses();
|
||||
|
|
@ -606,7 +621,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -631,12 +646,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const moveLotStatusUp = (clickEvent: MouseEvent) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveLotStatusUp",
|
||||
los.urlPrefix + "/admin/doMoveLotStatusUp",
|
||||
{
|
||||
lotStatusId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -647,12 +662,12 @@ declare const bulmaJS: BulmaJS;
|
|||
lotStatuses?: recordTypes.LotStatus[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
lotStatuses = responseJSON.lotStatuses!;
|
||||
renderLotStatuses();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -661,12 +676,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const moveLotStatusDown = (clickEvent: MouseEvent) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveLotStatusDown",
|
||||
los.urlPrefix + "/admin/doMoveLotStatusDown",
|
||||
{
|
||||
lotStatusId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -677,12 +692,12 @@ declare const bulmaJS: BulmaJS;
|
|||
lotStatuses?: recordTypes.LotStatus[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
lotStatuses = responseJSON.lotStatuses!;
|
||||
renderLotStatuses();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -756,30 +771,33 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</td>";
|
||||
|
||||
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveLotStatusUp")
|
||||
.addEventListener("click", moveLotStatusUp);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveLotStatusDown")
|
||||
.addEventListener("click", moveLotStatusDown);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotStatus")
|
||||
.addEventListener("click", deleteLotStatus);
|
||||
tableRowElement.querySelector("form")!.addEventListener("submit", updateLotStatus);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveLotStatusUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotStatusUp);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveLotStatusDown") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotStatusDown);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--deleteLotStatus") as HTMLButtonElement
|
||||
).addEventListener("click", deleteLotStatus);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
||||
document
|
||||
.querySelector("#form--addLotStatus")
|
||||
.addEventListener("submit", (submitEvent: SubmitEvent) => {
|
||||
(document.querySelector("#form--addLotStatus") as HTMLFormElement).addEventListener(
|
||||
"submit",
|
||||
(submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddLotStatus",
|
||||
los.urlPrefix + "/admin/doAddLotStatus",
|
||||
formElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -787,20 +805,21 @@ declare const bulmaJS: BulmaJS;
|
|||
lotStatuses?: recordTypes.LotStatus[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotStatuses = responseJSON.lotStatuses;
|
||||
lotStatuses = responseJSON.lotStatuses!;
|
||||
renderLotStatuses();
|
||||
formElement.reset();
|
||||
formElement.querySelector("input").focus();
|
||||
formElement.querySelector("input")!.focus();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot + " Status",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
renderLotStatuses();
|
||||
|
||||
|
|
@ -815,7 +834,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doUpdateLotOccupantType",
|
||||
los.urlPrefix + "/admin/doUpdateLotOccupantType",
|
||||
submitEvent.currentTarget,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -823,7 +842,7 @@ declare const bulmaJS: BulmaJS;
|
|||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||
|
||||
bulmaJS.alert({
|
||||
message:
|
||||
|
|
@ -841,7 +860,7 @@ declare const bulmaJS: BulmaJS;
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -850,13 +869,13 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const deleteLotOccupantType = (clickEvent: Event) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doDeleteLotOccupantType",
|
||||
los.urlPrefix + "/admin/doDeleteLotOccupantType",
|
||||
{
|
||||
lotOccupantTypeId
|
||||
},
|
||||
|
|
@ -866,7 +885,7 @@ declare const bulmaJS: BulmaJS;
|
|||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||
|
||||
if (lotOccupantTypes.length === 0) {
|
||||
renderLotOccupantTypes();
|
||||
|
|
@ -890,7 +909,7 @@ declare const bulmaJS: BulmaJS;
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -922,12 +941,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const moveLotOccupantTypeUp = (clickEvent: MouseEvent) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveLotOccupantTypeUp",
|
||||
los.urlPrefix + "/admin/doMoveLotOccupantTypeUp",
|
||||
{
|
||||
lotOccupantTypeId,
|
||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -938,7 +957,7 @@ declare const bulmaJS: BulmaJS;
|
|||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||
renderLotOccupantTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -948,7 +967,7 @@ declare const bulmaJS: BulmaJS;
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -957,12 +976,12 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
const moveLotOccupantTypeDown = (clickEvent: MouseEvent) => {
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr");
|
||||
const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr")!;
|
||||
|
||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveLotOccupantTypeDown",
|
||||
los.urlPrefix + "/admin/doMoveLotOccupantTypeDown",
|
||||
{
|
||||
lotOccupantTypeId,
|
||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||
|
|
@ -973,7 +992,7 @@ declare const bulmaJS: BulmaJS;
|
|||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||
renderLotOccupantTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -983,7 +1002,7 @@ declare const bulmaJS: BulmaJS;
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -1072,30 +1091,37 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</td>";
|
||||
|
||||
tableRowElement.querySelector("form").addEventListener("submit", updateLotOccupantType);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveLotOccupantTypeUp")
|
||||
.addEventListener("click", moveLotOccupantTypeUp);
|
||||
tableRowElement
|
||||
.querySelector(".button--moveLotOccupantTypeDown")
|
||||
.addEventListener("click", moveLotOccupantTypeDown);
|
||||
tableRowElement
|
||||
.querySelector(".button--deleteLotOccupantType")
|
||||
.addEventListener("click", deleteLotOccupantType);
|
||||
.querySelector("form")!
|
||||
.addEventListener("submit", updateLotOccupantType);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--moveLotOccupantTypeUp") as HTMLButtonElement
|
||||
).addEventListener("click", moveLotOccupantTypeUp);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(
|
||||
".button--moveLotOccupantTypeDown"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", moveLotOccupantTypeDown);
|
||||
|
||||
(
|
||||
tableRowElement.querySelector(".button--deleteLotOccupantType") as HTMLButtonElement
|
||||
).addEventListener("click", deleteLotOccupantType);
|
||||
|
||||
containerElement.append(tableRowElement);
|
||||
}
|
||||
};
|
||||
|
||||
document
|
||||
.querySelector("#form--addLotOccupantType")
|
||||
.addEventListener("submit", (submitEvent: SubmitEvent) => {
|
||||
(document.querySelector("#form--addLotOccupantType") as HTMLFormElement).addEventListener(
|
||||
"submit",
|
||||
(submitEvent: SubmitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
|
||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doAddLotOccupantType",
|
||||
los.urlPrefix + "/admin/doAddLotOccupantType",
|
||||
formElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -1103,10 +1129,10 @@ declare const bulmaJS: BulmaJS;
|
|||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||
renderLotOccupantTypes();
|
||||
formElement.reset();
|
||||
formElement.querySelector("input").focus();
|
||||
formElement.querySelector("input")!.focus();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title:
|
||||
|
|
@ -1115,13 +1141,14 @@ declare const bulmaJS: BulmaJS;
|
|||
" " +
|
||||
exports.aliases.occupant +
|
||||
" Type",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
renderLotOccupantTypes();
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const los = exports.los;
|
||||
const workOrderNumberCircleElements = document.querySelectorAll(".fa-circle[data-work-order-number");
|
||||
for (const workOrderNumberCircleElement of workOrderNumberCircleElements) {
|
||||
workOrderNumberCircleElement.style.color = los.getRandomColor(workOrderNumberCircleElement.dataset.workOrderNumber);
|
||||
workOrderNumberCircleElement.style.color = los.getRandomColor(workOrderNumberCircleElement.dataset.workOrderNumber || "");
|
||||
}
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -8,6 +8,6 @@ import type * as globalTypes from "../types/globalTypes";
|
|||
const workOrderNumberCircleElements = document.querySelectorAll(".fa-circle[data-work-order-number") as NodeListOf<HTMLElement>;
|
||||
|
||||
for (const workOrderNumberCircleElement of workOrderNumberCircleElements) {
|
||||
workOrderNumberCircleElement.style.color = los.getRandomColor(workOrderNumberCircleElement.dataset.workOrderNumber);
|
||||
workOrderNumberCircleElement.style.color = los.getRandomColor(workOrderNumberCircleElement.dataset.workOrderNumber || "");
|
||||
}
|
||||
})();
|
||||
|
|
@ -2,16 +2,16 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const lotId = document.querySelector("#lot--lotId").value;
|
||||
const isCreate = lotId === "";
|
||||
const formElement = document.querySelector("#form--lot");
|
||||
const updateLot = (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/lots/" + (isCreate ? "doCreateLot" : "doUpdateLot"), formElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/" + (isCreate ? "doCreateLot" : "doUpdateLot"), formElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
if (isCreate) {
|
||||
window.location.href = urlPrefix + "/lots/" + responseJSON.lotId + "/edit";
|
||||
window.location.href =
|
||||
los.urlPrefix + "/lots/" + responseJSON.lotId + "/edit";
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -23,7 +23,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -35,17 +35,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
document.querySelector("#button--deleteLot").addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/lots/doDeleteLot", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doDeleteLot", {
|
||||
lotId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href = urlPrefix + "/lots/?t=" + Date.now();
|
||||
window.location.href = los.urlPrefix + "/lots/?t=" + Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -75,7 +75,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const editComment = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/lots/doUpdateLotComment", editFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doUpdateLotComment", editFormElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotComments = responseJSON.lotComments;
|
||||
editCloseModalFunction();
|
||||
|
|
@ -84,7 +84,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -123,7 +123,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const deleteLotComment = (clickEvent) => {
|
||||
const lotCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset.lotCommentId, 10);
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/lots/doDeleteLotComment", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doDeleteLotComment", {
|
||||
lotId,
|
||||
lotCommentId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -134,7 +134,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Removing Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -174,14 +174,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
tableRowElement.dataset.lotCommentId = lotComment.lotCommentId.toString();
|
||||
tableRowElement.innerHTML =
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(lotComment.recordCreate_userName) +
|
||||
cityssm.escapeHTML(lotComment.recordCreate_userName || "") +
|
||||
"</td>" +
|
||||
"<td>" +
|
||||
lotComment.lotCommentDateString +
|
||||
(lotComment.lotCommentTime === 0 ? "" : " " + lotComment.lotCommentTimeString) +
|
||||
"</td>" +
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(lotComment.lotComment) +
|
||||
cityssm.escapeHTML(lotComment.lotComment || "") +
|
||||
"</td>" +
|
||||
('<td class="is-hidden-print">' +
|
||||
'<div class="buttons are-small is-justify-content-end">' +
|
||||
|
|
@ -194,12 +194,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotComment);
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotComment);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotComment);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -209,7 +205,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCommentCloseModalFunction;
|
||||
const doAddComment = (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/lots/doAddLotComment", formEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doAddLotComment", formEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotComments = responseJSON.lotComments;
|
||||
renderLotComments();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
|
|
@ -13,8 +13,6 @@ declare const bulmaJS: BulmaJS;
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
|
||||
const lotId = (document.querySelector("#lot--lotId") as HTMLInputElement).value;
|
||||
const isCreate = lotId === "";
|
||||
|
||||
|
|
@ -26,12 +24,13 @@ declare const bulmaJS: BulmaJS;
|
|||
formEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/lots/" + (isCreate ? "doCreateLot" : "doUpdateLot"),
|
||||
los.urlPrefix + "/lots/" + (isCreate ? "doCreateLot" : "doUpdateLot"),
|
||||
formElement,
|
||||
(responseJSON: { success: boolean; lotId?: number; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
if (isCreate) {
|
||||
window.location.href = urlPrefix + "/lots/" + responseJSON.lotId + "/edit";
|
||||
window.location.href =
|
||||
los.urlPrefix + "/lots/" + responseJSON.lotId + "/edit";
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
message: exports.aliases.lot + " Updated Successfully",
|
||||
|
|
@ -41,7 +40,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.lot,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -54,43 +53,46 @@ declare const bulmaJS: BulmaJS;
|
|||
los.initializeUnlockFieldButtons(formElement);
|
||||
|
||||
if (!isCreate) {
|
||||
document.querySelector("#button--deleteLot").addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
(document.querySelector("#button--deleteLot") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
(clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/lots/doDeleteLot",
|
||||
{
|
||||
lotId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href = urlPrefix + "/lots/?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot,
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
los.urlPrefix + "/lots/doDeleteLot",
|
||||
{
|
||||
lotId
|
||||
},
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href = los.urlPrefix + "/lots/?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.lot,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
);
|
||||
};
|
||||
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot,
|
||||
message:
|
||||
"Are you sure you want to delete this " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
"?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.lot,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
bulmaJS.confirm({
|
||||
title: "Delete " + exports.aliases.lot,
|
||||
message:
|
||||
"Are you sure you want to delete this " +
|
||||
exports.aliases.lot.toLowerCase() +
|
||||
"?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
text: "Yes, Delete " + exports.aliases.lot,
|
||||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// Comments
|
||||
|
|
@ -100,13 +102,13 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
const openEditLotComment = (clickEvent: Event) => {
|
||||
const lotCommentId = Number.parseInt(
|
||||
(clickEvent.currentTarget as HTMLElement).closest("tr").dataset.lotCommentId,
|
||||
(clickEvent.currentTarget as HTMLElement).closest("tr")!.dataset.lotCommentId!,
|
||||
10
|
||||
);
|
||||
|
||||
const lotComment = lotComments.find((currentLotComment) => {
|
||||
return currentLotComment.lotCommentId === lotCommentId;
|
||||
});
|
||||
})!;
|
||||
|
||||
let editFormElement: HTMLFormElement;
|
||||
let editCloseModalFunction: () => void;
|
||||
|
|
@ -115,7 +117,7 @@ declare const bulmaJS: BulmaJS;
|
|||
submitEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/lots/doUpdateLotComment",
|
||||
los.urlPrefix + "/lots/doUpdateLotComment",
|
||||
editFormElement,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
|
|
@ -123,13 +125,13 @@ declare const bulmaJS: BulmaJS;
|
|||
lotComments?: recordTypes.LotComment[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
lotComments = responseJSON.lotComments;
|
||||
lotComments = responseJSON.lotComments!;
|
||||
editCloseModalFunction();
|
||||
renderLotComments();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -149,26 +151,26 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
(
|
||||
modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLInputElement
|
||||
).value = lotComment.lotComment;
|
||||
).value = lotComment.lotComment!;
|
||||
|
||||
const lotCommentDateStringElement = modalElement.querySelector(
|
||||
"#lotCommentEdit--lotCommentDateString"
|
||||
) as HTMLInputElement;
|
||||
|
||||
lotCommentDateStringElement.value = lotComment.lotCommentDateString;
|
||||
lotCommentDateStringElement.value = lotComment.lotCommentDateString!;
|
||||
|
||||
const currentDateString = cityssm.dateToString(new Date());
|
||||
|
||||
lotCommentDateStringElement.max =
|
||||
lotComment.lotCommentDateString <= currentDateString
|
||||
lotComment.lotCommentDateString! <= currentDateString
|
||||
? currentDateString
|
||||
: lotComment.lotCommentDateString;
|
||||
: lotComment.lotCommentDateString!;
|
||||
|
||||
(
|
||||
modalElement.querySelector(
|
||||
"#lotCommentEdit--lotCommentTimeString"
|
||||
) as HTMLInputElement
|
||||
).value = lotComment.lotCommentTimeString;
|
||||
).value = lotComment.lotCommentTimeString!;
|
||||
},
|
||||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -180,7 +182,7 @@ declare const bulmaJS: BulmaJS;
|
|||
modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLTextAreaElement
|
||||
).focus();
|
||||
|
||||
editFormElement = modalElement.querySelector("form");
|
||||
editFormElement = modalElement.querySelector("form")!;
|
||||
editFormElement.addEventListener("submit", editComment);
|
||||
|
||||
editCloseModalFunction = closeModalFunction;
|
||||
|
|
@ -193,13 +195,13 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
const deleteLotComment = (clickEvent: Event) => {
|
||||
const lotCommentId = Number.parseInt(
|
||||
(clickEvent.currentTarget as HTMLElement).closest("tr").dataset.lotCommentId,
|
||||
(clickEvent.currentTarget as HTMLElement).closest("tr")!.dataset.lotCommentId!,
|
||||
10
|
||||
);
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/lots/doDeleteLotComment",
|
||||
los.urlPrefix + "/lots/doDeleteLotComment",
|
||||
{
|
||||
lotId,
|
||||
lotCommentId
|
||||
|
|
@ -215,7 +217,7 @@ declare const bulmaJS: BulmaJS;
|
|||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Removing Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -258,18 +260,18 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
for (const lotComment of lotComments) {
|
||||
const tableRowElement = document.createElement("tr");
|
||||
tableRowElement.dataset.lotCommentId = lotComment.lotCommentId.toString();
|
||||
tableRowElement.dataset.lotCommentId = lotComment.lotCommentId!.toString();
|
||||
|
||||
tableRowElement.innerHTML =
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(lotComment.recordCreate_userName) +
|
||||
cityssm.escapeHTML(lotComment.recordCreate_userName || "") +
|
||||
"</td>" +
|
||||
"<td>" +
|
||||
lotComment.lotCommentDateString +
|
||||
(lotComment.lotCommentTime === 0 ? "" : " " + lotComment.lotCommentTimeString) +
|
||||
"</td>" +
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(lotComment.lotComment) +
|
||||
cityssm.escapeHTML(lotComment.lotComment || "") +
|
||||
"</td>" +
|
||||
('<td class="is-hidden-print">' +
|
||||
'<div class="buttons are-small is-justify-content-end">' +
|
||||
|
|
@ -283,14 +285,16 @@ declare const bulmaJS: BulmaJS;
|
|||
"</div>" +
|
||||
"</td>");
|
||||
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotComment);
|
||||
(tableRowElement.querySelector(".button--edit") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
openEditLotComment
|
||||
);
|
||||
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
(
|
||||
tableRowElement.querySelector(".button--delete") as HTMLButtonElement
|
||||
).addEventListener("click", deleteLotComment);
|
||||
|
||||
tableElement.querySelector("tbody")!.append(tableRowElement);
|
||||
}
|
||||
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -304,11 +308,11 @@ declare const bulmaJS: BulmaJS;
|
|||
formEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/lots/doAddLotComment",
|
||||
los.urlPrefix + "/lots/doAddLotComment",
|
||||
formEvent.currentTarget,
|
||||
(responseJSON: { success: boolean; lotComments?: recordTypes.LotComment[] }) => {
|
||||
if (responseJSON.success) {
|
||||
lotComments = responseJSON.lotComments;
|
||||
lotComments = responseJSON.lotComments!;
|
||||
renderLotComments();
|
||||
addCommentCloseModalFunction();
|
||||
}
|
||||
|
|
@ -321,7 +325,7 @@ declare const bulmaJS: BulmaJS;
|
|||
los.populateAliases(modalElement);
|
||||
(modalElement.querySelector("#lotCommentAdd--lotId") as HTMLInputElement).value =
|
||||
lotId;
|
||||
modalElement.querySelector("form").addEventListener("submit", doAddComment);
|
||||
modalElement.querySelector("form")!.addEventListener("submit", doAddComment);
|
||||
},
|
||||
onshown(modalElement, closeModalFunction) {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -338,7 +342,10 @@ declare const bulmaJS: BulmaJS;
|
|||
};
|
||||
|
||||
if (!isCreate) {
|
||||
document.querySelector("#lotComments--add").addEventListener("click", openAddCommentModal);
|
||||
(document.querySelector("#lotComments--add") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
openAddCommentModal
|
||||
);
|
||||
renderLotComments();
|
||||
}
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value;
|
||||
const isCreate = lotOccupancyId === "";
|
||||
let hasUnsavedChanges = false;
|
||||
|
|
@ -20,14 +19,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const formElement = document.querySelector("#form--lotOccupancy");
|
||||
formElement.addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix +
|
||||
cityssm.postJSON(los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
clearUnsavedChanges();
|
||||
if (isCreate || refreshAfterSave) {
|
||||
window.location.href =
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
responseJSON.lotOccupancyId +
|
||||
"/edit?t=" +
|
||||
|
|
@ -43,7 +42,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Saving " + exports.aliases.occupancy,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -54,23 +53,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
formInputElement.addEventListener("change", setUnsavedChanges);
|
||||
}
|
||||
if (!isCreate) {
|
||||
document
|
||||
.querySelector("#button--deleteLotOccupancy")
|
||||
.addEventListener("click", (clickEvent) => {
|
||||
document.querySelector("#button--deleteLotOccupancy").addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
window.location.href =
|
||||
urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||
los.urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Record",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -100,7 +97,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>";
|
||||
return;
|
||||
}
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", {
|
||||
occupancyTypeId: occupancyTypeIdElement.value
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||
|
|
@ -150,14 +147,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'">' +
|
||||
'<option value="">(Not Set)</option>' +
|
||||
"</select></div>";
|
||||
fieldElement.querySelector("select").required =
|
||||
occupancyTypeField.isRequired;
|
||||
const selectElement = fieldElement.querySelector("select");
|
||||
selectElement.required = occupancyTypeField.isRequired;
|
||||
const optionValues = occupancyTypeField.occupancyTypeFieldValues.split("\n");
|
||||
for (const optionValue of optionValues) {
|
||||
const optionElement = document.createElement("option");
|
||||
optionElement.value = optionValue;
|
||||
optionElement.textContent = optionValue;
|
||||
fieldElement.querySelector("select").append(optionElement);
|
||||
selectElement.append(optionElement);
|
||||
}
|
||||
}
|
||||
lotOccupancyFieldsContainerElement.append(fieldElement);
|
||||
|
|
@ -220,7 +217,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-3x fa-pulse fa-spinner" aria-hidden="true"></i><br />' +
|
||||
"Searching..." +
|
||||
"</p>";
|
||||
cityssm.postJSON(urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => {
|
||||
if (responseJSON.count === 0) {
|
||||
lotSelectResultsElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -241,10 +238,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
panelBlockElement.innerHTML =
|
||||
'<div class="columns">' +
|
||||
('<div class="column">' +
|
||||
cityssm.escapeHTML(lot.lotName) +
|
||||
cityssm.escapeHTML(lot.lotName || "") +
|
||||
"<br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(lot.mapName) +
|
||||
cityssm.escapeHTML(lot.mapName || "") +
|
||||
"</span>" +
|
||||
"</div>") +
|
||||
('<div class="column">' +
|
||||
|
|
@ -265,14 +262,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const createLotAndSelect = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName").value;
|
||||
cityssm.postJSON(urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => {
|
||||
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,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -330,9 +327,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
optionElement.textContent = map.mapName || "(No Name)";
|
||||
mapElement.append(optionElement);
|
||||
}
|
||||
modalElement
|
||||
.querySelector("#form--lotCreate")
|
||||
.addEventListener("submit", createLotAndSelect);
|
||||
modalElement.querySelector("#form--lotCreate").addEventListener("submit", createLotAndSelect);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
@ -340,9 +335,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
});
|
||||
document.querySelector(".is-lot-view-button").addEventListener("click", () => {
|
||||
const lotId = document.querySelector("#lotOccupancy--lotId").value;
|
||||
const lotId = document.querySelector("#lotOccupancy--lotId")
|
||||
.value;
|
||||
if (lotId) {
|
||||
window.open(urlPrefix + "/lots/" + lotId);
|
||||
window.open(los.urlPrefix + "/lots/" + lotId);
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -365,9 +361,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
});
|
||||
los.initializeDatePickers(formElement);
|
||||
document
|
||||
.querySelector("#lotOccupancy--occupancyStartDateString")
|
||||
.addEventListener("change", () => {
|
||||
document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change", () => {
|
||||
const endDatePicker = document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;
|
||||
endDatePicker.min = document.querySelector("#lotOccupancy--occupancyStartDateString").value;
|
||||
endDatePicker.refresh();
|
||||
|
|
@ -385,7 +379,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const editOccupant = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doUpdateLotOccupancyOccupant", editFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doUpdateLotOccupancyOccupant", editFormElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||
editCloseModalFunction();
|
||||
|
|
@ -394,7 +388,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.occupant,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -447,10 +441,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
const deleteLotOccupancyOccupant = (clickEvent) => {
|
||||
const lotOccupantIndex = clickEvent.currentTarget.closest("tr").dataset
|
||||
.lotOccupantIndex;
|
||||
const lotOccupantIndex = clickEvent.currentTarget.closest("tr")
|
||||
.dataset.lotOccupantIndex;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyOccupant", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancyOccupant", {
|
||||
lotOccupancyId,
|
||||
lotOccupantIndex
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -461,7 +455,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Removing " + exports.aliases.occupant,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -514,7 +508,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"<td>" +
|
||||
cityssm.escapeHTML(lotOccupancyOccupant.lotOccupantType) +
|
||||
"</td>" +
|
||||
("<td>" + cityssm.escapeHTML(lotOccupancyOccupant.occupantName) + "</td>") +
|
||||
("<td>" +
|
||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantName || "") +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
(lotOccupancyOccupant.occupantAddress1
|
||||
? cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) + "<br />"
|
||||
|
|
@ -525,9 +521,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
(lotOccupancyOccupant.occupantCity
|
||||
? cityssm.escapeHTML(lotOccupancyOccupant.occupantCity) + ", "
|
||||
: "") +
|
||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantProvince) +
|
||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantProvince || "") +
|
||||
"<br />" +
|
||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantPostalCode) +
|
||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantPostalCode || "") +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
(lotOccupancyOccupant.occupantPhoneNumber
|
||||
|
|
@ -551,12 +547,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotOccupancyOccupant);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotOccupancyOccupant);
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotOccupancyOccupant);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotOccupancyOccupant);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
occupantsContainer.append(tableElement);
|
||||
|
|
@ -567,7 +559,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let searchFormElement;
|
||||
let searchResultsElement;
|
||||
const addOccupant = (formOrObject) => {
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyOccupant", formOrObject, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doAddLotOccupancyOccupant", formOrObject, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||
addCloseModalFunction();
|
||||
|
|
@ -576,7 +568,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupant,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -623,7 +615,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||
"Searching..." +
|
||||
"</div>";
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doSearchPastOccupants", searchFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchPastOccupants", searchFormElement, (responseJSON) => {
|
||||
pastOccupantSearchResults = responseJSON.occupants;
|
||||
const panelElement = document.createElement("div");
|
||||
panelElement.className = "panel";
|
||||
|
|
@ -633,28 +625,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
panelBlockElement.dataset.index = index.toString();
|
||||
panelBlockElement.innerHTML =
|
||||
"<strong>" +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||
"</strong>" +
|
||||
"<br />" +
|
||||
'<div class="columns">' +
|
||||
('<div class="column">' +
|
||||
cityssm.escapeHTML(occupant.occupantAddress1) +
|
||||
cityssm.escapeHTML(occupant.occupantAddress1 || "") +
|
||||
"<br />" +
|
||||
(occupant.occupantAddress2
|
||||
? cityssm.escapeHTML(occupant.occupantAddress2) + "<br />"
|
||||
? cityssm.escapeHTML(occupant.occupantAddress2) +
|
||||
"<br />"
|
||||
: "") +
|
||||
cityssm.escapeHTML(occupant.occupantCity) +
|
||||
cityssm.escapeHTML(occupant.occupantCity || "") +
|
||||
", " +
|
||||
cityssm.escapeHTML(occupant.occupantProvince) +
|
||||
cityssm.escapeHTML(occupant.occupantProvince || "") +
|
||||
"<br />" +
|
||||
cityssm.escapeHTML(occupant.occupantPostalCode) +
|
||||
cityssm.escapeHTML(occupant.occupantPostalCode || "") +
|
||||
"</div>") +
|
||||
('<div class="column">' +
|
||||
(occupant.occupantPhoneNumber
|
||||
? cityssm.escapeHTML(occupant.occupantPhoneNumber) +
|
||||
"<br />"
|
||||
: "") +
|
||||
cityssm.escapeHTML(occupant.occupantEmailAddress) +
|
||||
cityssm.escapeHTML(occupant.occupantEmailAddress || "") +
|
||||
"<br />" +
|
||||
"</div>") +
|
||||
"</div>";
|
||||
|
|
@ -692,9 +685,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
searchFormElement.addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
});
|
||||
modalElement
|
||||
.querySelector("#lotOccupancyOccupantCopy--searchFilter")
|
||||
.addEventListener("change", searchOccupants);
|
||||
modalElement.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change", searchOccupants);
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
},
|
||||
onremoved: () => {
|
||||
|
|
@ -717,7 +708,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const editComment = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doUpdateLotOccupancyComment", editFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doUpdateLotOccupancyComment", editFormElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||
editCloseModalFunction();
|
||||
|
|
@ -726,7 +717,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -766,7 +757,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset
|
||||
.lotOccupancyCommentId, 10);
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyComment", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancyComment", {
|
||||
lotOccupancyId,
|
||||
lotOccupancyCommentId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -777,7 +768,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Removing Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -818,7 +809,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
lotOccupancyComment.lotOccupancyCommentId.toString();
|
||||
tableRowElement.innerHTML =
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName) +
|
||||
cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName || "") +
|
||||
"</td>" +
|
||||
"<td>" +
|
||||
lotOccupancyComment.lotOccupancyCommentDateString +
|
||||
|
|
@ -827,7 +818,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
: " " + lotOccupancyComment.lotOccupancyCommentTimeString) +
|
||||
"</td>" +
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment) +
|
||||
cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment || "") +
|
||||
"</td>" +
|
||||
('<td class="is-hidden-print">' +
|
||||
'<div class="buttons are-small is-justify-content-end">' +
|
||||
|
|
@ -840,12 +831,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>") +
|
||||
"</div>" +
|
||||
"</td>");
|
||||
tableRowElement
|
||||
.querySelector(".button--edit")
|
||||
.addEventListener("click", openEditLotOccupancyComment);
|
||||
tableRowElement
|
||||
.querySelector(".button--delete")
|
||||
.addEventListener("click", deleteLotOccupancyComment);
|
||||
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotOccupancyComment);
|
||||
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotOccupancyComment);
|
||||
tableElement.querySelector("tbody").append(tableRowElement);
|
||||
}
|
||||
containerElement.innerHTML = "";
|
||||
|
|
@ -856,7 +843,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCloseModalFunction;
|
||||
const addComment = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyComment", addFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doAddLotOccupancyComment", addFormElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||
addCloseModalFunction();
|
||||
|
|
@ -865,7 +852,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -906,7 +893,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const deleteLotOccupancyFee = (clickEvent) => {
|
||||
const feeId = clickEvent.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyFee", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancyFee", {
|
||||
lotOccupancyId,
|
||||
feeId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -917,7 +904,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -973,7 +960,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<td colspan="' +
|
||||
(lotOccupancyFee.quantity === 1 ? "5" : "1") +
|
||||
'">' +
|
||||
cityssm.escapeHTML(lotOccupancyFee.feeName) +
|
||||
cityssm.escapeHTML(lotOccupancyFee.feeName || "") +
|
||||
"</td>" +
|
||||
(lotOccupancyFee.quantity === 1
|
||||
? ""
|
||||
|
|
@ -1017,7 +1004,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let feeFilterElement;
|
||||
let feeFilterResultsElement;
|
||||
const doAddFee = (feeId, quantity = 1) => {
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyFee", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doAddLotOccupancyFee", {
|
||||
lotOccupancyId,
|
||||
feeId,
|
||||
quantity
|
||||
|
|
@ -1030,7 +1017,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding Fee",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -1075,7 +1062,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
};
|
||||
const filterFees = () => {
|
||||
const filterStringPieces = feeFilterElement.value.trim().toLowerCase().split(" ");
|
||||
const filterStringPieces = feeFilterElement.value
|
||||
.trim()
|
||||
.toLowerCase()
|
||||
.split(" ");
|
||||
feeFilterResultsElement.innerHTML = "";
|
||||
for (const feeCategory of feeCategories) {
|
||||
const categoryContainerElement = document.createElement("div");
|
||||
|
|
@ -1084,7 +1074,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
feeCategory.feeCategoryId.toString();
|
||||
categoryContainerElement.innerHTML =
|
||||
'<h4 class="title is-5 mt-2">' +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
||||
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||
"</h4>" +
|
||||
'<div class="panel mb-5"></div>';
|
||||
let hasFees = false;
|
||||
|
|
@ -1111,10 +1101,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
panelBlockElement.href = "#";
|
||||
panelBlockElement.innerHTML =
|
||||
"<strong>" +
|
||||
cityssm.escapeHTML(fee.feeName) +
|
||||
cityssm.escapeHTML(fee.feeName || "") +
|
||||
"</strong><br />" +
|
||||
"<small>" +
|
||||
cityssm.escapeHTML(fee.feeDescription).replace(/\n/g, "<br />") +
|
||||
cityssm.escapeHTML(fee.feeDescription || "").replace(/\n/g, "<br />") +
|
||||
"</small>";
|
||||
panelBlockElement.addEventListener("click", tryAddFee);
|
||||
categoryContainerElement.querySelector(".panel").append(panelBlockElement);
|
||||
|
|
@ -1128,7 +1118,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
onshow: (modalElement) => {
|
||||
feeFilterElement = modalElement.querySelector("#feeSelect--feeName");
|
||||
feeFilterResultsElement = modalElement.querySelector("#resultsContainer--feeSelect");
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doGetFees", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetFees", {
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
feeCategories = responseJSON.feeCategories;
|
||||
|
|
@ -1162,7 +1152,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const deleteLotOccupancyTransaction = (clickEvent) => {
|
||||
const transactionIndex = clickEvent.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyTransaction", {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancyTransaction", {
|
||||
lotOccupancyId,
|
||||
transactionIndex
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -1173,7 +1163,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Transaction",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -1228,10 +1218,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
lotOccupancyTransaction.transactionDateString +
|
||||
"</td>" +
|
||||
("<td>" +
|
||||
cityssm.escapeHTML(lotOccupancyTransaction.externalReceiptNumber) +
|
||||
cityssm.escapeHTML(lotOccupancyTransaction.externalReceiptNumber || "") +
|
||||
"<br />" +
|
||||
"<small>" +
|
||||
cityssm.escapeHTML(lotOccupancyTransaction.transactionNote) +
|
||||
cityssm.escapeHTML(lotOccupancyTransaction.transactionNote || "") +
|
||||
"</small>" +
|
||||
"</td>") +
|
||||
('<td class="has-text-right">$' +
|
||||
|
|
@ -1268,7 +1258,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCloseModalFunction;
|
||||
const doAddTransaction = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyTransaction", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doAddLotOccupancyTransaction", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions;
|
||||
addCloseModalFunction();
|
||||
|
|
@ -1277,7 +1267,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.confirm({
|
||||
title: "Error Adding Transaction",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -1297,7 +1287,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
onshown: (modalElement, closeModalFunction) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
addCloseModalFunction = closeModalFunction;
|
||||
modalElement.querySelector("form").addEventListener("submit", doAddTransaction);
|
||||
modalElement
|
||||
.querySelector("form")
|
||||
.addEventListener("submit", doAddTransaction);
|
||||
},
|
||||
onremoved: () => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los;
|
||||
const lotOccupancyPrints = exports.lotOccupancyPrints;
|
||||
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||
|
|
@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
exports.aliases.occupancies +
|
||||
"..." +
|
||||
"</div>";
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFilterFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFilterFormElement, (responseJSON) => {
|
||||
if (responseJSON.lotOccupancies.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -66,16 +66,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||
occupantsHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||
'">' +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||
"</span><br />";
|
||||
}
|
||||
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||
('<td class="has-width-1">' + occupancyTimeHTML + "</td>") +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
lotOccupancy.lotOccupancyId +
|
||||
'">' +
|
||||
|
|
@ -85,9 +85,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
("<td>" +
|
||||
(lotOccupancy.lotName
|
||||
? '<a class="has-tooltip-right" data-tooltip="' +
|
||||
cityssm.escapeHTML(lotOccupancy.lotType) +
|
||||
cityssm.escapeHTML(lotOccupancy.lotType || "") +
|
||||
'" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lots/" +
|
||||
lotOccupancy.lotId +
|
||||
'">' +
|
||||
|
|
@ -111,7 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
(lotOccupancyPrints.length > 0
|
||||
? "<td>" +
|
||||
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/print/" +
|
||||
lotOccupancyPrints[0] +
|
||||
"/?lotOccupancyId=" +
|
||||
|
|
@ -132,7 +132,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
("<th>" + cityssm.escapeHTML(exports.aliases.occupancyStartDate) + "</th>") +
|
||||
"<th>End Date</th>" +
|
||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
|
||||
(lotOccupancyPrints.length > 0 ? '<th class="has-width-1"><span class="is-sr-only">Print</span></th>' : "") +
|
||||
(lotOccupancyPrints.length > 0
|
||||
? '<th class="has-width-1"><span class="is-sr-only">Print</span></th>'
|
||||
: "") +
|
||||
"</tr></thead>" +
|
||||
"<table>" +
|
||||
'<div class="level">' +
|
||||
|
|
@ -166,14 +168,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>";
|
||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||
if (offset > 0) {
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")
|
||||
.addEventListener("click", previousAndGetLotOccupancies);
|
||||
searchResultsContainerElement.querySelector("button[data-page='previous']").addEventListener("click", previousAndGetLotOccupancies);
|
||||
}
|
||||
if (limit + offset < responseJSON.count) {
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")
|
||||
.addEventListener("click", nextAndGetLotOccupancies);
|
||||
searchResultsContainerElement.querySelector("button[data-page='next']").addEventListener("click", nextAndGetLotOccupancies);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
|
||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||
|
|
@ -7,7 +8,7 @@ import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
|||
declare const cityssm: cityssmGlobal;
|
||||
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const lotOccupancyPrints: string[] = exports.lotOccupancyPrints;
|
||||
|
||||
|
|
@ -37,7 +38,7 @@ declare const cityssm: cityssmGlobal;
|
|||
"</div>";
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/lotOccupancies/doSearchLotOccupancies",
|
||||
los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies",
|
||||
searchFilterFormElement,
|
||||
(responseJSON: { count: number; lotOccupancies: recordTypes.LotOccupancy[] }) => {
|
||||
if (responseJSON.lotOccupancies.length === 0) {
|
||||
|
|
@ -59,9 +60,9 @@ declare const cityssm: cityssmGlobal;
|
|||
let occupancyTimeHTML = "";
|
||||
|
||||
if (
|
||||
lotOccupancy.occupancyStartDateString <= nowDateString &&
|
||||
lotOccupancy.occupancyStartDateString! <= nowDateString &&
|
||||
(lotOccupancy.occupancyEndDateString === "" ||
|
||||
lotOccupancy.occupancyEndDateString >= nowDateString)
|
||||
lotOccupancy.occupancyEndDateString! >= nowDateString)
|
||||
) {
|
||||
occupancyTimeHTML =
|
||||
'<span class="has-tooltip-right" data-tooltip="Current ' +
|
||||
|
|
@ -71,7 +72,7 @@ declare const cityssm: cityssmGlobal;
|
|||
exports.aliases.occupancy +
|
||||
'"></i>') +
|
||||
"</span>";
|
||||
} else if (lotOccupancy.occupancyStartDateString > nowDateString) {
|
||||
} else if (lotOccupancy.occupancyStartDateString! > nowDateString) {
|
||||
occupancyTimeHTML =
|
||||
'<span class="has-tooltip-right" data-tooltip="Future ' +
|
||||
exports.aliases.occupancy +
|
||||
|
|
@ -93,12 +94,12 @@ declare const cityssm: cityssmGlobal;
|
|||
|
||||
let occupantsHTML = "";
|
||||
|
||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||
for (const occupant of lotOccupancy.lotOccupancyOccupants!) {
|
||||
occupantsHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||
'">' +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||
"</span><br />";
|
||||
}
|
||||
|
||||
|
|
@ -108,7 +109,7 @@ declare const cityssm: cityssmGlobal;
|
|||
('<td class="has-width-1">' + occupancyTimeHTML + "</td>") +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lotOccupancies/" +
|
||||
lotOccupancy.lotOccupancyId +
|
||||
'">' +
|
||||
|
|
@ -118,9 +119,9 @@ declare const cityssm: cityssmGlobal;
|
|||
("<td>" +
|
||||
(lotOccupancy.lotName
|
||||
? '<a class="has-tooltip-right" data-tooltip="' +
|
||||
cityssm.escapeHTML(lotOccupancy.lotType) +
|
||||
cityssm.escapeHTML(lotOccupancy.lotType || "") +
|
||||
'" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lots/" +
|
||||
lotOccupancy.lotId +
|
||||
'">' +
|
||||
|
|
@ -144,7 +145,7 @@ declare const cityssm: cityssmGlobal;
|
|||
(lotOccupancyPrints.length > 0
|
||||
? "<td>" +
|
||||
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/print/" +
|
||||
lotOccupancyPrints[0] +
|
||||
"/?lotOccupancyId=" +
|
||||
|
|
@ -167,7 +168,9 @@ declare const cityssm: cityssmGlobal;
|
|||
("<th>" + cityssm.escapeHTML(exports.aliases.occupancyStartDate) + "</th>") +
|
||||
"<th>End Date</th>" +
|
||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</th>") +
|
||||
(lotOccupancyPrints.length > 0 ? '<th class="has-width-1"><span class="is-sr-only">Print</span></th>' : "") +
|
||||
(lotOccupancyPrints.length > 0
|
||||
? '<th class="has-width-1"><span class="is-sr-only">Print</span></th>'
|
||||
: "") +
|
||||
"</tr></thead>" +
|
||||
"<table>" +
|
||||
'<div class="level">' +
|
||||
|
|
@ -200,18 +203,22 @@ declare const cityssm: cityssmGlobal;
|
|||
"</div>") +
|
||||
"</div>";
|
||||
|
||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||
searchResultsContainerElement.querySelector("table")!.append(resultsTbodyElement);
|
||||
|
||||
if (offset > 0) {
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")
|
||||
.addEventListener("click", previousAndGetLotOccupancies);
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='previous']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", previousAndGetLotOccupancies);
|
||||
}
|
||||
|
||||
if (limit + offset < responseJSON.count) {
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")
|
||||
.addEventListener("click", nextAndGetLotOccupancies);
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='next']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", nextAndGetLotOccupancies);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los;
|
||||
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||
const limit = Number.parseInt(document.querySelector("#searchFilter--limit").value, 10);
|
||||
|
|
@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
exports.aliases.lots +
|
||||
"..." +
|
||||
"</div>";
|
||||
cityssm.postJSON(urlPrefix + "/lots/doSearchLots", searchFilterFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", searchFilterFormElement, (responseJSON) => {
|
||||
if (responseJSON.lots.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -30,16 +30,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lots/" +
|
||||
lot.lotId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(lot.lotName) +
|
||||
cityssm.escapeHTML(lot.lotName || "") +
|
||||
"</a>" +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
'<a href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/maps/" +
|
||||
lot.mapId +
|
||||
'">' +
|
||||
|
|
@ -48,10 +48,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
: '<span class="has-text-grey">(No Name)</span>') +
|
||||
"</a>" +
|
||||
"</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||
("<td>" +
|
||||
(lot.lotStatusId
|
||||
? cityssm.escapeHTML(lot.lotStatus)
|
||||
? cityssm.escapeHTML(lot.lotStatus || "")
|
||||
: '<span class="has-text-grey">(No Status)</span>') +
|
||||
"<br />" +
|
||||
(lot.lotOccupancyCount > 0
|
||||
|
|
@ -100,14 +100,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>";
|
||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||
if (offset > 0) {
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")
|
||||
.addEventListener("click", previousAndGetLots);
|
||||
searchResultsContainerElement.querySelector("button[data-page='previous']").addEventListener("click", previousAndGetLots);
|
||||
}
|
||||
if (limit + offset < responseJSON.count) {
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")
|
||||
.addEventListener("click", nextAndGetLots);
|
||||
searchResultsContainerElement.querySelector("button[data-page='next']").addEventListener("click", nextAndGetLots);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
|
||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||
|
|
@ -7,7 +8,7 @@ import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
|||
declare const cityssm: cityssmGlobal;
|
||||
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const searchFilterFormElement = document.querySelector(
|
||||
"#form--searchFilters"
|
||||
|
|
@ -34,7 +35,7 @@ declare const cityssm: cityssmGlobal;
|
|||
"</div>";
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/lots/doSearchLots",
|
||||
los.urlPrefix + "/lots/doSearchLots",
|
||||
searchFilterFormElement,
|
||||
(responseJSON: { count: number; lots: recordTypes.Lot[] }) => {
|
||||
if (responseJSON.lots.length === 0) {
|
||||
|
|
@ -56,16 +57,16 @@ declare const cityssm: cityssmGlobal;
|
|||
"<tr>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lots/" +
|
||||
lot.lotId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(lot.lotName) +
|
||||
cityssm.escapeHTML(lot.lotName || "") +
|
||||
"</a>" +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
'<a href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/maps/" +
|
||||
lot.mapId +
|
||||
'">' +
|
||||
|
|
@ -74,13 +75,13 @@ declare const cityssm: cityssmGlobal;
|
|||
: '<span class="has-text-grey">(No Name)</span>') +
|
||||
"</a>" +
|
||||
"</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||
("<td>" +
|
||||
(lot.lotStatusId
|
||||
? cityssm.escapeHTML(lot.lotStatus)
|
||||
? cityssm.escapeHTML(lot.lotStatus || "")
|
||||
: '<span class="has-text-grey">(No Status)</span>') +
|
||||
"<br />" +
|
||||
(lot.lotOccupancyCount > 0
|
||||
(lot.lotOccupancyCount! > 0
|
||||
? '<span class="is-size-7">Currently Occupied</span>'
|
||||
: "") +
|
||||
"</td>") +
|
||||
|
|
@ -127,18 +128,22 @@ declare const cityssm: cityssmGlobal;
|
|||
"</div>") +
|
||||
"</div>";
|
||||
|
||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||
searchResultsContainerElement.querySelector("table")!.append(resultsTbodyElement);
|
||||
|
||||
if (offset > 0) {
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='previous']")
|
||||
.addEventListener("click", previousAndGetLots);
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='previous']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", previousAndGetLots);
|
||||
}
|
||||
|
||||
if (limit + offset < responseJSON.count) {
|
||||
searchResultsContainerElement
|
||||
.querySelector("button[data-page='next']")
|
||||
.addEventListener("click", nextAndGetLots);
|
||||
(
|
||||
searchResultsContainerElement.querySelector(
|
||||
"button[data-page='next']"
|
||||
) as HTMLButtonElement
|
||||
).addEventListener("click", nextAndGetLots);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import * as globalTypes from "../types/globalTypes";
|
||||
|
||||
|
|
@ -9,7 +9,7 @@ import * as globalTypes from "../types/globalTypes";
|
|||
if (mapContainerElement) {
|
||||
(exports.los as globalTypes.LOS).highlightMap(
|
||||
mapContainerElement,
|
||||
mapContainerElement.dataset.mapKey,
|
||||
mapContainerElement.dataset.mapKey!,
|
||||
"success"
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
svgId = svgId.slice(0, Math.max(0, svgId.lastIndexOf("-")));
|
||||
}
|
||||
if (svgElementToHighlight) {
|
||||
svgElementToHighlight.style.fill = null;
|
||||
svgElementToHighlight.style.fill = "";
|
||||
svgElementToHighlight.classList.add("highlight", "is-" + contextualClass);
|
||||
const childPathElements = svgElementToHighlight.querySelectorAll("path");
|
||||
for (const pathElement of childPathElements) {
|
||||
pathElement.style.fill = null;
|
||||
pathElement.style.fill = "";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -194,6 +194,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
const los = {
|
||||
urlPrefix: document.querySelector("main").dataset.urlPrefix,
|
||||
apiKey: document.querySelector("main").dataset.apiKey,
|
||||
highlightMap,
|
||||
initializeUnlockFieldButtons,
|
||||
initializeDatePickers,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type { Options as BulmaCalendarOptions } from "bulma-calendar";
|
||||
|
|
@ -17,7 +17,7 @@ declare const bulmaJS: BulmaJS;
|
|||
// Search for ID
|
||||
|
||||
let svgId = mapKey;
|
||||
let svgElementToHighlight: SVGElement;
|
||||
let svgElementToHighlight: SVGElement | null;
|
||||
|
||||
// eslint-disable-next-line no-constant-condition
|
||||
while (true) {
|
||||
|
|
@ -32,20 +32,20 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
if (svgElementToHighlight) {
|
||||
// eslint-disable-next-line unicorn/no-null
|
||||
svgElementToHighlight.style.fill = null;
|
||||
svgElementToHighlight.style.fill = "";
|
||||
|
||||
svgElementToHighlight.classList.add("highlight", "is-" + contextualClass);
|
||||
|
||||
const childPathElements = svgElementToHighlight.querySelectorAll("path");
|
||||
for (const pathElement of childPathElements) {
|
||||
// eslint-disable-next-line unicorn/no-null
|
||||
pathElement.style.fill = null;
|
||||
pathElement.style.fill = "";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const unlockField = (clickEvent: Event) => {
|
||||
const fieldElement = (clickEvent.currentTarget as HTMLElement).closest(".field");
|
||||
const fieldElement = (clickEvent.currentTarget as HTMLElement).closest(".field")!;
|
||||
|
||||
const inputOrSelectElement = fieldElement.querySelector("input, select") as
|
||||
| HTMLInputElement
|
||||
|
|
@ -115,7 +115,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
// Disable html scrolling when calendar is open
|
||||
cal.on("show", () => {
|
||||
document.querySelector("html").classList.add("is-clipped");
|
||||
document.querySelector("html")!.classList.add("is-clipped");
|
||||
});
|
||||
|
||||
// Reenable scrolling, if a modal window is not open
|
||||
|
|
@ -160,7 +160,7 @@ declare const bulmaJS: BulmaJS;
|
|||
const labelElement = document.querySelector("label[for='" + dateElement.id + "']");
|
||||
|
||||
if (labelElement) {
|
||||
datepickerElement.querySelector(".datetimepicker-dummy-input").ariaLabel = labelElement.textContent;
|
||||
datepickerElement.querySelector(".datetimepicker-dummy-input")!.ariaLabel = labelElement.textContent;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -196,7 +196,7 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
// Disable html scrolling when calendar is open
|
||||
cal.on("show", () => {
|
||||
document.querySelector("html").classList.add("is-clipped");
|
||||
document.querySelector("html")!.classList.add("is-clipped");
|
||||
});
|
||||
|
||||
// Reenable scrolling, if a modal window is not open
|
||||
|
|
@ -290,15 +290,17 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
return exports.randomColor({
|
||||
seed: actualSeedString + actualSeedString,
|
||||
hue: hues[actualSeedString.codePointAt(actualSeedString.length - 1) % hues.length],
|
||||
hue: hues[actualSeedString.codePointAt(actualSeedString.length - 1)! % hues.length],
|
||||
luminosity:
|
||||
luminosity[
|
||||
actualSeedString.codePointAt(actualSeedString.length - 2) % luminosity.length
|
||||
actualSeedString.codePointAt(actualSeedString.length - 2)! % luminosity.length
|
||||
]
|
||||
});
|
||||
};
|
||||
|
||||
const los: globalTypes.LOS = {
|
||||
urlPrefix: document.querySelector("main")!.dataset.urlPrefix!,
|
||||
apiKey: document.querySelector("main")!.dataset.apiKey!,
|
||||
highlightMap,
|
||||
initializeUnlockFieldButtons,
|
||||
initializeDatePickers,
|
||||
|
|
|
|||
|
|
@ -1,19 +1,18 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const mapId = document.querySelector("#map--mapId")
|
||||
.value;
|
||||
const los = exports.los;
|
||||
const mapId = document.querySelector("#map--mapId").value;
|
||||
const isCreate = mapId === "";
|
||||
const mapForm = document.querySelector("#form--map");
|
||||
const updateMap = (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"), mapForm, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"), mapForm, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
if (isCreate) {
|
||||
window.location.href =
|
||||
urlPrefix + "/maps/" + responseJSON.mapId + "/edit";
|
||||
los.urlPrefix + "/maps/" + responseJSON.mapId + "/edit";
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -25,7 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.map,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -37,22 +36,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
inputElement.addEventListener("change", cityssm.enableNavBlocker);
|
||||
}
|
||||
if (!isCreate) {
|
||||
document
|
||||
.querySelector("#button--deleteMap")
|
||||
.addEventListener("click", (clickEvent) => {
|
||||
document.querySelector("#button--deleteMap").addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/maps/doDeleteMap", {
|
||||
cityssm.postJSON(los.urlPrefix + "/maps/doDeleteMap", {
|
||||
mapId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
urlPrefix + "/maps?t=" + Date.now();
|
||||
window.location.href = los.urlPrefix + "/maps?t=" + Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting " + exports.aliases.map,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -62,7 +58,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
title: "Delete " + exports.aliases.map,
|
||||
message: "Are you sure you want to delete this " +
|
||||
exports.aliases.map.toLowerCase() +
|
||||
" and all related " + exports.aliases.lots.toLowerCase() +
|
||||
" and all related " +
|
||||
exports.aliases.lots.toLowerCase() +
|
||||
"?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
|
||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||
import type { BulmaJS } from "@cityssm/bulma-js/types";
|
||||
|
|
@ -7,10 +9,9 @@ declare const cityssm: cityssmGlobal;
|
|||
declare const bulmaJS: BulmaJS;
|
||||
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const mapId = (document.querySelector("#map--mapId") as HTMLInputElement)
|
||||
.value;
|
||||
const mapId = (document.querySelector("#map--mapId") as HTMLInputElement).value;
|
||||
const isCreate = mapId === "";
|
||||
|
||||
const mapForm = document.querySelector("#form--map") as HTMLFormElement;
|
||||
|
|
@ -19,30 +20,25 @@ declare const bulmaJS: BulmaJS;
|
|||
formEvent.preventDefault();
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"),
|
||||
los.urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"),
|
||||
mapForm,
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
mapId?: number;
|
||||
errorMessage?: string;
|
||||
}) => {
|
||||
(responseJSON: { success: boolean; mapId?: number; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
|
||||
if (isCreate) {
|
||||
window.location.href =
|
||||
urlPrefix + "/maps/" + responseJSON.mapId + "/edit";
|
||||
los.urlPrefix + "/maps/" + responseJSON.mapId + "/edit";
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
message:
|
||||
exports.aliases.map + " Updated Successfully",
|
||||
message: exports.aliases.map + " Updated Successfully",
|
||||
contextualColorName: "success"
|
||||
});
|
||||
}
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating " + exports.aliases.map,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -52,36 +48,33 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
mapForm.addEventListener("submit", updateMap);
|
||||
|
||||
const inputElements = mapForm.querySelectorAll("input, select") as NodeListOf<HTMLInputElement | HTMLSelectElement>;
|
||||
const inputElements = mapForm.querySelectorAll("input, select") as NodeListOf<
|
||||
HTMLInputElement | HTMLSelectElement
|
||||
>;
|
||||
|
||||
for (const inputElement of inputElements) {
|
||||
inputElement.addEventListener("change", cityssm.enableNavBlocker);
|
||||
}
|
||||
|
||||
if (!isCreate) {
|
||||
document
|
||||
.querySelector("#button--deleteMap")
|
||||
.addEventListener("click", (clickEvent) => {
|
||||
(document.querySelector("#button--deleteMap") as HTMLButtonElement).addEventListener(
|
||||
"click",
|
||||
(clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/maps/doDeleteMap",
|
||||
los.urlPrefix + "/maps/doDeleteMap",
|
||||
{
|
||||
mapId
|
||||
},
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
}) => {
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
urlPrefix + "/maps?t=" + Date.now();
|
||||
window.location.href = los.urlPrefix + "/maps?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title:
|
||||
"Error Deleting " + exports.aliases.map,
|
||||
message: responseJSON.errorMessage,
|
||||
title: "Error Deleting " + exports.aliases.map,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -94,7 +87,8 @@ declare const bulmaJS: BulmaJS;
|
|||
message:
|
||||
"Are you sure you want to delete this " +
|
||||
exports.aliases.map.toLowerCase() +
|
||||
" and all related " + exports.aliases.lots.toLowerCase() +
|
||||
" and all related " +
|
||||
exports.aliases.lots.toLowerCase() +
|
||||
"?",
|
||||
contextualColorName: "warning",
|
||||
okButton: {
|
||||
|
|
@ -102,6 +96,7 @@ declare const bulmaJS: BulmaJS;
|
|||
callbackFunction: doDelete
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los;
|
||||
const maps = exports.maps;
|
||||
const searchFilterElement = document.querySelector("#searchFilter--map");
|
||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||
|
|
@ -36,28 +36,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
searchResultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/maps/" +
|
||||
map.mapId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(map.mapName || "(No Name)") +
|
||||
"</a><br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(map.mapDescription) +
|
||||
cityssm.escapeHTML(map.mapDescription || "") +
|
||||
"</span>" +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
(map.mapAddress1 ? cityssm.escapeHTML(map.mapAddress1) + "<br />" : "") +
|
||||
(map.mapAddress2 ? cityssm.escapeHTML(map.mapAddress2) + "<br />" : "") +
|
||||
(map.mapCity || map.mapProvince
|
||||
? cityssm.escapeHTML(map.mapCity) +
|
||||
? cityssm.escapeHTML(map.mapCity || "") +
|
||||
", " +
|
||||
cityssm.escapeHTML(map.mapProvince) +
|
||||
cityssm.escapeHTML(map.mapProvince || "") +
|
||||
"<br />"
|
||||
: "") +
|
||||
(map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : "") +
|
||||
"</td>") +
|
||||
("<td>" + cityssm.escapeHTML(map.mapPhoneNumber) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(map.mapPhoneNumber || "") + "</td>") +
|
||||
'<td class="has-text-centered">' +
|
||||
(map.mapLatitude && map.mapLongitude
|
||||
? '<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>'
|
||||
|
|
@ -70,7 +70,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</td>" +
|
||||
('<td class="has-text-right">' +
|
||||
'<a href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lots?mapId=" +
|
||||
map.mapId +
|
||||
'">' +
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
|
||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||
|
|
@ -7,7 +8,7 @@ import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
|||
declare const cityssm: cityssmGlobal;
|
||||
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const maps: recordTypes.Map[] = exports.maps;
|
||||
|
||||
|
|
@ -60,28 +61,28 @@ declare const cityssm: cityssmGlobal;
|
|||
"<tr>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/maps/" +
|
||||
map.mapId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(map.mapName || "(No Name)") +
|
||||
"</a><br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(map.mapDescription) +
|
||||
cityssm.escapeHTML(map.mapDescription || "") +
|
||||
"</span>" +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
(map.mapAddress1 ? cityssm.escapeHTML(map.mapAddress1) + "<br />" : "") +
|
||||
(map.mapAddress2 ? cityssm.escapeHTML(map.mapAddress2) + "<br />" : "") +
|
||||
(map.mapCity || map.mapProvince
|
||||
? cityssm.escapeHTML(map.mapCity) +
|
||||
? cityssm.escapeHTML(map.mapCity || "") +
|
||||
", " +
|
||||
cityssm.escapeHTML(map.mapProvince) +
|
||||
cityssm.escapeHTML(map.mapProvince || "") +
|
||||
"<br />"
|
||||
: "") +
|
||||
(map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : "") +
|
||||
"</td>") +
|
||||
("<td>" + cityssm.escapeHTML(map.mapPhoneNumber) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(map.mapPhoneNumber || "") + "</td>") +
|
||||
'<td class="has-text-centered">' +
|
||||
(map.mapLatitude && map.mapLongitude
|
||||
? '<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>'
|
||||
|
|
@ -94,7 +95,7 @@ declare const cityssm: cityssmGlobal;
|
|||
"</td>" +
|
||||
('<td class="has-text-right">' +
|
||||
'<a href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/lots?mapId=" +
|
||||
map.mapId +
|
||||
'">' +
|
||||
|
|
@ -138,10 +139,13 @@ declare const cityssm: cityssmGlobal;
|
|||
|
||||
searchFilterElement.addEventListener("keyup", renderResults);
|
||||
|
||||
document.querySelector("#form--searchFilters").addEventListener("submit", (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
renderResults();
|
||||
});
|
||||
(document.querySelector("#form--searchFilters") as HTMLFormElement).addEventListener(
|
||||
"submit",
|
||||
(formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
renderResults();
|
||||
}
|
||||
);
|
||||
|
||||
renderResults();
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
// import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||
// import type { BulmaJS } from "@cityssm/bulma-js/types";
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
||||
|
||||
import type * as Leaflet from "leaflet";
|
||||
|
||||
// declare const cityssm: cityssmGlobal;
|
||||
// declare const bulmaJS: BulmaJS;
|
||||
declare const L;
|
||||
|
||||
(() => {
|
||||
|
|
@ -13,14 +11,15 @@ declare const L;
|
|||
|
||||
if (mapContainerElement) {
|
||||
const mapLatitude = Number.parseFloat(
|
||||
mapContainerElement.dataset.mapLatitude
|
||||
mapContainerElement.dataset.mapLatitude!
|
||||
);
|
||||
const mapLongitude = Number.parseFloat(
|
||||
mapContainerElement.dataset.mapLongitude
|
||||
mapContainerElement.dataset.mapLongitude!
|
||||
);
|
||||
|
||||
const mapCoordinates: Leaflet.LatLngTuple = [mapLatitude, mapLongitude];
|
||||
|
||||
// eslint-disable-next-line unicorn/no-array-callback-reference
|
||||
const map: Leaflet.Map = L.map(mapContainerElement);
|
||||
map.setView(mapCoordinates, 15);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,23 +2,20 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const workOrderId = document.querySelector("#workOrderEdit--workOrderId")
|
||||
.value;
|
||||
const isCreate = workOrderId === "";
|
||||
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
||||
los.initializeDatePickers(workOrderFormElement
|
||||
.querySelector("#workOrderEdit--workOrderOpenDateString")
|
||||
.closest(".field"));
|
||||
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
|
||||
los.initializeUnlockFieldButtons(workOrderFormElement);
|
||||
workOrderFormElement.addEventListener("submit", (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/" + (isCreate ? "doCreateWorkOrder" : "doUpdateWorkOrder"), submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/" + (isCreate ? "doCreateWorkOrder" : "doUpdateWorkOrder"), submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
cityssm.disableNavBlocker();
|
||||
if (isCreate) {
|
||||
window.location.href =
|
||||
urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
|
||||
los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
|
|
@ -30,7 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -43,17 +40,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let workOrderMilestones;
|
||||
if (!isCreate) {
|
||||
const doClose = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doCloseWorkOrder", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doCloseWorkOrder", {
|
||||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
|
||||
los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Closing Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -87,24 +84,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
});
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrder", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrder", {
|
||||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href = urlPrefix + "/workOrders";
|
||||
window.location.href = los.urlPrefix + "/workOrders";
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
document
|
||||
.querySelector("#button--deleteWorkOrder")
|
||||
.addEventListener("click", (clickEvent) => {
|
||||
document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
bulmaJS.confirm({
|
||||
title: "Delete Work Order",
|
||||
|
|
@ -125,7 +120,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const deleteLotOccupancy = (clickEvent) => {
|
||||
const lotOccupancyId = clickEvent.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrderLotOccupancy", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLotOccupancy", {
|
||||
workOrderId,
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -136,7 +131,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Relationship",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -161,7 +156,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
const addLot = (lotId, callbackFunction) => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doAddWorkOrderLot", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderLot", {
|
||||
workOrderId,
|
||||
lotId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -172,7 +167,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.lot,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -182,7 +177,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
const addLotOccupancy = (lotOccupancyId, callbackFunction) => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doAddWorkOrderLotOccupancy", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderLotOccupancy", {
|
||||
workOrderId,
|
||||
lotOccupancyId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -193,7 +188,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Adding " + exports.aliases.occupancy,
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -208,8 +203,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const renderRelatedOccupancies = () => {
|
||||
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">' +
|
||||
|
|
@ -257,16 +251,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</td>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
cityssm.escapeHTML(urlPrefix) +
|
||||
cityssm.escapeHTML(los.urlPrefix) +
|
||||
"/lotOccupancies/" +
|
||||
lotOccupancy.lotOccupancyId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(lotOccupancy.occupancyType) +
|
||||
cityssm.escapeHTML(lotOccupancy.occupancyType || "") +
|
||||
"</a>" +
|
||||
"</td>");
|
||||
if (lotOccupancy.lotId) {
|
||||
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
||||
cityssm.escapeHTML(lotOccupancy.lotName) +
|
||||
cityssm.escapeHTML(lotOccupancy.lotName || "") +
|
||||
(hasLotRecord
|
||||
? ""
|
||||
: ' <button class="button is-small is-light is-success button--addLot"' +
|
||||
|
|
@ -318,13 +312,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>" +
|
||||
"</td>"));
|
||||
if (lotOccupancy.lotId && !hasLotRecord) {
|
||||
rowElement
|
||||
.querySelector(".button--addLot")
|
||||
.addEventListener("click", addLotFromLotOccupancy);
|
||||
rowElement.querySelector(".button--addLot").addEventListener("click", addLotFromLotOccupancy);
|
||||
}
|
||||
rowElement
|
||||
.querySelector(".button--deleteLotOccupancy")
|
||||
.addEventListener("click", deleteLotOccupancy);
|
||||
rowElement.querySelector(".button--deleteLotOccupancy").addEventListener("click", deleteLotOccupancy);
|
||||
occupanciesContainerElement.querySelector("tbody").append(rowElement);
|
||||
}
|
||||
};
|
||||
|
|
@ -336,7 +326,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const doUpdateLotStatus = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderLots = responseJSON.workOrderLots;
|
||||
renderRelatedLotsAndOccupancies();
|
||||
|
|
@ -345,7 +335,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Relationship",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -395,7 +385,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const deleteLot = (clickEvent) => {
|
||||
const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrderLot", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", {
|
||||
workOrderId,
|
||||
lotId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -406,7 +396,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Deleting Relationship",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -432,8 +422,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
};
|
||||
const renderRelatedLots = () => {
|
||||
const lotsContainerElement = document.querySelector("#container--lots");
|
||||
document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent =
|
||||
workOrderLots.length.toString();
|
||||
document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent = workOrderLots.length.toString();
|
||||
if (workOrderLots.length === 0) {
|
||||
lotsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -463,18 +452,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
rowElement.innerHTML =
|
||||
"<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
cityssm.escapeHTML(urlPrefix) +
|
||||
cityssm.escapeHTML(los.urlPrefix) +
|
||||
"/lots/" +
|
||||
lot.lotId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(lot.lotName) +
|
||||
cityssm.escapeHTML(lot.lotName || "") +
|
||||
"</a>" +
|
||||
"</td>" +
|
||||
("<td>" + cityssm.escapeHTML(lot.mapName) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.mapName || "") + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||
("<td>" +
|
||||
(lot.lotStatusId
|
||||
? cityssm.escapeHTML(lot.lotStatus)
|
||||
? cityssm.escapeHTML(lot.lotStatus || "")
|
||||
: '<span class="has-text-grey">(No Status)</span>') +
|
||||
"</td>") +
|
||||
('<td class="is-nowrap">' +
|
||||
|
|
@ -485,9 +474,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);
|
||||
}
|
||||
|
|
@ -518,7 +505,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||
"Searching..." +
|
||||
"</p>";
|
||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => {
|
||||
if (responseJSON.lotOccupancies.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -552,10 +539,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>" +
|
||||
"</td>" +
|
||||
('<td class="has-text-weight-bold">' +
|
||||
cityssm.escapeHTML(lotOccupancy.occupancyType) +
|
||||
cityssm.escapeHTML(lotOccupancy.occupancyType || "") +
|
||||
"</td>");
|
||||
if (lotOccupancy.lotId) {
|
||||
rowElement.insertAdjacentHTML("beforeend", "<td>" + cityssm.escapeHTML(lotOccupancy.lotName) + "</td>");
|
||||
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
||||
cityssm.escapeHTML(lotOccupancy.lotName || "") +
|
||||
"</td>");
|
||||
}
|
||||
else {
|
||||
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
||||
|
|
@ -577,16 +566,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
? '<span class="has-text-grey">(No ' +
|
||||
cityssm.escapeHTML(exports.aliases.occupants) +
|
||||
")</span>"
|
||||
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
|
||||
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0]
|
||||
.occupantName) +
|
||||
(lotOccupancy.lotOccupancyOccupants.length > 1
|
||||
? " plus " +
|
||||
(lotOccupancy.lotOccupancyOccupants.length - 1)
|
||||
(lotOccupancy.lotOccupancyOccupants
|
||||
.length -
|
||||
1)
|
||||
: "")) +
|
||||
"</td>"));
|
||||
rowElement
|
||||
.querySelector(".button--addLotOccupancy")
|
||||
.addEventListener("click", doAddLotOccupancy);
|
||||
searchResultsContainerElement.querySelector("tbody").append(rowElement);
|
||||
rowElement.querySelector(".button--addLotOccupancy").addEventListener("click", doAddLotOccupancy);
|
||||
searchResultsContainerElement
|
||||
.querySelector("tbody")
|
||||
.append(rowElement);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
@ -601,12 +593,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
},
|
||||
onshown: (modalElement) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
modalElement
|
||||
.querySelector("#lotOccupancySearch--occupantName")
|
||||
.addEventListener("change", doSearch);
|
||||
modalElement
|
||||
.querySelector("#lotOccupancySearch--lotName")
|
||||
.addEventListener("change", doSearch);
|
||||
modalElement.querySelector("#lotOccupancySearch--occupantName").addEventListener("change", doSearch);
|
||||
modalElement.querySelector("#lotOccupancySearch--lotName").addEventListener("change", doSearch);
|
||||
searchFormElement.addEventListener("submit", doSearch);
|
||||
},
|
||||
onremoved: () => {
|
||||
|
|
@ -635,7 +623,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||
"Searching..." +
|
||||
"</p>";
|
||||
cityssm.postJSON(urlPrefix + "/lots/doSearchLots", searchFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", searchFormElement, (responseJSON) => {
|
||||
if (responseJSON.lots.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -667,17 +655,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</button>" +
|
||||
"</td>" +
|
||||
('<td class="has-text-weight-bold">' +
|
||||
cityssm.escapeHTML(lot.lotName) +
|
||||
cityssm.escapeHTML(lot.lotName || "") +
|
||||
"</td>") +
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(lot.mapName) +
|
||||
cityssm.escapeHTML(lot.mapName || "") +
|
||||
"</td>" +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotStatus) + "</td>");
|
||||
rowElement
|
||||
.querySelector(".button--addLot")
|
||||
.addEventListener("click", doAddLot);
|
||||
searchResultsContainerElement.querySelector("tbody").append(rowElement);
|
||||
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||
("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>");
|
||||
rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot);
|
||||
searchResultsContainerElement
|
||||
.querySelector("tbody")
|
||||
.append(rowElement);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
@ -698,12 +686,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
},
|
||||
onshown: (modalElement) => {
|
||||
bulmaJS.toggleHtmlClipped();
|
||||
modalElement
|
||||
.querySelector("#lotSearch--lotName")
|
||||
.addEventListener("change", doSearch);
|
||||
modalElement
|
||||
.querySelector("#lotSearch--lotStatusId")
|
||||
.addEventListener("change", doSearch);
|
||||
modalElement.querySelector("#lotSearch--lotName").addEventListener("change", doSearch);
|
||||
modalElement.querySelector("#lotSearch--lotStatusId").addEventListener("change", doSearch);
|
||||
searchFormElement.addEventListener("submit", doSearch);
|
||||
},
|
||||
onremoved: () => {
|
||||
|
|
@ -723,7 +707,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const editComment = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doUpdateWorkOrderComment", editFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doUpdateWorkOrderComment", editFormElement, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderComments = responseJSON.workOrderComments;
|
||||
editCloseModalFunction();
|
||||
|
|
@ -732,7 +716,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Updating Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -770,7 +754,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
const deleteWorkOrderComment = (clickEvent) => {
|
||||
const workOrderCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset.workOrderCommentId, 10);
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrderComment", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderComment", {
|
||||
workOrderId,
|
||||
workOrderCommentId
|
||||
}, (responseJSON) => {
|
||||
|
|
@ -781,7 +765,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Removing Comment",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -822,7 +806,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
workOrderComment.workOrderCommentId.toString();
|
||||
tableRowElement.innerHTML =
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(workOrderComment.recordCreate_userName) +
|
||||
cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") +
|
||||
"</td>" +
|
||||
"<td>" +
|
||||
workOrderComment.workOrderCommentDateString +
|
||||
|
|
@ -831,7 +815,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
: " " + workOrderComment.workOrderCommentTimeString) +
|
||||
"</td>" +
|
||||
"<td>" +
|
||||
cityssm.escapeHTML(workOrderComment.workOrderComment) +
|
||||
cityssm.escapeHTML(workOrderComment.workOrderComment || "") +
|
||||
"</td>" +
|
||||
('<td class="is-hidden-print">' +
|
||||
'<div class="buttons are-small is-justify-content-end">' +
|
||||
|
|
@ -844,12 +828,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 = "";
|
||||
|
|
@ -859,7 +839,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let addCommentCloseModalFunction;
|
||||
const doAddComment = (formEvent) => {
|
||||
formEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doAddWorkOrderComment", formEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderComment", formEvent.currentTarget, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
workOrderComments = responseJSON.workOrderComments;
|
||||
renderWorkOrderComments();
|
||||
|
|
@ -885,9 +865,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
});
|
||||
};
|
||||
if (!isCreate) {
|
||||
document
|
||||
.querySelector("#workOrderComments--add")
|
||||
.addEventListener("click", openAddCommentModal);
|
||||
document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal);
|
||||
renderWorkOrderComments();
|
||||
}
|
||||
if (!isCreate) {
|
||||
|
|
@ -901,7 +879,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Reopening Milestone",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
@ -914,7 +892,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
|
||||
});
|
||||
const doComplete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doCompleteWorkOrderMilestone", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doCompleteWorkOrderMilestone", {
|
||||
workOrderId,
|
||||
workOrderMilestoneId
|
||||
}, processMilestoneResponse);
|
||||
|
|
@ -937,7 +915,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
clickEvent.preventDefault();
|
||||
const workOrderMilestoneId = clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;
|
||||
const doReopen = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doReopenWorkOrderMilestone", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doReopenWorkOrderMilestone", {
|
||||
workOrderId,
|
||||
workOrderMilestoneId
|
||||
}, processMilestoneResponse);
|
||||
|
|
@ -956,7 +934,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
clickEvent.preventDefault();
|
||||
const workOrderMilestoneId = clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;
|
||||
const doDelete = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrderMilestone", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderMilestone", {
|
||||
workOrderMilestoneId,
|
||||
workOrderId
|
||||
}, processMilestoneResponse);
|
||||
|
|
@ -980,7 +958,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
let editCloseModalFunction;
|
||||
const doEdit = (submitEvent) => {
|
||||
submitEvent.preventDefault();
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doUpdateWorkOrderMilestone", submitEvent.currentTarget, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doUpdateWorkOrderMilestone", submitEvent.currentTarget, (responseJSON) => {
|
||||
processMilestoneResponse(responseJSON);
|
||||
if (responseJSON.success) {
|
||||
editCloseModalFunction();
|
||||
|
|
@ -1059,7 +1037,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
('<div class="column">' +
|
||||
(milestone.workOrderMilestoneTypeId
|
||||
? "<strong>" +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneType) +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneType || "") +
|
||||
"</strong><br />"
|
||||
: "") +
|
||||
milestone.workOrderMilestoneDateString +
|
||||
|
|
@ -1068,7 +1046,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
: "") +
|
||||
"<br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription) +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") +
|
||||
"</span>" +
|
||||
"</div>") +
|
||||
('<div class="column is-narrow">' +
|
||||
|
|
@ -1100,21 +1078,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
"</div>";
|
||||
if (milestone.workOrderMilestoneCompletionDate) {
|
||||
panelBlockElement
|
||||
.querySelector(".button--reopenMilestone")
|
||||
.addEventListener("click", reopenMilestone);
|
||||
panelBlockElement.querySelector(".button--reopenMilestone").addEventListener("click", reopenMilestone);
|
||||
}
|
||||
else {
|
||||
panelBlockElement
|
||||
.querySelector(".button--editMilestone")
|
||||
.addEventListener("click", editMilestone);
|
||||
panelBlockElement
|
||||
.querySelector(".button--completeMilestone")
|
||||
.addEventListener("click", completeMilestone);
|
||||
panelBlockElement.querySelector(".button--editMilestone").addEventListener("click", editMilestone);
|
||||
panelBlockElement.querySelector(".button--completeMilestone").addEventListener("click", completeMilestone);
|
||||
}
|
||||
panelBlockElement
|
||||
.querySelector(".button--deleteMilestone")
|
||||
.addEventListener("click", deleteMilestone);
|
||||
panelBlockElement.querySelector(".button--deleteMilestone").addEventListener("click", deleteMilestone);
|
||||
milestonesPanelElement.append(panelBlockElement);
|
||||
}
|
||||
bulmaJS.init(milestonesPanelElement);
|
||||
|
|
@ -1130,7 +1100,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
const currentDateString = cityssm.dateToString(new Date());
|
||||
const _doAdd = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doAddWorkOrderMilestone", addFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderMilestone", addFormElement, (responseJSON) => {
|
||||
processMilestoneResponse(responseJSON);
|
||||
if (responseJSON.success) {
|
||||
addCloseModalFunction();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -2,7 +2,6 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const workOrderSearchFiltersFormElement = document.querySelector("#form--searchFilters");
|
||||
const workOrderMilestoneDateFilterElement = workOrderSearchFiltersFormElement.querySelector("#searchFilter--workOrderMilestoneDateFilter");
|
||||
const workOrderMilestoneDateStringElement = workOrderSearchFiltersFormElement.querySelector("#searchFilter--workOrderMilestoneDateString");
|
||||
|
|
@ -40,12 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const lot of milestone.workOrderLots) {
|
||||
lotOccupancyHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(lot.mapName) +
|
||||
cityssm.escapeHTML(lot.mapName || "") +
|
||||
'">' +
|
||||
'<i class="fas fa-vector-square" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(lot.lotName) +
|
||||
cityssm.escapeHTML(lot.lotName || "") +
|
||||
"</span>" +
|
||||
"<br />";
|
||||
}
|
||||
|
|
@ -53,12 +52,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||
lotOccupancyHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||
'">' +
|
||||
'<i class="fas fa-user" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.lotOccupancy) +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||
"</span>" +
|
||||
"<br />";
|
||||
}
|
||||
|
|
@ -87,17 +86,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
"</div>") +
|
||||
('<div class="column">' +
|
||||
'<i class="fas fa-circle" style="color:' +
|
||||
los.getRandomColor(milestone.workOrderNumber) +
|
||||
los.getRandomColor(milestone.workOrderNumber || "") +
|
||||
'" aria-hidden="true"></i>' +
|
||||
' <a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
milestone.workOrderId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(milestone.workOrderNumber) +
|
||||
cityssm.escapeHTML(milestone.workOrderNumber || "") +
|
||||
"</a><br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(milestone.workOrderDescription) +
|
||||
cityssm.escapeHTML(milestone.workOrderDescription || "") +
|
||||
"</span>" +
|
||||
"</div>") +
|
||||
('<div class="column is-size-7">' + lotOccupancyHTML + "</div>") +
|
||||
|
|
@ -115,7 +114,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||
"Loading Milestones..." +
|
||||
"</div>";
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => {
|
||||
renderMilestones(responseJSON.workOrderMilestones);
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
|
|
@ -9,8 +9,6 @@ declare const cityssm: cityssmGlobal;
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
|
||||
const workOrderSearchFiltersFormElement = document.querySelector(
|
||||
"#form--searchFilters"
|
||||
) as HTMLFormElement;
|
||||
|
|
@ -40,7 +38,7 @@ declare const cityssm: cityssmGlobal;
|
|||
|
||||
const currentDate = cityssm.dateToString(new Date());
|
||||
|
||||
let currentPanelElement: HTMLElement;
|
||||
let currentPanelElement: HTMLElement | undefined;
|
||||
let currentPanelDateString = "";
|
||||
|
||||
for (const milestone of workOrderMilestones) {
|
||||
|
|
@ -55,7 +53,7 @@ declare const cityssm: cityssmGlobal;
|
|||
currentPanelElement.innerHTML =
|
||||
'<h2 class="panel-heading">' + milestone.workOrderMilestoneDateString + "</h2>";
|
||||
|
||||
currentPanelDateString = milestone.workOrderMilestoneDateString;
|
||||
currentPanelDateString = milestone.workOrderMilestoneDateString!;
|
||||
}
|
||||
|
||||
const panelBlockElement = document.createElement("div");
|
||||
|
|
@ -64,36 +62,36 @@ declare const cityssm: cityssmGlobal;
|
|||
|
||||
if (
|
||||
!milestone.workOrderMilestoneCompletionDate &&
|
||||
milestone.workOrderMilestoneDateString < currentDate
|
||||
milestone.workOrderMilestoneDateString! < currentDate
|
||||
) {
|
||||
panelBlockElement.classList.add("has-background-warning-light");
|
||||
}
|
||||
|
||||
let lotOccupancyHTML = "";
|
||||
|
||||
for (const lot of milestone.workOrderLots) {
|
||||
for (const lot of milestone.workOrderLots!) {
|
||||
lotOccupancyHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(lot.mapName) +
|
||||
cityssm.escapeHTML(lot.mapName || "") +
|
||||
'">' +
|
||||
'<i class="fas fa-vector-square" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(lot.lotName) +
|
||||
cityssm.escapeHTML(lot.lotName || "") +
|
||||
"</span>" +
|
||||
"<br />";
|
||||
}
|
||||
|
||||
for (const lotOccupancy of milestone.workOrderLotOccupancies) {
|
||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||
for (const lotOccupancy of milestone.workOrderLotOccupancies!) {
|
||||
for (const occupant of lotOccupancy.lotOccupancyOccupants!) {
|
||||
lotOccupancyHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||
'">' +
|
||||
'<i class="fas fa-user" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.lotOccupancy) +
|
||||
'"></i> ' +
|
||||
cityssm.escapeHTML(occupant.occupantName) +
|
||||
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||
"</span>" +
|
||||
"<br />";
|
||||
}
|
||||
|
|
@ -114,35 +112,35 @@ declare const cityssm: cityssmGlobal;
|
|||
: milestone.workOrderMilestoneTimeString + "<br />") +
|
||||
(milestone.workOrderMilestoneTypeId
|
||||
? "<strong>" +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneType) +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneType!) +
|
||||
"</strong><br />"
|
||||
: "") +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription) +
|
||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription!) +
|
||||
"</span>" +
|
||||
"</div>") +
|
||||
('<div class="column">' +
|
||||
'<i class="fas fa-circle" style="color:' +
|
||||
los.getRandomColor(milestone.workOrderNumber) +
|
||||
los.getRandomColor(milestone.workOrderNumber || "") +
|
||||
'" aria-hidden="true"></i>' +
|
||||
' <a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
milestone.workOrderId +
|
||||
'">' +
|
||||
cityssm.escapeHTML(milestone.workOrderNumber) +
|
||||
cityssm.escapeHTML(milestone.workOrderNumber || "") +
|
||||
"</a><br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(milestone.workOrderDescription) +
|
||||
cityssm.escapeHTML(milestone.workOrderDescription || "") +
|
||||
"</span>" +
|
||||
"</div>") +
|
||||
('<div class="column is-size-7">' + lotOccupancyHTML + "</div>") +
|
||||
"</div>";
|
||||
|
||||
currentPanelElement.append(panelBlockElement);
|
||||
(currentPanelElement as HTMLElement).append(panelBlockElement);
|
||||
}
|
||||
|
||||
milestoneCalendarContainerElement.append(currentPanelElement);
|
||||
milestoneCalendarContainerElement.append(currentPanelElement!);
|
||||
};
|
||||
|
||||
const getMilestones = (event?: Event) => {
|
||||
|
|
@ -157,7 +155,7 @@ declare const cityssm: cityssmGlobal;
|
|||
"</div>";
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/workOrders/doGetWorkOrderMilestones",
|
||||
los.urlPrefix + "/workOrders/doGetWorkOrderMilestones",
|
||||
workOrderSearchFiltersFormElement,
|
||||
(responseJSON: { workOrderMilestones: recordTypes.WorkOrderMilestone[] }) => {
|
||||
renderMilestones(responseJSON.workOrderMilestones);
|
||||
|
|
@ -166,7 +164,7 @@ declare const cityssm: cityssmGlobal;
|
|||
};
|
||||
|
||||
workOrderMilestoneDateFilterElement.addEventListener("change", () => {
|
||||
workOrderMilestoneDateStringElement.closest("fieldset").disabled =
|
||||
workOrderMilestoneDateStringElement.closest("fieldset")!.disabled =
|
||||
workOrderMilestoneDateFilterElement.value !== "date";
|
||||
getMilestones();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
export {};
|
||||
|
|
@ -1,14 +1,15 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const apiKey = document.querySelector("main").dataset.apiKey;
|
||||
const los = exports.los;
|
||||
const workOrderTypeIdsElement = document.querySelector("#icsFilters--workOrderTypeIds");
|
||||
const workOrderMilestoneTypeIdsElement = document.querySelector("#icsFilters--workOrderMilestoneTypeIds");
|
||||
const calendarLinkElement = document.querySelector("#icsFilters--calendarURL");
|
||||
const updateCalendarURL = () => {
|
||||
let url = window.location.href.slice(0, Math.max(0, window.location.href.indexOf(window.location.pathname) + 1)) +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"api/" +
|
||||
apiKey +
|
||||
los.apiKey +
|
||||
"/" +
|
||||
"milestoneICS/" +
|
||||
"?";
|
||||
|
|
@ -30,19 +31,13 @@
|
|||
}
|
||||
calendarLinkElement.value = url.slice(0, -1);
|
||||
};
|
||||
document
|
||||
.querySelector("#icsFilters--workOrderTypeIds-all")
|
||||
.addEventListener("change", (changeEvent) => {
|
||||
document.querySelector("#icsFilters--workOrderTypeIds-all").addEventListener("change", (changeEvent) => {
|
||||
workOrderTypeIdsElement.disabled = changeEvent.currentTarget.checked;
|
||||
});
|
||||
document
|
||||
.querySelector("#icsFilters--workOrderMilestoneTypeIds-all")
|
||||
.addEventListener("change", (changeEvent) => {
|
||||
document.querySelector("#icsFilters--workOrderMilestoneTypeIds-all").addEventListener("change", (changeEvent) => {
|
||||
workOrderMilestoneTypeIdsElement.disabled = changeEvent.currentTarget.checked;
|
||||
});
|
||||
const inputSelectElements = document
|
||||
.querySelector("#panel--icsFilters")
|
||||
.querySelectorAll("input, select");
|
||||
const inputSelectElements = document.querySelector("#panel--icsFilters").querySelectorAll("input, select");
|
||||
for (const element of inputSelectElements) {
|
||||
element.addEventListener("change", updateCalendarURL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const apiKey = document.querySelector("main").dataset.apiKey;
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const workOrderTypeIdsElement = document.querySelector(
|
||||
"#icsFilters--workOrderTypeIds"
|
||||
|
|
@ -18,14 +21,11 @@
|
|||
let url =
|
||||
window.location.href.slice(
|
||||
0,
|
||||
Math.max(
|
||||
0,
|
||||
window.location.href.indexOf(window.location.pathname) + 1
|
||||
)
|
||||
Math.max(0, window.location.href.indexOf(window.location.pathname) + 1)
|
||||
) +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"api/" +
|
||||
apiKey +
|
||||
los.apiKey +
|
||||
"/" +
|
||||
"milestoneICS/" +
|
||||
"?";
|
||||
|
|
@ -59,27 +59,23 @@
|
|||
calendarLinkElement.value = url.slice(0, -1);
|
||||
};
|
||||
|
||||
document
|
||||
.querySelector("#icsFilters--workOrderTypeIds-all")
|
||||
.addEventListener("change", (changeEvent) => {
|
||||
workOrderTypeIdsElement.disabled = (
|
||||
changeEvent.currentTarget as HTMLInputElement
|
||||
).checked;
|
||||
});
|
||||
(
|
||||
document.querySelector("#icsFilters--workOrderTypeIds-all") as HTMLInputElement
|
||||
).addEventListener("change", (changeEvent) => {
|
||||
workOrderTypeIdsElement.disabled = (changeEvent.currentTarget as HTMLInputElement).checked;
|
||||
});
|
||||
|
||||
document
|
||||
.querySelector("#icsFilters--workOrderMilestoneTypeIds-all")
|
||||
.addEventListener("change", (changeEvent) => {
|
||||
workOrderMilestoneTypeIdsElement.disabled = (
|
||||
changeEvent.currentTarget as HTMLInputElement
|
||||
).checked;
|
||||
});
|
||||
(
|
||||
document.querySelector("#icsFilters--workOrderMilestoneTypeIds-all") as HTMLInputElement
|
||||
).addEventListener("change", (changeEvent) => {
|
||||
workOrderMilestoneTypeIdsElement.disabled = (
|
||||
changeEvent.currentTarget as HTMLInputElement
|
||||
).checked;
|
||||
});
|
||||
|
||||
const inputSelectElements = document
|
||||
.querySelector("#panel--icsFilters")
|
||||
.querySelectorAll("input, select") as NodeListOf<
|
||||
HTMLInputElement | HTMLSelectElement
|
||||
>;
|
||||
const inputSelectElements = (
|
||||
document.querySelector("#panel--icsFilters") as HTMLElement
|
||||
).querySelectorAll("input, select") as NodeListOf<HTMLInputElement | HTMLSelectElement>;
|
||||
|
||||
for (const element of inputSelectElements) {
|
||||
element.addEventListener("change", updateCalendarURL);
|
||||
|
|
@ -90,5 +86,5 @@
|
|||
calendarLinkElement.addEventListener("click", () => {
|
||||
calendarLinkElement.focus();
|
||||
calendarLinkElement.select();
|
||||
})
|
||||
});
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const workOrderPrints = exports.workOrderPrints;
|
||||
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
||||
los.initializeDatePickers(searchFilterFormElement);
|
||||
|
|
@ -16,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||
"Loading Work Orders..." +
|
||||
"</div>";
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doSearchWorkOrders", searchFilterFormElement, (responseJSON) => {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doSearchWorkOrders", searchFilterFormElement, (responseJSON) => {
|
||||
if (responseJSON.workOrders.length === 0) {
|
||||
searchResultsContainerElement.innerHTML =
|
||||
'<div class="message is-info">' +
|
||||
|
|
@ -30,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const lot of workOrder.workOrderLots) {
|
||||
relatedHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(lot.mapName) +
|
||||
cityssm.escapeHTML(lot.mapName || "") +
|
||||
'">' +
|
||||
'<i class="fas fa-vector-square" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
|
|
@ -42,7 +41,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
for (const occupant of occupancy.lotOccupancyOccupants) {
|
||||
relatedHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||
'">' +
|
||||
'<i class="fas fa-user" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
|
|
@ -54,20 +53,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
workOrder.workOrderId +
|
||||
'">' +
|
||||
(workOrder.workOrderNumber.trim()
|
||||
? cityssm.escapeHTML(workOrder.workOrderNumber)
|
||||
? cityssm.escapeHTML(workOrder.workOrderNumber || "")
|
||||
: "(No Number)") +
|
||||
"</a>" +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
cityssm.escapeHTML(workOrder.workOrderType) +
|
||||
cityssm.escapeHTML(workOrder.workOrderType || "") +
|
||||
"<br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(workOrder.workOrderDescription) +
|
||||
cityssm.escapeHTML(workOrder.workOrderDescription || "") +
|
||||
"</span>" +
|
||||
"</td>") +
|
||||
('<td class="is-nowrap"><span class="is-size-7">' +
|
||||
|
|
@ -95,7 +94,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
(workOrderPrints.length > 0
|
||||
? "<td>" +
|
||||
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/print/" +
|
||||
workOrderPrints[0] +
|
||||
"/?workOrderId=" +
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
/* eslint-disable @typescript-eslint/no-non-null-assertion, unicorn/prefer-module */
|
||||
|
||||
import type * as recordTypes from "../types/recordTypes";
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
|
|
@ -9,8 +9,6 @@ declare const cityssm: cityssmGlobal;
|
|||
(() => {
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
|
||||
const workOrderPrints: string[] = exports.workOrderPrints;
|
||||
|
||||
const searchFilterFormElement = document.querySelector(
|
||||
|
|
@ -40,7 +38,7 @@ declare const cityssm: cityssmGlobal;
|
|||
"</div>";
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/workOrders/doSearchWorkOrders",
|
||||
los.urlPrefix + "/workOrders/doSearchWorkOrders",
|
||||
searchFilterFormElement,
|
||||
(responseJSON: { count: number; workOrders: recordTypes.WorkOrder[] }) => {
|
||||
if (responseJSON.workOrders.length === 0) {
|
||||
|
|
@ -57,10 +55,10 @@ declare const cityssm: cityssmGlobal;
|
|||
for (const workOrder of responseJSON.workOrders) {
|
||||
let relatedHTML = "";
|
||||
|
||||
for (const lot of workOrder.workOrderLots) {
|
||||
for (const lot of workOrder.workOrderLots!) {
|
||||
relatedHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(lot.mapName) +
|
||||
cityssm.escapeHTML(lot.mapName || "") +
|
||||
'">' +
|
||||
'<i class="fas fa-vector-square" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.lot) +
|
||||
|
|
@ -69,11 +67,11 @@ declare const cityssm: cityssmGlobal;
|
|||
"</span><br />";
|
||||
}
|
||||
|
||||
for (const occupancy of workOrder.workOrderLotOccupancies) {
|
||||
for (const occupant of occupancy.lotOccupancyOccupants) {
|
||||
for (const occupancy of workOrder.workOrderLotOccupancies!) {
|
||||
for (const occupant of occupancy.lotOccupancyOccupants!) {
|
||||
relatedHTML +=
|
||||
'<span class="has-tooltip-left" data-tooltip="' +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
||||
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||
'">' +
|
||||
'<i class="fas fa-user" aria-label="' +
|
||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||
|
|
@ -88,20 +86,20 @@ declare const cityssm: cityssmGlobal;
|
|||
"<tr>" +
|
||||
("<td>" +
|
||||
'<a class="has-text-weight-bold" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/workOrders/" +
|
||||
workOrder.workOrderId +
|
||||
'">' +
|
||||
(workOrder.workOrderNumber.trim()
|
||||
? cityssm.escapeHTML(workOrder.workOrderNumber)
|
||||
(workOrder.workOrderNumber!.trim()
|
||||
? cityssm.escapeHTML(workOrder.workOrderNumber || "")
|
||||
: "(No Number)") +
|
||||
"</a>" +
|
||||
"</td>") +
|
||||
("<td>" +
|
||||
cityssm.escapeHTML(workOrder.workOrderType) +
|
||||
cityssm.escapeHTML(workOrder.workOrderType || "") +
|
||||
"<br />" +
|
||||
'<span class="is-size-7">' +
|
||||
cityssm.escapeHTML(workOrder.workOrderDescription) +
|
||||
cityssm.escapeHTML(workOrder.workOrderDescription || "") +
|
||||
"</span>" +
|
||||
"</td>") +
|
||||
('<td class="is-nowrap"><span class="is-size-7">' +
|
||||
|
|
@ -129,7 +127,7 @@ declare const cityssm: cityssmGlobal;
|
|||
(workOrderPrints.length > 0
|
||||
? "<td>" +
|
||||
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||
urlPrefix +
|
||||
los.urlPrefix +
|
||||
"/print/" +
|
||||
workOrderPrints[0] +
|
||||
"/?workOrderId=" +
|
||||
|
|
|
|||
|
|
@ -1,27 +1,23 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los;
|
||||
const reopenWorkOrderButtonElement = document.querySelector("#button--reopenWorkOrder");
|
||||
if (reopenWorkOrderButtonElement) {
|
||||
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
||||
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||
const doReopen = () => {
|
||||
cityssm.postJSON(urlPrefix + "/workOrders/doReopenWorkOrder", {
|
||||
cityssm.postJSON(los.urlPrefix + "/workOrders/doReopenWorkOrder", {
|
||||
workOrderId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
urlPrefix +
|
||||
"/workOrders/" +
|
||||
workOrderId +
|
||||
"/edit/?t=" +
|
||||
Date.now();
|
||||
los.urlPrefix + "/workOrders/" + workOrderId + "/edit/?t=" + Date.now();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Reopening Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
/* eslint-disable unicorn/prefer-module */
|
||||
|
||||
import type * as globalTypes from "../types/globalTypes";
|
||||
|
||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||
|
||||
import type { BulmaJS } from "@cityssm/bulma-js/types";
|
||||
|
||||
declare const cityssm: cityssmGlobal;
|
||||
declare const bulmaJS: BulmaJS;
|
||||
|
||||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const los = exports.los as globalTypes.LOS;
|
||||
|
||||
const reopenWorkOrderButtonElement = document.querySelector(
|
||||
"#button--reopenWorkOrder"
|
||||
|
|
@ -15,30 +18,22 @@ declare const bulmaJS: BulmaJS;
|
|||
|
||||
if (reopenWorkOrderButtonElement) {
|
||||
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
||||
const workOrderId =
|
||||
reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||
|
||||
const doReopen = () => {
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/workOrders/doReopenWorkOrder",
|
||||
los.urlPrefix + "/workOrders/doReopenWorkOrder",
|
||||
{
|
||||
workOrderId
|
||||
},
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
}) => {
|
||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||
if (responseJSON.success) {
|
||||
window.location.href =
|
||||
urlPrefix +
|
||||
"/workOrders/" +
|
||||
workOrderId +
|
||||
"/edit/?t=" +
|
||||
Date.now();
|
||||
los.urlPrefix + "/workOrders/" + workOrderId + "/edit/?t=" + Date.now();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Reopening Work Order",
|
||||
message: responseJSON.errorMessage,
|
||||
message: responseJSON.errorMessage || "",
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,a=()=>{cityssm.postJSON(e+"/admin/doCleanupDatabase",{},e=>{e.success?bulmaJS.alert({title:"Database Cleaned Up Successfully",message:e.inactivedRecordCount+" records inactivated, "+e.purgedRecordCount+" permanently deleted.",contextualColorName:"success"}):bulmaJS.alert({title:"Error Cleaning Database",message:e.errorMessage,contextualColorName:"danger"})})};document.querySelector("#button--cleanupDatabase").addEventListener("click",()=>{bulmaJS.confirm({title:"Cleanup Database",message:"Are you sure you want to cleanup up the database?",okButton:{text:"Yes, Cleanup Database",callbackFunction:a}})})})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,a=()=>{cityssm.postJSON(e.urlPrefix+"/admin/doCleanupDatabase",{},e=>{e.success?bulmaJS.alert({title:"Database Cleaned Up Successfully",message:e.inactivedRecordCount+" records inactivated, "+e.purgedRecordCount+" permanently deleted.",contextualColorName:"success"}):bulmaJS.alert({title:"Error Cleaning Database",message:e.errorMessage||"",contextualColorName:"danger"})})};document.querySelector("#button--cleanupDatabase").addEventListener("click",()=>{bulmaJS.confirm({title:"Cleanup Database",message:"Are you sure you want to cleanup up the database?",okButton:{text:"Yes, Cleanup Database",callbackFunction:a}})})})();
|
||||
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,o=document.querySelectorAll(".fa-circle[data-work-order-number");for(const r of o)r.style.color=e.getRandomColor(r.dataset.workOrderNumber)})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,o=document.querySelectorAll(".fa-circle[data-work-order-number");for(const r of o)r.style.color=e.getRandomColor(r.dataset.workOrderNumber||"")})();
|
||||
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 t=document.querySelector("main").dataset.urlPrefix,a=exports.lotOccupancyPrints,e=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),c=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),n=()=>{const n=Number.parseInt(i.value,10);s.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading '+exports.aliases.occupancies+"...</div>",cityssm.postJSON(t+"/lotOccupancies/doSearchLotOccupancies",e,e=>{if(0===e.lotOccupancies.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase())+" records that meet the search criteria.</p></div>");const i=document.createElement("tbody"),o=cityssm.dateToString(new Date);for(const s of e.lotOccupancies){let e="";e=s.occupancyStartDateString<=o&&(""===s.occupancyEndDateString||s.occupancyEndDateString>=o)?'<span class="has-tooltip-right" data-tooltip="Current '+exports.aliases.occupancy+'"><i class="fas fa-play" aria-label="Current '+exports.aliases.occupancy+'"></i></span>':s.occupancyStartDateString>o?'<span class="has-tooltip-right" data-tooltip="Future '+exports.aliases.occupancy+'"><i class="fas fa-fast-forward" aria-label="Future '+exports.aliases.occupancy+'"></i></span>':'<span class="has-tooltip-right" data-tooltip="Past '+exports.aliases.occupancy+'"><i class="fas fa-stop" aria-label="Past '+exports.aliases.occupancy+'"></i></span>';let c="";for(const t of s.lotOccupancyOccupants)c+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(t.lotOccupantType)+'">'+cityssm.escapeHTML(t.occupantName)+"</span><br />";i.insertAdjacentHTML("beforeend",'<tr><td class="has-width-1">'+e+'</td><td><a class="has-text-weight-bold" href="'+t+"/lotOccupancies/"+s.lotOccupancyId+'">'+cityssm.escapeHTML(s.occupancyType)+"</a></td><td>"+(s.lotName?'<a class="has-tooltip-right" data-tooltip="'+cityssm.escapeHTML(s.lotType)+'" href="'+t+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName)+"</a>":'<span class="has-text-grey">(No '+cityssm.escapeHTML(exports.aliases.lot)+")</span>")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(s.mapName||"")+"</span></td><td>"+s.occupancyStartDateString+"</td><td>"+(s.occupancyEndDate?s.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+c+"</td>"+(a.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+t+"/print/"+a[0]+"/?lotOccupancyId="+s.lotOccupancyId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}s.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th class="has-width-1"></th><th>'+cityssm.escapeHTML(exports.aliases.occupancy)+" Type</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>"+cityssm.escapeHTML(exports.aliases.occupancyStartDate)+"</th><th>End Date</th><th>"+cityssm.escapeHTML(exports.aliases.occupants)+"</th>"+(a.length>0?'<th class="has-width-1"><span class="is-sr-only">Print</span></th>':"")+'</tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(n+1).toString()+" to "+Math.min(e.count,c+n)+" of "+e.count+'</div></div><div class="level-right">'+(n>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(c+n<e.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",s.querySelector("table").append(i),n>0&&s.querySelector("button[data-page='previous']").addEventListener("click",l),c+n<e.count&&s.querySelector("button[data-page='next']").addEventListener("click",r)})},o=()=>{i.value="0",n()},l=()=>{i.value=Math.max(Number.parseInt(i.value,10)-c,0).toString(),n()},r=()=>{i.value=(Number.parseInt(i.value,10)+c).toString(),n()},p=e.querySelectorAll("input, select");for(const t of p)t.addEventListener("change",o);e.addEventListener("submit",t=>{t.preventDefault(),o()}),n()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const t=exports.los,a=exports.lotOccupancyPrints,e=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),c=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),l=()=>{const l=Number.parseInt(i.value,10);s.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading '+exports.aliases.occupancies+"...</div>",cityssm.postJSON(t.urlPrefix+"/lotOccupancies/doSearchLotOccupancies",e,e=>{if(0===e.lotOccupancies.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+cityssm.escapeHTML(exports.aliases.occupancy.toLowerCase())+" records that meet the search criteria.</p></div>");const i=document.createElement("tbody"),o=cityssm.dateToString(new Date);for(const s of e.lotOccupancies){let e="";e=s.occupancyStartDateString<=o&&(""===s.occupancyEndDateString||s.occupancyEndDateString>=o)?'<span class="has-tooltip-right" data-tooltip="Current '+exports.aliases.occupancy+'"><i class="fas fa-play" aria-label="Current '+exports.aliases.occupancy+'"></i></span>':s.occupancyStartDateString>o?'<span class="has-tooltip-right" data-tooltip="Future '+exports.aliases.occupancy+'"><i class="fas fa-fast-forward" aria-label="Future '+exports.aliases.occupancy+'"></i></span>':'<span class="has-tooltip-right" data-tooltip="Past '+exports.aliases.occupancy+'"><i class="fas fa-stop" aria-label="Past '+exports.aliases.occupancy+'"></i></span>';let c="";for(const t of s.lotOccupancyOccupants)c+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(t.lotOccupantType||"")+'">'+cityssm.escapeHTML(t.occupantName||"")+"</span><br />";i.insertAdjacentHTML("beforeend",'<tr><td class="has-width-1">'+e+'</td><td><a class="has-text-weight-bold" href="'+t.urlPrefix+"/lotOccupancies/"+s.lotOccupancyId+'">'+cityssm.escapeHTML(s.occupancyType)+"</a></td><td>"+(s.lotName?'<a class="has-tooltip-right" data-tooltip="'+cityssm.escapeHTML(s.lotType||"")+'" href="'+t.urlPrefix+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName)+"</a>":'<span class="has-text-grey">(No '+cityssm.escapeHTML(exports.aliases.lot)+")</span>")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(s.mapName||"")+"</span></td><td>"+s.occupancyStartDateString+"</td><td>"+(s.occupancyEndDate?s.occupancyEndDateString:'<span class="has-text-grey">(No End Date)</span>')+"</td><td>"+c+"</td>"+(a.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+t.urlPrefix+"/print/"+a[0]+"/?lotOccupancyId="+s.lotOccupancyId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}s.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th class="has-width-1"></th><th>'+cityssm.escapeHTML(exports.aliases.occupancy)+" Type</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>"+cityssm.escapeHTML(exports.aliases.occupancyStartDate)+"</th><th>End Date</th><th>"+cityssm.escapeHTML(exports.aliases.occupants)+"</th>"+(a.length>0?'<th class="has-width-1"><span class="is-sr-only">Print</span></th>':"")+'</tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(l+1).toString()+" to "+Math.min(e.count,c+l)+" of "+e.count+'</div></div><div class="level-right">'+(l>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(c+l<e.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",s.querySelector("table").append(i),l>0&&s.querySelector("button[data-page='previous']").addEventListener("click",r),c+l<e.count&&s.querySelector("button[data-page='next']").addEventListener("click",n)})},o=()=>{i.value="0",l()},r=()=>{i.value=Math.max(Number.parseInt(i.value,10)-c,0).toString(),l()},n=()=>{i.value=(Number.parseInt(i.value,10)+c).toString(),l()},p=e.querySelectorAll("input, select");for(const t of p)t.addEventListener("change",o);e.addEventListener("submit",t=>{t.preventDefault(),o()}),l()})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("#form--searchFilters"),s=document.querySelector("#container--searchResults"),a=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),r=()=>{const r=Number.parseInt(i.value,10);s.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading '+exports.aliases.lots+"...</div>",cityssm.postJSON(e+"/lots/doSearchLots",t,t=>{if(0===t.lots.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.lots.toLowerCase()+" that meet the search criteria.</p></div>");const i=document.createElement("tbody");for(const s of t.lots)i.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e+"/lots/"+s.lotId+'">'+cityssm.escapeHTML(s.lotName)+'</a></td><td><a href="'+e+"/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"><thead><tr><th>'+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>"+cityssm.escapeHTML(exports.aliases.map)+"</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+' Type</th><th>Status</th></tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(r+1).toString()+" to "+Math.min(t.count,a+r)+" of "+t.count+'</div></div><div class="level-right">'+(r>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(a+r<t.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",s.querySelector("table").append(i),r>0&&s.querySelector("button[data-page='previous']").addEventListener("click",o),a+r<t.count&&s.querySelector("button[data-page='next']").addEventListener("click",n)})},l=()=>{i.value="0",r()},o=()=>{i.value=Math.max(Number.parseInt(i.value,10)-a,0).toString(),r()},n=()=>{i.value=(Number.parseInt(i.value,10)+a).toString(),r()},c=t.querySelectorAll("input, select");for(const e of c)e.addEventListener("change",l);t.addEventListener("submit",e=>{e.preventDefault(),l()}),r()})();
|
||||
"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),i=document.querySelector("#searchFilter--offset"),r=()=>{const r=Number.parseInt(i.value,10);s.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading '+exports.aliases.lots+"...</div>",cityssm.postJSON(e.urlPrefix+"/lots/doSearchLots",t,t=>{if(0===t.lots.length)return void(s.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.lots.toLowerCase()+" that meet the search criteria.</p></div>");const i=document.createElement("tbody");for(const s of t.lots)i.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"><thead><tr><th>'+cityssm.escapeHTML(exports.aliases.lot)+"</th><th>"+cityssm.escapeHTML(exports.aliases.map)+"</th><th>"+cityssm.escapeHTML(exports.aliases.lot)+' Type</th><th>Status</th></tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(r+1).toString()+" to "+Math.min(t.count,a+r)+" of "+t.count+'</div></div><div class="level-right">'+(r>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(a+r<t.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",s.querySelector("table").append(i),r>0&&s.querySelector("button[data-page='previous']").addEventListener("click",o),a+r<t.count&&s.querySelector("button[data-page='next']").addEventListener("click",n)})},l=()=>{i.value="0",r()},o=()=>{i.value=Math.max(Number.parseInt(i.value,10)-a,0).toString(),r()},n=()=>{i.value=(Number.parseInt(i.value,10)+a).toString(),r()},c=t.querySelectorAll("input, select");for(const e of c)e.addEventListener("change",l);t.addEventListener("submit",e=>{e.preventDefault(),l()}),r()})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=e=>{const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()},t={type:"date",dateFormat:"yyyy-MM-dd",showFooter:!1,color:"info",displayMode:"dialog"},o={type:"time",timeFormat:"hh:mm",color:"info",displayMode:"dialog",validateLabel:"Set Time",minuteSteps:1},a=["red","green","orange","blue","pink","yellow","purple"],s=["bright","light","dark"],l={highlightMap:(e,t,o)=>{let a,s=t;for(;!(a=e.querySelector("#"+s))&&s.includes("-");)s=s.slice(0,Math.max(0,s.lastIndexOf("-")));if(a){a.style.fill=null,a.classList.add("highlight","is-"+o);const e=a.querySelectorAll("path");for(const t of e)t.style.fill=null}},initializeUnlockFieldButtons:t=>{const o=t.querySelectorAll(".is-unlock-field-button");for(const t of o)t.addEventListener("click",e)},initializeDatePickers:e=>{const o=e.querySelectorAll("input[type='date']");for(const a of o){const o=Object.assign({},t);a.required&&(o.showClearButton=!1),a.min&&(o.minDate=cityssm.dateStringToDate(a.min)),a.max&&(o.maxDate=cityssm.dateStringToDate(a.max));const s=exports.bulmaCalendar.attach(a,o)[0];s.on("save",()=>{a.value=s.value(),a.dispatchEvent(new Event("change"))}),s.on("show",()=>{document.querySelector("html").classList.add("is-clipped")}),s.on("hide",()=>{bulmaJS.toggleHtmlClipped()});const l=e.querySelector("#"+s._id),r=l.querySelectorAll(".datepicker-nav button.is-text");for(const e of r)e.classList.add("is-"+t.color),e.classList.remove("is-text");const n=l.querySelector(".datetimepicker-clear-button");n&&(a.required?n.remove():(n.dataset.tooltip="Clear",n.ariaLabel="Clear",n.innerHTML='<span class="has-text-weight-bold" aria-hidden="true">×</span>'));const i=document.querySelector("label[for='"+a.id+"']");i&&(l.querySelector(".datetimepicker-dummy-input").ariaLabel=i.textContent)}},initializeTimePickers:e=>{const t=e.querySelectorAll("input[type='time']");for(const a of t){const t=Object.assign({},o);a.required&&(t.showClearButton=!1);const s=exports.bulmaCalendar.attach(a,t)[0];s.on("save",()=>{a.value=s.value(),a.dispatchEvent(new Event("change"))}),s.on("show",()=>{document.querySelector("html").classList.add("is-clipped")}),s.on("hide",()=>{bulmaJS.toggleHtmlClipped()});const l=e.querySelector("#"+s._id),r=l.querySelector(".datetimepicker-footer-cancel");r&&r.remove();const n=l.querySelector(".datetimepicker-clear-button");n&&(a.required?n.remove():(n.dataset.tooltip="Clear",n.innerHTML='<span class="has-text-weight-bold" aria-hidden="true">×</span>'))}},populateAliases:e=>{const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Map":e.textContent=exports.aliases.map;break;case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},getRandomColor:e=>{let t=e;return t.length<2&&(t+="a1"),exports.randomColor({seed:t+t,hue:a[t.codePointAt(t.length-1)%a.length],luminosity:s[t.codePointAt(t.length-2)%s.length]})}};exports.los=l})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=e=>{const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()},t={type:"date",dateFormat:"yyyy-MM-dd",showFooter:!1,color:"info",displayMode:"dialog"},o={type:"time",timeFormat:"hh:mm",color:"info",displayMode:"dialog",validateLabel:"Set Time",minuteSteps:1},a=["red","green","orange","blue","pink","yellow","purple"],s=["bright","light","dark"],l={urlPrefix:document.querySelector("main").dataset.urlPrefix,apiKey:document.querySelector("main").dataset.apiKey,highlightMap:(e,t,o)=>{let a,s=t;for(;!(a=e.querySelector("#"+s))&&s.includes("-");)s=s.slice(0,Math.max(0,s.lastIndexOf("-")));if(a){a.style.fill="",a.classList.add("highlight","is-"+o);const e=a.querySelectorAll("path");for(const t of e)t.style.fill=""}},initializeUnlockFieldButtons:t=>{const o=t.querySelectorAll(".is-unlock-field-button");for(const t of o)t.addEventListener("click",e)},initializeDatePickers:e=>{const o=e.querySelectorAll("input[type='date']");for(const a of o){const o=Object.assign({},t);a.required&&(o.showClearButton=!1),a.min&&(o.minDate=cityssm.dateStringToDate(a.min)),a.max&&(o.maxDate=cityssm.dateStringToDate(a.max));const s=exports.bulmaCalendar.attach(a,o)[0];s.on("save",()=>{a.value=s.value(),a.dispatchEvent(new Event("change"))}),s.on("show",()=>{document.querySelector("html").classList.add("is-clipped")}),s.on("hide",()=>{bulmaJS.toggleHtmlClipped()});const l=e.querySelector("#"+s._id),r=l.querySelectorAll(".datepicker-nav button.is-text");for(const e of r)e.classList.add("is-"+t.color),e.classList.remove("is-text");const i=l.querySelector(".datetimepicker-clear-button");i&&(a.required?i.remove():(i.dataset.tooltip="Clear",i.ariaLabel="Clear",i.innerHTML='<span class="has-text-weight-bold" aria-hidden="true">×</span>'));const n=document.querySelector("label[for='"+a.id+"']");n&&(l.querySelector(".datetimepicker-dummy-input").ariaLabel=n.textContent)}},initializeTimePickers:e=>{const t=e.querySelectorAll("input[type='time']");for(const a of t){const t=Object.assign({},o);a.required&&(t.showClearButton=!1);const s=exports.bulmaCalendar.attach(a,t)[0];s.on("save",()=>{a.value=s.value(),a.dispatchEvent(new Event("change"))}),s.on("show",()=>{document.querySelector("html").classList.add("is-clipped")}),s.on("hide",()=>{bulmaJS.toggleHtmlClipped()});const l=e.querySelector("#"+s._id),r=l.querySelector(".datetimepicker-footer-cancel");r&&r.remove();const i=l.querySelector(".datetimepicker-clear-button");i&&(a.required?i.remove():(i.dataset.tooltip="Clear",i.innerHTML='<span class="has-text-weight-bold" aria-hidden="true">×</span>'))}},populateAliases:e=>{const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Map":e.textContent=exports.aliases.map;break;case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},getRandomColor:e=>{let t=e;return t.length<2&&(t+="a1"),exports.randomColor({seed:t+t,hue:a[t.codePointAt(t.length-1)%a.length],luminosity:s[t.codePointAt(t.length-2)%s.length]})}};exports.los=l})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("#map--mapId").value,a=""===t,s=document.querySelector("#form--map");s.addEventListener("submit",t=>{t.preventDefault(),cityssm.postJSON(e+"/maps/"+(a?"doCreateMap":"doUpdateMap"),s,t=>{t.success?(cityssm.disableNavBlocker(),a?window.location.href=e+"/maps/"+t.mapId+"/edit":bulmaJS.alert({message:exports.aliases.map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.map,message:t.errorMessage,contextualColorName:"danger"})})});const o=s.querySelectorAll("input, select");for(const e of o)e.addEventListener("change",cityssm.enableNavBlocker);a||document.querySelector("#button--deleteMap").addEventListener("click",a=>{a.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.map,message:"Are you sure you want to delete this "+exports.aliases.map.toLowerCase()+" and all related "+exports.aliases.lots.toLowerCase()+"?",contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.map+"?",callbackFunction:()=>{cityssm.postJSON(e+"/maps/doDeleteMap",{mapId:t},t=>{t.success?window.location.href=e+"/maps?t="+Date.now():bulmaJS.alert({title:"Error Deleting "+exports.aliases.map,message:t.errorMessage,contextualColorName:"danger"})})}}})})})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#map--mapId").value,a=""===t,s=document.querySelector("#form--map");s.addEventListener("submit",t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/maps/"+(a?"doCreateMap":"doUpdateMap"),s,t=>{t.success?(cityssm.disableNavBlocker(),a?window.location.href=e.urlPrefix+"/maps/"+t.mapId+"/edit":bulmaJS.alert({message:exports.aliases.map+" Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.map,message:t.errorMessage||"",contextualColorName:"danger"})})});const o=s.querySelectorAll("input, select");for(const e of o)e.addEventListener("change",cityssm.enableNavBlocker);a||document.querySelector("#button--deleteMap").addEventListener("click",a=>{a.preventDefault();bulmaJS.confirm({title:"Delete "+exports.aliases.map,message:"Are you sure you want to delete this "+exports.aliases.map.toLowerCase()+" and all related "+exports.aliases.lots.toLowerCase()+"?",contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.map+"?",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/maps/doDeleteMap",{mapId:t},t=>{t.success?window.location.href=e.urlPrefix+"/maps?t="+Date.now():bulmaJS.alert({title:"Error Deleting "+exports.aliases.map,message:t.errorMessage||"",contextualColorName:"danger"})})}}})})})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,a=exports.maps,s=document.querySelector("#searchFilter--map"),t=document.querySelector("#container--searchResults"),r=()=>{t.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading '+exports.aliases.maps+"...</div>";let r=0;const i=document.createElement("tbody"),d=s.value.trim().toLowerCase().split(" ");for(const s of a){const a=(s.mapName+" "+s.mapDescription+" "+s.mapAddress1+" "+s.mapAddress2).toLowerCase();let t=!0;for(const e of d)if(!a.includes(e)){t=!1;break}t&&(r+=1,i.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e+"/maps/"+s.mapId+'">'+cityssm.escapeHTML(s.mapName||"(No Name)")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(s.mapDescription)+"</span></td><td>"+(s.mapAddress1?cityssm.escapeHTML(s.mapAddress1)+"<br />":"")+(s.mapAddress2?cityssm.escapeHTML(s.mapAddress2)+"<br />":"")+(s.mapCity||s.mapProvince?cityssm.escapeHTML(s.mapCity)+", "+cityssm.escapeHTML(s.mapProvince)+"<br />":"")+(s.mapPostalCode?cityssm.escapeHTML(s.mapPostalCode):"")+"</td><td>"+cityssm.escapeHTML(s.mapPhoneNumber)+'</td><td class="has-text-centered">'+(s.mapLatitude&&s.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">'+(s.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+"/lots?mapId="+s.mapId+'">'+s.lotCount+"</a></td></tr>"))}if(t.innerHTML="",0===r)t.innerHTML='<div class="message is-info"><p class="message-body">There are no '+exports.aliases.maps.toLowerCase()+" that meet the search criteria.</p></div>";else{const e=document.createElement("table");e.className="table is-fullwidth is-striped is-hoverable has-sticky-header",e.innerHTML="<thead><tr><th>"+exports.aliases.map+'</th><th>Address</th><th>Phone Number</th><th class="has-text-centered">Coordinates</th><th class="has-text-centered">Image</th><th class="has-text-right">'+exports.aliases.lot+" Count</th></tr></thead>",e.append(i),t.append(e)}};s.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"),r=()=>{t.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading '+exports.aliases.maps+"...</div>";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"><p class="message-body">There are no '+exports.aliases.maps.toLowerCase()+" that meet the search criteria.</p></div>";else{const e=document.createElement("table");e.className="table is-fullwidth is-striped is-hoverable has-sticky-header",e.innerHTML="<thead><tr><th>"+exports.aliases.map+'</th><th>Address</th><th>Phone Number</th><th class="has-text-centered">Coordinates</th><th class="has-text-centered">Image</th><th class="has-text-right">'+exports.aliases.lot+" Count</th></tr></thead>",e.append(i),t.append(e)}};a.addEventListener("keyup",r),document.querySelector("#form--searchFilters").addEventListener("submit",e=>{e.preventDefault(),r()}),r()})();
|
||||
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("main").dataset.urlPrefix,r=document.querySelector("#form--searchFilters"),a=r.querySelector("#searchFilter--workOrderMilestoneDateFilter"),t=r.querySelector("#searchFilter--workOrderMilestoneDateString"),i=document.querySelector("#container--milestoneCalendar"),o=a=>{a&&a.preventDefault(),i.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading Milestones...</div>',cityssm.postJSON(s+"/workOrders/doGetWorkOrderMilestones",r,r=>{(r=>{if(0===r.length)return void(i.innerHTML='<div class="message is-info"><p class="message-body">There are no milestones that meet the search criteria.</p></div>');i.innerHTML="";const a=cityssm.dateToString(new Date);let t,o="";for(const n of r){o!==n.workOrderMilestoneDateString&&(t&&i.append(t),(t=document.createElement("div")).className="panel",t.innerHTML='<h2 class="panel-heading">'+n.workOrderMilestoneDateString+"</h2>",o=n.workOrderMilestoneDateString);const r=document.createElement("div");r.className="panel-block is-block",!n.workOrderMilestoneCompletionDate&&n.workOrderMilestoneDateString<a&&r.classList.add("has-background-warning-light");let c="";for(const e of n.workOrderLots)c+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(e.mapName)+'"><i class="fas fa-vector-square" aria-label="'+cityssm.escapeHTML(exports.aliases.lot)+'"></i> '+cityssm.escapeHTML(e.lotName)+"</span><br />";for(const e of n.workOrderLotOccupancies)for(const s of e.lotOccupancyOccupants)c+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(s.lotOccupantType)+'"><i class="fas fa-user" aria-label="'+cityssm.escapeHTML(exports.aliases.lotOccupancy)+'"></i> '+cityssm.escapeHTML(s.occupantName)+"</span><br />";r.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(n.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===n.workOrderMilestoneTime?"":n.workOrderMilestoneTimeString+"<br />")+(n.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(n.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(n.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(n.workOrderNumber)+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+s+"/workOrders/"+n.workOrderId+'">'+cityssm.escapeHTML(n.workOrderNumber)+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(n.workOrderDescription)+'</span></div><div class="column is-size-7">'+c+"</div></div>",t.append(r)}i.append(t)})(r.workOrderMilestones)})};a.addEventListener("change",()=>{t.closest("fieldset").disabled="date"!==a.value,o()}),e.initializeDatePickers(r),t.addEventListener("change",o),r.addEventListener("submit",o),o()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar"),i=r=>{r&&r.preventDefault(),t.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading Milestones...</div>',cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{(s=>{if(0===s.length)return void(t.innerHTML='<div class="message is-info"><p class="message-body">There are no milestones that meet the search criteria.</p></div>');t.innerHTML="";const r=cityssm.dateToString(new Date);let a,i="";for(const o of s){i!==o.workOrderMilestoneDateString&&(a&&t.append(a),(a=document.createElement("div")).className="panel",a.innerHTML='<h2 class="panel-heading">'+o.workOrderMilestoneDateString+"</h2>",i=o.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!o.workOrderMilestoneCompletionDate&&o.workOrderMilestoneDateString<r&&s.classList.add("has-background-warning-light");let n="";for(const e of o.workOrderLots)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(e.mapName||"")+'"><i class="fas fa-vector-square" aria-label="'+cityssm.escapeHTML(exports.aliases.lot)+'"></i> '+cityssm.escapeHTML(e.lotName||"")+"</span><br />";for(const e of o.workOrderLotOccupancies)for(const s of e.lotOccupancyOccupants)n+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(s.lotOccupantType||"")+'"><i class="fas fa-user" aria-label="'+cityssm.escapeHTML(exports.aliases.lotOccupancy)+'"></i> '+cityssm.escapeHTML(s.occupantName||"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(o.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===o.workOrderMilestoneTime?"":o.workOrderMilestoneTimeString+"<br />")+(o.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(o.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(o.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(o.workOrderNumber||"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.urlPrefix+"/workOrders/"+o.workOrderId+'">'+cityssm.escapeHTML(o.workOrderNumber||"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(o.workOrderDescription||"")+'</span></div><div class="column is-size-7">'+n+"</div></div>",a.append(s)}t.append(a)})(s.workOrderMilestones)})};r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})();
|
||||
|
|
@ -1 +1 @@
|
|||
(()=>{const e=document.querySelector("main").dataset.urlPrefix,t=document.querySelector("main").dataset.apiKey,r=document.querySelector("#icsFilters--workOrderTypeIds"),c=document.querySelector("#icsFilters--workOrderMilestoneTypeIds"),l=document.querySelector("#icsFilters--calendarURL"),o=()=>{let o=window.location.href.slice(0,Math.max(0,window.location.href.indexOf(window.location.pathname)+1))+e+"api/"+t+"/milestoneICS/?";if(!r.disabled&&r.selectedOptions.length>0){o+="workOrderTypeIds=";for(const e of r.selectedOptions)o+=e.value+",";o=o.slice(0,-1)+"&"}if(!c.disabled&&c.selectedOptions.length>0){o+="workOrderMilestoneTypeIds=";for(const e of c.selectedOptions)o+=e.value+",";o=o.slice(0,-1)+"&"}l.value=o.slice(0,-1)};document.querySelector("#icsFilters--workOrderTypeIds-all").addEventListener("change",e=>{r.disabled=e.currentTarget.checked}),document.querySelector("#icsFilters--workOrderMilestoneTypeIds-all").addEventListener("change",e=>{c.disabled=e.currentTarget.checked});const s=document.querySelector("#panel--icsFilters").querySelectorAll("input, select");for(const e of s)e.addEventListener("change",o);o(),l.addEventListener("click",()=>{l.focus(),l.select()})})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("#icsFilters--workOrderTypeIds"),r=document.querySelector("#icsFilters--workOrderMilestoneTypeIds"),s=document.querySelector("#icsFilters--calendarURL"),l=()=>{let l=window.location.href.slice(0,Math.max(0,window.location.href.indexOf(window.location.pathname)+1))+e.urlPrefix+"api/"+e.apiKey+"/milestoneICS/?";if(!t.disabled&&t.selectedOptions.length>0){l+="workOrderTypeIds=";for(const e of t.selectedOptions)l+=e.value+",";l=l.slice(0,-1)+"&"}if(!r.disabled&&r.selectedOptions.length>0){l+="workOrderMilestoneTypeIds=";for(const e of r.selectedOptions)l+=e.value+",";l=l.slice(0,-1)+"&"}s.value=l.slice(0,-1)};document.querySelector("#icsFilters--workOrderTypeIds-all").addEventListener("change",e=>{t.disabled=e.currentTarget.checked}),document.querySelector("#icsFilters--workOrderMilestoneTypeIds-all").addEventListener("change",e=>{r.disabled=e.currentTarget.checked});const o=document.querySelector("#panel--icsFilters").querySelectorAll("input, select");for(const e of o)e.addEventListener("change",l);l(),s.addEventListener("click",()=>{s.focus(),s.select()})})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=document.querySelector("main").dataset.urlPrefix,s=exports.workOrderPrints,a=document.querySelector("#form--searchFilters");e.initializeDatePickers(a);const r=document.querySelector("#container--searchResults"),o=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),i=document.querySelector("#searchFilter--offset"),l=()=>{const e=Number.parseInt(i.value,10);r.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading Work Orders...</div>',cityssm.postJSON(t+"/workOrders/doSearchWorkOrders",a,a=>{if(0===a.workOrders.length)return void(r.innerHTML='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const i=document.createElement("tbody");for(const e of a.workOrders){let a="";for(const t of e.workOrderLots)a+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(t.mapName)+'"><i class="fas fa-vector-square" aria-label="'+cityssm.escapeHTML(exports.aliases.lot)+'"></i> '+cityssm.escapeHTML(t.lotName||"(No Lot Name)")+"</span><br />";for(const t of e.workOrderLotOccupancies)for(const e of t.lotOccupancyOccupants)a+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(e.lotOccupantType)+'"><i class="fas fa-user" aria-label="'+cityssm.escapeHTML(exports.aliases.occupant)+'"></i> '+cityssm.escapeHTML(e.occupantName||"(No Name)")+"</span><br />";i.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+t+"/workOrders/"+e.workOrderId+'">'+(e.workOrderNumber.trim()?cityssm.escapeHTML(e.workOrderNumber):"(No Number)")+"</a></td><td>"+cityssm.escapeHTML(e.workOrderType)+'<br /><span class="is-size-7">'+cityssm.escapeHTML(e.workOrderDescription)+'</span></td><td class="is-nowrap"><span class="is-size-7">'+a+'</span></td><td class="is-nowrap"><span class="has-tooltip-left" data-tooltip="Open Date"><i class="fas fa-fw fa-play" aria-label="Open Date"></i> '+e.workOrderOpenDateString+'</span><br /><span class="has-tooltip-left" data-tooltip="Close Date"><i class="fas fa-fw fa-stop" aria-label="Close Date"></i> '+(e.workOrderCloseDate?e.workOrderCloseDateString:'<span class="has-text-grey">(No Close Date)</span>')+"</span></td><td>"+(0===e.workOrderMilestoneCount?"-":e.workOrderMilestoneCompletionCount+" / "+e.workOrderMilestoneCount)+"</td>"+(s.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+t+"/print/"+s[0]+"/?workOrderId="+e.workOrderId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}r.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th>Work Order Number</th><th>Description</th><th>Related</th><th>Date</th><th class="has-tooltip-bottom" data-tooltip="Completed / Total Milestones">Progress</th>'+(s.length>0?'<th class="has-width-1"></th>':"")+'</tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(e+1).toString()+" to "+Math.min(a.count,o+e)+" of "+a.count+'</div></div><div class="level-right">'+(e>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(o+e<a.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",r.querySelector("table").append(i),e>0&&r.querySelector("button[data-page='previous']").addEventListener("click",c),o+e<a.count&&r.querySelector("button[data-page='next']").addEventListener("click",d)})},n=()=>{i.value="0",l()},c=()=>{i.value=Math.max(Number.parseInt(i.value,10)-o,0).toString(),l()},d=()=>{i.value=(Number.parseInt(i.value,10)+o).toString(),l()},p=a.querySelectorAll("input, select");for(const e of p)e.addEventListener("change",n);a.addEventListener("submit",e=>{e.preventDefault(),n()}),l()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,t=exports.workOrderPrints,s=document.querySelector("#form--searchFilters");e.initializeDatePickers(s);const a=document.querySelector("#container--searchResults"),r=Number.parseInt(document.querySelector("#searchFilter--limit").value,10),o=document.querySelector("#searchFilter--offset"),i=()=>{const i=Number.parseInt(o.value,10);a.innerHTML='<div class="has-text-grey has-text-centered"><i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />Loading Work Orders...</div>',cityssm.postJSON(e.urlPrefix+"/workOrders/doSearchWorkOrders",s,s=>{if(0===s.workOrders.length)return void(a.innerHTML='<div class="message is-info"><p class="message-body">There are no work orders that meet the search criteria.</p></div>');const o=document.createElement("tbody");for(const a of s.workOrders){let s="";for(const e of a.workOrderLots)s+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(e.mapName||"")+'"><i class="fas fa-vector-square" aria-label="'+cityssm.escapeHTML(exports.aliases.lot)+'"></i> '+cityssm.escapeHTML(e.lotName||"(No Lot Name)")+"</span><br />";for(const e of a.workOrderLotOccupancies)for(const t of e.lotOccupancyOccupants)s+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(t.lotOccupantType||"")+'"><i class="fas fa-user" aria-label="'+cityssm.escapeHTML(exports.aliases.occupant)+'"></i> '+cityssm.escapeHTML(t.occupantName||"(No Name)")+"</span><br />";o.insertAdjacentHTML("beforeend",'<tr><td><a class="has-text-weight-bold" href="'+e.urlPrefix+"/workOrders/"+a.workOrderId+'">'+(a.workOrderNumber.trim()?cityssm.escapeHTML(a.workOrderNumber||""):"(No Number)")+"</a></td><td>"+cityssm.escapeHTML(a.workOrderType||"")+'<br /><span class="is-size-7">'+cityssm.escapeHTML(a.workOrderDescription||"")+'</span></td><td class="is-nowrap"><span class="is-size-7">'+s+'</span></td><td class="is-nowrap"><span class="has-tooltip-left" data-tooltip="Open Date"><i class="fas fa-fw fa-play" aria-label="Open Date"></i> '+a.workOrderOpenDateString+'</span><br /><span class="has-tooltip-left" data-tooltip="Close Date"><i class="fas fa-fw fa-stop" aria-label="Close Date"></i> '+(a.workOrderCloseDate?a.workOrderCloseDateString:'<span class="has-text-grey">(No Close Date)</span>')+"</span></td><td>"+(0===a.workOrderMilestoneCount?"-":a.workOrderMilestoneCompletionCount+" / "+a.workOrderMilestoneCount)+"</td>"+(t.length>0?'<td><a class="button is-small" data-tooltip="Print" href="'+e.urlPrefix+"/print/"+t[0]+"/?workOrderId="+a.workOrderId+'" target="_blank"><i class="fas fa-print" aria-label="Print"></i></a></td>':"")+"</tr>")}a.innerHTML='<table class="table is-fullwidth is-striped is-hoverable has-sticky-header"><thead><tr><th>Work Order Number</th><th>Description</th><th>Related</th><th>Date</th><th class="has-tooltip-bottom" data-tooltip="Completed / Total Milestones">Progress</th>'+(t.length>0?'<th class="has-width-1"></th>':"")+'</tr></thead><table><div class="level"><div class="level-left"><div class="level-item has-text-weight-bold">Displaying '+(i+1).toString()+" to "+Math.min(s.count,r+i)+" of "+s.count+'</div></div><div class="level-right">'+(i>0?'<div class="level-item"><button class="button is-rounded is-link is-outlined" data-page="previous" type="button" title="Previous"><i class="fas fa-arrow-left" aria-hidden="true"></i></button></div>':"")+(r+i<s.count?'<div class="level-item"><button class="button is-rounded is-link" data-page="next" type="button" title="Next"><span>Next</span><span class="icon"><i class="fas fa-arrow-right" aria-hidden="true"></i></span></button></div>':"")+"</div></div>",a.querySelector("table").append(o),i>0&&a.querySelector("button[data-page='previous']").addEventListener("click",n),r+i<s.count&&a.querySelector("button[data-page='next']").addEventListener("click",c)})},l=()=>{o.value="0",i()},n=()=>{o.value=Math.max(Number.parseInt(o.value,10)-r,0).toString(),i()},c=()=>{o.value=(Number.parseInt(o.value,10)+r).toString(),i()},d=s.querySelectorAll("input, select");for(const e of d)e.addEventListener("change",l);s.addEventListener("submit",e=>{e.preventDefault(),l()}),i()})();
|
||||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,r=document.querySelector("#button--reopenWorkOrder");r&&r.addEventListener("click",()=>{const o=r.dataset.workOrderId;bulmaJS.confirm({title:"Reopen Work Order",message:"Are you sure you want to remove the close date from this work order and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Work Order",callbackFunction:()=>{cityssm.postJSON(e+"/workOrders/doReopenWorkOrder",{workOrderId:o},r=>{r.success?window.location.href=e+"/workOrders/"+o+"/edit/?t="+Date.now():bulmaJS.alert({title:"Error Reopening Work Order",message:r.errorMessage,contextualColorName:"danger"})})}}})})})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,r=document.querySelector("#button--reopenWorkOrder");r&&r.addEventListener("click",()=>{const o=r.dataset.workOrderId;bulmaJS.confirm({title:"Reopen Work Order",message:"Are you sure you want to remove the close date from this work order and reopen it?",contextualColorName:"warning",okButton:{text:"Yes, Reopen Work Order",callbackFunction:()=>{cityssm.postJSON(e.urlPrefix+"/workOrders/doReopenWorkOrder",{workOrderId:o},r=>{r.success?window.location.href=e.urlPrefix+"/workOrders/"+o+"/edit/?t="+Date.now():bulmaJS.alert({title:"Error Reopening Work Order",message:r.errorMessage||"",contextualColorName:"danger"})})}}})})})();
|
||||
|
|
@ -1,4 +1,6 @@
|
|||
export interface LOS {
|
||||
urlPrefix: string;
|
||||
apiKey: string;
|
||||
highlightMap: (mapContainerElement: HTMLElement, mapKey: string, contextualClass: "success" | "danger") => void;
|
||||
initializeDatePickers: (containerElement: HTMLElement) => void;
|
||||
initializeTimePickers: (containerElement: HTMLElement) => void;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
export interface LOS {
|
||||
urlPrefix: string;
|
||||
apiKey: string;
|
||||
|
||||
highlightMap: (
|
||||
mapContainerElement: HTMLElement,
|
||||
mapKey: string,
|
||||
|
|
|
|||
Loading…
Reference in New Issue