client side javascript null checks
parent
ff78cdef12
commit
b488d3a6df
|
|
@ -5,7 +5,7 @@
|
||||||
},
|
},
|
||||||
"parser": "@typescript-eslint/parser",
|
"parser": "@typescript-eslint/parser",
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"project": ["./tsconfig.json", "./public-typescript/tsconfig.json"],
|
"project": ["./tsconfig.json", "./tsconfig.client.json"],
|
||||||
"ecmaVersion": 2020,
|
"ecmaVersion": 2020,
|
||||||
"sourceType": "module"
|
"sourceType": "module"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,23 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los;
|
||||||
const doCleanup = () => {
|
const doCleanup = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doCleanupDatabase", {}, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doCleanupDatabase", {}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Database Cleaned Up Successfully",
|
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"
|
contextualColorName: "success"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Cleaning Database",
|
title: "Error Cleaning Database",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
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";
|
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||||
|
|
||||||
|
|
@ -8,11 +10,11 @@ declare const cityssm: cityssmGlobal;
|
||||||
declare const bulmaJS: BulmaJS;
|
declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const doCleanup = () => {
|
const doCleanup = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doCleanupDatabase",
|
los.urlPrefix + "/admin/doCleanupDatabase",
|
||||||
{},
|
{},
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -23,13 +25,17 @@ declare const bulmaJS: BulmaJS;
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Database Cleaned Up Successfully",
|
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"
|
contextualColorName: "success"
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Cleaning Database",
|
title: "Error Cleaning Database",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -37,7 +43,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
document.querySelector("#button--cleanupDatabase").addEventListener("click", () => {
|
(document.querySelector("#button--cleanupDatabase") as HTMLButtonElement).addEventListener(
|
||||||
|
"click",
|
||||||
|
() => {
|
||||||
bulmaJS.confirm({
|
bulmaJS.confirm({
|
||||||
title: "Cleanup Database",
|
title: "Cleanup Database",
|
||||||
message: "Are you sure you want to cleanup up the database?",
|
message: "Are you sure you want to cleanup up the database?",
|
||||||
|
|
@ -46,5 +54,6 @@ declare const bulmaJS: BulmaJS;
|
||||||
callbackFunction: doCleanup
|
callbackFunction: doCleanup
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
);
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
const feeCategoriesContainerElement = document.querySelector("#container--feeCategories");
|
const feeCategoriesContainerElement = document.querySelector("#container--feeCategories");
|
||||||
let feeCategories = exports.feeCategories;
|
let feeCategories = exports.feeCategories;
|
||||||
delete exports.feeCategories;
|
delete exports.feeCategories;
|
||||||
|
|
@ -25,7 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
'<div class="columns">' +
|
'<div class="columns">' +
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
'<h2 class="title is-4">' +
|
'<h2 class="title is-4">' +
|
||||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||||
"</h2>" +
|
"</h2>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column is-narrow">' +
|
('<div class="column is-narrow">' +
|
||||||
|
|
@ -71,7 +70,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
feeCategoryContainerElement.insertAdjacentHTML("beforeend", '<div class="panel-block is-block">' +
|
feeCategoryContainerElement.insertAdjacentHTML("beforeend", '<div class="panel-block is-block">' +
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
'<p class="message-body">There are no fees in the "' +
|
'<p class="message-body">There are no fees in the "' +
|
||||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||||
'" category.</p>' +
|
'" category.</p>' +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>");
|
"</div>");
|
||||||
|
|
@ -86,10 +85,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
('<div class="column is-half">' +
|
('<div class="column is-half">' +
|
||||||
"<p>" +
|
"<p>" +
|
||||||
'<a class="has-text-weight-bold" href="#">' +
|
'<a class="has-text-weight-bold" href="#">' +
|
||||||
cityssm.escapeHTML(fee.feeName) +
|
cityssm.escapeHTML(fee.feeName || "") +
|
||||||
"</a><br />" +
|
"</a><br />" +
|
||||||
"<small>" +
|
"<small>" +
|
||||||
cityssm.escapeHTML(fee.feeDescription).replace(/\n/g, "<br />") +
|
cityssm.escapeHTML(fee.feeDescription || "").replace(/\n/g, "<br />") +
|
||||||
"</small>" +
|
"</small>" +
|
||||||
"</p>" +
|
"</p>" +
|
||||||
'<p class="tags">' +
|
'<p class="tags">' +
|
||||||
|
|
@ -98,14 +97,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||||
' Type Filter">' +
|
' Type Filter">' +
|
||||||
cityssm.escapeHTML(fee.occupancyType) +
|
cityssm.escapeHTML(fee.occupancyType || "") +
|
||||||
"</span>"
|
"</span>"
|
||||||
: "") +
|
: "") +
|
||||||
(fee.lotTypeId
|
(fee.lotTypeId
|
||||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||||
cityssm.escapeHTML(exports.aliases.lot) +
|
cityssm.escapeHTML(exports.aliases.lot) +
|
||||||
' Type Filter">' +
|
' Type Filter">' +
|
||||||
cityssm.escapeHTML(fee.lotType) +
|
cityssm.escapeHTML(fee.lotType || "") +
|
||||||
"</span>"
|
"</span>"
|
||||||
: "") +
|
: "") +
|
||||||
"</p>" +
|
"</p>" +
|
||||||
|
|
@ -130,7 +129,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column has-text-centered">' +
|
('<div class="column has-text-centered">' +
|
||||||
(fee.includeQuantity
|
(fee.includeQuantity
|
||||||
? cityssm.escapeHTML(fee.quantityUnit) +
|
? cityssm.escapeHTML(fee.quantityUnit || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
"<small>Quantity</small>"
|
"<small>Quantity</small>"
|
||||||
: "") +
|
: "") +
|
||||||
|
|
@ -153,32 +152,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
panelBlockElement.querySelector("a").addEventListener("click", openEditFee);
|
panelBlockElement.querySelector("a").addEventListener("click", openEditFee);
|
||||||
panelBlockElement
|
panelBlockElement.querySelector(".button--moveFeeUp").addEventListener("click", moveFeeUp);
|
||||||
.querySelector(".button--moveFeeUp")
|
panelBlockElement.querySelector(".button--moveFeeDown").addEventListener("click", moveFeeDown);
|
||||||
.addEventListener("click", moveFeeUp);
|
|
||||||
panelBlockElement
|
|
||||||
.querySelector(".button--moveFeeDown")
|
|
||||||
.addEventListener("click", moveFeeDown);
|
|
||||||
feeCategoryContainerElement.append(panelBlockElement);
|
feeCategoryContainerElement.append(panelBlockElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (feeCategory.fees.length === 0) {
|
if (feeCategory.fees.length === 0) {
|
||||||
feeCategoryContainerElement
|
feeCategoryContainerElement.querySelector(".button--deleteFeeCategory").addEventListener("click", confirmDeleteFeeCategory);
|
||||||
.querySelector(".button--deleteFeeCategory")
|
|
||||||
.addEventListener("click", confirmDeleteFeeCategory);
|
|
||||||
}
|
}
|
||||||
feeCategoryContainerElement
|
feeCategoryContainerElement.querySelector(".button--editFeeCategory").addEventListener("click", openEditFeeCategory);
|
||||||
.querySelector(".button--editFeeCategory")
|
feeCategoryContainerElement.querySelector(".button--addFee").addEventListener("click", openAddFee);
|
||||||
.addEventListener("click", openEditFeeCategory);
|
feeCategoryContainerElement.querySelector(".button--moveFeeCategoryUp").addEventListener("click", moveFeeCategoryUp);
|
||||||
feeCategoryContainerElement
|
feeCategoryContainerElement.querySelector(".button--moveFeeCategoryDown").addEventListener("click", moveFeeCategoryDown);
|
||||||
.querySelector(".button--addFee")
|
|
||||||
.addEventListener("click", openAddFee);
|
|
||||||
feeCategoryContainerElement
|
|
||||||
.querySelector(".button--moveFeeCategoryUp")
|
|
||||||
.addEventListener("click", moveFeeCategoryUp);
|
|
||||||
feeCategoryContainerElement
|
|
||||||
.querySelector(".button--moveFeeCategoryDown")
|
|
||||||
.addEventListener("click", moveFeeCategoryDown);
|
|
||||||
feeCategoriesContainerElement.append(feeCategoryContainerElement);
|
feeCategoriesContainerElement.append(feeCategoryContainerElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -186,7 +171,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const doAddFeeCategory = (submitEvent) => {
|
const doAddFeeCategory = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddFeeCategory", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddFeeCategory", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories;
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
|
|
@ -195,7 +180,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Creating Fee Category",
|
title: "Error Creating Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -206,7 +191,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
modalElement.querySelector("#feeCategoryAdd--feeCategory").focus();
|
modalElement.querySelector("#feeCategoryAdd--feeCategory").focus();
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAddFeeCategory);
|
modalElement
|
||||||
|
.querySelector("form")
|
||||||
|
.addEventListener("submit", doAddFeeCategory);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -221,7 +208,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const doUpdateFeeCategory = (submitEvent) => {
|
const doUpdateFeeCategory = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateFeeCategory", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateFeeCategory", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -230,7 +217,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Fee Category",
|
title: "Error Updating Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -255,7 +242,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const confirmDeleteFeeCategory = (clickEvent) => {
|
const confirmDeleteFeeCategory = (clickEvent) => {
|
||||||
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteFeeCategory", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteFeeCategory", {
|
||||||
feeCategoryId
|
feeCategoryId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
|
|
@ -265,7 +252,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Fee Category",
|
title: "Error Updating Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -283,7 +270,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
};
|
};
|
||||||
const moveFeeCategoryUp = (clickEvent) => {
|
const moveFeeCategoryUp = (clickEvent) => {
|
||||||
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveFeeCategoryUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveFeeCategoryUp", {
|
||||||
feeCategoryId,
|
feeCategoryId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -294,7 +281,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Fee Category",
|
title: "Error Moving Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -302,7 +289,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
};
|
};
|
||||||
const moveFeeCategoryDown = (clickEvent) => {
|
const moveFeeCategoryDown = (clickEvent) => {
|
||||||
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
const feeCategoryId = Number.parseInt(clickEvent.currentTarget.closest(".container--feeCategory").dataset.feeCategoryId, 10);
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveFeeCategoryDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveFeeCategoryDown", {
|
||||||
feeCategoryId,
|
feeCategoryId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -313,7 +300,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Fee Category",
|
title: "Error Moving Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -324,7 +311,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const doAddFee = (submitEvent) => {
|
const doAddFee = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddFee", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddFee", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories;
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
|
|
@ -333,7 +320,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding Fee",
|
title: "Error Adding Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -373,9 +360,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAddFee);
|
modalElement.querySelector("form").addEventListener("submit", doAddFee);
|
||||||
modalElement.querySelector("#feeAdd--feeName").focus();
|
modalElement.querySelector("#feeAdd--feeName").focus();
|
||||||
modalElement
|
modalElement.querySelector("#feeAdd--feeFunction").addEventListener("change", () => {
|
||||||
.querySelector("#feeAdd--feeFunction")
|
|
||||||
.addEventListener("change", () => {
|
|
||||||
const feeAmountElement = modalElement.querySelector("#feeAdd--feeAmount");
|
const feeAmountElement = modalElement.querySelector("#feeAdd--feeAmount");
|
||||||
const feeFunctionElement = modalElement.querySelector("#feeAdd--feeFunction");
|
const feeFunctionElement = modalElement.querySelector("#feeAdd--feeFunction");
|
||||||
if (feeFunctionElement.value === "") {
|
if (feeFunctionElement.value === "") {
|
||||||
|
|
@ -389,9 +374,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
feeAmountElement.disabled = true;
|
feeAmountElement.disabled = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
modalElement
|
modalElement.querySelector("#feeAdd--taxPercentage").addEventListener("keyup", () => {
|
||||||
.querySelector("#feeAdd--taxPercentage")
|
|
||||||
.addEventListener("keyup", () => {
|
|
||||||
const taxAmountElement = modalElement.querySelector("#feeAdd--taxAmount");
|
const taxAmountElement = modalElement.querySelector("#feeAdd--taxAmount");
|
||||||
const taxPercentageElement = modalElement.querySelector("#feeAdd--taxPercentage");
|
const taxPercentageElement = modalElement.querySelector("#feeAdd--taxPercentage");
|
||||||
if (taxPercentageElement.value === "") {
|
if (taxPercentageElement.value === "") {
|
||||||
|
|
@ -405,9 +388,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
taxAmountElement.disabled = true;
|
taxAmountElement.disabled = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
modalElement
|
modalElement.querySelector("#feeAdd--includeQuantity").addEventListener("change", () => {
|
||||||
.querySelector("#feeAdd--includeQuantity")
|
|
||||||
.addEventListener("change", () => {
|
|
||||||
modalElement.querySelector("#feeAdd--quantityUnit").disabled =
|
modalElement.querySelector("#feeAdd--quantityUnit").disabled =
|
||||||
modalElement.querySelector("#feeAdd--includeQuantity").value === "";
|
modalElement.querySelector("#feeAdd--includeQuantity").value === "";
|
||||||
});
|
});
|
||||||
|
|
@ -433,7 +414,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editModalElement;
|
let editModalElement;
|
||||||
const doUpdateFee = (submitEvent) => {
|
const doUpdateFee = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateFee", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateFee", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -442,7 +423,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Fee",
|
title: "Error Updating Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -451,7 +432,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const confirmDeleteFee = (clickEvent) => {
|
const confirmDeleteFee = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteFee", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteFee", {
|
||||||
feeId
|
feeId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
|
|
@ -462,7 +443,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Fee",
|
title: "Error Deleting Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -551,9 +532,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
modalElement.querySelector("#feeEdit--feeAmount").value =
|
modalElement.querySelector("#feeEdit--feeAmount").value =
|
||||||
fee.feeAmount ? fee.feeAmount.toFixed(2) : "";
|
fee.feeAmount ? fee.feeAmount.toFixed(2) : "";
|
||||||
modalElement
|
modalElement.querySelector("#feeEdit--feeFunction").addEventListener("change", toggleFeeFields);
|
||||||
.querySelector("#feeEdit--feeFunction")
|
|
||||||
.addEventListener("change", toggleFeeFields);
|
|
||||||
toggleFeeFields();
|
toggleFeeFields();
|
||||||
modalElement.querySelector("#feeEdit--taxAmount").value =
|
modalElement.querySelector("#feeEdit--taxAmount").value =
|
||||||
fee.taxAmount ? fee.taxAmount.toFixed(2) : "";
|
fee.taxAmount ? fee.taxAmount.toFixed(2) : "";
|
||||||
|
|
@ -579,9 +558,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
editCloseModalFunction = closeModalFunction;
|
editCloseModalFunction = closeModalFunction;
|
||||||
modalElement.querySelector("form").addEventListener("submit", doUpdateFee);
|
modalElement.querySelector("form").addEventListener("submit", doUpdateFee);
|
||||||
bulmaJS.init(modalElement);
|
bulmaJS.init(modalElement);
|
||||||
modalElement
|
modalElement.querySelector(".button--deleteFee").addEventListener("click", confirmDeleteFee);
|
||||||
.querySelector(".button--deleteFee")
|
|
||||||
.addEventListener("click", confirmDeleteFee);
|
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -591,7 +568,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveFeeUp = (clickEvent) => {
|
const moveFeeUp = (clickEvent) => {
|
||||||
const feeContainerElement = clickEvent.currentTarget.closest(".container--fee");
|
const feeContainerElement = clickEvent.currentTarget.closest(".container--fee");
|
||||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveFeeUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveFeeUp", {
|
||||||
feeId,
|
feeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -602,7 +579,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Fee",
|
title: "Error Moving Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -611,7 +588,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveFeeDown = (clickEvent) => {
|
const moveFeeDown = (clickEvent) => {
|
||||||
const feeContainerElement = clickEvent.currentTarget.closest(".container--fee");
|
const feeContainerElement = clickEvent.currentTarget.closest(".container--fee");
|
||||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveFeeDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveFeeDown", {
|
||||||
feeId,
|
feeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -622,7 +599,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Fee",
|
title: "Error Moving Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
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 globalTypes from "../types/globalTypes";
|
||||||
import type * as recordTypes from "../types/recordTypes";
|
import type * as recordTypes from "../types/recordTypes";
|
||||||
|
|
@ -13,8 +13,6 @@ declare const bulmaJS: BulmaJS;
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los as globalTypes.LOS;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
|
|
||||||
const feeCategoriesContainerElement = document.querySelector(
|
const feeCategoriesContainerElement = document.querySelector(
|
||||||
"#container--feeCategories"
|
"#container--feeCategories"
|
||||||
) as HTMLElement;
|
) as HTMLElement;
|
||||||
|
|
@ -40,19 +38,19 @@ declare const bulmaJS: BulmaJS;
|
||||||
feeCategoryContainerElement.className = "panel container--feeCategory";
|
feeCategoryContainerElement.className = "panel container--feeCategory";
|
||||||
|
|
||||||
feeCategoryContainerElement.dataset.feeCategoryId =
|
feeCategoryContainerElement.dataset.feeCategoryId =
|
||||||
feeCategory.feeCategoryId.toString();
|
feeCategory.feeCategoryId!.toString();
|
||||||
|
|
||||||
feeCategoryContainerElement.innerHTML =
|
feeCategoryContainerElement.innerHTML =
|
||||||
'<div class="panel-heading">' +
|
'<div class="panel-heading">' +
|
||||||
'<div class="columns">' +
|
'<div class="columns">' +
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
'<h2 class="title is-4">' +
|
'<h2 class="title is-4">' +
|
||||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||||
"</h2>" +
|
"</h2>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column is-narrow">' +
|
('<div class="column is-narrow">' +
|
||||||
'<div class="field is-grouped is-justify-content-end">' +
|
'<div class="field is-grouped is-justify-content-end">' +
|
||||||
(feeCategory.fees.length === 0
|
(feeCategory.fees!.length === 0
|
||||||
? '<div class="control">' +
|
? '<div class="control">' +
|
||||||
'<button class="button is-small is-danger button--deleteFeeCategory" type="button">' +
|
'<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>' +
|
'<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>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
if (feeCategory.fees.length === 0) {
|
if (feeCategory.fees!.length === 0) {
|
||||||
feeCategoryContainerElement.insertAdjacentHTML(
|
feeCategoryContainerElement.insertAdjacentHTML(
|
||||||
"beforeend",
|
"beforeend",
|
||||||
'<div class="panel-block is-block">' +
|
'<div class="panel-block is-block">' +
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
'<p class="message-body">There are no fees in the "' +
|
'<p class="message-body">There are no fees in the "' +
|
||||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||||
'" category.</p>' +
|
'" category.</p>' +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>"
|
"</div>"
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
for (const fee of feeCategory.fees) {
|
for (const fee of feeCategory.fees!) {
|
||||||
const panelBlockElement = document.createElement("div");
|
const panelBlockElement = document.createElement("div");
|
||||||
panelBlockElement.className = "panel-block is-block container--fee";
|
panelBlockElement.className = "panel-block is-block container--fee";
|
||||||
panelBlockElement.dataset.feeId = fee.feeId.toString();
|
panelBlockElement.dataset.feeId = fee.feeId!.toString();
|
||||||
|
|
||||||
panelBlockElement.innerHTML =
|
panelBlockElement.innerHTML =
|
||||||
'<div class="columns">' +
|
'<div class="columns">' +
|
||||||
('<div class="column is-half">' +
|
('<div class="column is-half">' +
|
||||||
"<p>" +
|
"<p>" +
|
||||||
'<a class="has-text-weight-bold" href="#">' +
|
'<a class="has-text-weight-bold" href="#">' +
|
||||||
cityssm.escapeHTML(fee.feeName) +
|
cityssm.escapeHTML(fee.feeName || "") +
|
||||||
"</a><br />" +
|
"</a><br />" +
|
||||||
"<small>" +
|
"<small>" +
|
||||||
cityssm.escapeHTML(fee.feeDescription).replace(/\n/g, "<br />") +
|
cityssm.escapeHTML(fee.feeDescription || "").replace(/\n/g, "<br />") +
|
||||||
"</small>" +
|
"</small>" +
|
||||||
"</p>" +
|
"</p>" +
|
||||||
'<p class="tags">' +
|
'<p class="tags">' +
|
||||||
|
|
@ -124,14 +122,14 @@ declare const bulmaJS: BulmaJS;
|
||||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||||
cityssm.escapeHTML(exports.aliases.occupancy) +
|
cityssm.escapeHTML(exports.aliases.occupancy) +
|
||||||
' Type Filter">' +
|
' Type Filter">' +
|
||||||
cityssm.escapeHTML(fee.occupancyType) +
|
cityssm.escapeHTML(fee.occupancyType || "") +
|
||||||
"</span>"
|
"</span>"
|
||||||
: "") +
|
: "") +
|
||||||
(fee.lotTypeId
|
(fee.lotTypeId
|
||||||
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
? ' <span class="tag has-tooltip-bottom" data-tooltip="' +
|
||||||
cityssm.escapeHTML(exports.aliases.lot) +
|
cityssm.escapeHTML(exports.aliases.lot) +
|
||||||
' Type Filter">' +
|
' Type Filter">' +
|
||||||
cityssm.escapeHTML(fee.lotType) +
|
cityssm.escapeHTML(fee.lotType || "") +
|
||||||
"</span>"
|
"</span>"
|
||||||
: "") +
|
: "") +
|
||||||
"</p>" +
|
"</p>" +
|
||||||
|
|
@ -144,19 +142,19 @@ declare const bulmaJS: BulmaJS;
|
||||||
"<br />" +
|
"<br />" +
|
||||||
"<small>Fee Function</small>"
|
"<small>Fee Function</small>"
|
||||||
: "$" +
|
: "$" +
|
||||||
fee.feeAmount.toFixed(2) +
|
fee.feeAmount!.toFixed(2) +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
"<small>Fee</small>") +
|
"<small>Fee</small>") +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column has-text-centered">' +
|
('<div class="column has-text-centered">' +
|
||||||
(fee.taxPercentage
|
(fee.taxPercentage
|
||||||
? fee.taxPercentage + "%"
|
? fee.taxPercentage + "%"
|
||||||
: "$" + fee.taxAmount.toFixed(2)) +
|
: "$" + fee.taxAmount!.toFixed(2)) +
|
||||||
"<br /><small>Tax</small>" +
|
"<br /><small>Tax</small>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column has-text-centered">' +
|
('<div class="column has-text-centered">' +
|
||||||
(fee.includeQuantity
|
(fee.includeQuantity
|
||||||
? cityssm.escapeHTML(fee.quantityUnit) +
|
? cityssm.escapeHTML(fee.quantityUnit || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
"<small>Quantity</small>"
|
"<small>Quantity</small>"
|
||||||
: "") +
|
: "") +
|
||||||
|
|
@ -179,40 +177,49 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
panelBlockElement.querySelector("a").addEventListener("click", openEditFee);
|
panelBlockElement.querySelector("a")!.addEventListener("click", openEditFee);
|
||||||
|
|
||||||
panelBlockElement
|
(
|
||||||
.querySelector(".button--moveFeeUp")
|
panelBlockElement.querySelector(".button--moveFeeUp") as HTMLButtonElement
|
||||||
.addEventListener("click", moveFeeUp);
|
).addEventListener("click", moveFeeUp);
|
||||||
panelBlockElement
|
|
||||||
.querySelector(".button--moveFeeDown")
|
(
|
||||||
.addEventListener("click", moveFeeDown);
|
panelBlockElement.querySelector(".button--moveFeeDown") as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveFeeDown);
|
||||||
|
|
||||||
feeCategoryContainerElement.append(panelBlockElement);
|
feeCategoryContainerElement.append(panelBlockElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (feeCategory.fees.length === 0) {
|
if (feeCategory.fees!.length === 0) {
|
||||||
feeCategoryContainerElement
|
(
|
||||||
.querySelector(".button--deleteFeeCategory")
|
feeCategoryContainerElement.querySelector(
|
||||||
.addEventListener("click", confirmDeleteFeeCategory);
|
".button--deleteFeeCategory"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", confirmDeleteFeeCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
feeCategoryContainerElement
|
(
|
||||||
.querySelector(".button--editFeeCategory")
|
feeCategoryContainerElement.querySelector(
|
||||||
.addEventListener("click", openEditFeeCategory);
|
".button--editFeeCategory"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", openEditFeeCategory);
|
||||||
|
|
||||||
feeCategoryContainerElement
|
(
|
||||||
.querySelector(".button--addFee")
|
feeCategoryContainerElement.querySelector(".button--addFee") as HTMLButtonElement
|
||||||
.addEventListener("click", openAddFee);
|
).addEventListener("click", openAddFee);
|
||||||
|
|
||||||
feeCategoryContainerElement
|
(
|
||||||
.querySelector(".button--moveFeeCategoryUp")
|
feeCategoryContainerElement.querySelector(
|
||||||
.addEventListener("click", moveFeeCategoryUp);
|
".button--moveFeeCategoryUp"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveFeeCategoryUp);
|
||||||
|
|
||||||
feeCategoryContainerElement
|
(
|
||||||
.querySelector(".button--moveFeeCategoryDown")
|
feeCategoryContainerElement.querySelector(
|
||||||
.addEventListener("click", moveFeeCategoryDown);
|
".button--moveFeeCategoryDown"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveFeeCategoryDown);
|
||||||
|
|
||||||
feeCategoriesContainerElement.append(feeCategoryContainerElement);
|
feeCategoriesContainerElement.append(feeCategoryContainerElement);
|
||||||
}
|
}
|
||||||
|
|
@ -222,14 +229,16 @@ declare const bulmaJS: BulmaJS;
|
||||||
* Fee Categories
|
* Fee Categories
|
||||||
*/
|
*/
|
||||||
|
|
||||||
document.querySelector("#button--addFeeCategory").addEventListener("click", () => {
|
(document.querySelector("#button--addFeeCategory") as HTMLButtonElement).addEventListener(
|
||||||
|
"click",
|
||||||
|
() => {
|
||||||
let addCloseModalFunction: () => void;
|
let addCloseModalFunction: () => void;
|
||||||
|
|
||||||
const doAddFeeCategory = (submitEvent: SubmitEvent) => {
|
const doAddFeeCategory = (submitEvent: SubmitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddFeeCategory",
|
los.urlPrefix + "/admin/doAddFeeCategory",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -243,7 +252,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Creating Fee Category",
|
title: "Error Creating Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -255,17 +264,22 @@ declare const bulmaJS: BulmaJS;
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
(
|
(
|
||||||
modalElement.querySelector("#feeCategoryAdd--feeCategory") as HTMLInputElement
|
modalElement.querySelector(
|
||||||
|
"#feeCategoryAdd--feeCategory"
|
||||||
|
) as HTMLInputElement
|
||||||
).focus();
|
).focus();
|
||||||
|
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAddFeeCategory);
|
modalElement
|
||||||
|
.querySelector("form")!
|
||||||
|
.addEventListener("submit", doAddFeeCategory);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
const openEditFeeCategory = (clickEvent: Event) => {
|
const openEditFeeCategory = (clickEvent: Event) => {
|
||||||
const feeCategoryId = Number.parseInt(
|
const feeCategoryId = Number.parseInt(
|
||||||
|
|
@ -273,13 +287,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--feeCategory"
|
".container--feeCategory"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.feeCategoryId,
|
).dataset.feeCategoryId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
||||||
return currentFeeCategory.feeCategoryId === feeCategoryId;
|
return currentFeeCategory.feeCategoryId === feeCategoryId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
let editCloseModalFunction: () => void;
|
let editCloseModalFunction: () => void;
|
||||||
|
|
||||||
|
|
@ -287,7 +301,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateFeeCategory",
|
los.urlPrefix + "/admin/doUpdateFeeCategory",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -301,7 +315,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Fee Category",
|
title: "Error Updating Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -315,17 +329,17 @@ declare const bulmaJS: BulmaJS;
|
||||||
modalElement.querySelector(
|
modalElement.querySelector(
|
||||||
"#feeCategoryEdit--feeCategoryId"
|
"#feeCategoryEdit--feeCategoryId"
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value = feeCategory.feeCategoryId.toString();
|
).value = feeCategory.feeCategoryId!.toString();
|
||||||
(
|
(
|
||||||
modalElement.querySelector("#feeCategoryEdit--feeCategory") as HTMLInputElement
|
modalElement.querySelector("#feeCategoryEdit--feeCategory") as HTMLInputElement
|
||||||
).value = feeCategory.feeCategory;
|
).value = feeCategory.feeCategory!;
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
||||||
editCloseModalFunction = closeModalFunction;
|
editCloseModalFunction = closeModalFunction;
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doUpdateFeeCategory);
|
modalElement.querySelector("form")!.addEventListener("submit", doUpdateFeeCategory);
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector("#feeCategoryEdit--feeCategory") as HTMLInputElement
|
modalElement.querySelector("#feeCategoryEdit--feeCategory") as HTMLInputElement
|
||||||
|
|
@ -343,13 +357,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--feeCategory"
|
".container--feeCategory"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.feeCategoryId,
|
).dataset.feeCategoryId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteFeeCategory",
|
los.urlPrefix + "/admin/doDeleteFeeCategory",
|
||||||
{
|
{
|
||||||
feeCategoryId
|
feeCategoryId
|
||||||
},
|
},
|
||||||
|
|
@ -359,12 +373,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
feeCategories?: recordTypes.FeeCategory[];
|
feeCategories?: recordTypes.FeeCategory[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories!;
|
||||||
renderFeeCategories();
|
renderFeeCategories();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Fee Category",
|
title: "Error Updating Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -389,12 +403,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--feeCategory"
|
".container--feeCategory"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.feeCategoryId,
|
).dataset.feeCategoryId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveFeeCategoryUp",
|
los.urlPrefix + "/admin/doMoveFeeCategoryUp",
|
||||||
{
|
{
|
||||||
feeCategoryId,
|
feeCategoryId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -405,12 +419,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
feeCategories?: recordTypes.FeeCategory[];
|
feeCategories?: recordTypes.FeeCategory[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories!;
|
||||||
renderFeeCategories();
|
renderFeeCategories();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Fee Category",
|
title: "Error Moving Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -424,12 +438,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--feeCategory"
|
".container--feeCategory"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.feeCategoryId,
|
).dataset.feeCategoryId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveFeeCategoryDown",
|
los.urlPrefix + "/admin/doMoveFeeCategoryDown",
|
||||||
{
|
{
|
||||||
feeCategoryId,
|
feeCategoryId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -440,12 +454,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
feeCategories?: recordTypes.FeeCategory[];
|
feeCategories?: recordTypes.FeeCategory[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories!;
|
||||||
renderFeeCategories();
|
renderFeeCategories();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Fee Category",
|
title: "Error Moving Fee Category",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -463,7 +477,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--feeCategory"
|
".container--feeCategory"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.feeCategoryId,
|
).dataset.feeCategoryId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -473,7 +487,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddFee",
|
los.urlPrefix + "/admin/doAddFee",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -487,7 +501,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding Fee",
|
title: "Error Adding Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -503,8 +517,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
for (const feeCategory of feeCategories) {
|
for (const feeCategory of feeCategories) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
optionElement.value = feeCategory.feeCategoryId.toString();
|
optionElement.value = feeCategory.feeCategoryId!.toString();
|
||||||
optionElement.textContent = feeCategory.feeCategory;
|
optionElement.textContent = feeCategory.feeCategory!;
|
||||||
|
|
||||||
if (feeCategory.feeCategoryId === feeCategoryId) {
|
if (feeCategory.feeCategoryId === feeCategoryId) {
|
||||||
optionElement.selected = true;
|
optionElement.selected = true;
|
||||||
|
|
@ -546,13 +560,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAddFee);
|
modalElement.querySelector("form")!.addEventListener("submit", doAddFee);
|
||||||
|
|
||||||
(modalElement.querySelector("#feeAdd--feeName") as HTMLInputElement).focus();
|
(modalElement.querySelector("#feeAdd--feeName") as HTMLInputElement).focus();
|
||||||
|
|
||||||
modalElement
|
(
|
||||||
.querySelector("#feeAdd--feeFunction")
|
modalElement.querySelector("#feeAdd--feeFunction") as HTMLInputElement
|
||||||
.addEventListener("change", () => {
|
).addEventListener("change", () => {
|
||||||
const feeAmountElement = modalElement.querySelector(
|
const feeAmountElement = modalElement.querySelector(
|
||||||
"#feeAdd--feeAmount"
|
"#feeAdd--feeAmount"
|
||||||
) as HTMLInputElement;
|
) as HTMLInputElement;
|
||||||
|
|
@ -561,21 +575,21 @@ declare const bulmaJS: BulmaJS;
|
||||||
) as HTMLSelectElement;
|
) as HTMLSelectElement;
|
||||||
|
|
||||||
if (feeFunctionElement.value === "") {
|
if (feeFunctionElement.value === "") {
|
||||||
feeFunctionElement.closest(".select").classList.remove("is-success");
|
feeFunctionElement.closest(".select")!.classList.remove("is-success");
|
||||||
|
|
||||||
feeAmountElement.classList.add("is-success");
|
feeAmountElement.classList.add("is-success");
|
||||||
feeAmountElement.disabled = false;
|
feeAmountElement.disabled = false;
|
||||||
} else {
|
} else {
|
||||||
feeFunctionElement.closest(".select").classList.add("is-success");
|
feeFunctionElement.closest(".select")!.classList.add("is-success");
|
||||||
|
|
||||||
feeAmountElement.classList.remove("is-success");
|
feeAmountElement.classList.remove("is-success");
|
||||||
feeAmountElement.disabled = true;
|
feeAmountElement.disabled = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
modalElement
|
(
|
||||||
.querySelector("#feeAdd--taxPercentage")
|
modalElement.querySelector("#feeAdd--taxPercentage") as HTMLInputElement
|
||||||
.addEventListener("keyup", () => {
|
).addEventListener("keyup", () => {
|
||||||
const taxAmountElement = modalElement.querySelector(
|
const taxAmountElement = modalElement.querySelector(
|
||||||
"#feeAdd--taxAmount"
|
"#feeAdd--taxAmount"
|
||||||
) as HTMLInputElement;
|
) as HTMLInputElement;
|
||||||
|
|
@ -596,9 +610,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
modalElement
|
(
|
||||||
.querySelector("#feeAdd--includeQuantity")
|
modalElement.querySelector("#feeAdd--includeQuantity") as HTMLSelectElement
|
||||||
.addEventListener("change", () => {
|
).addEventListener("change", () => {
|
||||||
(
|
(
|
||||||
modalElement.querySelector("#feeAdd--quantityUnit") as HTMLInputElement
|
modalElement.querySelector("#feeAdd--quantityUnit") as HTMLInputElement
|
||||||
).disabled =
|
).disabled =
|
||||||
|
|
@ -622,19 +636,19 @@ declare const bulmaJS: BulmaJS;
|
||||||
".container--fee"
|
".container--fee"
|
||||||
) as HTMLElement;
|
) as HTMLElement;
|
||||||
|
|
||||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
const feeId = Number.parseInt(feeContainerElement.dataset.feeId!, 10);
|
||||||
const feeCategoryId = Number.parseInt(
|
const feeCategoryId = Number.parseInt(
|
||||||
(feeContainerElement.closest(".container--feeCategory") as HTMLElement).dataset
|
(feeContainerElement.closest(".container--feeCategory") as HTMLElement).dataset
|
||||||
.feeCategoryId
|
.feeCategoryId!
|
||||||
);
|
);
|
||||||
|
|
||||||
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
const feeCategory = feeCategories.find((currentFeeCategory) => {
|
||||||
return currentFeeCategory.feeCategoryId === feeCategoryId;
|
return currentFeeCategory.feeCategoryId === feeCategoryId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
const fee = feeCategory.fees.find((currentFee) => {
|
const fee = feeCategory.fees!.find((currentFee) => {
|
||||||
return currentFee.feeId === feeId;
|
return currentFee.feeId === feeId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
let editCloseModalFunction: () => void;
|
let editCloseModalFunction: () => void;
|
||||||
let editModalElement: HTMLElement;
|
let editModalElement: HTMLElement;
|
||||||
|
|
@ -643,7 +657,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateFee",
|
los.urlPrefix + "/admin/doUpdateFee",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -651,13 +665,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
feeCategories?: recordTypes.FeeCategory[];
|
feeCategories?: recordTypes.FeeCategory[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories!;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
renderFeeCategories();
|
renderFeeCategories();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Fee",
|
title: "Error Updating Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -670,7 +684,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteFee",
|
los.urlPrefix + "/admin/doDeleteFee",
|
||||||
{
|
{
|
||||||
feeId
|
feeId
|
||||||
},
|
},
|
||||||
|
|
@ -680,13 +694,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
feeCategories?: recordTypes.FeeCategory[];
|
feeCategories?: recordTypes.FeeCategory[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories!;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
renderFeeCategories();
|
renderFeeCategories();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Fee",
|
title: "Error Deleting Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -714,12 +728,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
) as HTMLSelectElement;
|
) as HTMLSelectElement;
|
||||||
|
|
||||||
if (feeFunctionElement.value === "") {
|
if (feeFunctionElement.value === "") {
|
||||||
feeFunctionElement.closest(".select").classList.remove("is-success");
|
feeFunctionElement.closest(".select")!.classList.remove("is-success");
|
||||||
|
|
||||||
feeAmountElement.classList.add("is-success");
|
feeAmountElement.classList.add("is-success");
|
||||||
feeAmountElement.disabled = false;
|
feeAmountElement.disabled = false;
|
||||||
} else {
|
} else {
|
||||||
feeFunctionElement.closest(".select").classList.add("is-success");
|
feeFunctionElement.closest(".select")!.classList.add("is-success");
|
||||||
|
|
||||||
feeAmountElement.classList.remove("is-success");
|
feeAmountElement.classList.remove("is-success");
|
||||||
feeAmountElement.disabled = true;
|
feeAmountElement.disabled = true;
|
||||||
|
|
@ -760,7 +774,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
editModalElement = modalElement;
|
editModalElement = modalElement;
|
||||||
|
|
||||||
(modalElement.querySelector("#feeEdit--feeId") as HTMLInputElement).value =
|
(modalElement.querySelector("#feeEdit--feeId") as HTMLInputElement).value =
|
||||||
fee.feeId.toString();
|
fee.feeId!.toString();
|
||||||
|
|
||||||
const feeCategoryElement = modalElement.querySelector(
|
const feeCategoryElement = modalElement.querySelector(
|
||||||
"#feeEdit--feeCategoryId"
|
"#feeEdit--feeCategoryId"
|
||||||
|
|
@ -768,8 +782,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
for (const feeCategory of feeCategories) {
|
for (const feeCategory of feeCategories) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
optionElement.value = feeCategory.feeCategoryId.toString();
|
optionElement.value = feeCategory.feeCategoryId!.toString();
|
||||||
optionElement.textContent = feeCategory.feeCategory;
|
optionElement.textContent = feeCategory.feeCategory!;
|
||||||
|
|
||||||
if (feeCategory.feeCategoryId === feeCategoryId) {
|
if (feeCategory.feeCategoryId === feeCategoryId) {
|
||||||
optionElement.selected = true;
|
optionElement.selected = true;
|
||||||
|
|
@ -779,10 +793,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
}
|
}
|
||||||
|
|
||||||
(modalElement.querySelector("#feeEdit--feeName") as HTMLInputElement).value =
|
(modalElement.querySelector("#feeEdit--feeName") as HTMLInputElement).value =
|
||||||
fee.feeName;
|
fee.feeName!;
|
||||||
(
|
(
|
||||||
modalElement.querySelector("#feeEdit--feeDescription") as HTMLTextAreaElement
|
modalElement.querySelector("#feeEdit--feeDescription") as HTMLTextAreaElement
|
||||||
).value = fee.feeDescription;
|
).value = fee.feeDescription!;
|
||||||
|
|
||||||
const occupancyTypeElement = modalElement.querySelector(
|
const occupancyTypeElement = modalElement.querySelector(
|
||||||
"#feeEdit--occupancyTypeId"
|
"#feeEdit--occupancyTypeId"
|
||||||
|
|
@ -818,9 +832,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
(modalElement.querySelector("#feeEdit--feeAmount") as HTMLInputElement).value =
|
(modalElement.querySelector("#feeEdit--feeAmount") as HTMLInputElement).value =
|
||||||
fee.feeAmount ? fee.feeAmount.toFixed(2) : "";
|
fee.feeAmount ? fee.feeAmount.toFixed(2) : "";
|
||||||
modalElement
|
(
|
||||||
.querySelector("#feeEdit--feeFunction")
|
modalElement.querySelector("#feeEdit--feeFunction") as HTMLSelectElement
|
||||||
.addEventListener("change", toggleFeeFields);
|
).addEventListener("change", toggleFeeFields);
|
||||||
|
|
||||||
toggleFeeFields();
|
toggleFeeFields();
|
||||||
|
|
||||||
|
|
@ -863,13 +877,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
editCloseModalFunction = closeModalFunction;
|
editCloseModalFunction = closeModalFunction;
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doUpdateFee);
|
modalElement.querySelector("form")!.addEventListener("submit", doUpdateFee);
|
||||||
|
|
||||||
bulmaJS.init(modalElement);
|
bulmaJS.init(modalElement);
|
||||||
|
|
||||||
modalElement
|
(
|
||||||
.querySelector(".button--deleteFee")
|
modalElement.querySelector(".button--deleteFee") as HTMLButtonElement
|
||||||
.addEventListener("click", confirmDeleteFee);
|
).addEventListener("click", confirmDeleteFee);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -882,10 +896,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
".container--fee"
|
".container--fee"
|
||||||
) as HTMLElement;
|
) as HTMLElement;
|
||||||
|
|
||||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
const feeId = Number.parseInt(feeContainerElement.dataset.feeId!, 10);
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveFeeUp",
|
los.urlPrefix + "/admin/doMoveFeeUp",
|
||||||
{
|
{
|
||||||
feeId,
|
feeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -896,12 +910,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
feeCategories?: recordTypes.FeeCategory[];
|
feeCategories?: recordTypes.FeeCategory[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories!;
|
||||||
renderFeeCategories();
|
renderFeeCategories();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Fee",
|
title: "Error Moving Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -914,10 +928,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
".container--fee"
|
".container--fee"
|
||||||
) as HTMLElement;
|
) as HTMLElement;
|
||||||
|
|
||||||
const feeId = Number.parseInt(feeContainerElement.dataset.feeId, 10);
|
const feeId = Number.parseInt(feeContainerElement.dataset.feeId!, 10);
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveFeeDown",
|
los.urlPrefix + "/admin/doMoveFeeDown",
|
||||||
{
|
{
|
||||||
feeId,
|
feeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -928,12 +942,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
feeCategories?: recordTypes.FeeCategory[];
|
feeCategories?: recordTypes.FeeCategory[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories!;
|
||||||
renderFeeCategories();
|
renderFeeCategories();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Fee",
|
title: "Error Moving Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
const containerElement = document.querySelector("#container--lotTypes");
|
const containerElement = document.querySelector("#container--lotTypes");
|
||||||
let lotTypes = exports.lotTypes;
|
let lotTypes = exports.lotTypes;
|
||||||
delete exports.lotTypes;
|
delete exports.lotTypes;
|
||||||
|
|
@ -33,7 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.lot + " Type",
|
title: "Error Updating " + exports.aliases.lot + " Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -41,7 +40,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const deleteLotType = (clickEvent) => {
|
const deleteLotType = (clickEvent) => {
|
||||||
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10);
|
const lotTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId, 10);
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteLotType", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotType", {
|
||||||
lotTypeId
|
lotTypeId
|
||||||
}, lotTypeResponseHandler);
|
}, lotTypeResponseHandler);
|
||||||
};
|
};
|
||||||
|
|
@ -65,7 +64,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const doEdit = (submitEvent) => {
|
const doEdit = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateLotType", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateLotType", submitEvent.currentTarget, (responseJSON) => {
|
||||||
lotTypeResponseHandler(responseJSON);
|
lotTypeResponseHandler(responseJSON);
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -96,7 +95,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const doAdd = (submitEvent) => {
|
const doAdd = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddLotTypeField", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddLotTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||||
expandedLotTypes.add(lotTypeId);
|
expandedLotTypes.add(lotTypeId);
|
||||||
lotTypeResponseHandler(responseJSON);
|
lotTypeResponseHandler(responseJSON);
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
|
|
@ -126,7 +125,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveLotTypeUp = (clickEvent) => {
|
const moveLotTypeUp = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const lotTypeId = clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId;
|
const lotTypeId = clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotTypeUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotTypeUp", {
|
||||||
lotTypeId,
|
lotTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, lotTypeResponseHandler);
|
}, lotTypeResponseHandler);
|
||||||
|
|
@ -134,7 +133,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveLotTypeDown = (clickEvent) => {
|
const moveLotTypeDown = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const lotTypeId = clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId;
|
const lotTypeId = clickEvent.currentTarget.closest(".container--lotType").dataset.lotTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotTypeDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotTypeDown", {
|
||||||
lotTypeId,
|
lotTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, lotTypeResponseHandler);
|
}, lotTypeResponseHandler);
|
||||||
|
|
@ -168,7 +167,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
};
|
};
|
||||||
const doUpdate = (submitEvent) => {
|
const doUpdate = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateLotTypeField", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateLotTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||||
lotTypeResponseHandler(responseJSON);
|
lotTypeResponseHandler(responseJSON);
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -177,7 +176,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
};
|
};
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
const _doDelete = () => {
|
const _doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteLotTypeField", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotTypeField", {
|
||||||
lotTypeFieldId
|
lotTypeFieldId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
lotTypeResponseHandler(responseJSON);
|
lotTypeResponseHandler(responseJSON);
|
||||||
|
|
@ -221,9 +220,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||||
updateMaximumLengthMin();
|
updateMaximumLengthMin();
|
||||||
lotTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
lotTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||||
modalElement
|
modalElement.querySelector("#button--deleteLotTypeField").addEventListener("click", doDelete);
|
||||||
.querySelector("#button--deleteLotTypeField")
|
|
||||||
.addEventListener("click", doDelete);
|
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -240,7 +237,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveLotTypeFieldUp = (clickEvent) => {
|
const moveLotTypeFieldUp = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const lotTypeFieldId = clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId;
|
const lotTypeFieldId = clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotTypeFieldUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotTypeFieldUp", {
|
||||||
lotTypeFieldId,
|
lotTypeFieldId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, lotTypeResponseHandler);
|
}, lotTypeResponseHandler);
|
||||||
|
|
@ -248,7 +245,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveLotTypeFieldDown = (clickEvent) => {
|
const moveLotTypeFieldDown = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const lotTypeFieldId = clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId;
|
const lotTypeFieldId = clickEvent.currentTarget.closest(".container--lotTypeField").dataset.lotTypeFieldId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotTypeFieldDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotTypeFieldDown", {
|
||||||
lotTypeFieldId,
|
lotTypeFieldId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, lotTypeResponseHandler);
|
}, lotTypeResponseHandler);
|
||||||
|
|
@ -276,7 +273,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
'<div class="level-left">' +
|
'<div class="level-left">' +
|
||||||
('<div class="level-item">' +
|
('<div class="level-item">' +
|
||||||
'<a class="has-text-weight-bold button--editLotTypeField" href="#">' +
|
'<a class="has-text-weight-bold button--editLotTypeField" href="#">' +
|
||||||
cityssm.escapeHTML(lotTypeField.lotTypeField) +
|
cityssm.escapeHTML(lotTypeField.lotTypeField || "") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
|
|
@ -297,15 +294,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
panelBlockElement
|
panelBlockElement.querySelector(".button--editLotTypeField").addEventListener("click", openEditLotTypeFieldByClick);
|
||||||
.querySelector(".button--editLotTypeField")
|
panelBlockElement.querySelector(".button--moveLotTypeFieldUp").addEventListener("click", moveLotTypeFieldUp);
|
||||||
.addEventListener("click", openEditLotTypeFieldByClick);
|
panelBlockElement.querySelector(".button--moveLotTypeFieldDown").addEventListener("click", moveLotTypeFieldDown);
|
||||||
panelBlockElement
|
|
||||||
.querySelector(".button--moveLotTypeFieldUp")
|
|
||||||
.addEventListener("click", moveLotTypeFieldUp);
|
|
||||||
panelBlockElement
|
|
||||||
.querySelector(".button--moveLotTypeFieldDown")
|
|
||||||
.addEventListener("click", moveLotTypeFieldDown);
|
|
||||||
panelElement.append(panelBlockElement);
|
panelElement.append(panelBlockElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -380,24 +371,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
renderLotTypeFields(lotTypeContainer, lotType.lotTypeId, lotType.lotTypeFields);
|
renderLotTypeFields(lotTypeContainer, lotType.lotTypeId, lotType.lotTypeFields);
|
||||||
lotTypeContainer
|
lotTypeContainer.querySelector(".button--toggleLotTypeFields").addEventListener("click", toggleLotTypeFields);
|
||||||
.querySelector(".button--toggleLotTypeFields")
|
lotTypeContainer.querySelector(".button--deleteLotType").addEventListener("click", deleteLotType);
|
||||||
.addEventListener("click", toggleLotTypeFields);
|
lotTypeContainer.querySelector(".button--editLotType").addEventListener("click", openEditLotType);
|
||||||
lotTypeContainer
|
lotTypeContainer.querySelector(".button--addLotTypeField").addEventListener("click", openAddLotTypeField);
|
||||||
.querySelector(".button--deleteLotType")
|
lotTypeContainer.querySelector(".button--moveLotTypeUp").addEventListener("click", moveLotTypeUp);
|
||||||
.addEventListener("click", deleteLotType);
|
lotTypeContainer.querySelector(".button--moveLotTypeDown").addEventListener("click", moveLotTypeDown);
|
||||||
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);
|
containerElement.append(lotTypeContainer);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -405,7 +384,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const doAdd = (submitEvent) => {
|
const doAdd = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddLotType", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddLotType", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
lotTypes = responseJSON.lotTypes;
|
lotTypes = responseJSON.lotTypes;
|
||||||
|
|
@ -414,7 +393,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.lot + " Type",
|
title: "Error Adding " + exports.aliases.lot + " Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
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 globalTypes from "../types/globalTypes";
|
||||||
import type * as recordTypes from "../types/recordTypes";
|
import type * as recordTypes from "../types/recordTypes";
|
||||||
|
|
@ -13,8 +13,6 @@ declare const bulmaJS: BulmaJS;
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los as globalTypes.LOS;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
|
|
||||||
const containerElement = document.querySelector("#container--lotTypes") as HTMLElement;
|
const containerElement = document.querySelector("#container--lotTypes") as HTMLElement;
|
||||||
|
|
||||||
let lotTypes: recordTypes.LotType[] = exports.lotTypes;
|
let lotTypes: recordTypes.LotType[] = exports.lotTypes;
|
||||||
|
|
@ -27,7 +25,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
const lotTypeElement = toggleButtonElement.closest(".container--lotType") as HTMLElement;
|
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)) {
|
if (expandedLotTypes.has(lotTypeId)) {
|
||||||
expandedLotTypes.delete(lotTypeId);
|
expandedLotTypes.delete(lotTypeId);
|
||||||
|
|
@ -52,12 +50,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotTypes?: recordTypes.LotType[];
|
lotTypes?: recordTypes.LotType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotTypes = responseJSON.lotTypes;
|
lotTypes = responseJSON.lotTypes!;
|
||||||
renderLotTypes();
|
renderLotTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.lot + " Type",
|
title: "Error Updating " + exports.aliases.lot + " Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -69,13 +67,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--lotType"
|
".container--lotType"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.lotTypeId,
|
).dataset.lotTypeId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteLotType",
|
los.urlPrefix + "/admin/doDeleteLotType",
|
||||||
{
|
{
|
||||||
lotTypeId
|
lotTypeId
|
||||||
},
|
},
|
||||||
|
|
@ -103,13 +101,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--lotType"
|
".container--lotType"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.lotTypeId,
|
).dataset.lotTypeId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const lotType = lotTypes.find((currentLotType) => {
|
const lotType = lotTypes.find((currentLotType) => {
|
||||||
return lotTypeId === currentLotType.lotTypeId;
|
return lotTypeId === currentLotType.lotTypeId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
let editCloseModalFunction: () => void;
|
let editCloseModalFunction: () => void;
|
||||||
|
|
||||||
|
|
@ -117,7 +115,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateLotType",
|
los.urlPrefix + "/admin/doUpdateLotType",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -147,7 +145,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
(modalElement.querySelector("#lotTypeEdit--lotType") as HTMLInputElement).focus();
|
(modalElement.querySelector("#lotTypeEdit--lotType") as HTMLInputElement).focus();
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doEdit);
|
modalElement.querySelector("form")!.addEventListener("submit", doEdit);
|
||||||
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
},
|
},
|
||||||
|
|
@ -163,7 +161,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--lotType"
|
".container--lotType"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.lotTypeId,
|
).dataset.lotTypeId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -173,7 +171,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddLotTypeField",
|
los.urlPrefix + "/admin/doAddLotTypeField",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -186,7 +184,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
openEditLotTypeField(lotTypeId, responseJSON.lotTypeFieldId);
|
openEditLotTypeField(lotTypeId, responseJSON.lotTypeFieldId!);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
@ -211,7 +209,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement
|
modalElement.querySelector("#lotTypeFieldAdd--lotTypeField") as HTMLInputElement
|
||||||
).focus();
|
).focus();
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAdd);
|
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||||
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
},
|
},
|
||||||
|
|
@ -229,7 +227,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
).dataset.lotTypeId;
|
).dataset.lotTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveLotTypeUp",
|
los.urlPrefix + "/admin/doMoveLotTypeUp",
|
||||||
{
|
{
|
||||||
lotTypeId,
|
lotTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -246,7 +244,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
).dataset.lotTypeId;
|
).dataset.lotTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveLotTypeDown",
|
los.urlPrefix + "/admin/doMoveLotTypeDown",
|
||||||
{
|
{
|
||||||
lotTypeId,
|
lotTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -258,11 +256,11 @@ declare const bulmaJS: BulmaJS;
|
||||||
const openEditLotTypeField = (lotTypeId: number, lotTypeFieldId: number) => {
|
const openEditLotTypeField = (lotTypeId: number, lotTypeFieldId: number) => {
|
||||||
const lotType = lotTypes.find((currentLotType) => {
|
const lotType = lotTypes.find((currentLotType) => {
|
||||||
return currentLotType.lotTypeId === lotTypeId;
|
return currentLotType.lotTypeId === lotTypeId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
const lotTypeField = lotType.lotTypeFields.find((currentLotTypeField) => {
|
const lotTypeField = lotType.lotTypeFields!.find((currentLotTypeField) => {
|
||||||
return currentLotTypeField.lotTypeFieldId === lotTypeFieldId;
|
return currentLotTypeField.lotTypeFieldId === lotTypeFieldId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
let minimumLengthElement: HTMLInputElement;
|
let minimumLengthElement: HTMLInputElement;
|
||||||
let maximumLengthElement: HTMLInputElement;
|
let maximumLengthElement: HTMLInputElement;
|
||||||
|
|
@ -291,7 +289,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateLotTypeField",
|
los.urlPrefix + "/admin/doUpdateLotTypeField",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -309,7 +307,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
const _doDelete = () => {
|
const _doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteLotTypeField",
|
los.urlPrefix + "/admin/doDeleteLotTypeField",
|
||||||
{
|
{
|
||||||
lotTypeFieldId
|
lotTypeFieldId
|
||||||
},
|
},
|
||||||
|
|
@ -346,13 +344,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
modalElement.querySelector(
|
modalElement.querySelector(
|
||||||
"#lotTypeFieldEdit--lotTypeFieldId"
|
"#lotTypeFieldEdit--lotTypeFieldId"
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value = lotTypeField.lotTypeFieldId.toString();
|
).value = lotTypeField.lotTypeFieldId!.toString();
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector(
|
modalElement.querySelector(
|
||||||
"#lotTypeFieldEdit--lotTypeField"
|
"#lotTypeFieldEdit--lotTypeField"
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value = lotTypeField.lotTypeField;
|
).value = lotTypeField.lotTypeField!;
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement
|
modalElement.querySelector("#lotTypeFieldEdit--isRequired") as HTMLSelectElement
|
||||||
|
|
@ -360,25 +358,27 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
minimumLengthElement = modalElement.querySelector(
|
minimumLengthElement = modalElement.querySelector(
|
||||||
"#lotTypeFieldEdit--minimumLength"
|
"#lotTypeFieldEdit--minimumLength"
|
||||||
);
|
) as HTMLInputElement;
|
||||||
|
|
||||||
minimumLengthElement.value = lotTypeField.minimumLength.toString();
|
minimumLengthElement.value = lotTypeField.minimumLength!.toString();
|
||||||
|
|
||||||
maximumLengthElement = modalElement.querySelector(
|
maximumLengthElement = modalElement.querySelector(
|
||||||
"#lotTypeFieldEdit--maximumLength"
|
"#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(
|
lotTypeFieldValuesElement = modalElement.querySelector(
|
||||||
"#lotTypeFieldEdit--lotTypeFieldValues"
|
"#lotTypeFieldEdit--lotTypeFieldValues"
|
||||||
);
|
) as HTMLTextAreaElement;
|
||||||
|
|
||||||
lotTypeFieldValuesElement.value = lotTypeField.lotTypeFieldValues;
|
lotTypeFieldValuesElement.value = lotTypeField.lotTypeFieldValues!;
|
||||||
|
|
||||||
toggleInputFields();
|
toggleInputFields();
|
||||||
},
|
},
|
||||||
|
|
@ -389,16 +389,16 @@ declare const bulmaJS: BulmaJS;
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
cityssm.enableNavBlocker();
|
cityssm.enableNavBlocker();
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doUpdate);
|
modalElement.querySelector("form")!.addEventListener("submit", doUpdate);
|
||||||
|
|
||||||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||||
updateMaximumLengthMin();
|
updateMaximumLengthMin();
|
||||||
|
|
||||||
lotTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
lotTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||||
|
|
||||||
modalElement
|
(
|
||||||
.querySelector("#button--deleteLotTypeField")
|
modalElement.querySelector("#button--deleteLotTypeField") as HTMLButtonElement
|
||||||
.addEventListener("click", doDelete);
|
).addEventListener("click", doDelete);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -415,7 +415,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--lotTypeField"
|
".container--lotTypeField"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.lotTypeFieldId,
|
).dataset.lotTypeFieldId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -424,7 +424,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--lotType"
|
".container--lotType"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.lotTypeId,
|
).dataset.lotTypeId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -441,7 +441,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
).dataset.lotTypeFieldId;
|
).dataset.lotTypeFieldId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveLotTypeFieldUp",
|
los.urlPrefix + "/admin/doMoveLotTypeFieldUp",
|
||||||
{
|
{
|
||||||
lotTypeFieldId,
|
lotTypeFieldId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -460,7 +460,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
).dataset.lotTypeFieldId;
|
).dataset.lotTypeFieldId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveLotTypeFieldDown",
|
los.urlPrefix + "/admin/doMoveLotTypeFieldDown",
|
||||||
{
|
{
|
||||||
lotTypeFieldId,
|
lotTypeFieldId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -494,14 +494,14 @@ declare const bulmaJS: BulmaJS;
|
||||||
panelBlockElement.classList.add("is-hidden");
|
panelBlockElement.classList.add("is-hidden");
|
||||||
}
|
}
|
||||||
|
|
||||||
panelBlockElement.dataset.lotTypeFieldId = lotTypeField.lotTypeFieldId.toString();
|
panelBlockElement.dataset.lotTypeFieldId = lotTypeField.lotTypeFieldId!.toString();
|
||||||
|
|
||||||
panelBlockElement.innerHTML =
|
panelBlockElement.innerHTML =
|
||||||
'<div class="level is-mobile">' +
|
'<div class="level is-mobile">' +
|
||||||
'<div class="level-left">' +
|
'<div class="level-left">' +
|
||||||
('<div class="level-item">' +
|
('<div class="level-item">' +
|
||||||
'<a class="has-text-weight-bold button--editLotTypeField" href="#">' +
|
'<a class="has-text-weight-bold button--editLotTypeField" href="#">' +
|
||||||
cityssm.escapeHTML(lotTypeField.lotTypeField) +
|
cityssm.escapeHTML(lotTypeField.lotTypeField || "") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
|
|
@ -523,17 +523,23 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
panelBlockElement
|
(
|
||||||
.querySelector(".button--editLotTypeField")
|
panelBlockElement.querySelector(
|
||||||
.addEventListener("click", openEditLotTypeFieldByClick);
|
".button--editLotTypeField"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", openEditLotTypeFieldByClick);
|
||||||
|
|
||||||
panelBlockElement
|
(
|
||||||
.querySelector(".button--moveLotTypeFieldUp")
|
panelBlockElement.querySelector(
|
||||||
.addEventListener("click", moveLotTypeFieldUp);
|
".button--moveLotTypeFieldUp"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveLotTypeFieldUp);
|
||||||
|
|
||||||
panelBlockElement
|
(
|
||||||
.querySelector(".button--moveLotTypeFieldDown")
|
panelBlockElement.querySelector(
|
||||||
.addEventListener("click", moveLotTypeFieldDown);
|
".button--moveLotTypeFieldDown"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveLotTypeFieldDown);
|
||||||
|
|
||||||
panelElement.append(panelBlockElement);
|
panelElement.append(panelBlockElement);
|
||||||
}
|
}
|
||||||
|
|
@ -619,44 +625,46 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
renderLotTypeFields(lotTypeContainer, lotType.lotTypeId, lotType.lotTypeFields);
|
renderLotTypeFields(lotTypeContainer, lotType.lotTypeId, lotType.lotTypeFields!);
|
||||||
|
|
||||||
lotTypeContainer
|
(
|
||||||
.querySelector(".button--toggleLotTypeFields")
|
lotTypeContainer.querySelector(".button--toggleLotTypeFields") as HTMLButtonElement
|
||||||
.addEventListener("click", toggleLotTypeFields);
|
).addEventListener("click", toggleLotTypeFields);
|
||||||
|
|
||||||
lotTypeContainer
|
(
|
||||||
.querySelector(".button--deleteLotType")
|
lotTypeContainer.querySelector(".button--deleteLotType") as HTMLButtonElement
|
||||||
.addEventListener("click", deleteLotType);
|
).addEventListener("click", deleteLotType);
|
||||||
|
|
||||||
lotTypeContainer
|
(
|
||||||
.querySelector(".button--editLotType")
|
lotTypeContainer.querySelector(".button--editLotType") as HTMLButtonElement
|
||||||
.addEventListener("click", openEditLotType);
|
).addEventListener("click", openEditLotType);
|
||||||
|
|
||||||
lotTypeContainer
|
(
|
||||||
.querySelector(".button--addLotTypeField")
|
lotTypeContainer.querySelector(".button--addLotTypeField") as HTMLButtonElement
|
||||||
.addEventListener("click", openAddLotTypeField);
|
).addEventListener("click", openAddLotTypeField);
|
||||||
|
|
||||||
lotTypeContainer
|
(
|
||||||
.querySelector(".button--moveLotTypeUp")
|
lotTypeContainer.querySelector(".button--moveLotTypeUp") as HTMLButtonElement
|
||||||
.addEventListener("click", moveLotTypeUp);
|
).addEventListener("click", moveLotTypeUp);
|
||||||
|
|
||||||
lotTypeContainer
|
(
|
||||||
.querySelector(".button--moveLotTypeDown")
|
lotTypeContainer.querySelector(".button--moveLotTypeDown") as HTMLButtonElement
|
||||||
.addEventListener("click", moveLotTypeDown);
|
).addEventListener("click", moveLotTypeDown);
|
||||||
|
|
||||||
containerElement.append(lotTypeContainer);
|
containerElement.append(lotTypeContainer);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
document.querySelector("#button--addLotType").addEventListener("click", () => {
|
(document.querySelector("#button--addLotType") as HTMLButtonElement).addEventListener(
|
||||||
|
"click",
|
||||||
|
() => {
|
||||||
let addCloseModalFunction: () => void;
|
let addCloseModalFunction: () => void;
|
||||||
|
|
||||||
const doAdd = (submitEvent: SubmitEvent) => {
|
const doAdd = (submitEvent: SubmitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddLotType",
|
los.urlPrefix + "/admin/doAddLotType",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -665,12 +673,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
lotTypes = responseJSON.lotTypes;
|
lotTypes = responseJSON.lotTypes!;
|
||||||
renderLotTypes();
|
renderLotTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.lot + " Type",
|
title: "Error Adding " + exports.aliases.lot + " Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -685,9 +693,11 @@ declare const bulmaJS: BulmaJS;
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
|
|
||||||
(modalElement.querySelector("#lotTypeAdd--lotType") as HTMLInputElement).focus();
|
(
|
||||||
|
modalElement.querySelector("#lotTypeAdd--lotType") as HTMLInputElement
|
||||||
|
).focus();
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAdd);
|
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||||
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
},
|
},
|
||||||
|
|
@ -695,7 +705,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
renderLotTypes();
|
renderLotTypes();
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
const containerElement = document.querySelector("#container--occupancyTypes");
|
const containerElement = document.querySelector("#container--occupancyTypes");
|
||||||
let occupancyTypes = exports.occupancyTypes;
|
let occupancyTypes = exports.occupancyTypes;
|
||||||
delete exports.occupancyTypes;
|
delete exports.occupancyTypes;
|
||||||
|
|
@ -36,7 +35,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.occupancy + " Type",
|
title: "Error Updating " + exports.aliases.occupancy + " Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -44,7 +43,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const deleteOccupancyType = (clickEvent) => {
|
const deleteOccupancyType = (clickEvent) => {
|
||||||
const occupancyTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId, 10);
|
const occupancyTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId, 10);
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteOccupancyType", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteOccupancyType", {
|
||||||
occupancyTypeId
|
occupancyTypeId
|
||||||
}, occupancyTypeResponseHandler);
|
}, occupancyTypeResponseHandler);
|
||||||
};
|
};
|
||||||
|
|
@ -68,7 +67,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const doEdit = (submitEvent) => {
|
const doEdit = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateOccupancyType", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateOccupancyType", submitEvent.currentTarget, (responseJSON) => {
|
||||||
occupancyTypeResponseHandler(responseJSON);
|
occupancyTypeResponseHandler(responseJSON);
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -97,7 +96,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const doAdd = (submitEvent) => {
|
const doAdd = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||||
expandedOccupancyTypes.add(occupancyTypeId);
|
expandedOccupancyTypes.add(occupancyTypeId);
|
||||||
occupancyTypeResponseHandler(responseJSON);
|
occupancyTypeResponseHandler(responseJSON);
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
|
|
@ -127,7 +126,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveOccupancyTypeUp = (clickEvent) => {
|
const moveOccupancyTypeUp = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
|
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeUp", {
|
||||||
occupancyTypeId,
|
occupancyTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, occupancyTypeResponseHandler);
|
}, occupancyTypeResponseHandler);
|
||||||
|
|
@ -135,7 +134,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveOccupancyTypeDown = (clickEvent) => {
|
const moveOccupancyTypeDown = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
|
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeDown", {
|
||||||
occupancyTypeId,
|
occupancyTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, occupancyTypeResponseHandler);
|
}, occupancyTypeResponseHandler);
|
||||||
|
|
@ -172,7 +171,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
};
|
};
|
||||||
const doUpdate = (submitEvent) => {
|
const doUpdate = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
|
||||||
occupancyTypeResponseHandler(responseJSON);
|
occupancyTypeResponseHandler(responseJSON);
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -181,7 +180,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
};
|
};
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
const _doDelete = () => {
|
const _doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteOccupancyTypeField", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteOccupancyTypeField", {
|
||||||
occupancyTypeFieldId
|
occupancyTypeFieldId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
occupancyTypeResponseHandler(responseJSON);
|
occupancyTypeResponseHandler(responseJSON);
|
||||||
|
|
@ -213,7 +212,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
patternElement = modalElement.querySelector("#occupancyTypeFieldEdit--pattern");
|
patternElement = modalElement.querySelector("#occupancyTypeFieldEdit--pattern");
|
||||||
patternElement.value = occupancyTypeField.pattern;
|
patternElement.value = occupancyTypeField.pattern;
|
||||||
occupancyTypeFieldValuesElement = modalElement.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues");
|
occupancyTypeFieldValuesElement = modalElement.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues");
|
||||||
occupancyTypeFieldValuesElement.value = occupancyTypeField.occupancyTypeFieldValues;
|
occupancyTypeFieldValuesElement.value =
|
||||||
|
occupancyTypeField.occupancyTypeFieldValues;
|
||||||
toggleInputFields();
|
toggleInputFields();
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
|
|
@ -225,9 +225,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||||
updateMaximumLengthMin();
|
updateMaximumLengthMin();
|
||||||
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||||
modalElement
|
modalElement.querySelector("#button--deleteOccupancyTypeField").addEventListener("click", doDelete);
|
||||||
.querySelector("#button--deleteOccupancyTypeField")
|
|
||||||
.addEventListener("click", doDelete);
|
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -244,7 +242,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveOccupancyTypeFieldUp = (clickEvent) => {
|
const moveOccupancyTypeFieldUp = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const occupancyTypeFieldId = clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;
|
const occupancyTypeFieldId = clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeFieldUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeFieldUp", {
|
||||||
occupancyTypeFieldId,
|
occupancyTypeFieldId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, occupancyTypeResponseHandler);
|
}, occupancyTypeResponseHandler);
|
||||||
|
|
@ -252,7 +250,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveOccupancyTypeFieldDown = (clickEvent) => {
|
const moveOccupancyTypeFieldDown = (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const occupancyTypeFieldId = clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;
|
const occupancyTypeFieldId = clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeFieldDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeFieldDown", {
|
||||||
occupancyTypeFieldId,
|
occupancyTypeFieldId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, occupancyTypeResponseHandler);
|
}, occupancyTypeResponseHandler);
|
||||||
|
|
@ -283,7 +281,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
'<div class="level-left">' +
|
'<div class="level-left">' +
|
||||||
('<div class="level-item">' +
|
('<div class="level-item">' +
|
||||||
'<a class="has-text-weight-bold button--editOccupancyTypeField" href="#">' +
|
'<a class="has-text-weight-bold button--editOccupancyTypeField" href="#">' +
|
||||||
cityssm.escapeHTML(occupancyTypeField.occupancyTypeField) +
|
cityssm.escapeHTML(occupancyTypeField.occupancyTypeField || "") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
|
|
@ -304,15 +302,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
panelBlockElement
|
panelBlockElement.querySelector(".button--editOccupancyTypeField").addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||||
.querySelector(".button--editOccupancyTypeField")
|
panelBlockElement.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click", moveOccupancyTypeFieldUp);
|
||||||
.addEventListener("click", openEditOccupancyTypeFieldByClick);
|
panelBlockElement.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click", moveOccupancyTypeFieldDown);
|
||||||
panelBlockElement
|
|
||||||
.querySelector(".button--moveOccupancyTypeFieldUp")
|
|
||||||
.addEventListener("click", moveOccupancyTypeFieldUp);
|
|
||||||
panelBlockElement
|
|
||||||
.querySelector(".button--moveOccupancyTypeFieldDown")
|
|
||||||
.addEventListener("click", moveOccupancyTypeFieldDown);
|
|
||||||
panelElement.append(panelBlockElement);
|
panelElement.append(panelBlockElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -337,9 +329,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
renderOccupancyTypeFields(containerElement.querySelector("#container--allOccupancyTypeFields"), undefined, allOccupancyTypeFields);
|
renderOccupancyTypeFields(containerElement.querySelector("#container--allOccupancyTypeFields"), undefined, allOccupancyTypeFields);
|
||||||
containerElement
|
containerElement.querySelector(".button--addOccupancyTypeField").addEventListener("click", openAddOccupancyTypeField);
|
||||||
.querySelector(".button--addOccupancyTypeField")
|
|
||||||
.addEventListener("click", openAddOccupancyTypeField);
|
|
||||||
if (occupancyTypes.length === 0) {
|
if (occupancyTypes.length === 0) {
|
||||||
containerElement.insertAdjacentHTML("afterbegin", '<div class="message is-warning>' +
|
containerElement.insertAdjacentHTML("afterbegin", '<div class="message is-warning>' +
|
||||||
'<p class="message-body">There are no active ' +
|
'<p class="message-body">There are no active ' +
|
||||||
|
|
@ -409,24 +399,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
renderOccupancyTypeFields(occupancyTypeContainer, occupancyType.occupancyTypeId, occupancyType.occupancyTypeFields);
|
renderOccupancyTypeFields(occupancyTypeContainer, occupancyType.occupancyTypeId, occupancyType.occupancyTypeFields);
|
||||||
occupancyTypeContainer
|
occupancyTypeContainer.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click", toggleOccupancyTypeFields);
|
||||||
.querySelector(".button--toggleOccupancyTypeFields")
|
occupancyTypeContainer.querySelector(".button--deleteOccupancyType").addEventListener("click", deleteOccupancyType);
|
||||||
.addEventListener("click", toggleOccupancyTypeFields);
|
occupancyTypeContainer.querySelector(".button--editOccupancyType").addEventListener("click", openEditOccupancyType);
|
||||||
occupancyTypeContainer
|
occupancyTypeContainer.querySelector(".button--addOccupancyTypeField").addEventListener("click", openAddOccupancyTypeField);
|
||||||
.querySelector(".button--deleteOccupancyType")
|
occupancyTypeContainer.querySelector(".button--moveOccupancyTypeUp").addEventListener("click", moveOccupancyTypeUp);
|
||||||
.addEventListener("click", deleteOccupancyType);
|
occupancyTypeContainer.querySelector(".button--moveOccupancyTypeDown").addEventListener("click", moveOccupancyTypeDown);
|
||||||
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);
|
containerElement.append(occupancyTypeContainer);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -434,7 +412,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const doAdd = (submitEvent) => {
|
const doAdd = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddOccupancyType", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddOccupancyType", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
occupancyTypes = responseJSON.occupancyTypes;
|
occupancyTypes = responseJSON.occupancyTypes;
|
||||||
|
|
@ -443,7 +421,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.occupancy + " Type",
|
title: "Error Adding " + exports.aliases.occupancy + " Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
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 globalTypes from "../types/globalTypes";
|
||||||
import type * as recordTypes from "../types/recordTypes";
|
import type * as recordTypes from "../types/recordTypes";
|
||||||
|
|
@ -13,8 +13,6 @@ declare const bulmaJS: BulmaJS;
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los as globalTypes.LOS;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
|
|
||||||
const containerElement = document.querySelector("#container--occupancyTypes") as HTMLElement;
|
const containerElement = document.querySelector("#container--occupancyTypes") as HTMLElement;
|
||||||
|
|
||||||
let occupancyTypes: recordTypes.OccupancyType[] = exports.occupancyTypes;
|
let occupancyTypes: recordTypes.OccupancyType[] = exports.occupancyTypes;
|
||||||
|
|
@ -32,7 +30,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
".container--occupancyType"
|
".container--occupancyType"
|
||||||
) as HTMLElement;
|
) as HTMLElement;
|
||||||
|
|
||||||
const occupancyTypeId = Number.parseInt(occupancyTypeElement.dataset.occupancyTypeId, 10);
|
const occupancyTypeId = Number.parseInt(occupancyTypeElement.dataset.occupancyTypeId!, 10);
|
||||||
|
|
||||||
if (expandedOccupancyTypes.has(occupancyTypeId)) {
|
if (expandedOccupancyTypes.has(occupancyTypeId)) {
|
||||||
expandedOccupancyTypes.delete(occupancyTypeId);
|
expandedOccupancyTypes.delete(occupancyTypeId);
|
||||||
|
|
@ -58,13 +56,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
allOccupancyTypeFields?: recordTypes.OccupancyTypeField[];
|
allOccupancyTypeFields?: recordTypes.OccupancyTypeField[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
occupancyTypes = responseJSON.occupancyTypes;
|
occupancyTypes = responseJSON.occupancyTypes!;
|
||||||
allOccupancyTypeFields = responseJSON.allOccupancyTypeFields;
|
allOccupancyTypeFields = responseJSON.allOccupancyTypeFields!;
|
||||||
renderOccupancyTypes();
|
renderOccupancyTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.occupancy + " Type",
|
title: "Error Updating " + exports.aliases.occupancy + " Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -76,13 +74,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--occupancyType"
|
".container--occupancyType"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.occupancyTypeId,
|
).dataset.occupancyTypeId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteOccupancyType",
|
los.urlPrefix + "/admin/doDeleteOccupancyType",
|
||||||
{
|
{
|
||||||
occupancyTypeId
|
occupancyTypeId
|
||||||
},
|
},
|
||||||
|
|
@ -110,13 +108,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--occupancyType"
|
".container--occupancyType"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.occupancyTypeId,
|
).dataset.occupancyTypeId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||||
return occupancyTypeId === currentOccupancyType.occupancyTypeId;
|
return occupancyTypeId === currentOccupancyType.occupancyTypeId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
let editCloseModalFunction: () => void;
|
let editCloseModalFunction: () => void;
|
||||||
|
|
||||||
|
|
@ -124,7 +122,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateOccupancyType",
|
los.urlPrefix + "/admin/doUpdateOccupancyType",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -165,7 +163,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).focus();
|
).focus();
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doEdit);
|
modalElement.querySelector("form")!.addEventListener("submit", doEdit);
|
||||||
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
},
|
},
|
||||||
|
|
@ -181,7 +179,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--occupancyType"
|
".container--occupancyType"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.occupancyTypeId,
|
).dataset.occupancyTypeId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -191,7 +189,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddOccupancyTypeField",
|
los.urlPrefix + "/admin/doAddOccupancyTypeField",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -207,7 +205,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
openEditOccupancyTypeField(
|
openEditOccupancyTypeField(
|
||||||
occupancyTypeId,
|
occupancyTypeId,
|
||||||
responseJSON.occupancyTypeFieldId
|
responseJSON.occupancyTypeFieldId!
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -235,7 +233,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).focus();
|
).focus();
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAdd);
|
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||||
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
},
|
},
|
||||||
|
|
@ -255,7 +253,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
).dataset.occupancyTypeId;
|
).dataset.occupancyTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveOccupancyTypeUp",
|
los.urlPrefix + "/admin/doMoveOccupancyTypeUp",
|
||||||
{
|
{
|
||||||
occupancyTypeId,
|
occupancyTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -274,7 +272,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
).dataset.occupancyTypeId;
|
).dataset.occupancyTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveOccupancyTypeDown",
|
los.urlPrefix + "/admin/doMoveOccupancyTypeDown",
|
||||||
{
|
{
|
||||||
occupancyTypeId,
|
occupancyTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -284,7 +282,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const openEditOccupancyTypeField = (occupancyTypeId: number, occupancyTypeFieldId: number) => {
|
const openEditOccupancyTypeField = (occupancyTypeId: number, occupancyTypeFieldId: number) => {
|
||||||
let occupancyType: recordTypes.OccupancyType;
|
let occupancyType: recordTypes.OccupancyType | undefined;
|
||||||
|
|
||||||
if (occupancyTypeId) {
|
if (occupancyTypeId) {
|
||||||
occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||||
|
|
@ -293,10 +291,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
}
|
}
|
||||||
|
|
||||||
const occupancyTypeField = (
|
const occupancyTypeField = (
|
||||||
occupancyType ? occupancyType.occupancyTypeFields : allOccupancyTypeFields
|
occupancyType ? occupancyType.occupancyTypeFields! : allOccupancyTypeFields
|
||||||
).find((currentOccupancyTypeField) => {
|
).find((currentOccupancyTypeField) => {
|
||||||
return currentOccupancyTypeField.occupancyTypeFieldId === occupancyTypeFieldId;
|
return currentOccupancyTypeField.occupancyTypeFieldId === occupancyTypeFieldId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
let minimumLengthElement: HTMLInputElement;
|
let minimumLengthElement: HTMLInputElement;
|
||||||
let maximumLengthElement: HTMLInputElement;
|
let maximumLengthElement: HTMLInputElement;
|
||||||
|
|
@ -325,7 +323,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateOccupancyTypeField",
|
los.urlPrefix + "/admin/doUpdateOccupancyTypeField",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -343,7 +341,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
const _doDelete = () => {
|
const _doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteOccupancyTypeField",
|
los.urlPrefix + "/admin/doDeleteOccupancyTypeField",
|
||||||
{
|
{
|
||||||
occupancyTypeFieldId
|
occupancyTypeFieldId
|
||||||
},
|
},
|
||||||
|
|
@ -380,13 +378,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
modalElement.querySelector(
|
modalElement.querySelector(
|
||||||
"#occupancyTypeFieldEdit--occupancyTypeFieldId"
|
"#occupancyTypeFieldEdit--occupancyTypeFieldId"
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value = occupancyTypeField.occupancyTypeFieldId.toString();
|
).value = occupancyTypeField.occupancyTypeFieldId!.toString();
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector(
|
modalElement.querySelector(
|
||||||
"#occupancyTypeFieldEdit--occupancyTypeField"
|
"#occupancyTypeFieldEdit--occupancyTypeField"
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value = occupancyTypeField.occupancyTypeField;
|
).value = occupancyTypeField.occupancyTypeField!;
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector(
|
modalElement.querySelector(
|
||||||
|
|
@ -396,25 +394,28 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
minimumLengthElement = modalElement.querySelector(
|
minimumLengthElement = modalElement.querySelector(
|
||||||
"#occupancyTypeFieldEdit--minimumLength"
|
"#occupancyTypeFieldEdit--minimumLength"
|
||||||
);
|
) as HTMLInputElement;
|
||||||
|
|
||||||
minimumLengthElement.value = occupancyTypeField.minimumLength.toString();
|
minimumLengthElement.value = occupancyTypeField.minimumLength!.toString();
|
||||||
|
|
||||||
maximumLengthElement = modalElement.querySelector(
|
maximumLengthElement = modalElement.querySelector(
|
||||||
"#occupancyTypeFieldEdit--maximumLength"
|
"#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(
|
occupancyTypeFieldValuesElement = modalElement.querySelector(
|
||||||
"#occupancyTypeFieldEdit--occupancyTypeFieldValues"
|
"#occupancyTypeFieldEdit--occupancyTypeFieldValues"
|
||||||
);
|
) as HTMLTextAreaElement;
|
||||||
|
|
||||||
occupancyTypeFieldValuesElement.value = occupancyTypeField.occupancyTypeFieldValues;
|
occupancyTypeFieldValuesElement.value =
|
||||||
|
occupancyTypeField.occupancyTypeFieldValues!;
|
||||||
|
|
||||||
toggleInputFields();
|
toggleInputFields();
|
||||||
},
|
},
|
||||||
|
|
@ -425,16 +426,18 @@ declare const bulmaJS: BulmaJS;
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
cityssm.enableNavBlocker();
|
cityssm.enableNavBlocker();
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doUpdate);
|
modalElement.querySelector("form")!.addEventListener("submit", doUpdate);
|
||||||
|
|
||||||
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
|
||||||
updateMaximumLengthMin();
|
updateMaximumLengthMin();
|
||||||
|
|
||||||
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
|
||||||
|
|
||||||
modalElement
|
(
|
||||||
.querySelector("#button--deleteOccupancyTypeField")
|
modalElement.querySelector(
|
||||||
.addEventListener("click", doDelete);
|
"#button--deleteOccupancyTypeField"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", doDelete);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -451,7 +454,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--occupancyTypeField"
|
".container--occupancyTypeField"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.occupancyTypeFieldId,
|
).dataset.occupancyTypeFieldId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -460,7 +463,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
(clickEvent.currentTarget as HTMLElement).closest(
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
".container--occupancyType"
|
".container--occupancyType"
|
||||||
) as HTMLElement
|
) as HTMLElement
|
||||||
).dataset.occupancyTypeId,
|
).dataset.occupancyTypeId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -477,7 +480,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
).dataset.occupancyTypeFieldId;
|
).dataset.occupancyTypeFieldId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveOccupancyTypeFieldUp",
|
los.urlPrefix + "/admin/doMoveOccupancyTypeFieldUp",
|
||||||
{
|
{
|
||||||
occupancyTypeFieldId,
|
occupancyTypeFieldId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -496,7 +499,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
).dataset.occupancyTypeFieldId;
|
).dataset.occupancyTypeFieldId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveOccupancyTypeFieldDown",
|
los.urlPrefix + "/admin/doMoveOccupancyTypeFieldDown",
|
||||||
{
|
{
|
||||||
occupancyTypeFieldId,
|
occupancyTypeFieldId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -533,14 +536,14 @@ declare const bulmaJS: BulmaJS;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelBlockElement.dataset.occupancyTypeFieldId =
|
panelBlockElement.dataset.occupancyTypeFieldId =
|
||||||
occupancyTypeField.occupancyTypeFieldId.toString();
|
occupancyTypeField.occupancyTypeFieldId!.toString();
|
||||||
|
|
||||||
panelBlockElement.innerHTML =
|
panelBlockElement.innerHTML =
|
||||||
'<div class="level is-mobile">' +
|
'<div class="level is-mobile">' +
|
||||||
'<div class="level-left">' +
|
'<div class="level-left">' +
|
||||||
('<div class="level-item">' +
|
('<div class="level-item">' +
|
||||||
'<a class="has-text-weight-bold button--editOccupancyTypeField" href="#">' +
|
'<a class="has-text-weight-bold button--editOccupancyTypeField" href="#">' +
|
||||||
cityssm.escapeHTML(occupancyTypeField.occupancyTypeField) +
|
cityssm.escapeHTML(occupancyTypeField.occupancyTypeField || "") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
|
|
@ -562,17 +565,23 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
panelBlockElement
|
(
|
||||||
.querySelector(".button--editOccupancyTypeField")
|
panelBlockElement.querySelector(
|
||||||
.addEventListener("click", openEditOccupancyTypeFieldByClick);
|
".button--editOccupancyTypeField"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", openEditOccupancyTypeFieldByClick);
|
||||||
|
|
||||||
panelBlockElement
|
(
|
||||||
.querySelector(".button--moveOccupancyTypeFieldUp")
|
panelBlockElement.querySelector(
|
||||||
.addEventListener("click", moveOccupancyTypeFieldUp);
|
".button--moveOccupancyTypeFieldUp"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveOccupancyTypeFieldUp);
|
||||||
|
|
||||||
panelBlockElement
|
(
|
||||||
.querySelector(".button--moveOccupancyTypeFieldDown")
|
panelBlockElement.querySelector(
|
||||||
.addEventListener("click", moveOccupancyTypeFieldDown);
|
".button--moveOccupancyTypeFieldDown"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveOccupancyTypeFieldDown);
|
||||||
|
|
||||||
panelElement.append(panelBlockElement);
|
panelElement.append(panelBlockElement);
|
||||||
}
|
}
|
||||||
|
|
@ -600,14 +609,14 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
renderOccupancyTypeFields(
|
renderOccupancyTypeFields(
|
||||||
containerElement.querySelector("#container--allOccupancyTypeFields"),
|
containerElement.querySelector("#container--allOccupancyTypeFields") as HTMLElement,
|
||||||
undefined,
|
undefined,
|
||||||
allOccupancyTypeFields
|
allOccupancyTypeFields
|
||||||
);
|
);
|
||||||
|
|
||||||
containerElement
|
(
|
||||||
.querySelector(".button--addOccupancyTypeField")
|
containerElement.querySelector(".button--addOccupancyTypeField") as HTMLButtonElement
|
||||||
.addEventListener("click", openAddOccupancyTypeField);
|
).addEventListener("click", openAddOccupancyTypeField);
|
||||||
|
|
||||||
if (occupancyTypes.length === 0) {
|
if (occupancyTypes.length === 0) {
|
||||||
containerElement.insertAdjacentHTML(
|
containerElement.insertAdjacentHTML(
|
||||||
|
|
@ -689,45 +698,59 @@ declare const bulmaJS: BulmaJS;
|
||||||
renderOccupancyTypeFields(
|
renderOccupancyTypeFields(
|
||||||
occupancyTypeContainer,
|
occupancyTypeContainer,
|
||||||
occupancyType.occupancyTypeId,
|
occupancyType.occupancyTypeId,
|
||||||
occupancyType.occupancyTypeFields
|
occupancyType.occupancyTypeFields!
|
||||||
);
|
);
|
||||||
|
|
||||||
occupancyTypeContainer
|
(
|
||||||
.querySelector(".button--toggleOccupancyTypeFields")
|
occupancyTypeContainer.querySelector(
|
||||||
.addEventListener("click", toggleOccupancyTypeFields);
|
".button--toggleOccupancyTypeFields"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", toggleOccupancyTypeFields);
|
||||||
|
|
||||||
occupancyTypeContainer
|
(
|
||||||
.querySelector(".button--deleteOccupancyType")
|
occupancyTypeContainer.querySelector(
|
||||||
.addEventListener("click", deleteOccupancyType);
|
".button--deleteOccupancyType"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", deleteOccupancyType);
|
||||||
|
|
||||||
occupancyTypeContainer
|
(
|
||||||
.querySelector(".button--editOccupancyType")
|
occupancyTypeContainer.querySelector(
|
||||||
.addEventListener("click", openEditOccupancyType);
|
".button--editOccupancyType"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", openEditOccupancyType);
|
||||||
|
|
||||||
occupancyTypeContainer
|
(
|
||||||
.querySelector(".button--addOccupancyTypeField")
|
occupancyTypeContainer.querySelector(
|
||||||
.addEventListener("click", openAddOccupancyTypeField);
|
".button--addOccupancyTypeField"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", openAddOccupancyTypeField);
|
||||||
|
|
||||||
occupancyTypeContainer
|
(
|
||||||
.querySelector(".button--moveOccupancyTypeUp")
|
occupancyTypeContainer.querySelector(
|
||||||
.addEventListener("click", moveOccupancyTypeUp);
|
".button--moveOccupancyTypeUp"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveOccupancyTypeUp);
|
||||||
|
|
||||||
occupancyTypeContainer
|
(
|
||||||
.querySelector(".button--moveOccupancyTypeDown")
|
occupancyTypeContainer.querySelector(
|
||||||
.addEventListener("click", moveOccupancyTypeDown);
|
".button--moveOccupancyTypeDown"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveOccupancyTypeDown);
|
||||||
|
|
||||||
containerElement.append(occupancyTypeContainer);
|
containerElement.append(occupancyTypeContainer);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
document.querySelector("#button--addOccupancyType").addEventListener("click", () => {
|
(document.querySelector("#button--addOccupancyType") as HTMLButtonElement).addEventListener(
|
||||||
|
"click",
|
||||||
|
() => {
|
||||||
let addCloseModalFunction: () => void;
|
let addCloseModalFunction: () => void;
|
||||||
|
|
||||||
const doAdd = (submitEvent: SubmitEvent) => {
|
const doAdd = (submitEvent: SubmitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddOccupancyType",
|
los.urlPrefix + "/admin/doAddOccupancyType",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -736,12 +759,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
occupancyTypes = responseJSON.occupancyTypes;
|
occupancyTypes = responseJSON.occupancyTypes!;
|
||||||
renderOccupancyTypes();
|
renderOccupancyTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.occupancy + " Type",
|
title: "Error Adding " + exports.aliases.occupancy + " Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -762,7 +785,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).focus();
|
).focus();
|
||||||
|
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAdd);
|
modalElement.querySelector("form")!.addEventListener("submit", doAdd);
|
||||||
|
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
},
|
},
|
||||||
|
|
@ -770,7 +793,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
renderOccupancyTypes();
|
renderOccupancyTypes();
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los;
|
||||||
let workOrderTypes = exports.workOrderTypes;
|
let workOrderTypes = exports.workOrderTypes;
|
||||||
delete exports.workOrderTypes;
|
delete exports.workOrderTypes;
|
||||||
const updateWorkOrderType = (submitEvent) => {
|
const updateWorkOrderType = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateWorkOrderType", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateWorkOrderType", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderTypes = responseJSON.workOrderTypes;
|
workOrderTypes = responseJSON.workOrderTypes;
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Work Order Type",
|
title: "Error Updating Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -27,7 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteWorkOrderType", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteWorkOrderType", {
|
||||||
workOrderTypeId
|
workOrderTypeId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
|
|
@ -46,7 +46,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Work Order Type",
|
title: "Error Deleting Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -67,7 +67,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveWorkOrderTypeUp = (clickEvent) => {
|
const moveWorkOrderTypeUp = (clickEvent) => {
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderTypeUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveWorkOrderTypeUp", {
|
||||||
workOrderTypeId,
|
workOrderTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -78,7 +78,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Work Order Type",
|
title: "Error Moving Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -87,7 +87,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveWorkOrderTypeDown = (clickEvent) => {
|
const moveWorkOrderTypeDown = (clickEvent) => {
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderTypeDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveWorkOrderTypeDown", {
|
||||||
workOrderTypeId,
|
workOrderTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -98,7 +98,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Work Order Type",
|
title: "Error Moving Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -130,7 +130,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
('<div class="field has-addons">' +
|
('<div class="field has-addons">' +
|
||||||
'<div class="control">' +
|
'<div class="control">' +
|
||||||
'<input class="input" name="workOrderType" type="text" value="' +
|
'<input class="input" name="workOrderType" type="text" value="' +
|
||||||
cityssm.escapeHTML(workOrderType.workOrderType) +
|
cityssm.escapeHTML(workOrderType.workOrderType || "") +
|
||||||
'" maxlength="100" aria-label="Work Order Type" required />' +
|
'" maxlength="100" aria-label="Work Order Type" required />' +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
'<div class="control">' +
|
'<div class="control">' +
|
||||||
|
|
@ -159,24 +159,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>";
|
"</td>";
|
||||||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType);
|
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType);
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click", moveWorkOrderTypeUp);
|
||||||
.querySelector(".button--moveWorkOrderTypeUp")
|
tableRowElement.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click", moveWorkOrderTypeDown);
|
||||||
.addEventListener("click", moveWorkOrderTypeUp);
|
tableRowElement.querySelector(".button--deleteWorkOrderType").addEventListener("click", deleteWorkOrderType);
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--moveWorkOrderTypeDown")
|
|
||||||
.addEventListener("click", moveWorkOrderTypeDown);
|
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--deleteWorkOrderType")
|
|
||||||
.addEventListener("click", deleteWorkOrderType);
|
|
||||||
containerElement.append(tableRowElement);
|
containerElement.append(tableRowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#form--addWorkOrderType").addEventListener("submit", (submitEvent) => {
|
||||||
.querySelector("#form--addWorkOrderType")
|
|
||||||
.addEventListener("submit", (submitEvent) => {
|
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
const formElement = submitEvent.currentTarget;
|
const formElement = submitEvent.currentTarget;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddWorkOrderType", formElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddWorkOrderType", formElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderTypes = responseJSON.workOrderTypes;
|
workOrderTypes = responseJSON.workOrderTypes;
|
||||||
renderWorkOrderTypes();
|
renderWorkOrderTypes();
|
||||||
|
|
@ -186,7 +178,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding Work Order Type",
|
title: "Error Adding Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -197,7 +189,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
delete exports.workOrderMilestoneTypes;
|
delete exports.workOrderMilestoneTypes;
|
||||||
const updateWorkOrderMilestoneType = (submitEvent) => {
|
const updateWorkOrderMilestoneType = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateWorkOrderMilestoneType", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateWorkOrderMilestoneType", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -208,7 +200,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Work Order Milestone Type",
|
title: "Error Updating Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -218,7 +210,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteWorkOrderMilestoneType", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteWorkOrderMilestoneType", {
|
||||||
workOrderMilestoneTypeId
|
workOrderMilestoneTypeId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
|
|
@ -237,7 +229,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Work Order Milestone Type",
|
title: "Error Deleting Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -258,7 +250,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveWorkOrderMilestoneTypeUp = (clickEvent) => {
|
const moveWorkOrderMilestoneTypeUp = (clickEvent) => {
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp", {
|
||||||
workOrderMilestoneTypeId,
|
workOrderMilestoneTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -269,7 +261,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Work Order Milestone Type",
|
title: "Error Moving Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -278,7 +270,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveWorkOrderMilestoneTypeDown = (clickEvent) => {
|
const moveWorkOrderMilestoneTypeDown = (clickEvent) => {
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown", {
|
||||||
workOrderMilestoneTypeId,
|
workOrderMilestoneTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -289,7 +281,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Work Order Milestone Type",
|
title: "Error Moving Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -350,27 +342,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>";
|
"</td>";
|
||||||
tableRowElement
|
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderMilestoneType);
|
||||||
.querySelector("form")
|
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
||||||
.addEventListener("submit", updateWorkOrderMilestoneType);
|
tableRowElement.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click", deleteWorkOrderMilestoneType);
|
||||||
.querySelector(".button--moveWorkOrderMilestoneTypeUp")
|
|
||||||
.addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--moveWorkOrderMilestoneTypeDown")
|
|
||||||
.addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--deleteWorkOrderMilestoneType")
|
|
||||||
.addEventListener("click", deleteWorkOrderMilestoneType);
|
|
||||||
containerElement.append(tableRowElement);
|
containerElement.append(tableRowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit", (submitEvent) => {
|
||||||
.querySelector("#form--addWorkOrderMilestoneType")
|
|
||||||
.addEventListener("submit", (submitEvent) => {
|
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
const formElement = submitEvent.currentTarget;
|
const formElement = submitEvent.currentTarget;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddWorkOrderMilestoneType", formElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddWorkOrderMilestoneType", formElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
||||||
renderWorkOrderMilestoneTypes();
|
renderWorkOrderMilestoneTypes();
|
||||||
|
|
@ -380,7 +362,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding Work Order Milestone Type",
|
title: "Error Adding Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -391,7 +373,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
delete exports.lotStatuses;
|
delete exports.lotStatuses;
|
||||||
const updateLotStatus = (submitEvent) => {
|
const updateLotStatus = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotStatuses = responseJSON.lotStatuses;
|
lotStatuses = responseJSON.lotStatuses;
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -402,7 +384,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.lot + " Status",
|
title: "Error Updating " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -412,7 +394,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteLotStatus", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotStatus", {
|
||||||
lotStatusId
|
lotStatusId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
|
|
@ -431,7 +413,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting " + exports.aliases.lot + " Status",
|
title: "Error Deleting " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -454,7 +436,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveLotStatusUp = (clickEvent) => {
|
const moveLotStatusUp = (clickEvent) => {
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotStatusUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotStatusUp", {
|
||||||
lotStatusId,
|
lotStatusId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -465,7 +447,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving " + exports.aliases.lot + " Status",
|
title: "Error Moving " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -474,7 +456,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveLotStatusDown = (clickEvent) => {
|
const moveLotStatusDown = (clickEvent) => {
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotStatusDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotStatusDown", {
|
||||||
lotStatusId,
|
lotStatusId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -485,7 +467,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving " + exports.aliases.lot + " Status",
|
title: "Error Moving " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -549,24 +531,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>";
|
"</td>";
|
||||||
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--moveLotStatusUp").addEventListener("click", moveLotStatusUp);
|
||||||
.querySelector(".button--moveLotStatusUp")
|
tableRowElement.querySelector(".button--moveLotStatusDown").addEventListener("click", moveLotStatusDown);
|
||||||
.addEventListener("click", moveLotStatusUp);
|
tableRowElement.querySelector(".button--deleteLotStatus").addEventListener("click", deleteLotStatus);
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--moveLotStatusDown")
|
|
||||||
.addEventListener("click", moveLotStatusDown);
|
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--deleteLotStatus")
|
|
||||||
.addEventListener("click", deleteLotStatus);
|
|
||||||
containerElement.append(tableRowElement);
|
containerElement.append(tableRowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#form--addLotStatus").addEventListener("submit", (submitEvent) => {
|
||||||
.querySelector("#form--addLotStatus")
|
|
||||||
.addEventListener("submit", (submitEvent) => {
|
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
const formElement = submitEvent.currentTarget;
|
const formElement = submitEvent.currentTarget;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddLotStatus", formElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddLotStatus", formElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotStatuses = responseJSON.lotStatuses;
|
lotStatuses = responseJSON.lotStatuses;
|
||||||
renderLotStatuses();
|
renderLotStatuses();
|
||||||
|
|
@ -576,7 +550,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.lot + " Status",
|
title: "Error Adding " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -587,7 +561,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
delete exports.lotOccupantTypes;
|
delete exports.lotOccupantTypes;
|
||||||
const updateLotOccupantType = (submitEvent) => {
|
const updateLotOccupantType = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doUpdateLotOccupantType", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doUpdateLotOccupantType", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -605,7 +579,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -615,7 +589,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doDeleteLotOccupantType", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doDeleteLotOccupantType", {
|
||||||
lotOccupantTypeId
|
lotOccupantTypeId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
|
|
@ -641,7 +615,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -670,7 +644,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveLotOccupantTypeUp = (clickEvent) => {
|
const moveLotOccupantTypeUp = (clickEvent) => {
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotOccupantTypeUp", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotOccupantTypeUp", {
|
||||||
lotOccupantTypeId,
|
lotOccupantTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -685,7 +659,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -694,7 +668,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const moveLotOccupantTypeDown = (clickEvent) => {
|
const moveLotOccupantTypeDown = (clickEvent) => {
|
||||||
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
const tableRowElement = clickEvent.currentTarget.closest("tr");
|
||||||
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doMoveLotOccupantTypeDown", {
|
cityssm.postJSON(los.urlPrefix + "/admin/doMoveLotOccupantTypeDown", {
|
||||||
lotOccupantTypeId,
|
lotOccupantTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -709,7 +683,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -787,25 +761,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>";
|
"</td>";
|
||||||
tableRowElement.querySelector("form").addEventListener("submit", updateLotOccupantType);
|
|
||||||
tableRowElement
|
tableRowElement
|
||||||
.querySelector(".button--moveLotOccupantTypeUp")
|
.querySelector("form")
|
||||||
.addEventListener("click", moveLotOccupantTypeUp);
|
.addEventListener("submit", updateLotOccupantType);
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click", moveLotOccupantTypeUp);
|
||||||
.querySelector(".button--moveLotOccupantTypeDown")
|
tableRowElement.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click", moveLotOccupantTypeDown);
|
||||||
.addEventListener("click", moveLotOccupantTypeDown);
|
tableRowElement.querySelector(".button--deleteLotOccupantType").addEventListener("click", deleteLotOccupantType);
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--deleteLotOccupantType")
|
|
||||||
.addEventListener("click", deleteLotOccupantType);
|
|
||||||
containerElement.append(tableRowElement);
|
containerElement.append(tableRowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#form--addLotOccupantType").addEventListener("submit", (submitEvent) => {
|
||||||
.querySelector("#form--addLotOccupantType")
|
|
||||||
.addEventListener("submit", (submitEvent) => {
|
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
const formElement = submitEvent.currentTarget;
|
const formElement = submitEvent.currentTarget;
|
||||||
cityssm.postJSON(urlPrefix + "/admin/doAddLotOccupantType", formElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/admin/doAddLotOccupantType", formElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
||||||
renderLotOccupantTypes();
|
renderLotOccupantTypes();
|
||||||
|
|
@ -819,7 +787,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
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 * as recordTypes from "../types/recordTypes";
|
||||||
|
|
||||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||||
|
|
@ -10,7 +11,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
declare const bulmaJS: BulmaJS;
|
declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Work Order Types
|
* Work Order Types
|
||||||
|
|
@ -23,7 +24,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateWorkOrderType",
|
los.urlPrefix + "/admin/doUpdateWorkOrderType",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -31,7 +32,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderTypes?: recordTypes.WorkOrderType[];
|
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderTypes = responseJSON.workOrderTypes;
|
workOrderTypes = responseJSON.workOrderTypes!;
|
||||||
|
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: "Work Order Type Updated Successfully",
|
message: "Work Order Type Updated Successfully",
|
||||||
|
|
@ -40,7 +41,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Work Order Type",
|
title: "Error Updating Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -49,13 +50,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const deleteWorkOrderType = (clickEvent: Event) => {
|
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 workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteWorkOrderType",
|
los.urlPrefix + "/admin/doDeleteWorkOrderType",
|
||||||
{
|
{
|
||||||
workOrderTypeId
|
workOrderTypeId
|
||||||
},
|
},
|
||||||
|
|
@ -65,7 +66,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderTypes?: recordTypes.WorkOrderType[];
|
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderTypes = responseJSON.workOrderTypes;
|
workOrderTypes = responseJSON.workOrderTypes!;
|
||||||
|
|
||||||
if (workOrderTypes.length === 0) {
|
if (workOrderTypes.length === 0) {
|
||||||
renderWorkOrderTypes();
|
renderWorkOrderTypes();
|
||||||
|
|
@ -80,7 +81,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Work Order Type",
|
title: "Error Deleting Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -103,12 +104,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveWorkOrderTypeUp = (clickEvent: MouseEvent) => {
|
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;
|
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveWorkOrderTypeUp",
|
los.urlPrefix + "/admin/doMoveWorkOrderTypeUp",
|
||||||
{
|
{
|
||||||
workOrderTypeId,
|
workOrderTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -119,12 +120,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderTypes?: recordTypes.WorkOrderType[];
|
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderTypes = responseJSON.workOrderTypes;
|
workOrderTypes = responseJSON.workOrderTypes!;
|
||||||
renderWorkOrderTypes();
|
renderWorkOrderTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Work Order Type",
|
title: "Error Moving Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -133,12 +134,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveWorkOrderTypeDown = (clickEvent: MouseEvent) => {
|
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;
|
const workOrderTypeId = tableRowElement.dataset.workOrderTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveWorkOrderTypeDown",
|
los.urlPrefix + "/admin/doMoveWorkOrderTypeDown",
|
||||||
{
|
{
|
||||||
workOrderTypeId,
|
workOrderTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -149,12 +150,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderTypes?: recordTypes.WorkOrderType[];
|
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderTypes = responseJSON.workOrderTypes;
|
workOrderTypes = responseJSON.workOrderTypes!;
|
||||||
renderWorkOrderTypes();
|
renderWorkOrderTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Work Order Type",
|
title: "Error Moving Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -185,18 +186,18 @@ declare const bulmaJS: BulmaJS;
|
||||||
for (const workOrderType of workOrderTypes) {
|
for (const workOrderType of workOrderTypes) {
|
||||||
const tableRowElement = document.createElement("tr");
|
const tableRowElement = document.createElement("tr");
|
||||||
|
|
||||||
tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId.toString();
|
tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId!.toString();
|
||||||
|
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
"<td>" +
|
"<td>" +
|
||||||
"<form>" +
|
"<form>" +
|
||||||
'<input name="workOrderTypeId" type="hidden" value="' +
|
'<input name="workOrderTypeId" type="hidden" value="' +
|
||||||
workOrderType.workOrderTypeId.toString() +
|
workOrderType.workOrderTypeId!.toString() +
|
||||||
'" />' +
|
'" />' +
|
||||||
('<div class="field has-addons">' +
|
('<div class="field has-addons">' +
|
||||||
'<div class="control">' +
|
'<div class="control">' +
|
||||||
'<input class="input" name="workOrderType" type="text" value="' +
|
'<input class="input" name="workOrderType" type="text" value="' +
|
||||||
cityssm.escapeHTML(workOrderType.workOrderType) +
|
cityssm.escapeHTML(workOrderType.workOrderType || "") +
|
||||||
'" maxlength="100" aria-label="Work Order Type" required />' +
|
'" maxlength="100" aria-label="Work Order Type" required />' +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
'<div class="control">' +
|
'<div class="control">' +
|
||||||
|
|
@ -225,30 +226,33 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>";
|
"</td>";
|
||||||
|
|
||||||
tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType);
|
tableRowElement.querySelector("form")!.addEventListener("submit", updateWorkOrderType);
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--moveWorkOrderTypeUp")
|
(
|
||||||
.addEventListener("click", moveWorkOrderTypeUp);
|
tableRowElement.querySelector(".button--moveWorkOrderTypeUp") as HTMLButtonElement
|
||||||
tableRowElement
|
).addEventListener("click", moveWorkOrderTypeUp);
|
||||||
.querySelector(".button--moveWorkOrderTypeDown")
|
|
||||||
.addEventListener("click", moveWorkOrderTypeDown);
|
(
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--moveWorkOrderTypeDown") as HTMLButtonElement
|
||||||
.querySelector(".button--deleteWorkOrderType")
|
).addEventListener("click", moveWorkOrderTypeDown);
|
||||||
.addEventListener("click", deleteWorkOrderType);
|
|
||||||
|
(
|
||||||
|
tableRowElement.querySelector(".button--deleteWorkOrderType") as HTMLButtonElement
|
||||||
|
).addEventListener("click", deleteWorkOrderType);
|
||||||
|
|
||||||
containerElement.append(tableRowElement);
|
containerElement.append(tableRowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
(document.querySelector("#form--addWorkOrderType") as HTMLFormElement).addEventListener(
|
||||||
.querySelector("#form--addWorkOrderType")
|
"submit",
|
||||||
.addEventListener("submit", (submitEvent: SubmitEvent) => {
|
(submitEvent: SubmitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddWorkOrderType",
|
los.urlPrefix + "/admin/doAddWorkOrderType",
|
||||||
formElement,
|
formElement,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -256,20 +260,21 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderTypes?: recordTypes.WorkOrderType[];
|
workOrderTypes?: recordTypes.WorkOrderType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderTypes = responseJSON.workOrderTypes;
|
workOrderTypes = responseJSON.workOrderTypes!;
|
||||||
renderWorkOrderTypes();
|
renderWorkOrderTypes();
|
||||||
formElement.reset();
|
formElement.reset();
|
||||||
formElement.querySelector("input").focus();
|
formElement.querySelector("input")!.focus();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding Work Order Type",
|
title: "Error Adding Work Order Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
renderWorkOrderTypes();
|
renderWorkOrderTypes();
|
||||||
|
|
||||||
|
|
@ -285,7 +290,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateWorkOrderMilestoneType",
|
los.urlPrefix + "/admin/doUpdateWorkOrderMilestoneType",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -293,7 +298,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||||
|
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: "Work Order Milestone Type Updated Successfully",
|
message: "Work Order Milestone Type Updated Successfully",
|
||||||
|
|
@ -302,7 +307,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Work Order Milestone Type",
|
title: "Error Updating Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -311,13 +316,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const deleteWorkOrderMilestoneType = (clickEvent: Event) => {
|
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 workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteWorkOrderMilestoneType",
|
los.urlPrefix + "/admin/doDeleteWorkOrderMilestoneType",
|
||||||
{
|
{
|
||||||
workOrderMilestoneTypeId
|
workOrderMilestoneTypeId
|
||||||
},
|
},
|
||||||
|
|
@ -327,7 +332,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||||
|
|
||||||
if (workOrderMilestoneTypes.length === 0) {
|
if (workOrderMilestoneTypes.length === 0) {
|
||||||
renderWorkOrderMilestoneTypes();
|
renderWorkOrderMilestoneTypes();
|
||||||
|
|
@ -342,7 +347,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Work Order Milestone Type",
|
title: "Error Deleting Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -365,12 +370,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveWorkOrderMilestoneTypeUp = (clickEvent: MouseEvent) => {
|
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;
|
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp",
|
los.urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp",
|
||||||
{
|
{
|
||||||
workOrderMilestoneTypeId,
|
workOrderMilestoneTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -381,12 +386,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||||
renderWorkOrderMilestoneTypes();
|
renderWorkOrderMilestoneTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Work Order Milestone Type",
|
title: "Error Moving Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -395,12 +400,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveWorkOrderMilestoneTypeDown = (clickEvent: MouseEvent) => {
|
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;
|
const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown",
|
los.urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown",
|
||||||
{
|
{
|
||||||
workOrderMilestoneTypeId,
|
workOrderMilestoneTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -411,12 +416,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||||
renderWorkOrderMilestoneTypes();
|
renderWorkOrderMilestoneTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving Work Order Milestone Type",
|
title: "Error Moving Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -488,32 +493,42 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>";
|
"</td>";
|
||||||
|
|
||||||
tableRowElement
|
(tableRowElement.querySelector("form") as HTMLFormElement).addEventListener(
|
||||||
.querySelector("form")
|
"submit",
|
||||||
.addEventListener("submit", updateWorkOrderMilestoneType);
|
updateWorkOrderMilestoneType
|
||||||
tableRowElement
|
);
|
||||||
.querySelector(".button--moveWorkOrderMilestoneTypeUp")
|
|
||||||
.addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
(
|
||||||
tableRowElement
|
tableRowElement.querySelector(
|
||||||
.querySelector(".button--moveWorkOrderMilestoneTypeDown")
|
".button--moveWorkOrderMilestoneTypeUp"
|
||||||
.addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
) as HTMLButtonElement
|
||||||
tableRowElement
|
).addEventListener("click", moveWorkOrderMilestoneTypeUp);
|
||||||
.querySelector(".button--deleteWorkOrderMilestoneType")
|
|
||||||
.addEventListener("click", deleteWorkOrderMilestoneType);
|
(
|
||||||
|
tableRowElement.querySelector(
|
||||||
|
".button--moveWorkOrderMilestoneTypeDown"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveWorkOrderMilestoneTypeDown);
|
||||||
|
|
||||||
|
(
|
||||||
|
tableRowElement.querySelector(
|
||||||
|
".button--deleteWorkOrderMilestoneType"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", deleteWorkOrderMilestoneType);
|
||||||
|
|
||||||
containerElement.append(tableRowElement);
|
containerElement.append(tableRowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
(
|
||||||
.querySelector("#form--addWorkOrderMilestoneType")
|
document.querySelector("#form--addWorkOrderMilestoneType") as HTMLFormElement
|
||||||
.addEventListener("submit", (submitEvent: SubmitEvent) => {
|
).addEventListener("submit", (submitEvent: SubmitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddWorkOrderMilestoneType",
|
los.urlPrefix + "/admin/doAddWorkOrderMilestoneType",
|
||||||
formElement,
|
formElement,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -521,14 +536,14 @@ declare const bulmaJS: BulmaJS;
|
||||||
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
workOrderMilestoneTypes?: recordTypes.WorkOrderMilestoneType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes;
|
workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes!;
|
||||||
renderWorkOrderMilestoneTypes();
|
renderWorkOrderMilestoneTypes();
|
||||||
formElement.reset();
|
formElement.reset();
|
||||||
formElement.querySelector("input").focus();
|
formElement.querySelector("input")!.focus();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding Work Order Milestone Type",
|
title: "Error Adding Work Order Milestone Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -549,7 +564,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateLotStatus",
|
los.urlPrefix + "/admin/doUpdateLotStatus",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -557,7 +572,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotStatuses?: recordTypes.LotStatus[];
|
lotStatuses?: recordTypes.LotStatus[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotStatuses = responseJSON.lotStatuses;
|
lotStatuses = responseJSON.lotStatuses!;
|
||||||
|
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: exports.aliases.lot + " Status Updated Successfully",
|
message: exports.aliases.lot + " Status Updated Successfully",
|
||||||
|
|
@ -566,7 +581,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.lot + " Status",
|
title: "Error Updating " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -575,13 +590,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const deleteLotStatus = (clickEvent: Event) => {
|
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 lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteLotStatus",
|
los.urlPrefix + "/admin/doDeleteLotStatus",
|
||||||
{
|
{
|
||||||
lotStatusId
|
lotStatusId
|
||||||
},
|
},
|
||||||
|
|
@ -591,7 +606,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotStatuses?: recordTypes.LotStatus[];
|
lotStatuses?: recordTypes.LotStatus[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotStatuses = responseJSON.lotStatuses;
|
lotStatuses = responseJSON.lotStatuses!;
|
||||||
|
|
||||||
if (lotStatuses.length === 0) {
|
if (lotStatuses.length === 0) {
|
||||||
renderLotStatuses();
|
renderLotStatuses();
|
||||||
|
|
@ -606,7 +621,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting " + exports.aliases.lot + " Status",
|
title: "Error Deleting " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -631,12 +646,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveLotStatusUp = (clickEvent: MouseEvent) => {
|
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;
|
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveLotStatusUp",
|
los.urlPrefix + "/admin/doMoveLotStatusUp",
|
||||||
{
|
{
|
||||||
lotStatusId,
|
lotStatusId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -647,12 +662,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotStatuses?: recordTypes.LotStatus[];
|
lotStatuses?: recordTypes.LotStatus[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotStatuses = responseJSON.lotStatuses;
|
lotStatuses = responseJSON.lotStatuses!;
|
||||||
renderLotStatuses();
|
renderLotStatuses();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving " + exports.aliases.lot + " Status",
|
title: "Error Moving " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -661,12 +676,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveLotStatusDown = (clickEvent: MouseEvent) => {
|
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;
|
const lotStatusId = tableRowElement.dataset.lotStatusId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveLotStatusDown",
|
los.urlPrefix + "/admin/doMoveLotStatusDown",
|
||||||
{
|
{
|
||||||
lotStatusId,
|
lotStatusId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -677,12 +692,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotStatuses?: recordTypes.LotStatus[];
|
lotStatuses?: recordTypes.LotStatus[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotStatuses = responseJSON.lotStatuses;
|
lotStatuses = responseJSON.lotStatuses!;
|
||||||
renderLotStatuses();
|
renderLotStatuses();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Moving " + exports.aliases.lot + " Status",
|
title: "Error Moving " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -756,30 +771,33 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>";
|
"</td>";
|
||||||
|
|
||||||
tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus);
|
tableRowElement.querySelector("form")!.addEventListener("submit", updateLotStatus);
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--moveLotStatusUp")
|
(
|
||||||
.addEventListener("click", moveLotStatusUp);
|
tableRowElement.querySelector(".button--moveLotStatusUp") as HTMLButtonElement
|
||||||
tableRowElement
|
).addEventListener("click", moveLotStatusUp);
|
||||||
.querySelector(".button--moveLotStatusDown")
|
|
||||||
.addEventListener("click", moveLotStatusDown);
|
(
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--moveLotStatusDown") as HTMLButtonElement
|
||||||
.querySelector(".button--deleteLotStatus")
|
).addEventListener("click", moveLotStatusDown);
|
||||||
.addEventListener("click", deleteLotStatus);
|
|
||||||
|
(
|
||||||
|
tableRowElement.querySelector(".button--deleteLotStatus") as HTMLButtonElement
|
||||||
|
).addEventListener("click", deleteLotStatus);
|
||||||
|
|
||||||
containerElement.append(tableRowElement);
|
containerElement.append(tableRowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
(document.querySelector("#form--addLotStatus") as HTMLFormElement).addEventListener(
|
||||||
.querySelector("#form--addLotStatus")
|
"submit",
|
||||||
.addEventListener("submit", (submitEvent: SubmitEvent) => {
|
(submitEvent: SubmitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddLotStatus",
|
los.urlPrefix + "/admin/doAddLotStatus",
|
||||||
formElement,
|
formElement,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -787,20 +805,21 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotStatuses?: recordTypes.LotStatus[];
|
lotStatuses?: recordTypes.LotStatus[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotStatuses = responseJSON.lotStatuses;
|
lotStatuses = responseJSON.lotStatuses!;
|
||||||
renderLotStatuses();
|
renderLotStatuses();
|
||||||
formElement.reset();
|
formElement.reset();
|
||||||
formElement.querySelector("input").focus();
|
formElement.querySelector("input")!.focus();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.lot + " Status",
|
title: "Error Adding " + exports.aliases.lot + " Status",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
renderLotStatuses();
|
renderLotStatuses();
|
||||||
|
|
||||||
|
|
@ -815,7 +834,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doUpdateLotOccupantType",
|
los.urlPrefix + "/admin/doUpdateLotOccupantType",
|
||||||
submitEvent.currentTarget,
|
submitEvent.currentTarget,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -823,7 +842,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||||
|
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message:
|
message:
|
||||||
|
|
@ -841,7 +860,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -850,13 +869,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const deleteLotOccupantType = (clickEvent: Event) => {
|
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 lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doDeleteLotOccupantType",
|
los.urlPrefix + "/admin/doDeleteLotOccupantType",
|
||||||
{
|
{
|
||||||
lotOccupantTypeId
|
lotOccupantTypeId
|
||||||
},
|
},
|
||||||
|
|
@ -866,7 +885,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||||
|
|
||||||
if (lotOccupantTypes.length === 0) {
|
if (lotOccupantTypes.length === 0) {
|
||||||
renderLotOccupantTypes();
|
renderLotOccupantTypes();
|
||||||
|
|
@ -890,7 +909,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -922,12 +941,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveLotOccupantTypeUp = (clickEvent: MouseEvent) => {
|
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;
|
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveLotOccupantTypeUp",
|
los.urlPrefix + "/admin/doMoveLotOccupantTypeUp",
|
||||||
{
|
{
|
||||||
lotOccupantTypeId,
|
lotOccupantTypeId,
|
||||||
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
moveToTop: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -938,7 +957,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||||
renderLotOccupantTypes();
|
renderLotOccupantTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -948,7 +967,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -957,12 +976,12 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveLotOccupantTypeDown = (clickEvent: MouseEvent) => {
|
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;
|
const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doMoveLotOccupantTypeDown",
|
los.urlPrefix + "/admin/doMoveLotOccupantTypeDown",
|
||||||
{
|
{
|
||||||
lotOccupantTypeId,
|
lotOccupantTypeId,
|
||||||
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
moveToBottom: clickEvent.shiftKey ? "1" : "0"
|
||||||
|
|
@ -973,7 +992,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||||
renderLotOccupantTypes();
|
renderLotOccupantTypes();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -983,7 +1002,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1072,30 +1091,37 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>";
|
"</td>";
|
||||||
|
|
||||||
tableRowElement.querySelector("form").addEventListener("submit", updateLotOccupantType);
|
|
||||||
tableRowElement
|
tableRowElement
|
||||||
.querySelector(".button--moveLotOccupantTypeUp")
|
.querySelector("form")!
|
||||||
.addEventListener("click", moveLotOccupantTypeUp);
|
.addEventListener("submit", updateLotOccupantType);
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--moveLotOccupantTypeDown")
|
(
|
||||||
.addEventListener("click", moveLotOccupantTypeDown);
|
tableRowElement.querySelector(".button--moveLotOccupantTypeUp") as HTMLButtonElement
|
||||||
tableRowElement
|
).addEventListener("click", moveLotOccupantTypeUp);
|
||||||
.querySelector(".button--deleteLotOccupantType")
|
|
||||||
.addEventListener("click", deleteLotOccupantType);
|
(
|
||||||
|
tableRowElement.querySelector(
|
||||||
|
".button--moveLotOccupantTypeDown"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", moveLotOccupantTypeDown);
|
||||||
|
|
||||||
|
(
|
||||||
|
tableRowElement.querySelector(".button--deleteLotOccupantType") as HTMLButtonElement
|
||||||
|
).addEventListener("click", deleteLotOccupantType);
|
||||||
|
|
||||||
containerElement.append(tableRowElement);
|
containerElement.append(tableRowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
(document.querySelector("#form--addLotOccupantType") as HTMLFormElement).addEventListener(
|
||||||
.querySelector("#form--addLotOccupantType")
|
"submit",
|
||||||
.addEventListener("submit", (submitEvent: SubmitEvent) => {
|
(submitEvent: SubmitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
const formElement = submitEvent.currentTarget as HTMLFormElement;
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/admin/doAddLotOccupantType",
|
los.urlPrefix + "/admin/doAddLotOccupantType",
|
||||||
formElement,
|
formElement,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -1103,10 +1129,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
lotOccupantTypes?: recordTypes.LotOccupantType[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupantTypes = responseJSON.lotOccupantTypes;
|
lotOccupantTypes = responseJSON.lotOccupantTypes!;
|
||||||
renderLotOccupantTypes();
|
renderLotOccupantTypes();
|
||||||
formElement.reset();
|
formElement.reset();
|
||||||
formElement.querySelector("input").focus();
|
formElement.querySelector("input")!.focus();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title:
|
title:
|
||||||
|
|
@ -1115,13 +1141,14 @@ declare const bulmaJS: BulmaJS;
|
||||||
" " +
|
" " +
|
||||||
exports.aliases.occupant +
|
exports.aliases.occupant +
|
||||||
" Type",
|
" Type",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
renderLotOccupantTypes();
|
renderLotOccupantTypes();
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const workOrderNumberCircleElements = document.querySelectorAll(".fa-circle[data-work-order-number");
|
const workOrderNumberCircleElements = document.querySelectorAll(".fa-circle[data-work-order-number");
|
||||||
for (const workOrderNumberCircleElement of workOrderNumberCircleElements) {
|
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>;
|
const workOrderNumberCircleElements = document.querySelectorAll(".fa-circle[data-work-order-number") as NodeListOf<HTMLElement>;
|
||||||
|
|
||||||
for (const workOrderNumberCircleElement of workOrderNumberCircleElements) {
|
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 });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
const lotId = document.querySelector("#lot--lotId").value;
|
const lotId = document.querySelector("#lot--lotId").value;
|
||||||
const isCreate = lotId === "";
|
const isCreate = lotId === "";
|
||||||
const formElement = document.querySelector("#form--lot");
|
const formElement = document.querySelector("#form--lot");
|
||||||
const updateLot = (formEvent) => {
|
const updateLot = (formEvent) => {
|
||||||
formEvent.preventDefault();
|
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 (responseJSON.success) {
|
||||||
if (isCreate) {
|
if (isCreate) {
|
||||||
window.location.href = urlPrefix + "/lots/" + responseJSON.lotId + "/edit";
|
window.location.href =
|
||||||
|
los.urlPrefix + "/lots/" + responseJSON.lotId + "/edit";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -23,7 +23,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.lot,
|
title: "Error Updating " + exports.aliases.lot,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -35,17 +35,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
document.querySelector("#button--deleteLot").addEventListener("click", (clickEvent) => {
|
document.querySelector("#button--deleteLot").addEventListener("click", (clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/lots/doDeleteLot", {
|
cityssm.postJSON(los.urlPrefix + "/lots/doDeleteLot", {
|
||||||
lotId
|
lotId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
window.location.href = urlPrefix + "/lots/?t=" + Date.now();
|
window.location.href = los.urlPrefix + "/lots/?t=" + Date.now();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting " + exports.aliases.lot,
|
title: "Error Deleting " + exports.aliases.lot,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -75,7 +75,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const editComment = (submitEvent) => {
|
const editComment = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lots/doUpdateLotComment", editFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lots/doUpdateLotComment", editFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotComments = responseJSON.lotComments;
|
lotComments = responseJSON.lotComments;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -84,7 +84,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Comment",
|
title: "Error Updating Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -123,7 +123,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const deleteLotComment = (clickEvent) => {
|
const deleteLotComment = (clickEvent) => {
|
||||||
const lotCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset.lotCommentId, 10);
|
const lotCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset.lotCommentId, 10);
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/lots/doDeleteLotComment", {
|
cityssm.postJSON(los.urlPrefix + "/lots/doDeleteLotComment", {
|
||||||
lotId,
|
lotId,
|
||||||
lotCommentId
|
lotCommentId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -134,7 +134,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Removing Comment",
|
title: "Error Removing Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -174,14 +174,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
tableRowElement.dataset.lotCommentId = lotComment.lotCommentId.toString();
|
tableRowElement.dataset.lotCommentId = lotComment.lotCommentId.toString();
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotComment.recordCreate_userName) +
|
cityssm.escapeHTML(lotComment.recordCreate_userName || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
lotComment.lotCommentDateString +
|
lotComment.lotCommentDateString +
|
||||||
(lotComment.lotCommentTime === 0 ? "" : " " + lotComment.lotCommentTimeString) +
|
(lotComment.lotCommentTime === 0 ? "" : " " + lotComment.lotCommentTimeString) +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotComment.lotComment) +
|
cityssm.escapeHTML(lotComment.lotComment || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
('<td class="is-hidden-print">' +
|
('<td class="is-hidden-print">' +
|
||||||
'<div class="buttons are-small is-justify-content-end">' +
|
'<div class="buttons are-small is-justify-content-end">' +
|
||||||
|
|
@ -194,12 +194,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</button>") +
|
"</button>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>");
|
"</td>");
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotComment);
|
||||||
.querySelector(".button--edit")
|
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotComment);
|
||||||
.addEventListener("click", openEditLotComment);
|
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--delete")
|
|
||||||
.addEventListener("click", deleteLotComment);
|
|
||||||
tableElement.querySelector("tbody").append(tableRowElement);
|
tableElement.querySelector("tbody").append(tableRowElement);
|
||||||
}
|
}
|
||||||
containerElement.innerHTML = "";
|
containerElement.innerHTML = "";
|
||||||
|
|
@ -209,7 +205,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCommentCloseModalFunction;
|
let addCommentCloseModalFunction;
|
||||||
const doAddComment = (formEvent) => {
|
const doAddComment = (formEvent) => {
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lots/doAddLotComment", formEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lots/doAddLotComment", formEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotComments = responseJSON.lotComments;
|
lotComments = responseJSON.lotComments;
|
||||||
renderLotComments();
|
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 globalTypes from "../types/globalTypes";
|
||||||
import type * as recordTypes from "../types/recordTypes";
|
import type * as recordTypes from "../types/recordTypes";
|
||||||
|
|
@ -13,8 +13,6 @@ declare const bulmaJS: BulmaJS;
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los as globalTypes.LOS;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
|
|
||||||
const lotId = (document.querySelector("#lot--lotId") as HTMLInputElement).value;
|
const lotId = (document.querySelector("#lot--lotId") as HTMLInputElement).value;
|
||||||
const isCreate = lotId === "";
|
const isCreate = lotId === "";
|
||||||
|
|
||||||
|
|
@ -26,12 +24,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/lots/" + (isCreate ? "doCreateLot" : "doUpdateLot"),
|
los.urlPrefix + "/lots/" + (isCreate ? "doCreateLot" : "doUpdateLot"),
|
||||||
formElement,
|
formElement,
|
||||||
(responseJSON: { success: boolean; lotId?: number; errorMessage?: string }) => {
|
(responseJSON: { success: boolean; lotId?: number; errorMessage?: string }) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
if (isCreate) {
|
if (isCreate) {
|
||||||
window.location.href = urlPrefix + "/lots/" + responseJSON.lotId + "/edit";
|
window.location.href =
|
||||||
|
los.urlPrefix + "/lots/" + responseJSON.lotId + "/edit";
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message: exports.aliases.lot + " Updated Successfully",
|
message: exports.aliases.lot + " Updated Successfully",
|
||||||
|
|
@ -41,7 +40,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.lot,
|
title: "Error Updating " + exports.aliases.lot,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -54,23 +53,25 @@ declare const bulmaJS: BulmaJS;
|
||||||
los.initializeUnlockFieldButtons(formElement);
|
los.initializeUnlockFieldButtons(formElement);
|
||||||
|
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
document.querySelector("#button--deleteLot").addEventListener("click", (clickEvent) => {
|
(document.querySelector("#button--deleteLot") as HTMLButtonElement).addEventListener(
|
||||||
|
"click",
|
||||||
|
(clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/lots/doDeleteLot",
|
los.urlPrefix + "/lots/doDeleteLot",
|
||||||
{
|
{
|
||||||
lotId
|
lotId
|
||||||
},
|
},
|
||||||
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
window.location.href = urlPrefix + "/lots/?t=" + Date.now();
|
window.location.href = los.urlPrefix + "/lots/?t=" + Date.now();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting " + exports.aliases.lot,
|
title: "Error Deleting " + exports.aliases.lot,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -90,7 +91,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
callbackFunction: doDelete
|
callbackFunction: doDelete
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Comments
|
// Comments
|
||||||
|
|
@ -100,13 +102,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
const openEditLotComment = (clickEvent: Event) => {
|
const openEditLotComment = (clickEvent: Event) => {
|
||||||
const lotCommentId = Number.parseInt(
|
const lotCommentId = Number.parseInt(
|
||||||
(clickEvent.currentTarget as HTMLElement).closest("tr").dataset.lotCommentId,
|
(clickEvent.currentTarget as HTMLElement).closest("tr")!.dataset.lotCommentId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const lotComment = lotComments.find((currentLotComment) => {
|
const lotComment = lotComments.find((currentLotComment) => {
|
||||||
return currentLotComment.lotCommentId === lotCommentId;
|
return currentLotComment.lotCommentId === lotCommentId;
|
||||||
});
|
})!;
|
||||||
|
|
||||||
let editFormElement: HTMLFormElement;
|
let editFormElement: HTMLFormElement;
|
||||||
let editCloseModalFunction: () => void;
|
let editCloseModalFunction: () => void;
|
||||||
|
|
@ -115,7 +117,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/lots/doUpdateLotComment",
|
los.urlPrefix + "/lots/doUpdateLotComment",
|
||||||
editFormElement,
|
editFormElement,
|
||||||
(responseJSON: {
|
(responseJSON: {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|
@ -123,13 +125,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
lotComments?: recordTypes.LotComment[];
|
lotComments?: recordTypes.LotComment[];
|
||||||
}) => {
|
}) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotComments = responseJSON.lotComments;
|
lotComments = responseJSON.lotComments!;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
renderLotComments();
|
renderLotComments();
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Comment",
|
title: "Error Updating Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -149,26 +151,26 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLInputElement
|
modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLInputElement
|
||||||
).value = lotComment.lotComment;
|
).value = lotComment.lotComment!;
|
||||||
|
|
||||||
const lotCommentDateStringElement = modalElement.querySelector(
|
const lotCommentDateStringElement = modalElement.querySelector(
|
||||||
"#lotCommentEdit--lotCommentDateString"
|
"#lotCommentEdit--lotCommentDateString"
|
||||||
) as HTMLInputElement;
|
) as HTMLInputElement;
|
||||||
|
|
||||||
lotCommentDateStringElement.value = lotComment.lotCommentDateString;
|
lotCommentDateStringElement.value = lotComment.lotCommentDateString!;
|
||||||
|
|
||||||
const currentDateString = cityssm.dateToString(new Date());
|
const currentDateString = cityssm.dateToString(new Date());
|
||||||
|
|
||||||
lotCommentDateStringElement.max =
|
lotCommentDateStringElement.max =
|
||||||
lotComment.lotCommentDateString <= currentDateString
|
lotComment.lotCommentDateString! <= currentDateString
|
||||||
? currentDateString
|
? currentDateString
|
||||||
: lotComment.lotCommentDateString;
|
: lotComment.lotCommentDateString!;
|
||||||
|
|
||||||
(
|
(
|
||||||
modalElement.querySelector(
|
modalElement.querySelector(
|
||||||
"#lotCommentEdit--lotCommentTimeString"
|
"#lotCommentEdit--lotCommentTimeString"
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
).value = lotComment.lotCommentTimeString;
|
).value = lotComment.lotCommentTimeString!;
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -180,7 +182,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLTextAreaElement
|
modalElement.querySelector("#lotCommentEdit--lotComment") as HTMLTextAreaElement
|
||||||
).focus();
|
).focus();
|
||||||
|
|
||||||
editFormElement = modalElement.querySelector("form");
|
editFormElement = modalElement.querySelector("form")!;
|
||||||
editFormElement.addEventListener("submit", editComment);
|
editFormElement.addEventListener("submit", editComment);
|
||||||
|
|
||||||
editCloseModalFunction = closeModalFunction;
|
editCloseModalFunction = closeModalFunction;
|
||||||
|
|
@ -193,13 +195,13 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
const deleteLotComment = (clickEvent: Event) => {
|
const deleteLotComment = (clickEvent: Event) => {
|
||||||
const lotCommentId = Number.parseInt(
|
const lotCommentId = Number.parseInt(
|
||||||
(clickEvent.currentTarget as HTMLElement).closest("tr").dataset.lotCommentId,
|
(clickEvent.currentTarget as HTMLElement).closest("tr")!.dataset.lotCommentId!,
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/lots/doDeleteLotComment",
|
los.urlPrefix + "/lots/doDeleteLotComment",
|
||||||
{
|
{
|
||||||
lotId,
|
lotId,
|
||||||
lotCommentId
|
lotCommentId
|
||||||
|
|
@ -215,7 +217,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Removing Comment",
|
title: "Error Removing Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -258,18 +260,18 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
for (const lotComment of lotComments) {
|
for (const lotComment of lotComments) {
|
||||||
const tableRowElement = document.createElement("tr");
|
const tableRowElement = document.createElement("tr");
|
||||||
tableRowElement.dataset.lotCommentId = lotComment.lotCommentId.toString();
|
tableRowElement.dataset.lotCommentId = lotComment.lotCommentId!.toString();
|
||||||
|
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotComment.recordCreate_userName) +
|
cityssm.escapeHTML(lotComment.recordCreate_userName || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
lotComment.lotCommentDateString +
|
lotComment.lotCommentDateString +
|
||||||
(lotComment.lotCommentTime === 0 ? "" : " " + lotComment.lotCommentTimeString) +
|
(lotComment.lotCommentTime === 0 ? "" : " " + lotComment.lotCommentTimeString) +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotComment.lotComment) +
|
cityssm.escapeHTML(lotComment.lotComment || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
('<td class="is-hidden-print">' +
|
('<td class="is-hidden-print">' +
|
||||||
'<div class="buttons are-small is-justify-content-end">' +
|
'<div class="buttons are-small is-justify-content-end">' +
|
||||||
|
|
@ -283,14 +285,16 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>");
|
"</td>");
|
||||||
|
|
||||||
tableRowElement
|
(tableRowElement.querySelector(".button--edit") as HTMLButtonElement).addEventListener(
|
||||||
.querySelector(".button--edit")
|
"click",
|
||||||
.addEventListener("click", openEditLotComment);
|
openEditLotComment
|
||||||
tableRowElement
|
);
|
||||||
.querySelector(".button--delete")
|
|
||||||
.addEventListener("click", deleteLotComment);
|
|
||||||
|
|
||||||
tableElement.querySelector("tbody").append(tableRowElement);
|
(
|
||||||
|
tableRowElement.querySelector(".button--delete") as HTMLButtonElement
|
||||||
|
).addEventListener("click", deleteLotComment);
|
||||||
|
|
||||||
|
tableElement.querySelector("tbody")!.append(tableRowElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
containerElement.innerHTML = "";
|
containerElement.innerHTML = "";
|
||||||
|
|
@ -304,11 +308,11 @@ declare const bulmaJS: BulmaJS;
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/lots/doAddLotComment",
|
los.urlPrefix + "/lots/doAddLotComment",
|
||||||
formEvent.currentTarget,
|
formEvent.currentTarget,
|
||||||
(responseJSON: { success: boolean; lotComments?: recordTypes.LotComment[] }) => {
|
(responseJSON: { success: boolean; lotComments?: recordTypes.LotComment[] }) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotComments = responseJSON.lotComments;
|
lotComments = responseJSON.lotComments!;
|
||||||
renderLotComments();
|
renderLotComments();
|
||||||
addCommentCloseModalFunction();
|
addCommentCloseModalFunction();
|
||||||
}
|
}
|
||||||
|
|
@ -321,7 +325,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
los.populateAliases(modalElement);
|
los.populateAliases(modalElement);
|
||||||
(modalElement.querySelector("#lotCommentAdd--lotId") as HTMLInputElement).value =
|
(modalElement.querySelector("#lotCommentAdd--lotId") as HTMLInputElement).value =
|
||||||
lotId;
|
lotId;
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAddComment);
|
modalElement.querySelector("form")!.addEventListener("submit", doAddComment);
|
||||||
},
|
},
|
||||||
onshown(modalElement, closeModalFunction) {
|
onshown(modalElement, closeModalFunction) {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -338,7 +342,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
document.querySelector("#lotComments--add").addEventListener("click", openAddCommentModal);
|
(document.querySelector("#lotComments--add") as HTMLButtonElement).addEventListener(
|
||||||
|
"click",
|
||||||
|
openAddCommentModal
|
||||||
|
);
|
||||||
renderLotComments();
|
renderLotComments();
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value;
|
const lotOccupancyId = document.querySelector("#lotOccupancy--lotOccupancyId").value;
|
||||||
const isCreate = lotOccupancyId === "";
|
const isCreate = lotOccupancyId === "";
|
||||||
let hasUnsavedChanges = false;
|
let hasUnsavedChanges = false;
|
||||||
|
|
@ -20,14 +19,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const formElement = document.querySelector("#form--lotOccupancy");
|
const formElement = document.querySelector("#form--lotOccupancy");
|
||||||
formElement.addEventListener("submit", (formEvent) => {
|
formElement.addEventListener("submit", (formEvent) => {
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix +
|
cityssm.postJSON(los.urlPrefix +
|
||||||
"/lotOccupancies/" +
|
"/lotOccupancies/" +
|
||||||
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
|
(isCreate ? "doCreateLotOccupancy" : "doUpdateLotOccupancy"), formElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
clearUnsavedChanges();
|
clearUnsavedChanges();
|
||||||
if (isCreate || refreshAfterSave) {
|
if (isCreate || refreshAfterSave) {
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lotOccupancies/" +
|
"/lotOccupancies/" +
|
||||||
responseJSON.lotOccupancyId +
|
responseJSON.lotOccupancyId +
|
||||||
"/edit?t=" +
|
"/edit?t=" +
|
||||||
|
|
@ -43,7 +42,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Saving " + exports.aliases.occupancy,
|
title: "Error Saving " + exports.aliases.occupancy,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -54,23 +53,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
formInputElement.addEventListener("change", setUnsavedChanges);
|
formInputElement.addEventListener("change", setUnsavedChanges);
|
||||||
}
|
}
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
document
|
document.querySelector("#button--deleteLotOccupancy").addEventListener("click", (clickEvent) => {
|
||||||
.querySelector("#button--deleteLotOccupancy")
|
|
||||||
.addEventListener("click", (clickEvent) => {
|
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancy", {
|
||||||
lotOccupancyId
|
lotOccupancyId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix + "/lotOccupancies?t=" + Date.now();
|
los.urlPrefix + "/lotOccupancies?t=" + Date.now();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Record",
|
title: "Error Deleting Record",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -100,7 +97,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>";
|
"</div>";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetOccupancyTypeFields", {
|
||||||
occupancyTypeId: occupancyTypeIdElement.value
|
occupancyTypeId: occupancyTypeIdElement.value
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.occupancyTypeFields.length === 0) {
|
if (responseJSON.occupancyTypeFields.length === 0) {
|
||||||
|
|
@ -150,14 +147,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
'">' +
|
'">' +
|
||||||
'<option value="">(Not Set)</option>' +
|
'<option value="">(Not Set)</option>' +
|
||||||
"</select></div>";
|
"</select></div>";
|
||||||
fieldElement.querySelector("select").required =
|
const selectElement = fieldElement.querySelector("select");
|
||||||
occupancyTypeField.isRequired;
|
selectElement.required = occupancyTypeField.isRequired;
|
||||||
const optionValues = occupancyTypeField.occupancyTypeFieldValues.split("\n");
|
const optionValues = occupancyTypeField.occupancyTypeFieldValues.split("\n");
|
||||||
for (const optionValue of optionValues) {
|
for (const optionValue of optionValues) {
|
||||||
const optionElement = document.createElement("option");
|
const optionElement = document.createElement("option");
|
||||||
optionElement.value = optionValue;
|
optionElement.value = optionValue;
|
||||||
optionElement.textContent = optionValue;
|
optionElement.textContent = optionValue;
|
||||||
fieldElement.querySelector("select").append(optionElement);
|
selectElement.append(optionElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lotOccupancyFieldsContainerElement.append(fieldElement);
|
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 />' +
|
'<i class="fas fa-3x fa-pulse fa-spinner" aria-hidden="true"></i><br />' +
|
||||||
"Searching..." +
|
"Searching..." +
|
||||||
"</p>";
|
"</p>";
|
||||||
cityssm.postJSON(urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", lotSelectFormElement, (responseJSON) => {
|
||||||
if (responseJSON.count === 0) {
|
if (responseJSON.count === 0) {
|
||||||
lotSelectResultsElement.innerHTML =
|
lotSelectResultsElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -241,10 +238,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
panelBlockElement.innerHTML =
|
panelBlockElement.innerHTML =
|
||||||
'<div class="columns">' +
|
'<div class="columns">' +
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
cityssm.escapeHTML(lot.lotName) +
|
cityssm.escapeHTML(lot.lotName || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(lot.mapName) +
|
cityssm.escapeHTML(lot.mapName || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
|
|
@ -265,14 +262,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const createLotAndSelect = (submitEvent) => {
|
const createLotAndSelect = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName").value;
|
const lotName = lotSelectModalElement.querySelector("#lotCreate--lotName").value;
|
||||||
cityssm.postJSON(urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lots/doCreateLot", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
renderSelectedLotAndClose(responseJSON.lotId, lotName);
|
renderSelectedLotAndClose(responseJSON.lotId, lotName);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Creating " + exports.aliases.lot,
|
title: "Error Creating " + exports.aliases.lot,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -330,9 +327,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
optionElement.textContent = map.mapName || "(No Name)";
|
optionElement.textContent = map.mapName || "(No Name)";
|
||||||
mapElement.append(optionElement);
|
mapElement.append(optionElement);
|
||||||
}
|
}
|
||||||
modalElement
|
modalElement.querySelector("#form--lotCreate").addEventListener("submit", createLotAndSelect);
|
||||||
.querySelector("#form--lotCreate")
|
|
||||||
.addEventListener("submit", createLotAndSelect);
|
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
@ -340,9 +335,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
document.querySelector(".is-lot-view-button").addEventListener("click", () => {
|
document.querySelector(".is-lot-view-button").addEventListener("click", () => {
|
||||||
const lotId = document.querySelector("#lotOccupancy--lotId").value;
|
const lotId = document.querySelector("#lotOccupancy--lotId")
|
||||||
|
.value;
|
||||||
if (lotId) {
|
if (lotId) {
|
||||||
window.open(urlPrefix + "/lots/" + lotId);
|
window.open(los.urlPrefix + "/lots/" + lotId);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -365,9 +361,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
los.initializeDatePickers(formElement);
|
los.initializeDatePickers(formElement);
|
||||||
document
|
document.querySelector("#lotOccupancy--occupancyStartDateString").addEventListener("change", () => {
|
||||||
.querySelector("#lotOccupancy--occupancyStartDateString")
|
|
||||||
.addEventListener("change", () => {
|
|
||||||
const endDatePicker = document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;
|
const endDatePicker = document.querySelector("#lotOccupancy--occupancyEndDateString").bulmaCalendar.datePicker;
|
||||||
endDatePicker.min = document.querySelector("#lotOccupancy--occupancyStartDateString").value;
|
endDatePicker.min = document.querySelector("#lotOccupancy--occupancyStartDateString").value;
|
||||||
endDatePicker.refresh();
|
endDatePicker.refresh();
|
||||||
|
|
@ -385,7 +379,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const editOccupant = (submitEvent) => {
|
const editOccupant = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doUpdateLotOccupancyOccupant", editFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doUpdateLotOccupancyOccupant", editFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -394,7 +388,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.occupant,
|
title: "Error Updating " + exports.aliases.occupant,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -447,10 +441,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const deleteLotOccupancyOccupant = (clickEvent) => {
|
const deleteLotOccupancyOccupant = (clickEvent) => {
|
||||||
const lotOccupantIndex = clickEvent.currentTarget.closest("tr").dataset
|
const lotOccupantIndex = clickEvent.currentTarget.closest("tr")
|
||||||
.lotOccupantIndex;
|
.dataset.lotOccupantIndex;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyOccupant", {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancyOccupant", {
|
||||||
lotOccupancyId,
|
lotOccupancyId,
|
||||||
lotOccupantIndex
|
lotOccupantIndex
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -461,7 +455,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Removing " + exports.aliases.occupant,
|
title: "Error Removing " + exports.aliases.occupant,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -514,7 +508,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancyOccupant.lotOccupantType) +
|
cityssm.escapeHTML(lotOccupancyOccupant.lotOccupantType) +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
("<td>" + cityssm.escapeHTML(lotOccupancyOccupant.occupantName) + "</td>") +
|
("<td>" +
|
||||||
|
cityssm.escapeHTML(lotOccupancyOccupant.occupantName || "") +
|
||||||
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(lotOccupancyOccupant.occupantAddress1
|
(lotOccupancyOccupant.occupantAddress1
|
||||||
? cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) + "<br />"
|
? cityssm.escapeHTML(lotOccupancyOccupant.occupantAddress1) + "<br />"
|
||||||
|
|
@ -525,9 +521,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(lotOccupancyOccupant.occupantCity
|
(lotOccupancyOccupant.occupantCity
|
||||||
? cityssm.escapeHTML(lotOccupancyOccupant.occupantCity) + ", "
|
? cityssm.escapeHTML(lotOccupancyOccupant.occupantCity) + ", "
|
||||||
: "") +
|
: "") +
|
||||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantProvince) +
|
cityssm.escapeHTML(lotOccupancyOccupant.occupantProvince || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
cityssm.escapeHTML(lotOccupancyOccupant.occupantPostalCode) +
|
cityssm.escapeHTML(lotOccupancyOccupant.occupantPostalCode || "") +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(lotOccupancyOccupant.occupantPhoneNumber
|
(lotOccupancyOccupant.occupantPhoneNumber
|
||||||
|
|
@ -551,12 +547,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</button>") +
|
"</button>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>");
|
"</td>");
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotOccupancyOccupant);
|
||||||
.querySelector(".button--edit")
|
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotOccupancyOccupant);
|
||||||
.addEventListener("click", openEditLotOccupancyOccupant);
|
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--delete")
|
|
||||||
.addEventListener("click", deleteLotOccupancyOccupant);
|
|
||||||
tableElement.querySelector("tbody").append(tableRowElement);
|
tableElement.querySelector("tbody").append(tableRowElement);
|
||||||
}
|
}
|
||||||
occupantsContainer.append(tableElement);
|
occupantsContainer.append(tableElement);
|
||||||
|
|
@ -567,7 +559,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let searchFormElement;
|
let searchFormElement;
|
||||||
let searchResultsElement;
|
let searchResultsElement;
|
||||||
const addOccupant = (formOrObject) => {
|
const addOccupant = (formOrObject) => {
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyOccupant", formOrObject, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doAddLotOccupancyOccupant", formOrObject, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
lotOccupancyOccupants = responseJSON.lotOccupancyOccupants;
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
|
|
@ -576,7 +568,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.occupant,
|
title: "Error Adding " + exports.aliases.occupant,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
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 />' +
|
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||||
"Searching..." +
|
"Searching..." +
|
||||||
"</div>";
|
"</div>";
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doSearchPastOccupants", searchFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchPastOccupants", searchFormElement, (responseJSON) => {
|
||||||
pastOccupantSearchResults = responseJSON.occupants;
|
pastOccupantSearchResults = responseJSON.occupants;
|
||||||
const panelElement = document.createElement("div");
|
const panelElement = document.createElement("div");
|
||||||
panelElement.className = "panel";
|
panelElement.className = "panel";
|
||||||
|
|
@ -633,28 +625,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
panelBlockElement.dataset.index = index.toString();
|
panelBlockElement.dataset.index = index.toString();
|
||||||
panelBlockElement.innerHTML =
|
panelBlockElement.innerHTML =
|
||||||
"<strong>" +
|
"<strong>" +
|
||||||
cityssm.escapeHTML(occupant.occupantName) +
|
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||||
"</strong>" +
|
"</strong>" +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
'<div class="columns">' +
|
'<div class="columns">' +
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
cityssm.escapeHTML(occupant.occupantAddress1) +
|
cityssm.escapeHTML(occupant.occupantAddress1 || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
(occupant.occupantAddress2
|
(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 />" +
|
"<br />" +
|
||||||
cityssm.escapeHTML(occupant.occupantPostalCode) +
|
cityssm.escapeHTML(occupant.occupantPostalCode || "") +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
(occupant.occupantPhoneNumber
|
(occupant.occupantPhoneNumber
|
||||||
? cityssm.escapeHTML(occupant.occupantPhoneNumber) +
|
? cityssm.escapeHTML(occupant.occupantPhoneNumber) +
|
||||||
"<br />"
|
"<br />"
|
||||||
: "") +
|
: "") +
|
||||||
cityssm.escapeHTML(occupant.occupantEmailAddress) +
|
cityssm.escapeHTML(occupant.occupantEmailAddress || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
@ -692,9 +685,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
searchFormElement.addEventListener("submit", (formEvent) => {
|
searchFormElement.addEventListener("submit", (formEvent) => {
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
});
|
});
|
||||||
modalElement
|
modalElement.querySelector("#lotOccupancyOccupantCopy--searchFilter").addEventListener("change", searchOccupants);
|
||||||
.querySelector("#lotOccupancyOccupantCopy--searchFilter")
|
|
||||||
.addEventListener("change", searchOccupants);
|
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
|
|
@ -717,7 +708,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const editComment = (submitEvent) => {
|
const editComment = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doUpdateLotOccupancyComment", editFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doUpdateLotOccupancyComment", editFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -726,7 +717,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Comment",
|
title: "Error Updating Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -766,7 +757,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset
|
const lotOccupancyCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset
|
||||||
.lotOccupancyCommentId, 10);
|
.lotOccupancyCommentId, 10);
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyComment", {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancyComment", {
|
||||||
lotOccupancyId,
|
lotOccupancyId,
|
||||||
lotOccupancyCommentId
|
lotOccupancyCommentId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -777,7 +768,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Removing Comment",
|
title: "Error Removing Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -818,7 +809,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
lotOccupancyComment.lotOccupancyCommentId.toString();
|
lotOccupancyComment.lotOccupancyCommentId.toString();
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName) +
|
cityssm.escapeHTML(lotOccupancyComment.recordCreate_userName || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
lotOccupancyComment.lotOccupancyCommentDateString +
|
lotOccupancyComment.lotOccupancyCommentDateString +
|
||||||
|
|
@ -827,7 +818,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
: " " + lotOccupancyComment.lotOccupancyCommentTimeString) +
|
: " " + lotOccupancyComment.lotOccupancyCommentTimeString) +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment) +
|
cityssm.escapeHTML(lotOccupancyComment.lotOccupancyComment || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
('<td class="is-hidden-print">' +
|
('<td class="is-hidden-print">' +
|
||||||
'<div class="buttons are-small is-justify-content-end">' +
|
'<div class="buttons are-small is-justify-content-end">' +
|
||||||
|
|
@ -840,12 +831,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</button>") +
|
"</button>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>");
|
"</td>");
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditLotOccupancyComment);
|
||||||
.querySelector(".button--edit")
|
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteLotOccupancyComment);
|
||||||
.addEventListener("click", openEditLotOccupancyComment);
|
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--delete")
|
|
||||||
.addEventListener("click", deleteLotOccupancyComment);
|
|
||||||
tableElement.querySelector("tbody").append(tableRowElement);
|
tableElement.querySelector("tbody").append(tableRowElement);
|
||||||
}
|
}
|
||||||
containerElement.innerHTML = "";
|
containerElement.innerHTML = "";
|
||||||
|
|
@ -856,7 +843,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const addComment = (submitEvent) => {
|
const addComment = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyComment", addFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doAddLotOccupancyComment", addFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
lotOccupancyComments = responseJSON.lotOccupancyComments;
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
|
|
@ -865,7 +852,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding Comment",
|
title: "Error Adding Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -906,7 +893,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const deleteLotOccupancyFee = (clickEvent) => {
|
const deleteLotOccupancyFee = (clickEvent) => {
|
||||||
const feeId = clickEvent.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;
|
const feeId = clickEvent.currentTarget.closest(".container--lotOccupancyFee").dataset.feeId;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyFee", {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancyFee", {
|
||||||
lotOccupancyId,
|
lotOccupancyId,
|
||||||
feeId
|
feeId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -917,7 +904,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Fee",
|
title: "Error Deleting Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -973,7 +960,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
'<td colspan="' +
|
'<td colspan="' +
|
||||||
(lotOccupancyFee.quantity === 1 ? "5" : "1") +
|
(lotOccupancyFee.quantity === 1 ? "5" : "1") +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(lotOccupancyFee.feeName) +
|
cityssm.escapeHTML(lotOccupancyFee.feeName || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
(lotOccupancyFee.quantity === 1
|
(lotOccupancyFee.quantity === 1
|
||||||
? ""
|
? ""
|
||||||
|
|
@ -1017,7 +1004,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let feeFilterElement;
|
let feeFilterElement;
|
||||||
let feeFilterResultsElement;
|
let feeFilterResultsElement;
|
||||||
const doAddFee = (feeId, quantity = 1) => {
|
const doAddFee = (feeId, quantity = 1) => {
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyFee", {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doAddLotOccupancyFee", {
|
||||||
lotOccupancyId,
|
lotOccupancyId,
|
||||||
feeId,
|
feeId,
|
||||||
quantity
|
quantity
|
||||||
|
|
@ -1030,7 +1017,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding Fee",
|
title: "Error Adding Fee",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1075,7 +1062,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const filterFees = () => {
|
const filterFees = () => {
|
||||||
const filterStringPieces = feeFilterElement.value.trim().toLowerCase().split(" ");
|
const filterStringPieces = feeFilterElement.value
|
||||||
|
.trim()
|
||||||
|
.toLowerCase()
|
||||||
|
.split(" ");
|
||||||
feeFilterResultsElement.innerHTML = "";
|
feeFilterResultsElement.innerHTML = "";
|
||||||
for (const feeCategory of feeCategories) {
|
for (const feeCategory of feeCategories) {
|
||||||
const categoryContainerElement = document.createElement("div");
|
const categoryContainerElement = document.createElement("div");
|
||||||
|
|
@ -1084,7 +1074,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
feeCategory.feeCategoryId.toString();
|
feeCategory.feeCategoryId.toString();
|
||||||
categoryContainerElement.innerHTML =
|
categoryContainerElement.innerHTML =
|
||||||
'<h4 class="title is-5 mt-2">' +
|
'<h4 class="title is-5 mt-2">' +
|
||||||
cityssm.escapeHTML(feeCategory.feeCategory) +
|
cityssm.escapeHTML(feeCategory.feeCategory || "") +
|
||||||
"</h4>" +
|
"</h4>" +
|
||||||
'<div class="panel mb-5"></div>';
|
'<div class="panel mb-5"></div>';
|
||||||
let hasFees = false;
|
let hasFees = false;
|
||||||
|
|
@ -1111,10 +1101,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
panelBlockElement.href = "#";
|
panelBlockElement.href = "#";
|
||||||
panelBlockElement.innerHTML =
|
panelBlockElement.innerHTML =
|
||||||
"<strong>" +
|
"<strong>" +
|
||||||
cityssm.escapeHTML(fee.feeName) +
|
cityssm.escapeHTML(fee.feeName || "") +
|
||||||
"</strong><br />" +
|
"</strong><br />" +
|
||||||
"<small>" +
|
"<small>" +
|
||||||
cityssm.escapeHTML(fee.feeDescription).replace(/\n/g, "<br />") +
|
cityssm.escapeHTML(fee.feeDescription || "").replace(/\n/g, "<br />") +
|
||||||
"</small>";
|
"</small>";
|
||||||
panelBlockElement.addEventListener("click", tryAddFee);
|
panelBlockElement.addEventListener("click", tryAddFee);
|
||||||
categoryContainerElement.querySelector(".panel").append(panelBlockElement);
|
categoryContainerElement.querySelector(".panel").append(panelBlockElement);
|
||||||
|
|
@ -1128,7 +1118,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
onshow: (modalElement) => {
|
onshow: (modalElement) => {
|
||||||
feeFilterElement = modalElement.querySelector("#feeSelect--feeName");
|
feeFilterElement = modalElement.querySelector("#feeSelect--feeName");
|
||||||
feeFilterResultsElement = modalElement.querySelector("#resultsContainer--feeSelect");
|
feeFilterResultsElement = modalElement.querySelector("#resultsContainer--feeSelect");
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doGetFees", {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doGetFees", {
|
||||||
lotOccupancyId
|
lotOccupancyId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
feeCategories = responseJSON.feeCategories;
|
feeCategories = responseJSON.feeCategories;
|
||||||
|
|
@ -1162,7 +1152,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const deleteLotOccupancyTransaction = (clickEvent) => {
|
const deleteLotOccupancyTransaction = (clickEvent) => {
|
||||||
const transactionIndex = clickEvent.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;
|
const transactionIndex = clickEvent.currentTarget.closest(".container--lotOccupancyTransaction").dataset.transactionIndex;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doDeleteLotOccupancyTransaction", {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doDeleteLotOccupancyTransaction", {
|
||||||
lotOccupancyId,
|
lotOccupancyId,
|
||||||
transactionIndex
|
transactionIndex
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -1173,7 +1163,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Transaction",
|
title: "Error Deleting Transaction",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1228,10 +1218,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
lotOccupancyTransaction.transactionDateString +
|
lotOccupancyTransaction.transactionDateString +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancyTransaction.externalReceiptNumber) +
|
cityssm.escapeHTML(lotOccupancyTransaction.externalReceiptNumber || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
"<small>" +
|
"<small>" +
|
||||||
cityssm.escapeHTML(lotOccupancyTransaction.transactionNote) +
|
cityssm.escapeHTML(lotOccupancyTransaction.transactionNote || "") +
|
||||||
"</small>" +
|
"</small>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
('<td class="has-text-right">$' +
|
('<td class="has-text-right">$' +
|
||||||
|
|
@ -1268,7 +1258,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCloseModalFunction;
|
let addCloseModalFunction;
|
||||||
const doAddTransaction = (submitEvent) => {
|
const doAddTransaction = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doAddLotOccupancyTransaction", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doAddLotOccupancyTransaction", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions;
|
lotOccupancyTransactions = responseJSON.lotOccupancyTransactions;
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
|
|
@ -1277,7 +1267,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.confirm({
|
bulmaJS.confirm({
|
||||||
title: "Error Adding Transaction",
|
title: "Error Adding Transaction",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1297,7 +1287,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
addCloseModalFunction = closeModalFunction;
|
addCloseModalFunction = closeModalFunction;
|
||||||
modalElement.querySelector("form").addEventListener("submit", doAddTransaction);
|
modalElement
|
||||||
|
.querySelector("form")
|
||||||
|
.addEventListener("submit", doAddTransaction);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,7 +1,7 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los;
|
||||||
const lotOccupancyPrints = exports.lotOccupancyPrints;
|
const lotOccupancyPrints = exports.lotOccupancyPrints;
|
||||||
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
||||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||||
|
|
@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.aliases.occupancies +
|
exports.aliases.occupancies +
|
||||||
"..." +
|
"..." +
|
||||||
"</div>";
|
"</div>";
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFilterFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFilterFormElement, (responseJSON) => {
|
||||||
if (responseJSON.lotOccupancies.length === 0) {
|
if (responseJSON.lotOccupancies.length === 0) {
|
||||||
searchResultsContainerElement.innerHTML =
|
searchResultsContainerElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -66,16 +66,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||||
occupantsHTML +=
|
occupantsHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<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 />";
|
"</span><br />";
|
||||||
}
|
}
|
||||||
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||||
('<td class="has-width-1">' + occupancyTimeHTML + "</td>") +
|
('<td class="has-width-1">' + occupancyTimeHTML + "</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lotOccupancies/" +
|
"/lotOccupancies/" +
|
||||||
lotOccupancy.lotOccupancyId +
|
lotOccupancy.lotOccupancyId +
|
||||||
'">' +
|
'">' +
|
||||||
|
|
@ -85,9 +85,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(lotOccupancy.lotName
|
(lotOccupancy.lotName
|
||||||
? '<a class="has-tooltip-right" data-tooltip="' +
|
? '<a class="has-tooltip-right" data-tooltip="' +
|
||||||
cityssm.escapeHTML(lotOccupancy.lotType) +
|
cityssm.escapeHTML(lotOccupancy.lotType || "") +
|
||||||
'" href="' +
|
'" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lots/" +
|
"/lots/" +
|
||||||
lotOccupancy.lotId +
|
lotOccupancy.lotId +
|
||||||
'">' +
|
'">' +
|
||||||
|
|
@ -111,7 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(lotOccupancyPrints.length > 0
|
(lotOccupancyPrints.length > 0
|
||||||
? "<td>" +
|
? "<td>" +
|
||||||
'<a class="button is-small" data-tooltip="Print" href="' +
|
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/print/" +
|
"/print/" +
|
||||||
lotOccupancyPrints[0] +
|
lotOccupancyPrints[0] +
|
||||||
"/?lotOccupancyId=" +
|
"/?lotOccupancyId=" +
|
||||||
|
|
@ -132,7 +132,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupancyStartDate) + "</th>") +
|
("<th>" + cityssm.escapeHTML(exports.aliases.occupancyStartDate) + "</th>") +
|
||||||
"<th>End Date</th>" +
|
"<th>End Date</th>" +
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</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>" +
|
"</tr></thead>" +
|
||||||
"<table>" +
|
"<table>" +
|
||||||
'<div class="level">' +
|
'<div class="level">' +
|
||||||
|
|
@ -166,14 +168,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>";
|
"</div>";
|
||||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||||
if (offset > 0) {
|
if (offset > 0) {
|
||||||
searchResultsContainerElement
|
searchResultsContainerElement.querySelector("button[data-page='previous']").addEventListener("click", previousAndGetLotOccupancies);
|
||||||
.querySelector("button[data-page='previous']")
|
|
||||||
.addEventListener("click", previousAndGetLotOccupancies);
|
|
||||||
}
|
}
|
||||||
if (limit + offset < responseJSON.count) {
|
if (limit + offset < responseJSON.count) {
|
||||||
searchResultsContainerElement
|
searchResultsContainerElement.querySelector("button[data-page='next']").addEventListener("click", nextAndGetLotOccupancies);
|
||||||
.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 * as recordTypes from "../types/recordTypes";
|
||||||
|
|
||||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
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;
|
declare const cityssm: cityssmGlobal;
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const lotOccupancyPrints: string[] = exports.lotOccupancyPrints;
|
const lotOccupancyPrints: string[] = exports.lotOccupancyPrints;
|
||||||
|
|
||||||
|
|
@ -37,7 +38,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/lotOccupancies/doSearchLotOccupancies",
|
los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies",
|
||||||
searchFilterFormElement,
|
searchFilterFormElement,
|
||||||
(responseJSON: { count: number; lotOccupancies: recordTypes.LotOccupancy[] }) => {
|
(responseJSON: { count: number; lotOccupancies: recordTypes.LotOccupancy[] }) => {
|
||||||
if (responseJSON.lotOccupancies.length === 0) {
|
if (responseJSON.lotOccupancies.length === 0) {
|
||||||
|
|
@ -59,9 +60,9 @@ declare const cityssm: cityssmGlobal;
|
||||||
let occupancyTimeHTML = "";
|
let occupancyTimeHTML = "";
|
||||||
|
|
||||||
if (
|
if (
|
||||||
lotOccupancy.occupancyStartDateString <= nowDateString &&
|
lotOccupancy.occupancyStartDateString! <= nowDateString &&
|
||||||
(lotOccupancy.occupancyEndDateString === "" ||
|
(lotOccupancy.occupancyEndDateString === "" ||
|
||||||
lotOccupancy.occupancyEndDateString >= nowDateString)
|
lotOccupancy.occupancyEndDateString! >= nowDateString)
|
||||||
) {
|
) {
|
||||||
occupancyTimeHTML =
|
occupancyTimeHTML =
|
||||||
'<span class="has-tooltip-right" data-tooltip="Current ' +
|
'<span class="has-tooltip-right" data-tooltip="Current ' +
|
||||||
|
|
@ -71,7 +72,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
exports.aliases.occupancy +
|
exports.aliases.occupancy +
|
||||||
'"></i>') +
|
'"></i>') +
|
||||||
"</span>";
|
"</span>";
|
||||||
} else if (lotOccupancy.occupancyStartDateString > nowDateString) {
|
} else if (lotOccupancy.occupancyStartDateString! > nowDateString) {
|
||||||
occupancyTimeHTML =
|
occupancyTimeHTML =
|
||||||
'<span class="has-tooltip-right" data-tooltip="Future ' +
|
'<span class="has-tooltip-right" data-tooltip="Future ' +
|
||||||
exports.aliases.occupancy +
|
exports.aliases.occupancy +
|
||||||
|
|
@ -93,12 +94,12 @@ declare const cityssm: cityssmGlobal;
|
||||||
|
|
||||||
let occupantsHTML = "";
|
let occupantsHTML = "";
|
||||||
|
|
||||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
for (const occupant of lotOccupancy.lotOccupancyOccupants!) {
|
||||||
occupantsHTML +=
|
occupantsHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<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 />";
|
"</span><br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,7 +109,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
('<td class="has-width-1">' + occupancyTimeHTML + "</td>") +
|
('<td class="has-width-1">' + occupancyTimeHTML + "</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lotOccupancies/" +
|
"/lotOccupancies/" +
|
||||||
lotOccupancy.lotOccupancyId +
|
lotOccupancy.lotOccupancyId +
|
||||||
'">' +
|
'">' +
|
||||||
|
|
@ -118,9 +119,9 @@ declare const cityssm: cityssmGlobal;
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(lotOccupancy.lotName
|
(lotOccupancy.lotName
|
||||||
? '<a class="has-tooltip-right" data-tooltip="' +
|
? '<a class="has-tooltip-right" data-tooltip="' +
|
||||||
cityssm.escapeHTML(lotOccupancy.lotType) +
|
cityssm.escapeHTML(lotOccupancy.lotType || "") +
|
||||||
'" href="' +
|
'" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lots/" +
|
"/lots/" +
|
||||||
lotOccupancy.lotId +
|
lotOccupancy.lotId +
|
||||||
'">' +
|
'">' +
|
||||||
|
|
@ -144,7 +145,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
(lotOccupancyPrints.length > 0
|
(lotOccupancyPrints.length > 0
|
||||||
? "<td>" +
|
? "<td>" +
|
||||||
'<a class="button is-small" data-tooltip="Print" href="' +
|
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/print/" +
|
"/print/" +
|
||||||
lotOccupancyPrints[0] +
|
lotOccupancyPrints[0] +
|
||||||
"/?lotOccupancyId=" +
|
"/?lotOccupancyId=" +
|
||||||
|
|
@ -167,7 +168,9 @@ declare const cityssm: cityssmGlobal;
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupancyStartDate) + "</th>") +
|
("<th>" + cityssm.escapeHTML(exports.aliases.occupancyStartDate) + "</th>") +
|
||||||
"<th>End Date</th>" +
|
"<th>End Date</th>" +
|
||||||
("<th>" + cityssm.escapeHTML(exports.aliases.occupants) + "</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>" +
|
"</tr></thead>" +
|
||||||
"<table>" +
|
"<table>" +
|
||||||
'<div class="level">' +
|
'<div class="level">' +
|
||||||
|
|
@ -200,18 +203,22 @@ declare const cityssm: cityssmGlobal;
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
searchResultsContainerElement.querySelector("table")!.append(resultsTbodyElement);
|
||||||
|
|
||||||
if (offset > 0) {
|
if (offset > 0) {
|
||||||
searchResultsContainerElement
|
(
|
||||||
.querySelector("button[data-page='previous']")
|
searchResultsContainerElement.querySelector(
|
||||||
.addEventListener("click", previousAndGetLotOccupancies);
|
"button[data-page='previous']"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", previousAndGetLotOccupancies);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (limit + offset < responseJSON.count) {
|
if (limit + offset < responseJSON.count) {
|
||||||
searchResultsContainerElement
|
(
|
||||||
.querySelector("button[data-page='next']")
|
searchResultsContainerElement.querySelector(
|
||||||
.addEventListener("click", nextAndGetLotOccupancies);
|
"button[data-page='next']"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", nextAndGetLotOccupancies);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los;
|
||||||
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
||||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||||
const limit = Number.parseInt(document.querySelector("#searchFilter--limit").value, 10);
|
const limit = Number.parseInt(document.querySelector("#searchFilter--limit").value, 10);
|
||||||
|
|
@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.aliases.lots +
|
exports.aliases.lots +
|
||||||
"..." +
|
"..." +
|
||||||
"</div>";
|
"</div>";
|
||||||
cityssm.postJSON(urlPrefix + "/lots/doSearchLots", searchFilterFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", searchFilterFormElement, (responseJSON) => {
|
||||||
if (responseJSON.lots.length === 0) {
|
if (responseJSON.lots.length === 0) {
|
||||||
searchResultsContainerElement.innerHTML =
|
searchResultsContainerElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -30,16 +30,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lots/" +
|
"/lots/" +
|
||||||
lot.lotId +
|
lot.lotId +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(lot.lotName) +
|
cityssm.escapeHTML(lot.lotName || "") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a href="' +
|
'<a href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/maps/" +
|
"/maps/" +
|
||||||
lot.mapId +
|
lot.mapId +
|
||||||
'">' +
|
'">' +
|
||||||
|
|
@ -48,10 +48,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
: '<span class="has-text-grey">(No Name)</span>') +
|
: '<span class="has-text-grey">(No Name)</span>') +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(lot.lotStatusId
|
(lot.lotStatusId
|
||||||
? cityssm.escapeHTML(lot.lotStatus)
|
? cityssm.escapeHTML(lot.lotStatus || "")
|
||||||
: '<span class="has-text-grey">(No Status)</span>') +
|
: '<span class="has-text-grey">(No Status)</span>') +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
(lot.lotOccupancyCount > 0
|
(lot.lotOccupancyCount > 0
|
||||||
|
|
@ -100,14 +100,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>";
|
"</div>";
|
||||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
||||||
if (offset > 0) {
|
if (offset > 0) {
|
||||||
searchResultsContainerElement
|
searchResultsContainerElement.querySelector("button[data-page='previous']").addEventListener("click", previousAndGetLots);
|
||||||
.querySelector("button[data-page='previous']")
|
|
||||||
.addEventListener("click", previousAndGetLots);
|
|
||||||
}
|
}
|
||||||
if (limit + offset < responseJSON.count) {
|
if (limit + offset < responseJSON.count) {
|
||||||
searchResultsContainerElement
|
searchResultsContainerElement.querySelector("button[data-page='next']").addEventListener("click", nextAndGetLots);
|
||||||
.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 * as recordTypes from "../types/recordTypes";
|
||||||
|
|
||||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
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;
|
declare const cityssm: cityssmGlobal;
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const searchFilterFormElement = document.querySelector(
|
const searchFilterFormElement = document.querySelector(
|
||||||
"#form--searchFilters"
|
"#form--searchFilters"
|
||||||
|
|
@ -34,7 +35,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/lots/doSearchLots",
|
los.urlPrefix + "/lots/doSearchLots",
|
||||||
searchFilterFormElement,
|
searchFilterFormElement,
|
||||||
(responseJSON: { count: number; lots: recordTypes.Lot[] }) => {
|
(responseJSON: { count: number; lots: recordTypes.Lot[] }) => {
|
||||||
if (responseJSON.lots.length === 0) {
|
if (responseJSON.lots.length === 0) {
|
||||||
|
|
@ -56,16 +57,16 @@ declare const cityssm: cityssmGlobal;
|
||||||
"<tr>" +
|
"<tr>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lots/" +
|
"/lots/" +
|
||||||
lot.lotId +
|
lot.lotId +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(lot.lotName) +
|
cityssm.escapeHTML(lot.lotName || "") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a href="' +
|
'<a href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/maps/" +
|
"/maps/" +
|
||||||
lot.mapId +
|
lot.mapId +
|
||||||
'">' +
|
'">' +
|
||||||
|
|
@ -74,13 +75,13 @@ declare const cityssm: cityssmGlobal;
|
||||||
: '<span class="has-text-grey">(No Name)</span>') +
|
: '<span class="has-text-grey">(No Name)</span>') +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(lot.lotStatusId
|
(lot.lotStatusId
|
||||||
? cityssm.escapeHTML(lot.lotStatus)
|
? cityssm.escapeHTML(lot.lotStatus || "")
|
||||||
: '<span class="has-text-grey">(No Status)</span>') +
|
: '<span class="has-text-grey">(No Status)</span>') +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
(lot.lotOccupancyCount > 0
|
(lot.lotOccupancyCount! > 0
|
||||||
? '<span class="is-size-7">Currently Occupied</span>'
|
? '<span class="is-size-7">Currently Occupied</span>'
|
||||||
: "") +
|
: "") +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
|
|
@ -127,18 +128,22 @@ declare const cityssm: cityssmGlobal;
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
searchResultsContainerElement.querySelector("table").append(resultsTbodyElement);
|
searchResultsContainerElement.querySelector("table")!.append(resultsTbodyElement);
|
||||||
|
|
||||||
if (offset > 0) {
|
if (offset > 0) {
|
||||||
searchResultsContainerElement
|
(
|
||||||
.querySelector("button[data-page='previous']")
|
searchResultsContainerElement.querySelector(
|
||||||
.addEventListener("click", previousAndGetLots);
|
"button[data-page='previous']"
|
||||||
|
) as HTMLButtonElement
|
||||||
|
).addEventListener("click", previousAndGetLots);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (limit + offset < responseJSON.count) {
|
if (limit + offset < responseJSON.count) {
|
||||||
searchResultsContainerElement
|
(
|
||||||
.querySelector("button[data-page='next']")
|
searchResultsContainerElement.querySelector(
|
||||||
.addEventListener("click", nextAndGetLots);
|
"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";
|
import * as globalTypes from "../types/globalTypes";
|
||||||
|
|
||||||
|
|
@ -9,7 +9,7 @@ import * as globalTypes from "../types/globalTypes";
|
||||||
if (mapContainerElement) {
|
if (mapContainerElement) {
|
||||||
(exports.los as globalTypes.LOS).highlightMap(
|
(exports.los as globalTypes.LOS).highlightMap(
|
||||||
mapContainerElement,
|
mapContainerElement,
|
||||||
mapContainerElement.dataset.mapKey,
|
mapContainerElement.dataset.mapKey!,
|
||||||
"success"
|
"success"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
svgId = svgId.slice(0, Math.max(0, svgId.lastIndexOf("-")));
|
svgId = svgId.slice(0, Math.max(0, svgId.lastIndexOf("-")));
|
||||||
}
|
}
|
||||||
if (svgElementToHighlight) {
|
if (svgElementToHighlight) {
|
||||||
svgElementToHighlight.style.fill = null;
|
svgElementToHighlight.style.fill = "";
|
||||||
svgElementToHighlight.classList.add("highlight", "is-" + contextualClass);
|
svgElementToHighlight.classList.add("highlight", "is-" + contextualClass);
|
||||||
const childPathElements = svgElementToHighlight.querySelectorAll("path");
|
const childPathElements = svgElementToHighlight.querySelectorAll("path");
|
||||||
for (const pathElement of childPathElements) {
|
for (const pathElement of childPathElements) {
|
||||||
pathElement.style.fill = null;
|
pathElement.style.fill = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -194,6 +194,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const los = {
|
const los = {
|
||||||
|
urlPrefix: document.querySelector("main").dataset.urlPrefix,
|
||||||
|
apiKey: document.querySelector("main").dataset.apiKey,
|
||||||
highlightMap,
|
highlightMap,
|
||||||
initializeUnlockFieldButtons,
|
initializeUnlockFieldButtons,
|
||||||
initializeDatePickers,
|
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 * as globalTypes from "../types/globalTypes";
|
||||||
import type { Options as BulmaCalendarOptions } from "bulma-calendar";
|
import type { Options as BulmaCalendarOptions } from "bulma-calendar";
|
||||||
|
|
@ -17,7 +17,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
// Search for ID
|
// Search for ID
|
||||||
|
|
||||||
let svgId = mapKey;
|
let svgId = mapKey;
|
||||||
let svgElementToHighlight: SVGElement;
|
let svgElementToHighlight: SVGElement | null;
|
||||||
|
|
||||||
// eslint-disable-next-line no-constant-condition
|
// eslint-disable-next-line no-constant-condition
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|
@ -32,20 +32,20 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
if (svgElementToHighlight) {
|
if (svgElementToHighlight) {
|
||||||
// eslint-disable-next-line unicorn/no-null
|
// eslint-disable-next-line unicorn/no-null
|
||||||
svgElementToHighlight.style.fill = null;
|
svgElementToHighlight.style.fill = "";
|
||||||
|
|
||||||
svgElementToHighlight.classList.add("highlight", "is-" + contextualClass);
|
svgElementToHighlight.classList.add("highlight", "is-" + contextualClass);
|
||||||
|
|
||||||
const childPathElements = svgElementToHighlight.querySelectorAll("path");
|
const childPathElements = svgElementToHighlight.querySelectorAll("path");
|
||||||
for (const pathElement of childPathElements) {
|
for (const pathElement of childPathElements) {
|
||||||
// eslint-disable-next-line unicorn/no-null
|
// eslint-disable-next-line unicorn/no-null
|
||||||
pathElement.style.fill = null;
|
pathElement.style.fill = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const unlockField = (clickEvent: Event) => {
|
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
|
const inputOrSelectElement = fieldElement.querySelector("input, select") as
|
||||||
| HTMLInputElement
|
| HTMLInputElement
|
||||||
|
|
@ -115,7 +115,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
// Disable html scrolling when calendar is open
|
// Disable html scrolling when calendar is open
|
||||||
cal.on("show", () => {
|
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
|
// 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 + "']");
|
const labelElement = document.querySelector("label[for='" + dateElement.id + "']");
|
||||||
|
|
||||||
if (labelElement) {
|
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
|
// Disable html scrolling when calendar is open
|
||||||
cal.on("show", () => {
|
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
|
// Reenable scrolling, if a modal window is not open
|
||||||
|
|
@ -290,15 +290,17 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
return exports.randomColor({
|
return exports.randomColor({
|
||||||
seed: actualSeedString + actualSeedString,
|
seed: actualSeedString + actualSeedString,
|
||||||
hue: hues[actualSeedString.codePointAt(actualSeedString.length - 1) % hues.length],
|
hue: hues[actualSeedString.codePointAt(actualSeedString.length - 1)! % hues.length],
|
||||||
luminosity:
|
luminosity:
|
||||||
luminosity[
|
luminosity[
|
||||||
actualSeedString.codePointAt(actualSeedString.length - 2) % luminosity.length
|
actualSeedString.codePointAt(actualSeedString.length - 2)! % luminosity.length
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const los: globalTypes.LOS = {
|
const los: globalTypes.LOS = {
|
||||||
|
urlPrefix: document.querySelector("main")!.dataset.urlPrefix!,
|
||||||
|
apiKey: document.querySelector("main")!.dataset.apiKey!,
|
||||||
highlightMap,
|
highlightMap,
|
||||||
initializeUnlockFieldButtons,
|
initializeUnlockFieldButtons,
|
||||||
initializeDatePickers,
|
initializeDatePickers,
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,18 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los;
|
||||||
const mapId = document.querySelector("#map--mapId")
|
const mapId = document.querySelector("#map--mapId").value;
|
||||||
.value;
|
|
||||||
const isCreate = mapId === "";
|
const isCreate = mapId === "";
|
||||||
const mapForm = document.querySelector("#form--map");
|
const mapForm = document.querySelector("#form--map");
|
||||||
const updateMap = (formEvent) => {
|
const updateMap = (formEvent) => {
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"), mapForm, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"), mapForm, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
if (isCreate) {
|
if (isCreate) {
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix + "/maps/" + responseJSON.mapId + "/edit";
|
los.urlPrefix + "/maps/" + responseJSON.mapId + "/edit";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -25,7 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.map,
|
title: "Error Updating " + exports.aliases.map,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -37,22 +36,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
inputElement.addEventListener("change", cityssm.enableNavBlocker);
|
inputElement.addEventListener("change", cityssm.enableNavBlocker);
|
||||||
}
|
}
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
document
|
document.querySelector("#button--deleteMap").addEventListener("click", (clickEvent) => {
|
||||||
.querySelector("#button--deleteMap")
|
|
||||||
.addEventListener("click", (clickEvent) => {
|
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/maps/doDeleteMap", {
|
cityssm.postJSON(los.urlPrefix + "/maps/doDeleteMap", {
|
||||||
mapId
|
mapId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
window.location.href =
|
window.location.href = los.urlPrefix + "/maps?t=" + Date.now();
|
||||||
urlPrefix + "/maps?t=" + Date.now();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting " + exports.aliases.map,
|
title: "Error Deleting " + exports.aliases.map,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -62,7 +58,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
title: "Delete " + exports.aliases.map,
|
title: "Delete " + exports.aliases.map,
|
||||||
message: "Are you sure you want to delete this " +
|
message: "Are you sure you want to delete this " +
|
||||||
exports.aliases.map.toLowerCase() +
|
exports.aliases.map.toLowerCase() +
|
||||||
" and all related " + exports.aliases.lots.toLowerCase() +
|
" and all related " +
|
||||||
|
exports.aliases.lots.toLowerCase() +
|
||||||
"?",
|
"?",
|
||||||
contextualColorName: "warning",
|
contextualColorName: "warning",
|
||||||
okButton: {
|
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 { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||||
import type { BulmaJS } from "@cityssm/bulma-js/types";
|
import type { BulmaJS } from "@cityssm/bulma-js/types";
|
||||||
|
|
@ -7,10 +9,9 @@ declare const cityssm: cityssmGlobal;
|
||||||
declare const bulmaJS: BulmaJS;
|
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)
|
const mapId = (document.querySelector("#map--mapId") as HTMLInputElement).value;
|
||||||
.value;
|
|
||||||
const isCreate = mapId === "";
|
const isCreate = mapId === "";
|
||||||
|
|
||||||
const mapForm = document.querySelector("#form--map") as HTMLFormElement;
|
const mapForm = document.querySelector("#form--map") as HTMLFormElement;
|
||||||
|
|
@ -19,30 +20,25 @@ declare const bulmaJS: BulmaJS;
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"),
|
los.urlPrefix + "/maps/" + (isCreate ? "doCreateMap" : "doUpdateMap"),
|
||||||
mapForm,
|
mapForm,
|
||||||
(responseJSON: {
|
(responseJSON: { success: boolean; mapId?: number; errorMessage?: string }) => {
|
||||||
success: boolean;
|
|
||||||
mapId?: number;
|
|
||||||
errorMessage?: string;
|
|
||||||
}) => {
|
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
|
|
||||||
if (isCreate) {
|
if (isCreate) {
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix + "/maps/" + responseJSON.mapId + "/edit";
|
los.urlPrefix + "/maps/" + responseJSON.mapId + "/edit";
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
message:
|
message: exports.aliases.map + " Updated Successfully",
|
||||||
exports.aliases.map + " Updated Successfully",
|
|
||||||
contextualColorName: "success"
|
contextualColorName: "success"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating " + exports.aliases.map,
|
title: "Error Updating " + exports.aliases.map,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -52,36 +48,33 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
mapForm.addEventListener("submit", updateMap);
|
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) {
|
for (const inputElement of inputElements) {
|
||||||
inputElement.addEventListener("change", cityssm.enableNavBlocker);
|
inputElement.addEventListener("change", cityssm.enableNavBlocker);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
document
|
(document.querySelector("#button--deleteMap") as HTMLButtonElement).addEventListener(
|
||||||
.querySelector("#button--deleteMap")
|
"click",
|
||||||
.addEventListener("click", (clickEvent) => {
|
(clickEvent) => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
|
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/maps/doDeleteMap",
|
los.urlPrefix + "/maps/doDeleteMap",
|
||||||
{
|
{
|
||||||
mapId
|
mapId
|
||||||
},
|
},
|
||||||
(responseJSON: {
|
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||||
success: boolean;
|
|
||||||
errorMessage?: string;
|
|
||||||
}) => {
|
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
window.location.href =
|
window.location.href = los.urlPrefix + "/maps?t=" + Date.now();
|
||||||
urlPrefix + "/maps?t=" + Date.now();
|
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title:
|
title: "Error Deleting " + exports.aliases.map,
|
||||||
"Error Deleting " + exports.aliases.map,
|
message: responseJSON.errorMessage || "",
|
||||||
message: responseJSON.errorMessage,
|
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -94,7 +87,8 @@ declare const bulmaJS: BulmaJS;
|
||||||
message:
|
message:
|
||||||
"Are you sure you want to delete this " +
|
"Are you sure you want to delete this " +
|
||||||
exports.aliases.map.toLowerCase() +
|
exports.aliases.map.toLowerCase() +
|
||||||
" and all related " + exports.aliases.lots.toLowerCase() +
|
" and all related " +
|
||||||
|
exports.aliases.lots.toLowerCase() +
|
||||||
"?",
|
"?",
|
||||||
contextualColorName: "warning",
|
contextualColorName: "warning",
|
||||||
okButton: {
|
okButton: {
|
||||||
|
|
@ -102,6 +96,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
callbackFunction: doDelete
|
callbackFunction: doDelete
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los;
|
||||||
const maps = exports.maps;
|
const maps = exports.maps;
|
||||||
const searchFilterElement = document.querySelector("#searchFilter--map");
|
const searchFilterElement = document.querySelector("#searchFilter--map");
|
||||||
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
const searchResultsContainerElement = document.querySelector("#container--searchResults");
|
||||||
|
|
@ -36,28 +36,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
searchResultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
searchResultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/maps/" +
|
"/maps/" +
|
||||||
map.mapId +
|
map.mapId +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(map.mapName || "(No Name)") +
|
cityssm.escapeHTML(map.mapName || "(No Name)") +
|
||||||
"</a><br />" +
|
"</a><br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(map.mapDescription) +
|
cityssm.escapeHTML(map.mapDescription || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(map.mapAddress1 ? cityssm.escapeHTML(map.mapAddress1) + "<br />" : "") +
|
(map.mapAddress1 ? cityssm.escapeHTML(map.mapAddress1) + "<br />" : "") +
|
||||||
(map.mapAddress2 ? cityssm.escapeHTML(map.mapAddress2) + "<br />" : "") +
|
(map.mapAddress2 ? cityssm.escapeHTML(map.mapAddress2) + "<br />" : "") +
|
||||||
(map.mapCity || map.mapProvince
|
(map.mapCity || map.mapProvince
|
||||||
? cityssm.escapeHTML(map.mapCity) +
|
? cityssm.escapeHTML(map.mapCity || "") +
|
||||||
", " +
|
", " +
|
||||||
cityssm.escapeHTML(map.mapProvince) +
|
cityssm.escapeHTML(map.mapProvince || "") +
|
||||||
"<br />"
|
"<br />"
|
||||||
: "") +
|
: "") +
|
||||||
(map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : "") +
|
(map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : "") +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" + cityssm.escapeHTML(map.mapPhoneNumber) + "</td>") +
|
("<td>" + cityssm.escapeHTML(map.mapPhoneNumber || "") + "</td>") +
|
||||||
'<td class="has-text-centered">' +
|
'<td class="has-text-centered">' +
|
||||||
(map.mapLatitude && map.mapLongitude
|
(map.mapLatitude && map.mapLongitude
|
||||||
? '<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>'
|
? '<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>" +
|
||||||
('<td class="has-text-right">' +
|
('<td class="has-text-right">' +
|
||||||
'<a href="' +
|
'<a href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lots?mapId=" +
|
"/lots?mapId=" +
|
||||||
map.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 * as recordTypes from "../types/recordTypes";
|
||||||
|
|
||||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
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;
|
declare const cityssm: cityssmGlobal;
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const maps: recordTypes.Map[] = exports.maps;
|
const maps: recordTypes.Map[] = exports.maps;
|
||||||
|
|
||||||
|
|
@ -60,28 +61,28 @@ declare const cityssm: cityssmGlobal;
|
||||||
"<tr>" +
|
"<tr>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/maps/" +
|
"/maps/" +
|
||||||
map.mapId +
|
map.mapId +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(map.mapName || "(No Name)") +
|
cityssm.escapeHTML(map.mapName || "(No Name)") +
|
||||||
"</a><br />" +
|
"</a><br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(map.mapDescription) +
|
cityssm.escapeHTML(map.mapDescription || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(map.mapAddress1 ? cityssm.escapeHTML(map.mapAddress1) + "<br />" : "") +
|
(map.mapAddress1 ? cityssm.escapeHTML(map.mapAddress1) + "<br />" : "") +
|
||||||
(map.mapAddress2 ? cityssm.escapeHTML(map.mapAddress2) + "<br />" : "") +
|
(map.mapAddress2 ? cityssm.escapeHTML(map.mapAddress2) + "<br />" : "") +
|
||||||
(map.mapCity || map.mapProvince
|
(map.mapCity || map.mapProvince
|
||||||
? cityssm.escapeHTML(map.mapCity) +
|
? cityssm.escapeHTML(map.mapCity || "") +
|
||||||
", " +
|
", " +
|
||||||
cityssm.escapeHTML(map.mapProvince) +
|
cityssm.escapeHTML(map.mapProvince || "") +
|
||||||
"<br />"
|
"<br />"
|
||||||
: "") +
|
: "") +
|
||||||
(map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : "") +
|
(map.mapPostalCode ? cityssm.escapeHTML(map.mapPostalCode) : "") +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" + cityssm.escapeHTML(map.mapPhoneNumber) + "</td>") +
|
("<td>" + cityssm.escapeHTML(map.mapPhoneNumber || "") + "</td>") +
|
||||||
'<td class="has-text-centered">' +
|
'<td class="has-text-centered">' +
|
||||||
(map.mapLatitude && map.mapLongitude
|
(map.mapLatitude && map.mapLongitude
|
||||||
? '<span data-tooltip="Has Geographic Coordinates"><i class="fas fa-map-marker-alt" aria-label="Has Geographic Coordinates"></i></span>'
|
? '<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>" +
|
||||||
('<td class="has-text-right">' +
|
('<td class="has-text-right">' +
|
||||||
'<a href="' +
|
'<a href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/lots?mapId=" +
|
"/lots?mapId=" +
|
||||||
map.mapId +
|
map.mapId +
|
||||||
'">' +
|
'">' +
|
||||||
|
|
@ -138,10 +139,13 @@ declare const cityssm: cityssmGlobal;
|
||||||
|
|
||||||
searchFilterElement.addEventListener("keyup", renderResults);
|
searchFilterElement.addEventListener("keyup", renderResults);
|
||||||
|
|
||||||
document.querySelector("#form--searchFilters").addEventListener("submit", (formEvent) => {
|
(document.querySelector("#form--searchFilters") as HTMLFormElement).addEventListener(
|
||||||
|
"submit",
|
||||||
|
(formEvent) => {
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
renderResults();
|
renderResults();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
renderResults();
|
renderResults();
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
// import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
||||||
// import type { BulmaJS } from "@cityssm/bulma-js/types";
|
|
||||||
import type * as Leaflet from "leaflet";
|
import type * as Leaflet from "leaflet";
|
||||||
|
|
||||||
// declare const cityssm: cityssmGlobal;
|
|
||||||
// declare const bulmaJS: BulmaJS;
|
|
||||||
declare const L;
|
declare const L;
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
|
|
@ -13,14 +11,15 @@ declare const L;
|
||||||
|
|
||||||
if (mapContainerElement) {
|
if (mapContainerElement) {
|
||||||
const mapLatitude = Number.parseFloat(
|
const mapLatitude = Number.parseFloat(
|
||||||
mapContainerElement.dataset.mapLatitude
|
mapContainerElement.dataset.mapLatitude!
|
||||||
);
|
);
|
||||||
const mapLongitude = Number.parseFloat(
|
const mapLongitude = Number.parseFloat(
|
||||||
mapContainerElement.dataset.mapLongitude
|
mapContainerElement.dataset.mapLongitude!
|
||||||
);
|
);
|
||||||
|
|
||||||
const mapCoordinates: Leaflet.LatLngTuple = [mapLatitude, mapLongitude];
|
const mapCoordinates: Leaflet.LatLngTuple = [mapLatitude, mapLongitude];
|
||||||
|
|
||||||
|
// eslint-disable-next-line unicorn/no-array-callback-reference
|
||||||
const map: Leaflet.Map = L.map(mapContainerElement);
|
const map: Leaflet.Map = L.map(mapContainerElement);
|
||||||
map.setView(mapCoordinates, 15);
|
map.setView(mapCoordinates, 15);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,23 +2,20 @@
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
const workOrderId = document.querySelector("#workOrderEdit--workOrderId")
|
const workOrderId = document.querySelector("#workOrderEdit--workOrderId")
|
||||||
.value;
|
.value;
|
||||||
const isCreate = workOrderId === "";
|
const isCreate = workOrderId === "";
|
||||||
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
||||||
los.initializeDatePickers(workOrderFormElement
|
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
|
||||||
.querySelector("#workOrderEdit--workOrderOpenDateString")
|
|
||||||
.closest(".field"));
|
|
||||||
los.initializeUnlockFieldButtons(workOrderFormElement);
|
los.initializeUnlockFieldButtons(workOrderFormElement);
|
||||||
workOrderFormElement.addEventListener("submit", (submitEvent) => {
|
workOrderFormElement.addEventListener("submit", (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
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) {
|
if (responseJSON.success) {
|
||||||
cityssm.disableNavBlocker();
|
cityssm.disableNavBlocker();
|
||||||
if (isCreate) {
|
if (isCreate) {
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
|
los.urlPrefix + "/workOrders/" + responseJSON.workOrderId + "/edit";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
|
|
@ -30,7 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Work Order",
|
title: "Error Updating Work Order",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -43,17 +40,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let workOrderMilestones;
|
let workOrderMilestones;
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
const doClose = () => {
|
const doClose = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doCloseWorkOrder", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doCloseWorkOrder", {
|
||||||
workOrderId
|
workOrderId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
|
los.urlPrefix + "/workOrders/" + encodeURIComponent(workOrderId);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Closing Work Order",
|
title: "Error Closing Work Order",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -87,24 +84,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrder", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrder", {
|
||||||
workOrderId
|
workOrderId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
window.location.href = urlPrefix + "/workOrders";
|
window.location.href = los.urlPrefix + "/workOrders";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Work Order",
|
title: "Error Deleting Work Order",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#button--deleteWorkOrder").addEventListener("click", (clickEvent) => {
|
||||||
.querySelector("#button--deleteWorkOrder")
|
|
||||||
.addEventListener("click", (clickEvent) => {
|
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
bulmaJS.confirm({
|
bulmaJS.confirm({
|
||||||
title: "Delete Work Order",
|
title: "Delete Work Order",
|
||||||
|
|
@ -125,7 +120,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const deleteLotOccupancy = (clickEvent) => {
|
const deleteLotOccupancy = (clickEvent) => {
|
||||||
const lotOccupancyId = clickEvent.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;
|
const lotOccupancyId = clickEvent.currentTarget.closest(".container--lotOccupancy").dataset.lotOccupancyId;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrderLotOccupancy", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLotOccupancy", {
|
||||||
workOrderId,
|
workOrderId,
|
||||||
lotOccupancyId
|
lotOccupancyId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -136,7 +131,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Relationship",
|
title: "Error Deleting Relationship",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -161,7 +156,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const addLot = (lotId, callbackFunction) => {
|
const addLot = (lotId, callbackFunction) => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doAddWorkOrderLot", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderLot", {
|
||||||
workOrderId,
|
workOrderId,
|
||||||
lotId
|
lotId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -172,7 +167,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.lot,
|
title: "Error Adding " + exports.aliases.lot,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -182,7 +177,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const addLotOccupancy = (lotOccupancyId, callbackFunction) => {
|
const addLotOccupancy = (lotOccupancyId, callbackFunction) => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doAddWorkOrderLotOccupancy", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderLotOccupancy", {
|
||||||
workOrderId,
|
workOrderId,
|
||||||
lotOccupancyId
|
lotOccupancyId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -193,7 +188,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Adding " + exports.aliases.occupancy,
|
title: "Error Adding " + exports.aliases.occupancy,
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -208,8 +203,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
};
|
};
|
||||||
const renderRelatedOccupancies = () => {
|
const renderRelatedOccupancies = () => {
|
||||||
const occupanciesContainerElement = document.querySelector("#container--lotOccupancies");
|
const occupanciesContainerElement = document.querySelector("#container--lotOccupancies");
|
||||||
document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent =
|
document.querySelector(".tabs a[href='#relatedTab--lotOccupancies'] .tag").textContent = workOrderLotOccupancies.length.toString();
|
||||||
workOrderLotOccupancies.length.toString();
|
|
||||||
if (workOrderLotOccupancies.length === 0) {
|
if (workOrderLotOccupancies.length === 0) {
|
||||||
occupanciesContainerElement.innerHTML =
|
occupanciesContainerElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -257,16 +251,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</td>" +
|
"</td>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
cityssm.escapeHTML(urlPrefix) +
|
cityssm.escapeHTML(los.urlPrefix) +
|
||||||
"/lotOccupancies/" +
|
"/lotOccupancies/" +
|
||||||
lotOccupancy.lotOccupancyId +
|
lotOccupancy.lotOccupancyId +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(lotOccupancy.occupancyType) +
|
cityssm.escapeHTML(lotOccupancy.occupancyType || "") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</td>");
|
"</td>");
|
||||||
if (lotOccupancy.lotId) {
|
if (lotOccupancy.lotId) {
|
||||||
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
||||||
cityssm.escapeHTML(lotOccupancy.lotName) +
|
cityssm.escapeHTML(lotOccupancy.lotName || "") +
|
||||||
(hasLotRecord
|
(hasLotRecord
|
||||||
? ""
|
? ""
|
||||||
: ' <button class="button is-small is-light is-success button--addLot"' +
|
: ' <button class="button is-small is-light is-success button--addLot"' +
|
||||||
|
|
@ -318,13 +312,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</button>" +
|
"</button>" +
|
||||||
"</td>"));
|
"</td>"));
|
||||||
if (lotOccupancy.lotId && !hasLotRecord) {
|
if (lotOccupancy.lotId && !hasLotRecord) {
|
||||||
rowElement
|
rowElement.querySelector(".button--addLot").addEventListener("click", addLotFromLotOccupancy);
|
||||||
.querySelector(".button--addLot")
|
|
||||||
.addEventListener("click", addLotFromLotOccupancy);
|
|
||||||
}
|
}
|
||||||
rowElement
|
rowElement.querySelector(".button--deleteLotOccupancy").addEventListener("click", deleteLotOccupancy);
|
||||||
.querySelector(".button--deleteLotOccupancy")
|
|
||||||
.addEventListener("click", deleteLotOccupancy);
|
|
||||||
occupanciesContainerElement.querySelector("tbody").append(rowElement);
|
occupanciesContainerElement.querySelector("tbody").append(rowElement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -336,7 +326,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const doUpdateLotStatus = (submitEvent) => {
|
const doUpdateLotStatus = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doUpdateLotStatus", submitEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderLots = responseJSON.workOrderLots;
|
workOrderLots = responseJSON.workOrderLots;
|
||||||
renderRelatedLotsAndOccupancies();
|
renderRelatedLotsAndOccupancies();
|
||||||
|
|
@ -345,7 +335,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Relationship",
|
title: "Error Deleting Relationship",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -395,7 +385,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const deleteLot = (clickEvent) => {
|
const deleteLot = (clickEvent) => {
|
||||||
const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId;
|
const lotId = clickEvent.currentTarget.closest(".container--lot").dataset.lotId;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrderLot", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderLot", {
|
||||||
workOrderId,
|
workOrderId,
|
||||||
lotId
|
lotId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -406,7 +396,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Deleting Relationship",
|
title: "Error Deleting Relationship",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -432,8 +422,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
};
|
};
|
||||||
const renderRelatedLots = () => {
|
const renderRelatedLots = () => {
|
||||||
const lotsContainerElement = document.querySelector("#container--lots");
|
const lotsContainerElement = document.querySelector("#container--lots");
|
||||||
document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent =
|
document.querySelector(".tabs a[href='#relatedTab--lots'] .tag").textContent = workOrderLots.length.toString();
|
||||||
workOrderLots.length.toString();
|
|
||||||
if (workOrderLots.length === 0) {
|
if (workOrderLots.length === 0) {
|
||||||
lotsContainerElement.innerHTML =
|
lotsContainerElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -463,18 +452,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
rowElement.innerHTML =
|
rowElement.innerHTML =
|
||||||
"<td>" +
|
"<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
cityssm.escapeHTML(urlPrefix) +
|
cityssm.escapeHTML(los.urlPrefix) +
|
||||||
"/lots/" +
|
"/lots/" +
|
||||||
lot.lotId +
|
lot.lotId +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(lot.lotName) +
|
cityssm.escapeHTML(lot.lotName || "") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
("<td>" + cityssm.escapeHTML(lot.mapName) + "</td>") +
|
("<td>" + cityssm.escapeHTML(lot.mapName || "") + "</td>") +
|
||||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
(lot.lotStatusId
|
(lot.lotStatusId
|
||||||
? cityssm.escapeHTML(lot.lotStatus)
|
? cityssm.escapeHTML(lot.lotStatus || "")
|
||||||
: '<span class="has-text-grey">(No Status)</span>') +
|
: '<span class="has-text-grey">(No Status)</span>') +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
('<td class="is-nowrap">' +
|
('<td class="is-nowrap">' +
|
||||||
|
|
@ -485,9 +474,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
'<i class="fas fa-trash" aria-hidden="true"></i>' +
|
||||||
"</button>" +
|
"</button>" +
|
||||||
"</td>");
|
"</td>");
|
||||||
rowElement
|
rowElement.querySelector(".button--editLotStatus").addEventListener("click", openEditLotStatus);
|
||||||
.querySelector(".button--editLotStatus")
|
|
||||||
.addEventListener("click", openEditLotStatus);
|
|
||||||
rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot);
|
rowElement.querySelector(".button--deleteLot").addEventListener("click", deleteLot);
|
||||||
lotsContainerElement.querySelector("tbody").append(rowElement);
|
lotsContainerElement.querySelector("tbody").append(rowElement);
|
||||||
}
|
}
|
||||||
|
|
@ -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 />' +
|
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||||
"Searching..." +
|
"Searching..." +
|
||||||
"</p>";
|
"</p>";
|
||||||
cityssm.postJSON(urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lotOccupancies/doSearchLotOccupancies", searchFormElement, (responseJSON) => {
|
||||||
if (responseJSON.lotOccupancies.length === 0) {
|
if (responseJSON.lotOccupancies.length === 0) {
|
||||||
searchResultsContainerElement.innerHTML =
|
searchResultsContainerElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -552,10 +539,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</button>" +
|
"</button>" +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
('<td class="has-text-weight-bold">' +
|
('<td class="has-text-weight-bold">' +
|
||||||
cityssm.escapeHTML(lotOccupancy.occupancyType) +
|
cityssm.escapeHTML(lotOccupancy.occupancyType || "") +
|
||||||
"</td>");
|
"</td>");
|
||||||
if (lotOccupancy.lotId) {
|
if (lotOccupancy.lotId) {
|
||||||
rowElement.insertAdjacentHTML("beforeend", "<td>" + cityssm.escapeHTML(lotOccupancy.lotName) + "</td>");
|
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
||||||
|
cityssm.escapeHTML(lotOccupancy.lotName || "") +
|
||||||
|
"</td>");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
rowElement.insertAdjacentHTML("beforeend", "<td>" +
|
||||||
|
|
@ -577,16 +566,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
? '<span class="has-text-grey">(No ' +
|
? '<span class="has-text-grey">(No ' +
|
||||||
cityssm.escapeHTML(exports.aliases.occupants) +
|
cityssm.escapeHTML(exports.aliases.occupants) +
|
||||||
")</span>"
|
")</span>"
|
||||||
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0].occupantName) +
|
: cityssm.escapeHTML(lotOccupancy.lotOccupancyOccupants[0]
|
||||||
|
.occupantName) +
|
||||||
(lotOccupancy.lotOccupancyOccupants.length > 1
|
(lotOccupancy.lotOccupancyOccupants.length > 1
|
||||||
? " plus " +
|
? " plus " +
|
||||||
(lotOccupancy.lotOccupancyOccupants.length - 1)
|
(lotOccupancy.lotOccupancyOccupants
|
||||||
|
.length -
|
||||||
|
1)
|
||||||
: "")) +
|
: "")) +
|
||||||
"</td>"));
|
"</td>"));
|
||||||
rowElement
|
rowElement.querySelector(".button--addLotOccupancy").addEventListener("click", doAddLotOccupancy);
|
||||||
.querySelector(".button--addLotOccupancy")
|
searchResultsContainerElement
|
||||||
.addEventListener("click", doAddLotOccupancy);
|
.querySelector("tbody")
|
||||||
searchResultsContainerElement.querySelector("tbody").append(rowElement);
|
.append(rowElement);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -601,12 +593,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
},
|
},
|
||||||
onshown: (modalElement) => {
|
onshown: (modalElement) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
modalElement
|
modalElement.querySelector("#lotOccupancySearch--occupantName").addEventListener("change", doSearch);
|
||||||
.querySelector("#lotOccupancySearch--occupantName")
|
modalElement.querySelector("#lotOccupancySearch--lotName").addEventListener("change", doSearch);
|
||||||
.addEventListener("change", doSearch);
|
|
||||||
modalElement
|
|
||||||
.querySelector("#lotOccupancySearch--lotName")
|
|
||||||
.addEventListener("change", doSearch);
|
|
||||||
searchFormElement.addEventListener("submit", doSearch);
|
searchFormElement.addEventListener("submit", doSearch);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
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 />' +
|
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||||
"Searching..." +
|
"Searching..." +
|
||||||
"</p>";
|
"</p>";
|
||||||
cityssm.postJSON(urlPrefix + "/lots/doSearchLots", searchFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/lots/doSearchLots", searchFormElement, (responseJSON) => {
|
||||||
if (responseJSON.lots.length === 0) {
|
if (responseJSON.lots.length === 0) {
|
||||||
searchResultsContainerElement.innerHTML =
|
searchResultsContainerElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -667,17 +655,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</button>" +
|
"</button>" +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
('<td class="has-text-weight-bold">' +
|
('<td class="has-text-weight-bold">' +
|
||||||
cityssm.escapeHTML(lot.lotName) +
|
cityssm.escapeHTML(lot.lotName || "") +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(lot.mapName) +
|
cityssm.escapeHTML(lot.mapName || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
("<td>" + cityssm.escapeHTML(lot.lotType) + "</td>") +
|
("<td>" + cityssm.escapeHTML(lot.lotType || "") + "</td>") +
|
||||||
("<td>" + cityssm.escapeHTML(lot.lotStatus) + "</td>");
|
("<td>" + cityssm.escapeHTML(lot.lotStatus || "") + "</td>");
|
||||||
rowElement
|
rowElement.querySelector(".button--addLot").addEventListener("click", doAddLot);
|
||||||
.querySelector(".button--addLot")
|
searchResultsContainerElement
|
||||||
.addEventListener("click", doAddLot);
|
.querySelector("tbody")
|
||||||
searchResultsContainerElement.querySelector("tbody").append(rowElement);
|
.append(rowElement);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -698,12 +686,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
},
|
},
|
||||||
onshown: (modalElement) => {
|
onshown: (modalElement) => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
modalElement
|
modalElement.querySelector("#lotSearch--lotName").addEventListener("change", doSearch);
|
||||||
.querySelector("#lotSearch--lotName")
|
modalElement.querySelector("#lotSearch--lotStatusId").addEventListener("change", doSearch);
|
||||||
.addEventListener("change", doSearch);
|
|
||||||
modalElement
|
|
||||||
.querySelector("#lotSearch--lotStatusId")
|
|
||||||
.addEventListener("change", doSearch);
|
|
||||||
searchFormElement.addEventListener("submit", doSearch);
|
searchFormElement.addEventListener("submit", doSearch);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
|
|
@ -723,7 +707,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const editComment = (submitEvent) => {
|
const editComment = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doUpdateWorkOrderComment", editFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doUpdateWorkOrderComment", editFormElement, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderComments = responseJSON.workOrderComments;
|
workOrderComments = responseJSON.workOrderComments;
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -732,7 +716,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Updating Comment",
|
title: "Error Updating Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -770,7 +754,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const deleteWorkOrderComment = (clickEvent) => {
|
const deleteWorkOrderComment = (clickEvent) => {
|
||||||
const workOrderCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset.workOrderCommentId, 10);
|
const workOrderCommentId = Number.parseInt(clickEvent.currentTarget.closest("tr").dataset.workOrderCommentId, 10);
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrderComment", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderComment", {
|
||||||
workOrderId,
|
workOrderId,
|
||||||
workOrderCommentId
|
workOrderCommentId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
|
|
@ -781,7 +765,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Removing Comment",
|
title: "Error Removing Comment",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -822,7 +806,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
workOrderComment.workOrderCommentId.toString();
|
workOrderComment.workOrderCommentId.toString();
|
||||||
tableRowElement.innerHTML =
|
tableRowElement.innerHTML =
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(workOrderComment.recordCreate_userName) +
|
cityssm.escapeHTML(workOrderComment.recordCreate_userName || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
workOrderComment.workOrderCommentDateString +
|
workOrderComment.workOrderCommentDateString +
|
||||||
|
|
@ -831,7 +815,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
: " " + workOrderComment.workOrderCommentTimeString) +
|
: " " + workOrderComment.workOrderCommentTimeString) +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
"<td>" +
|
"<td>" +
|
||||||
cityssm.escapeHTML(workOrderComment.workOrderComment) +
|
cityssm.escapeHTML(workOrderComment.workOrderComment || "") +
|
||||||
"</td>" +
|
"</td>" +
|
||||||
('<td class="is-hidden-print">' +
|
('<td class="is-hidden-print">' +
|
||||||
'<div class="buttons are-small is-justify-content-end">' +
|
'<div class="buttons are-small is-justify-content-end">' +
|
||||||
|
|
@ -844,12 +828,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</button>") +
|
"</button>") +
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</td>");
|
"</td>");
|
||||||
tableRowElement
|
tableRowElement.querySelector(".button--edit").addEventListener("click", openEditWorkOrderComment);
|
||||||
.querySelector(".button--edit")
|
tableRowElement.querySelector(".button--delete").addEventListener("click", deleteWorkOrderComment);
|
||||||
.addEventListener("click", openEditWorkOrderComment);
|
|
||||||
tableRowElement
|
|
||||||
.querySelector(".button--delete")
|
|
||||||
.addEventListener("click", deleteWorkOrderComment);
|
|
||||||
tableElement.querySelector("tbody").append(tableRowElement);
|
tableElement.querySelector("tbody").append(tableRowElement);
|
||||||
}
|
}
|
||||||
containerElement.innerHTML = "";
|
containerElement.innerHTML = "";
|
||||||
|
|
@ -859,7 +839,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let addCommentCloseModalFunction;
|
let addCommentCloseModalFunction;
|
||||||
const doAddComment = (formEvent) => {
|
const doAddComment = (formEvent) => {
|
||||||
formEvent.preventDefault();
|
formEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doAddWorkOrderComment", formEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderComment", formEvent.currentTarget, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
workOrderComments = responseJSON.workOrderComments;
|
workOrderComments = responseJSON.workOrderComments;
|
||||||
renderWorkOrderComments();
|
renderWorkOrderComments();
|
||||||
|
|
@ -885,9 +865,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
document
|
document.querySelector("#workOrderComments--add").addEventListener("click", openAddCommentModal);
|
||||||
.querySelector("#workOrderComments--add")
|
|
||||||
.addEventListener("click", openAddCommentModal);
|
|
||||||
renderWorkOrderComments();
|
renderWorkOrderComments();
|
||||||
}
|
}
|
||||||
if (!isCreate) {
|
if (!isCreate) {
|
||||||
|
|
@ -901,7 +879,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Reopening Milestone",
|
title: "Error Reopening Milestone",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -914,7 +892,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
|
return currentMilestone.workOrderMilestoneId === workOrderMilestoneId;
|
||||||
});
|
});
|
||||||
const doComplete = () => {
|
const doComplete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doCompleteWorkOrderMilestone", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doCompleteWorkOrderMilestone", {
|
||||||
workOrderId,
|
workOrderId,
|
||||||
workOrderMilestoneId
|
workOrderMilestoneId
|
||||||
}, processMilestoneResponse);
|
}, processMilestoneResponse);
|
||||||
|
|
@ -937,7 +915,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const workOrderMilestoneId = clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;
|
const workOrderMilestoneId = clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;
|
||||||
const doReopen = () => {
|
const doReopen = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doReopenWorkOrderMilestone", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doReopenWorkOrderMilestone", {
|
||||||
workOrderId,
|
workOrderId,
|
||||||
workOrderMilestoneId
|
workOrderMilestoneId
|
||||||
}, processMilestoneResponse);
|
}, processMilestoneResponse);
|
||||||
|
|
@ -956,7 +934,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
const workOrderMilestoneId = clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;
|
const workOrderMilestoneId = clickEvent.currentTarget.closest(".container--milestone").dataset.workOrderMilestoneId;
|
||||||
const doDelete = () => {
|
const doDelete = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doDeleteWorkOrderMilestone", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doDeleteWorkOrderMilestone", {
|
||||||
workOrderMilestoneId,
|
workOrderMilestoneId,
|
||||||
workOrderId
|
workOrderId
|
||||||
}, processMilestoneResponse);
|
}, processMilestoneResponse);
|
||||||
|
|
@ -980,7 +958,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
let editCloseModalFunction;
|
let editCloseModalFunction;
|
||||||
const doEdit = (submitEvent) => {
|
const doEdit = (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doUpdateWorkOrderMilestone", submitEvent.currentTarget, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doUpdateWorkOrderMilestone", submitEvent.currentTarget, (responseJSON) => {
|
||||||
processMilestoneResponse(responseJSON);
|
processMilestoneResponse(responseJSON);
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
editCloseModalFunction();
|
editCloseModalFunction();
|
||||||
|
|
@ -1059,7 +1037,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
(milestone.workOrderMilestoneTypeId
|
(milestone.workOrderMilestoneTypeId
|
||||||
? "<strong>" +
|
? "<strong>" +
|
||||||
cityssm.escapeHTML(milestone.workOrderMilestoneType) +
|
cityssm.escapeHTML(milestone.workOrderMilestoneType || "") +
|
||||||
"</strong><br />"
|
"</strong><br />"
|
||||||
: "") +
|
: "") +
|
||||||
milestone.workOrderMilestoneDateString +
|
milestone.workOrderMilestoneDateString +
|
||||||
|
|
@ -1068,7 +1046,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
: "") +
|
: "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription) +
|
cityssm.escapeHTML(milestone.workOrderMilestoneDescription || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column is-narrow">' +
|
('<div class="column is-narrow">' +
|
||||||
|
|
@ -1100,21 +1078,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>") +
|
"</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
if (milestone.workOrderMilestoneCompletionDate) {
|
if (milestone.workOrderMilestoneCompletionDate) {
|
||||||
panelBlockElement
|
panelBlockElement.querySelector(".button--reopenMilestone").addEventListener("click", reopenMilestone);
|
||||||
.querySelector(".button--reopenMilestone")
|
|
||||||
.addEventListener("click", reopenMilestone);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
panelBlockElement
|
panelBlockElement.querySelector(".button--editMilestone").addEventListener("click", editMilestone);
|
||||||
.querySelector(".button--editMilestone")
|
panelBlockElement.querySelector(".button--completeMilestone").addEventListener("click", completeMilestone);
|
||||||
.addEventListener("click", editMilestone);
|
|
||||||
panelBlockElement
|
|
||||||
.querySelector(".button--completeMilestone")
|
|
||||||
.addEventListener("click", completeMilestone);
|
|
||||||
}
|
}
|
||||||
panelBlockElement
|
panelBlockElement.querySelector(".button--deleteMilestone").addEventListener("click", deleteMilestone);
|
||||||
.querySelector(".button--deleteMilestone")
|
|
||||||
.addEventListener("click", deleteMilestone);
|
|
||||||
milestonesPanelElement.append(panelBlockElement);
|
milestonesPanelElement.append(panelBlockElement);
|
||||||
}
|
}
|
||||||
bulmaJS.init(milestonesPanelElement);
|
bulmaJS.init(milestonesPanelElement);
|
||||||
|
|
@ -1130,7 +1100,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
const currentDateString = cityssm.dateToString(new Date());
|
const currentDateString = cityssm.dateToString(new Date());
|
||||||
const _doAdd = () => {
|
const _doAdd = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doAddWorkOrderMilestone", addFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doAddWorkOrderMilestone", addFormElement, (responseJSON) => {
|
||||||
processMilestoneResponse(responseJSON);
|
processMilestoneResponse(responseJSON);
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
addCloseModalFunction();
|
addCloseModalFunction();
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -2,7 +2,6 @@
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
const workOrderSearchFiltersFormElement = document.querySelector("#form--searchFilters");
|
const workOrderSearchFiltersFormElement = document.querySelector("#form--searchFilters");
|
||||||
const workOrderMilestoneDateFilterElement = workOrderSearchFiltersFormElement.querySelector("#searchFilter--workOrderMilestoneDateFilter");
|
const workOrderMilestoneDateFilterElement = workOrderSearchFiltersFormElement.querySelector("#searchFilter--workOrderMilestoneDateFilter");
|
||||||
const workOrderMilestoneDateStringElement = workOrderSearchFiltersFormElement.querySelector("#searchFilter--workOrderMilestoneDateString");
|
const workOrderMilestoneDateStringElement = workOrderSearchFiltersFormElement.querySelector("#searchFilter--workOrderMilestoneDateString");
|
||||||
|
|
@ -40,12 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
for (const lot of milestone.workOrderLots) {
|
for (const lot of milestone.workOrderLots) {
|
||||||
lotOccupancyHTML +=
|
lotOccupancyHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
cityssm.escapeHTML(lot.mapName) +
|
cityssm.escapeHTML(lot.mapName || "") +
|
||||||
'">' +
|
'">' +
|
||||||
'<i class="fas fa-vector-square" aria-label="' +
|
'<i class="fas fa-vector-square" aria-label="' +
|
||||||
cityssm.escapeHTML(exports.aliases.lot) +
|
cityssm.escapeHTML(exports.aliases.lot) +
|
||||||
'"></i> ' +
|
'"></i> ' +
|
||||||
cityssm.escapeHTML(lot.lotName) +
|
cityssm.escapeHTML(lot.lotName || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"<br />";
|
"<br />";
|
||||||
}
|
}
|
||||||
|
|
@ -53,12 +52,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
||||||
lotOccupancyHTML +=
|
lotOccupancyHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||||
'">' +
|
'">' +
|
||||||
'<i class="fas fa-user" aria-label="' +
|
'<i class="fas fa-user" aria-label="' +
|
||||||
cityssm.escapeHTML(exports.aliases.lotOccupancy) +
|
cityssm.escapeHTML(exports.aliases.lotOccupancy) +
|
||||||
'"></i> ' +
|
'"></i> ' +
|
||||||
cityssm.escapeHTML(occupant.occupantName) +
|
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"<br />";
|
"<br />";
|
||||||
}
|
}
|
||||||
|
|
@ -87,17 +86,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
'<i class="fas fa-circle" style="color:' +
|
'<i class="fas fa-circle" style="color:' +
|
||||||
los.getRandomColor(milestone.workOrderNumber) +
|
los.getRandomColor(milestone.workOrderNumber || "") +
|
||||||
'" aria-hidden="true"></i>' +
|
'" aria-hidden="true"></i>' +
|
||||||
' <a class="has-text-weight-bold" href="' +
|
' <a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/workOrders/" +
|
"/workOrders/" +
|
||||||
milestone.workOrderId +
|
milestone.workOrderId +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(milestone.workOrderNumber) +
|
cityssm.escapeHTML(milestone.workOrderNumber || "") +
|
||||||
"</a><br />" +
|
"</a><br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(milestone.workOrderDescription) +
|
cityssm.escapeHTML(milestone.workOrderDescription || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column is-size-7">' + lotOccupancyHTML + "</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 />' +
|
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||||
"Loading Milestones..." +
|
"Loading Milestones..." +
|
||||||
"</div>";
|
"</div>";
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doGetWorkOrderMilestones", workOrderSearchFiltersFormElement, (responseJSON) => {
|
||||||
renderMilestones(responseJSON.workOrderMilestones);
|
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 recordTypes from "../types/recordTypes";
|
||||||
import type * as globalTypes from "../types/globalTypes";
|
import type * as globalTypes from "../types/globalTypes";
|
||||||
|
|
@ -9,8 +9,6 @@ declare const cityssm: cityssmGlobal;
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los as globalTypes.LOS;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
|
|
||||||
const workOrderSearchFiltersFormElement = document.querySelector(
|
const workOrderSearchFiltersFormElement = document.querySelector(
|
||||||
"#form--searchFilters"
|
"#form--searchFilters"
|
||||||
) as HTMLFormElement;
|
) as HTMLFormElement;
|
||||||
|
|
@ -40,7 +38,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
|
|
||||||
const currentDate = cityssm.dateToString(new Date());
|
const currentDate = cityssm.dateToString(new Date());
|
||||||
|
|
||||||
let currentPanelElement: HTMLElement;
|
let currentPanelElement: HTMLElement | undefined;
|
||||||
let currentPanelDateString = "";
|
let currentPanelDateString = "";
|
||||||
|
|
||||||
for (const milestone of workOrderMilestones) {
|
for (const milestone of workOrderMilestones) {
|
||||||
|
|
@ -55,7 +53,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
currentPanelElement.innerHTML =
|
currentPanelElement.innerHTML =
|
||||||
'<h2 class="panel-heading">' + milestone.workOrderMilestoneDateString + "</h2>";
|
'<h2 class="panel-heading">' + milestone.workOrderMilestoneDateString + "</h2>";
|
||||||
|
|
||||||
currentPanelDateString = milestone.workOrderMilestoneDateString;
|
currentPanelDateString = milestone.workOrderMilestoneDateString!;
|
||||||
}
|
}
|
||||||
|
|
||||||
const panelBlockElement = document.createElement("div");
|
const panelBlockElement = document.createElement("div");
|
||||||
|
|
@ -64,36 +62,36 @@ declare const cityssm: cityssmGlobal;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!milestone.workOrderMilestoneCompletionDate &&
|
!milestone.workOrderMilestoneCompletionDate &&
|
||||||
milestone.workOrderMilestoneDateString < currentDate
|
milestone.workOrderMilestoneDateString! < currentDate
|
||||||
) {
|
) {
|
||||||
panelBlockElement.classList.add("has-background-warning-light");
|
panelBlockElement.classList.add("has-background-warning-light");
|
||||||
}
|
}
|
||||||
|
|
||||||
let lotOccupancyHTML = "";
|
let lotOccupancyHTML = "";
|
||||||
|
|
||||||
for (const lot of milestone.workOrderLots) {
|
for (const lot of milestone.workOrderLots!) {
|
||||||
lotOccupancyHTML +=
|
lotOccupancyHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
cityssm.escapeHTML(lot.mapName) +
|
cityssm.escapeHTML(lot.mapName || "") +
|
||||||
'">' +
|
'">' +
|
||||||
'<i class="fas fa-vector-square" aria-label="' +
|
'<i class="fas fa-vector-square" aria-label="' +
|
||||||
cityssm.escapeHTML(exports.aliases.lot) +
|
cityssm.escapeHTML(exports.aliases.lot) +
|
||||||
'"></i> ' +
|
'"></i> ' +
|
||||||
cityssm.escapeHTML(lot.lotName) +
|
cityssm.escapeHTML(lot.lotName || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"<br />";
|
"<br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const lotOccupancy of milestone.workOrderLotOccupancies) {
|
for (const lotOccupancy of milestone.workOrderLotOccupancies!) {
|
||||||
for (const occupant of lotOccupancy.lotOccupancyOccupants) {
|
for (const occupant of lotOccupancy.lotOccupancyOccupants!) {
|
||||||
lotOccupancyHTML +=
|
lotOccupancyHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||||
'">' +
|
'">' +
|
||||||
'<i class="fas fa-user" aria-label="' +
|
'<i class="fas fa-user" aria-label="' +
|
||||||
cityssm.escapeHTML(exports.aliases.lotOccupancy) +
|
cityssm.escapeHTML(exports.aliases.lotOccupancy) +
|
||||||
'"></i> ' +
|
'"></i> ' +
|
||||||
cityssm.escapeHTML(occupant.occupantName) +
|
cityssm.escapeHTML(occupant.occupantName || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"<br />";
|
"<br />";
|
||||||
}
|
}
|
||||||
|
|
@ -114,35 +112,35 @@ declare const cityssm: cityssmGlobal;
|
||||||
: milestone.workOrderMilestoneTimeString + "<br />") +
|
: milestone.workOrderMilestoneTimeString + "<br />") +
|
||||||
(milestone.workOrderMilestoneTypeId
|
(milestone.workOrderMilestoneTypeId
|
||||||
? "<strong>" +
|
? "<strong>" +
|
||||||
cityssm.escapeHTML(milestone.workOrderMilestoneType) +
|
cityssm.escapeHTML(milestone.workOrderMilestoneType!) +
|
||||||
"</strong><br />"
|
"</strong><br />"
|
||||||
: "") +
|
: "") +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(milestone.workOrderMilestoneDescription) +
|
cityssm.escapeHTML(milestone.workOrderMilestoneDescription!) +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column">' +
|
('<div class="column">' +
|
||||||
'<i class="fas fa-circle" style="color:' +
|
'<i class="fas fa-circle" style="color:' +
|
||||||
los.getRandomColor(milestone.workOrderNumber) +
|
los.getRandomColor(milestone.workOrderNumber || "") +
|
||||||
'" aria-hidden="true"></i>' +
|
'" aria-hidden="true"></i>' +
|
||||||
' <a class="has-text-weight-bold" href="' +
|
' <a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/workOrders/" +
|
"/workOrders/" +
|
||||||
milestone.workOrderId +
|
milestone.workOrderId +
|
||||||
'">' +
|
'">' +
|
||||||
cityssm.escapeHTML(milestone.workOrderNumber) +
|
cityssm.escapeHTML(milestone.workOrderNumber || "") +
|
||||||
"</a><br />" +
|
"</a><br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(milestone.workOrderDescription) +
|
cityssm.escapeHTML(milestone.workOrderDescription || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="column is-size-7">' + lotOccupancyHTML + "</div>") +
|
('<div class="column is-size-7">' + lotOccupancyHTML + "</div>") +
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
currentPanelElement.append(panelBlockElement);
|
(currentPanelElement as HTMLElement).append(panelBlockElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
milestoneCalendarContainerElement.append(currentPanelElement);
|
milestoneCalendarContainerElement.append(currentPanelElement!);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getMilestones = (event?: Event) => {
|
const getMilestones = (event?: Event) => {
|
||||||
|
|
@ -157,7 +155,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/workOrders/doGetWorkOrderMilestones",
|
los.urlPrefix + "/workOrders/doGetWorkOrderMilestones",
|
||||||
workOrderSearchFiltersFormElement,
|
workOrderSearchFiltersFormElement,
|
||||||
(responseJSON: { workOrderMilestones: recordTypes.WorkOrderMilestone[] }) => {
|
(responseJSON: { workOrderMilestones: recordTypes.WorkOrderMilestone[] }) => {
|
||||||
renderMilestones(responseJSON.workOrderMilestones);
|
renderMilestones(responseJSON.workOrderMilestones);
|
||||||
|
|
@ -166,7 +164,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
};
|
};
|
||||||
|
|
||||||
workOrderMilestoneDateFilterElement.addEventListener("change", () => {
|
workOrderMilestoneDateFilterElement.addEventListener("change", () => {
|
||||||
workOrderMilestoneDateStringElement.closest("fieldset").disabled =
|
workOrderMilestoneDateStringElement.closest("fieldset")!.disabled =
|
||||||
workOrderMilestoneDateFilterElement.value !== "date";
|
workOrderMilestoneDateFilterElement.value !== "date";
|
||||||
getMilestones();
|
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 los = exports.los;
|
||||||
const apiKey = document.querySelector("main").dataset.apiKey;
|
|
||||||
const workOrderTypeIdsElement = document.querySelector("#icsFilters--workOrderTypeIds");
|
const workOrderTypeIdsElement = document.querySelector("#icsFilters--workOrderTypeIds");
|
||||||
const workOrderMilestoneTypeIdsElement = document.querySelector("#icsFilters--workOrderMilestoneTypeIds");
|
const workOrderMilestoneTypeIdsElement = document.querySelector("#icsFilters--workOrderMilestoneTypeIds");
|
||||||
const calendarLinkElement = document.querySelector("#icsFilters--calendarURL");
|
const calendarLinkElement = document.querySelector("#icsFilters--calendarURL");
|
||||||
const updateCalendarURL = () => {
|
const updateCalendarURL = () => {
|
||||||
let url = window.location.href.slice(0, Math.max(0, window.location.href.indexOf(window.location.pathname) + 1)) +
|
let url = window.location.href.slice(0, Math.max(0, window.location.href.indexOf(window.location.pathname) + 1)) +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"api/" +
|
"api/" +
|
||||||
apiKey +
|
los.apiKey +
|
||||||
"/" +
|
"/" +
|
||||||
"milestoneICS/" +
|
"milestoneICS/" +
|
||||||
"?";
|
"?";
|
||||||
|
|
@ -30,19 +31,13 @@
|
||||||
}
|
}
|
||||||
calendarLinkElement.value = url.slice(0, -1);
|
calendarLinkElement.value = url.slice(0, -1);
|
||||||
};
|
};
|
||||||
document
|
document.querySelector("#icsFilters--workOrderTypeIds-all").addEventListener("change", (changeEvent) => {
|
||||||
.querySelector("#icsFilters--workOrderTypeIds-all")
|
|
||||||
.addEventListener("change", (changeEvent) => {
|
|
||||||
workOrderTypeIdsElement.disabled = changeEvent.currentTarget.checked;
|
workOrderTypeIdsElement.disabled = changeEvent.currentTarget.checked;
|
||||||
});
|
});
|
||||||
document
|
document.querySelector("#icsFilters--workOrderMilestoneTypeIds-all").addEventListener("change", (changeEvent) => {
|
||||||
.querySelector("#icsFilters--workOrderMilestoneTypeIds-all")
|
|
||||||
.addEventListener("change", (changeEvent) => {
|
|
||||||
workOrderMilestoneTypeIdsElement.disabled = changeEvent.currentTarget.checked;
|
workOrderMilestoneTypeIdsElement.disabled = changeEvent.currentTarget.checked;
|
||||||
});
|
});
|
||||||
const inputSelectElements = document
|
const inputSelectElements = document.querySelector("#panel--icsFilters").querySelectorAll("input, select");
|
||||||
.querySelector("#panel--icsFilters")
|
|
||||||
.querySelectorAll("input, select");
|
|
||||||
for (const element of inputSelectElements) {
|
for (const element of inputSelectElements) {
|
||||||
element.addEventListener("change", updateCalendarURL);
|
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 los = exports.los as globalTypes.LOS;
|
||||||
const apiKey = document.querySelector("main").dataset.apiKey;
|
|
||||||
|
|
||||||
const workOrderTypeIdsElement = document.querySelector(
|
const workOrderTypeIdsElement = document.querySelector(
|
||||||
"#icsFilters--workOrderTypeIds"
|
"#icsFilters--workOrderTypeIds"
|
||||||
|
|
@ -18,14 +21,11 @@
|
||||||
let url =
|
let url =
|
||||||
window.location.href.slice(
|
window.location.href.slice(
|
||||||
0,
|
0,
|
||||||
Math.max(
|
Math.max(0, window.location.href.indexOf(window.location.pathname) + 1)
|
||||||
0,
|
|
||||||
window.location.href.indexOf(window.location.pathname) + 1
|
|
||||||
)
|
|
||||||
) +
|
) +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"api/" +
|
"api/" +
|
||||||
apiKey +
|
los.apiKey +
|
||||||
"/" +
|
"/" +
|
||||||
"milestoneICS/" +
|
"milestoneICS/" +
|
||||||
"?";
|
"?";
|
||||||
|
|
@ -59,27 +59,23 @@
|
||||||
calendarLinkElement.value = url.slice(0, -1);
|
calendarLinkElement.value = url.slice(0, -1);
|
||||||
};
|
};
|
||||||
|
|
||||||
document
|
(
|
||||||
.querySelector("#icsFilters--workOrderTypeIds-all")
|
document.querySelector("#icsFilters--workOrderTypeIds-all") as HTMLInputElement
|
||||||
.addEventListener("change", (changeEvent) => {
|
).addEventListener("change", (changeEvent) => {
|
||||||
workOrderTypeIdsElement.disabled = (
|
workOrderTypeIdsElement.disabled = (changeEvent.currentTarget as HTMLInputElement).checked;
|
||||||
changeEvent.currentTarget as HTMLInputElement
|
|
||||||
).checked;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
document
|
(
|
||||||
.querySelector("#icsFilters--workOrderMilestoneTypeIds-all")
|
document.querySelector("#icsFilters--workOrderMilestoneTypeIds-all") as HTMLInputElement
|
||||||
.addEventListener("change", (changeEvent) => {
|
).addEventListener("change", (changeEvent) => {
|
||||||
workOrderMilestoneTypeIdsElement.disabled = (
|
workOrderMilestoneTypeIdsElement.disabled = (
|
||||||
changeEvent.currentTarget as HTMLInputElement
|
changeEvent.currentTarget as HTMLInputElement
|
||||||
).checked;
|
).checked;
|
||||||
});
|
});
|
||||||
|
|
||||||
const inputSelectElements = document
|
const inputSelectElements = (
|
||||||
.querySelector("#panel--icsFilters")
|
document.querySelector("#panel--icsFilters") as HTMLElement
|
||||||
.querySelectorAll("input, select") as NodeListOf<
|
).querySelectorAll("input, select") as NodeListOf<HTMLInputElement | HTMLSelectElement>;
|
||||||
HTMLInputElement | HTMLSelectElement
|
|
||||||
>;
|
|
||||||
|
|
||||||
for (const element of inputSelectElements) {
|
for (const element of inputSelectElements) {
|
||||||
element.addEventListener("change", updateCalendarURL);
|
element.addEventListener("change", updateCalendarURL);
|
||||||
|
|
@ -90,5 +86,5 @@
|
||||||
calendarLinkElement.addEventListener("click", () => {
|
calendarLinkElement.addEventListener("click", () => {
|
||||||
calendarLinkElement.focus();
|
calendarLinkElement.focus();
|
||||||
calendarLinkElement.select();
|
calendarLinkElement.select();
|
||||||
})
|
});
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los;
|
const los = exports.los;
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
const workOrderPrints = exports.workOrderPrints;
|
const workOrderPrints = exports.workOrderPrints;
|
||||||
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
const searchFilterFormElement = document.querySelector("#form--searchFilters");
|
||||||
los.initializeDatePickers(searchFilterFormElement);
|
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 />' +
|
'<i class="fas fa-5x fa-circle-notch fa-spin" aria-hidden="true"></i><br />' +
|
||||||
"Loading Work Orders..." +
|
"Loading Work Orders..." +
|
||||||
"</div>";
|
"</div>";
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doSearchWorkOrders", searchFilterFormElement, (responseJSON) => {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doSearchWorkOrders", searchFilterFormElement, (responseJSON) => {
|
||||||
if (responseJSON.workOrders.length === 0) {
|
if (responseJSON.workOrders.length === 0) {
|
||||||
searchResultsContainerElement.innerHTML =
|
searchResultsContainerElement.innerHTML =
|
||||||
'<div class="message is-info">' +
|
'<div class="message is-info">' +
|
||||||
|
|
@ -30,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
for (const lot of workOrder.workOrderLots) {
|
for (const lot of workOrder.workOrderLots) {
|
||||||
relatedHTML +=
|
relatedHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
cityssm.escapeHTML(lot.mapName) +
|
cityssm.escapeHTML(lot.mapName || "") +
|
||||||
'">' +
|
'">' +
|
||||||
'<i class="fas fa-vector-square" aria-label="' +
|
'<i class="fas fa-vector-square" aria-label="' +
|
||||||
cityssm.escapeHTML(exports.aliases.lot) +
|
cityssm.escapeHTML(exports.aliases.lot) +
|
||||||
|
|
@ -42,7 +41,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
for (const occupant of occupancy.lotOccupancyOccupants) {
|
for (const occupant of occupancy.lotOccupancyOccupants) {
|
||||||
relatedHTML +=
|
relatedHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||||
'">' +
|
'">' +
|
||||||
'<i class="fas fa-user" aria-label="' +
|
'<i class="fas fa-user" aria-label="' +
|
||||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||||
|
|
@ -54,20 +53,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
resultsTbodyElement.insertAdjacentHTML("beforeend", "<tr>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/workOrders/" +
|
"/workOrders/" +
|
||||||
workOrder.workOrderId +
|
workOrder.workOrderId +
|
||||||
'">' +
|
'">' +
|
||||||
(workOrder.workOrderNumber.trim()
|
(workOrder.workOrderNumber.trim()
|
||||||
? cityssm.escapeHTML(workOrder.workOrderNumber)
|
? cityssm.escapeHTML(workOrder.workOrderNumber || "")
|
||||||
: "(No Number)") +
|
: "(No Number)") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
cityssm.escapeHTML(workOrder.workOrderType) +
|
cityssm.escapeHTML(workOrder.workOrderType || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(workOrder.workOrderDescription) +
|
cityssm.escapeHTML(workOrder.workOrderDescription || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
('<td class="is-nowrap"><span class="is-size-7">' +
|
('<td class="is-nowrap"><span class="is-size-7">' +
|
||||||
|
|
@ -95,7 +94,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(workOrderPrints.length > 0
|
(workOrderPrints.length > 0
|
||||||
? "<td>" +
|
? "<td>" +
|
||||||
'<a class="button is-small" data-tooltip="Print" href="' +
|
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/print/" +
|
"/print/" +
|
||||||
workOrderPrints[0] +
|
workOrderPrints[0] +
|
||||||
"/?workOrderId=" +
|
"/?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 recordTypes from "../types/recordTypes";
|
||||||
import type * as globalTypes from "../types/globalTypes";
|
import type * as globalTypes from "../types/globalTypes";
|
||||||
|
|
@ -9,8 +9,6 @@ declare const cityssm: cityssmGlobal;
|
||||||
(() => {
|
(() => {
|
||||||
const los = exports.los as globalTypes.LOS;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
|
||||||
|
|
||||||
const workOrderPrints: string[] = exports.workOrderPrints;
|
const workOrderPrints: string[] = exports.workOrderPrints;
|
||||||
|
|
||||||
const searchFilterFormElement = document.querySelector(
|
const searchFilterFormElement = document.querySelector(
|
||||||
|
|
@ -40,7 +38,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
"</div>";
|
"</div>";
|
||||||
|
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/workOrders/doSearchWorkOrders",
|
los.urlPrefix + "/workOrders/doSearchWorkOrders",
|
||||||
searchFilterFormElement,
|
searchFilterFormElement,
|
||||||
(responseJSON: { count: number; workOrders: recordTypes.WorkOrder[] }) => {
|
(responseJSON: { count: number; workOrders: recordTypes.WorkOrder[] }) => {
|
||||||
if (responseJSON.workOrders.length === 0) {
|
if (responseJSON.workOrders.length === 0) {
|
||||||
|
|
@ -57,10 +55,10 @@ declare const cityssm: cityssmGlobal;
|
||||||
for (const workOrder of responseJSON.workOrders) {
|
for (const workOrder of responseJSON.workOrders) {
|
||||||
let relatedHTML = "";
|
let relatedHTML = "";
|
||||||
|
|
||||||
for (const lot of workOrder.workOrderLots) {
|
for (const lot of workOrder.workOrderLots!) {
|
||||||
relatedHTML +=
|
relatedHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
cityssm.escapeHTML(lot.mapName) +
|
cityssm.escapeHTML(lot.mapName || "") +
|
||||||
'">' +
|
'">' +
|
||||||
'<i class="fas fa-vector-square" aria-label="' +
|
'<i class="fas fa-vector-square" aria-label="' +
|
||||||
cityssm.escapeHTML(exports.aliases.lot) +
|
cityssm.escapeHTML(exports.aliases.lot) +
|
||||||
|
|
@ -69,11 +67,11 @@ declare const cityssm: cityssmGlobal;
|
||||||
"</span><br />";
|
"</span><br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const occupancy of workOrder.workOrderLotOccupancies) {
|
for (const occupancy of workOrder.workOrderLotOccupancies!) {
|
||||||
for (const occupant of occupancy.lotOccupancyOccupants) {
|
for (const occupant of occupancy.lotOccupancyOccupants!) {
|
||||||
relatedHTML +=
|
relatedHTML +=
|
||||||
'<span class="has-tooltip-left" data-tooltip="' +
|
'<span class="has-tooltip-left" data-tooltip="' +
|
||||||
cityssm.escapeHTML(occupant.lotOccupantType) +
|
cityssm.escapeHTML(occupant.lotOccupantType || "") +
|
||||||
'">' +
|
'">' +
|
||||||
'<i class="fas fa-user" aria-label="' +
|
'<i class="fas fa-user" aria-label="' +
|
||||||
cityssm.escapeHTML(exports.aliases.occupant) +
|
cityssm.escapeHTML(exports.aliases.occupant) +
|
||||||
|
|
@ -88,20 +86,20 @@ declare const cityssm: cityssmGlobal;
|
||||||
"<tr>" +
|
"<tr>" +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
'<a class="has-text-weight-bold" href="' +
|
'<a class="has-text-weight-bold" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/workOrders/" +
|
"/workOrders/" +
|
||||||
workOrder.workOrderId +
|
workOrder.workOrderId +
|
||||||
'">' +
|
'">' +
|
||||||
(workOrder.workOrderNumber.trim()
|
(workOrder.workOrderNumber!.trim()
|
||||||
? cityssm.escapeHTML(workOrder.workOrderNumber)
|
? cityssm.escapeHTML(workOrder.workOrderNumber || "")
|
||||||
: "(No Number)") +
|
: "(No Number)") +
|
||||||
"</a>" +
|
"</a>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
("<td>" +
|
("<td>" +
|
||||||
cityssm.escapeHTML(workOrder.workOrderType) +
|
cityssm.escapeHTML(workOrder.workOrderType || "") +
|
||||||
"<br />" +
|
"<br />" +
|
||||||
'<span class="is-size-7">' +
|
'<span class="is-size-7">' +
|
||||||
cityssm.escapeHTML(workOrder.workOrderDescription) +
|
cityssm.escapeHTML(workOrder.workOrderDescription || "") +
|
||||||
"</span>" +
|
"</span>" +
|
||||||
"</td>") +
|
"</td>") +
|
||||||
('<td class="is-nowrap"><span class="is-size-7">' +
|
('<td class="is-nowrap"><span class="is-size-7">' +
|
||||||
|
|
@ -129,7 +127,7 @@ declare const cityssm: cityssmGlobal;
|
||||||
(workOrderPrints.length > 0
|
(workOrderPrints.length > 0
|
||||||
? "<td>" +
|
? "<td>" +
|
||||||
'<a class="button is-small" data-tooltip="Print" href="' +
|
'<a class="button is-small" data-tooltip="Print" href="' +
|
||||||
urlPrefix +
|
los.urlPrefix +
|
||||||
"/print/" +
|
"/print/" +
|
||||||
workOrderPrints[0] +
|
workOrderPrints[0] +
|
||||||
"/?workOrderId=" +
|
"/?workOrderId=" +
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,23 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los;
|
||||||
const reopenWorkOrderButtonElement = document.querySelector("#button--reopenWorkOrder");
|
const reopenWorkOrderButtonElement = document.querySelector("#button--reopenWorkOrder");
|
||||||
if (reopenWorkOrderButtonElement) {
|
if (reopenWorkOrderButtonElement) {
|
||||||
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
||||||
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||||
const doReopen = () => {
|
const doReopen = () => {
|
||||||
cityssm.postJSON(urlPrefix + "/workOrders/doReopenWorkOrder", {
|
cityssm.postJSON(los.urlPrefix + "/workOrders/doReopenWorkOrder", {
|
||||||
workOrderId
|
workOrderId
|
||||||
}, (responseJSON) => {
|
}, (responseJSON) => {
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix +
|
los.urlPrefix + "/workOrders/" + workOrderId + "/edit/?t=" + Date.now();
|
||||||
"/workOrders/" +
|
|
||||||
workOrderId +
|
|
||||||
"/edit/?t=" +
|
|
||||||
Date.now();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Reopening Work Order",
|
title: "Error Reopening Work Order",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
contextualColorName: "danger"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
/* eslint-disable unicorn/prefer-module */
|
/* eslint-disable unicorn/prefer-module */
|
||||||
|
|
||||||
|
import type * as globalTypes from "../types/globalTypes";
|
||||||
|
|
||||||
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
import type { cityssmGlobal } from "@cityssm/bulma-webapp-js/src/types";
|
||||||
|
|
||||||
import type { BulmaJS } from "@cityssm/bulma-js/types";
|
import type { BulmaJS } from "@cityssm/bulma-js/types";
|
||||||
|
|
||||||
declare const cityssm: cityssmGlobal;
|
declare const cityssm: cityssmGlobal;
|
||||||
declare const bulmaJS: BulmaJS;
|
declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
const los = exports.los as globalTypes.LOS;
|
||||||
|
|
||||||
const reopenWorkOrderButtonElement = document.querySelector(
|
const reopenWorkOrderButtonElement = document.querySelector(
|
||||||
"#button--reopenWorkOrder"
|
"#button--reopenWorkOrder"
|
||||||
|
|
@ -15,30 +18,22 @@ declare const bulmaJS: BulmaJS;
|
||||||
|
|
||||||
if (reopenWorkOrderButtonElement) {
|
if (reopenWorkOrderButtonElement) {
|
||||||
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
reopenWorkOrderButtonElement.addEventListener("click", () => {
|
||||||
const workOrderId =
|
const workOrderId = reopenWorkOrderButtonElement.dataset.workOrderId;
|
||||||
reopenWorkOrderButtonElement.dataset.workOrderId;
|
|
||||||
|
|
||||||
const doReopen = () => {
|
const doReopen = () => {
|
||||||
cityssm.postJSON(
|
cityssm.postJSON(
|
||||||
urlPrefix + "/workOrders/doReopenWorkOrder",
|
los.urlPrefix + "/workOrders/doReopenWorkOrder",
|
||||||
{
|
{
|
||||||
workOrderId
|
workOrderId
|
||||||
},
|
},
|
||||||
(responseJSON: {
|
(responseJSON: { success: boolean; errorMessage?: string }) => {
|
||||||
success: boolean;
|
|
||||||
errorMessage?: string;
|
|
||||||
}) => {
|
|
||||||
if (responseJSON.success) {
|
if (responseJSON.success) {
|
||||||
window.location.href =
|
window.location.href =
|
||||||
urlPrefix +
|
los.urlPrefix + "/workOrders/" + workOrderId + "/edit/?t=" + Date.now();
|
||||||
"/workOrders/" +
|
|
||||||
workOrderId +
|
|
||||||
"/edit/?t=" +
|
|
||||||
Date.now();
|
|
||||||
} else {
|
} else {
|
||||||
bulmaJS.alert({
|
bulmaJS.alert({
|
||||||
title: "Error Reopening Work Order",
|
title: "Error Reopening Work Order",
|
||||||
message: responseJSON.errorMessage,
|
message: responseJSON.errorMessage || "",
|
||||||
contextualColorName: "danger"
|
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 {
|
export interface LOS {
|
||||||
|
urlPrefix: string;
|
||||||
|
apiKey: string;
|
||||||
highlightMap: (mapContainerElement: HTMLElement, mapKey: string, contextualClass: "success" | "danger") => void;
|
highlightMap: (mapContainerElement: HTMLElement, mapKey: string, contextualClass: "success" | "danger") => void;
|
||||||
initializeDatePickers: (containerElement: HTMLElement) => void;
|
initializeDatePickers: (containerElement: HTMLElement) => void;
|
||||||
initializeTimePickers: (containerElement: HTMLElement) => void;
|
initializeTimePickers: (containerElement: HTMLElement) => void;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
export interface LOS {
|
export interface LOS {
|
||||||
|
urlPrefix: string;
|
||||||
|
apiKey: string;
|
||||||
|
|
||||||
highlightMap: (
|
highlightMap: (
|
||||||
mapContainerElement: HTMLElement,
|
mapContainerElement: HTMLElement,
|
||||||
mapKey: string,
|
mapKey: string,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue