From aabaf299f94d095d48b130f781320a29c50a4b6e Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Wed, 4 Jan 2023 14:48:35 -0500 Subject: [PATCH] reduce move duplication --- .../admin-post/doMoveOccupancyTypeDown.js | 2 +- .../admin-post/doMoveOccupancyTypeDown.ts | 2 +- .../doMoveOccupancyTypeFieldDown.js | 2 +- .../doMoveOccupancyTypeFieldDown.ts | 2 +- .../admin-post/doMoveOccupancyTypeFieldUp.js | 2 +- .../admin-post/doMoveOccupancyTypeFieldUp.ts | 2 +- .../doMoveOccupancyTypePrintDown.js | 2 +- .../doMoveOccupancyTypePrintDown.ts | 2 +- .../admin-post/doMoveOccupancyTypePrintUp.js | 2 +- .../admin-post/doMoveOccupancyTypePrintUp.ts | 2 +- handlers/admin-post/doMoveOccupancyTypeUp.js | 2 +- handlers/admin-post/doMoveOccupancyTypeUp.ts | 2 +- public-typescript/adminOccupancyTypes.js | 79 +++---- public-typescript/adminOccupancyTypes.ts | 220 +++++++----------- public/javascripts/adminOccupancyTypes.min.js | 2 +- 15 files changed, 126 insertions(+), 199 deletions(-) diff --git a/handlers/admin-post/doMoveOccupancyTypeDown.js b/handlers/admin-post/doMoveOccupancyTypeDown.js index bcadf656..d88393c0 100644 --- a/handlers/admin-post/doMoveOccupancyTypeDown.js +++ b/handlers/admin-post/doMoveOccupancyTypeDown.js @@ -1,7 +1,7 @@ import { moveOccupancyTypeDown, moveOccupancyTypeDownToBottom } from "../../helpers/lotOccupancyDB/moveOccupancyTypeDown.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = request.body.moveToBottom === "1" + const success = request.body.moveToEnd === "1" ? moveOccupancyTypeDownToBottom(request.body.occupancyTypeId) : moveOccupancyTypeDown(request.body.occupancyTypeId); const occupancyTypes = getOccupancyTypes(); diff --git a/handlers/admin-post/doMoveOccupancyTypeDown.ts b/handlers/admin-post/doMoveOccupancyTypeDown.ts index 55ad442d..e47da37b 100644 --- a/handlers/admin-post/doMoveOccupancyTypeDown.ts +++ b/handlers/admin-post/doMoveOccupancyTypeDown.ts @@ -9,7 +9,7 @@ import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/func export const handler: RequestHandler = async (request, response) => { const success = - request.body.moveToBottom === "1" + request.body.moveToEnd === "1" ? moveOccupancyTypeDownToBottom(request.body.occupancyTypeId) : moveOccupancyTypeDown(request.body.occupancyTypeId); diff --git a/handlers/admin-post/doMoveOccupancyTypeFieldDown.js b/handlers/admin-post/doMoveOccupancyTypeFieldDown.js index 3b1c9431..6d7a424f 100644 --- a/handlers/admin-post/doMoveOccupancyTypeFieldDown.js +++ b/handlers/admin-post/doMoveOccupancyTypeFieldDown.js @@ -1,7 +1,7 @@ import { moveOccupancyTypeFieldDown, moveOccupancyTypeFieldDownToBottom } from "../../helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = request.body.moveToBottom === "1" + const success = request.body.moveToEnd === "1" ? moveOccupancyTypeFieldDownToBottom(request.body.occupancyTypeFieldId) : moveOccupancyTypeFieldDown(request.body.occupancyTypeFieldId); const occupancyTypes = getOccupancyTypes(); diff --git a/handlers/admin-post/doMoveOccupancyTypeFieldDown.ts b/handlers/admin-post/doMoveOccupancyTypeFieldDown.ts index 8a21906a..17030494 100644 --- a/handlers/admin-post/doMoveOccupancyTypeFieldDown.ts +++ b/handlers/admin-post/doMoveOccupancyTypeFieldDown.ts @@ -9,7 +9,7 @@ import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/func export const handler: RequestHandler = async (request, response) => { const success = - request.body.moveToBottom === "1" + request.body.moveToEnd === "1" ? moveOccupancyTypeFieldDownToBottom(request.body.occupancyTypeFieldId) : moveOccupancyTypeFieldDown(request.body.occupancyTypeFieldId); diff --git a/handlers/admin-post/doMoveOccupancyTypeFieldUp.js b/handlers/admin-post/doMoveOccupancyTypeFieldUp.js index 8313d8f8..6dd605e9 100644 --- a/handlers/admin-post/doMoveOccupancyTypeFieldUp.js +++ b/handlers/admin-post/doMoveOccupancyTypeFieldUp.js @@ -1,7 +1,7 @@ import { moveOccupancyTypeFieldUp, moveOccupancyTypeFieldUpToTop } from "../../helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = request.body.moveToTop === "1" + const success = request.body.moveToEnd === "1" ? moveOccupancyTypeFieldUpToTop(request.body.occupancyTypeFieldId) : moveOccupancyTypeFieldUp(request.body.occupancyTypeFieldId); const occupancyTypes = getOccupancyTypes(); diff --git a/handlers/admin-post/doMoveOccupancyTypeFieldUp.ts b/handlers/admin-post/doMoveOccupancyTypeFieldUp.ts index 3b76aaa9..ed221e6f 100644 --- a/handlers/admin-post/doMoveOccupancyTypeFieldUp.ts +++ b/handlers/admin-post/doMoveOccupancyTypeFieldUp.ts @@ -9,7 +9,7 @@ import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/func export const handler: RequestHandler = async (request, response) => { const success = - request.body.moveToTop === "1" + request.body.moveToEnd === "1" ? moveOccupancyTypeFieldUpToTop(request.body.occupancyTypeFieldId) : moveOccupancyTypeFieldUp(request.body.occupancyTypeFieldId); diff --git a/handlers/admin-post/doMoveOccupancyTypePrintDown.js b/handlers/admin-post/doMoveOccupancyTypePrintDown.js index a9734fa8..22db1aee 100644 --- a/handlers/admin-post/doMoveOccupancyTypePrintDown.js +++ b/handlers/admin-post/doMoveOccupancyTypePrintDown.js @@ -1,7 +1,7 @@ import { moveOccupancyTypePrintDown, moveOccupancyTypePrintDownToBottom } from "../../helpers/lotOccupancyDB/moveOccupancyTypePrintDown.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = request.body.moveToBottom === "1" + const success = request.body.moveToEnd === "1" ? moveOccupancyTypePrintDownToBottom(request.body.occupancyTypeId, request.body.printEJS) : moveOccupancyTypePrintDown(request.body.occupancyTypeId, request.body.printEJS); const occupancyTypes = getOccupancyTypes(); diff --git a/handlers/admin-post/doMoveOccupancyTypePrintDown.ts b/handlers/admin-post/doMoveOccupancyTypePrintDown.ts index 3666eb10..719371c0 100644 --- a/handlers/admin-post/doMoveOccupancyTypePrintDown.ts +++ b/handlers/admin-post/doMoveOccupancyTypePrintDown.ts @@ -9,7 +9,7 @@ import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/func export const handler: RequestHandler = async (request, response) => { const success = - request.body.moveToBottom === "1" + request.body.moveToEnd === "1" ? moveOccupancyTypePrintDownToBottom(request.body.occupancyTypeId, request.body.printEJS) : moveOccupancyTypePrintDown(request.body.occupancyTypeId, request.body.printEJS); diff --git a/handlers/admin-post/doMoveOccupancyTypePrintUp.js b/handlers/admin-post/doMoveOccupancyTypePrintUp.js index 1e282f2b..b9b538f3 100644 --- a/handlers/admin-post/doMoveOccupancyTypePrintUp.js +++ b/handlers/admin-post/doMoveOccupancyTypePrintUp.js @@ -1,7 +1,7 @@ import { moveOccupancyTypePrintUp, moveOccupancyTypePrintUpToTop } from "../../helpers/lotOccupancyDB/moveOccupancyTypePrintUp.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = request.body.moveToTop === "1" + const success = request.body.moveToEnd === "1" ? moveOccupancyTypePrintUpToTop(request.body.occupancyTypeId, request.body.printEJS) : moveOccupancyTypePrintUp(request.body.occupancyTypeId, request.body.printEJS); const occupancyTypes = getOccupancyTypes(); diff --git a/handlers/admin-post/doMoveOccupancyTypePrintUp.ts b/handlers/admin-post/doMoveOccupancyTypePrintUp.ts index b3440532..7560340b 100644 --- a/handlers/admin-post/doMoveOccupancyTypePrintUp.ts +++ b/handlers/admin-post/doMoveOccupancyTypePrintUp.ts @@ -9,7 +9,7 @@ import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/func export const handler: RequestHandler = async (request, response) => { const success = - request.body.moveToTop === "1" + request.body.moveToEnd === "1" ? moveOccupancyTypePrintUpToTop(request.body.occupancyTypeId, request.body.printEJS) : moveOccupancyTypePrintUp(request.body.occupancyTypeId, request.body.printEJS); diff --git a/handlers/admin-post/doMoveOccupancyTypeUp.js b/handlers/admin-post/doMoveOccupancyTypeUp.js index 3c22b683..899e8709 100644 --- a/handlers/admin-post/doMoveOccupancyTypeUp.js +++ b/handlers/admin-post/doMoveOccupancyTypeUp.js @@ -1,7 +1,7 @@ import { moveOccupancyTypeUp, moveOccupancyTypeUpToTop } from "../../helpers/lotOccupancyDB/moveOccupancyTypeUp.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = request.body.moveToTop === "1" + const success = request.body.moveToEnd === "1" ? moveOccupancyTypeUpToTop(request.body.occupancyTypeId) : moveOccupancyTypeUp(request.body.occupancyTypeId); const occupancyTypes = getOccupancyTypes(); diff --git a/handlers/admin-post/doMoveOccupancyTypeUp.ts b/handlers/admin-post/doMoveOccupancyTypeUp.ts index 9906b944..d4c38f80 100644 --- a/handlers/admin-post/doMoveOccupancyTypeUp.ts +++ b/handlers/admin-post/doMoveOccupancyTypeUp.ts @@ -9,7 +9,7 @@ import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/func export const handler: RequestHandler = async (request, response) => { const success = - request.body.moveToTop === "1" + request.body.moveToEnd === "1" ? moveOccupancyTypeUpToTop(request.body.occupancyTypeId) : moveOccupancyTypeUp(request.body.occupancyTypeId); diff --git a/public-typescript/adminOccupancyTypes.js b/public-typescript/adminOccupancyTypes.js index e3e3e3c1..bc0aaf36 100644 --- a/public-typescript/adminOccupancyTypes.js +++ b/public-typescript/adminOccupancyTypes.js @@ -123,20 +123,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); } - function moveOccupancyTypeUp(clickEvent) { - clickEvent.preventDefault(); + function moveOccupancyType(clickEvent) { + const buttonElement = clickEvent.currentTarget; const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId; - cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeUp", { + cityssm.postJSON(los.urlPrefix + + "/admin/" + + (buttonElement.dataset.direction === "up" + ? "doMoveOccupancyTypeUp" + : "doMoveOccupancyTypeDown"), { occupancyTypeId, - moveToTop: clickEvent.shiftKey ? "1" : "0" - }, occupancyTypeResponseHandler); - } - function moveOccupancyTypeDown(clickEvent) { - clickEvent.preventDefault(); - const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId; - cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeDown", { - occupancyTypeId, - moveToBottom: clickEvent.shiftKey ? "1" : "0" + moveToEnd: clickEvent.shiftKey ? "1" : "0" }, occupancyTypeResponseHandler); } function openEditOccupancyTypeField(occupancyTypeId, occupancyTypeFieldId) { @@ -241,20 +237,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); const occupancyTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId, 10); openEditOccupancyTypeField(occupancyTypeId, occupancyTypeFieldId); } - function moveOccupancyTypeFieldUp(clickEvent) { - clickEvent.preventDefault(); + function moveOccupancyTypeField(clickEvent) { + const buttonElement = clickEvent.currentTarget; const occupancyTypeFieldId = clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId; - cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeFieldUp", { + cityssm.postJSON(los.urlPrefix + + "/admin/" + + (buttonElement.dataset.direction === "up" + ? "doMoveOccupancyTypeFieldUp" + : "doMoveOccupancyTypeFieldDown"), { occupancyTypeFieldId, - moveToTop: clickEvent.shiftKey ? "1" : "0" - }, occupancyTypeResponseHandler); - } - function moveOccupancyTypeFieldDown(clickEvent) { - clickEvent.preventDefault(); - const occupancyTypeFieldId = clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId; - cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypeFieldDown", { - occupancyTypeFieldId, - moveToBottom: clickEvent.shiftKey ? "1" : "0" + moveToEnd: clickEvent.shiftKey ? "1" : "0" }, occupancyTypeResponseHandler); } function renderOccupancyTypeFields(panelElement, occupancyTypeId, occupancyTypeFields) { @@ -296,8 +288,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); panelBlockElement .querySelector(".button--editOccupancyTypeField") .addEventListener("click", openEditOccupancyTypeFieldByClick); - panelBlockElement.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click", moveOccupancyTypeFieldUp); - panelBlockElement.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click", moveOccupancyTypeFieldDown); + panelBlockElement.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click", moveOccupancyTypeField); + panelBlockElement.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click", moveOccupancyTypeField); panelElement.append(panelBlockElement); } } @@ -333,24 +325,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); } }); } - function moveOccupancyTypePrintUp(clickEvent) { - clickEvent.preventDefault(); - const printEJS = clickEvent.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS; - const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId; - cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypePrintUp", { + function moveOccupancyTypePrint(clickEvent) { + const buttonElement = clickEvent.currentTarget; + const printEJS = buttonElement.closest(".container--occupancyTypePrint") + .dataset.printEJS; + const occupancyTypeId = buttonElement.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId; + cityssm.postJSON(los.urlPrefix + + "/admin/" + + (buttonElement.dataset.direction === "up" + ? "doMoveOccupancyTypePrintUp" + : "doMoveOccupancyTypePrintDown"), { occupancyTypeId, printEJS, - moveToTop: clickEvent.shiftKey ? "1" : "0" - }, occupancyTypeResponseHandler); - } - function moveOccupancyTypePrintDown(clickEvent) { - clickEvent.preventDefault(); - const printEJS = clickEvent.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS; - const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId; - cityssm.postJSON(los.urlPrefix + "/admin/doMoveOccupancyTypePrintDown", { - occupancyTypeId, - printEJS, - moveToBottom: clickEvent.shiftKey ? "1" : "0" + moveToEnd: clickEvent.shiftKey ? "1" : "0" }, occupancyTypeResponseHandler); } function deleteOccupancyTypePrint(clickEvent) { @@ -420,8 +407,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); "") + "" + ""; - panelBlockElement.querySelector(".button--moveOccupancyTypePrintUp").addEventListener("click", moveOccupancyTypePrintUp); - panelBlockElement.querySelector(".button--moveOccupancyTypePrintDown").addEventListener("click", moveOccupancyTypePrintDown); + panelBlockElement.querySelector(".button--moveOccupancyTypePrintUp").addEventListener("click", moveOccupancyTypePrint); + panelBlockElement.querySelector(".button--moveOccupancyTypePrintDown").addEventListener("click", moveOccupancyTypePrint); panelBlockElement .querySelector(".button--deleteOccupancyTypePrint") .addEventListener("click", deleteOccupancyTypePrint); @@ -530,8 +517,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); occupancyTypeContainer .querySelector(".button--addOccupancyTypeField") .addEventListener("click", openAddOccupancyTypeField); - occupancyTypeContainer.querySelector(".button--moveOccupancyTypeUp").addEventListener("click", moveOccupancyTypeUp); - occupancyTypeContainer.querySelector(".button--moveOccupancyTypeDown").addEventListener("click", moveOccupancyTypeDown); + occupancyTypeContainer.querySelector(".button--moveOccupancyTypeUp").addEventListener("click", moveOccupancyType); + occupancyTypeContainer.querySelector(".button--moveOccupancyTypeDown").addEventListener("click", moveOccupancyType); occupancyTypesContainerElement.append(occupancyTypeContainer); } // Prints diff --git a/public-typescript/adminOccupancyTypes.ts b/public-typescript/adminOccupancyTypes.ts index 4426026d..975be2a9 100644 --- a/public-typescript/adminOccupancyTypes.ts +++ b/public-typescript/adminOccupancyTypes.ts @@ -246,8 +246,8 @@ declare const bulmaJS: BulmaJS; }); } - function moveOccupancyTypeUp(clickEvent: MouseEvent) { - clickEvent.preventDefault(); + function moveOccupancyType(clickEvent: MouseEvent) { + const buttonElement = clickEvent.currentTarget as HTMLButtonElement; const occupancyTypeId = ( (clickEvent.currentTarget as HTMLElement).closest( @@ -256,29 +256,14 @@ declare const bulmaJS: BulmaJS; ).dataset.occupancyTypeId; cityssm.postJSON( - los.urlPrefix + "/admin/doMoveOccupancyTypeUp", + los.urlPrefix + + "/admin/" + + (buttonElement.dataset.direction === "up" + ? "doMoveOccupancyTypeUp" + : "doMoveOccupancyTypeDown"), { occupancyTypeId, - moveToTop: clickEvent.shiftKey ? "1" : "0" - }, - occupancyTypeResponseHandler - ); - } - - function moveOccupancyTypeDown(clickEvent: MouseEvent) { - clickEvent.preventDefault(); - - const occupancyTypeId = ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--occupancyType" - ) as HTMLElement - ).dataset.occupancyTypeId; - - cityssm.postJSON( - los.urlPrefix + "/admin/doMoveOccupancyTypeDown", - { - occupancyTypeId, - moveToBottom: clickEvent.shiftKey ? "1" : "0" + moveToEnd: clickEvent.shiftKey ? "1" : "0" }, occupancyTypeResponseHandler ); @@ -471,8 +456,8 @@ declare const bulmaJS: BulmaJS; openEditOccupancyTypeField(occupancyTypeId, occupancyTypeFieldId); } - function moveOccupancyTypeFieldUp(clickEvent: MouseEvent) { - clickEvent.preventDefault(); + function moveOccupancyTypeField(clickEvent: MouseEvent) { + const buttonElement = clickEvent.currentTarget as HTMLButtonElement; const occupancyTypeFieldId = ( (clickEvent.currentTarget as HTMLElement).closest( @@ -481,29 +466,14 @@ declare const bulmaJS: BulmaJS; ).dataset.occupancyTypeFieldId; cityssm.postJSON( - los.urlPrefix + "/admin/doMoveOccupancyTypeFieldUp", + los.urlPrefix + + "/admin/" + + (buttonElement.dataset.direction === "up" + ? "doMoveOccupancyTypeFieldUp" + : "doMoveOccupancyTypeFieldDown"), { occupancyTypeFieldId, - moveToTop: clickEvent.shiftKey ? "1" : "0" - }, - occupancyTypeResponseHandler - ); - } - - function moveOccupancyTypeFieldDown(clickEvent: MouseEvent) { - clickEvent.preventDefault(); - - const occupancyTypeFieldId = ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--occupancyTypeField" - ) as HTMLElement - ).dataset.occupancyTypeFieldId; - - cityssm.postJSON( - los.urlPrefix + "/admin/doMoveOccupancyTypeFieldDown", - { - occupancyTypeFieldId, - moveToBottom: clickEvent.shiftKey ? "1" : "0" + moveToEnd: clickEvent.shiftKey ? "1" : "0" }, occupancyTypeResponseHandler ); @@ -566,13 +536,13 @@ declare const bulmaJS: BulmaJS; panelBlockElement.querySelector( ".button--moveOccupancyTypeFieldUp" ) as HTMLButtonElement - ).addEventListener("click", moveOccupancyTypeFieldUp); + ).addEventListener("click", moveOccupancyTypeField); ( panelBlockElement.querySelector( ".button--moveOccupancyTypeFieldDown" ) as HTMLButtonElement - ).addEventListener("click", moveOccupancyTypeFieldDown); + ).addEventListener("click", moveOccupancyTypeField); panelElement.append(panelBlockElement); } @@ -640,53 +610,26 @@ declare const bulmaJS: BulmaJS; }); } - function moveOccupancyTypePrintUp(clickEvent: MouseEvent): void { - clickEvent.preventDefault(); + function moveOccupancyTypePrint(clickEvent: MouseEvent): void { + const buttonElement = clickEvent.currentTarget as HTMLButtonElement; - const printEJS = ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--occupancyTypePrint" - ) as HTMLElement - ).dataset.printEJS; + const printEJS = (buttonElement.closest(".container--occupancyTypePrint") as HTMLElement) + .dataset.printEJS; const occupancyTypeId = ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--occupancyTypePrintList" - ) as HTMLElement + buttonElement.closest(".container--occupancyTypePrintList") as HTMLElement ).dataset.occupancyTypeId; cityssm.postJSON( - los.urlPrefix + "/admin/doMoveOccupancyTypePrintUp", + los.urlPrefix + + "/admin/" + + (buttonElement.dataset.direction === "up" + ? "doMoveOccupancyTypePrintUp" + : "doMoveOccupancyTypePrintDown"), { occupancyTypeId, printEJS, - moveToTop: clickEvent.shiftKey ? "1" : "0" - }, - occupancyTypeResponseHandler - ); - } - - function moveOccupancyTypePrintDown(clickEvent: MouseEvent): void { - clickEvent.preventDefault(); - - const printEJS = ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--occupancyTypePrint" - ) as HTMLElement - ).dataset.printEJS; - - const occupancyTypeId = ( - (clickEvent.currentTarget as HTMLElement).closest( - ".container--occupancyTypePrintList" - ) as HTMLElement - ).dataset.occupancyTypeId; - - cityssm.postJSON( - los.urlPrefix + "/admin/doMoveOccupancyTypePrintDown", - { - occupancyTypeId, - printEJS, - moveToBottom: clickEvent.shiftKey ? "1" : "0" + moveToEnd: clickEvent.shiftKey ? "1" : "0" }, occupancyTypeResponseHandler ); @@ -795,13 +738,13 @@ declare const bulmaJS: BulmaJS; panelBlockElement.querySelector( ".button--moveOccupancyTypePrintUp" ) as HTMLButtonElement - ).addEventListener("click", moveOccupancyTypePrintUp); + ).addEventListener("click", moveOccupancyTypePrint); ( panelBlockElement.querySelector( ".button--moveOccupancyTypePrintDown" ) as HTMLButtonElement - ).addEventListener("click", moveOccupancyTypePrintDown); + ).addEventListener("click", moveOccupancyTypePrint); panelBlockElement .querySelector(".button--deleteOccupancyTypePrint")! @@ -952,13 +895,13 @@ declare const bulmaJS: BulmaJS; occupancyTypeContainer.querySelector( ".button--moveOccupancyTypeUp" ) as HTMLButtonElement - ).addEventListener("click", moveOccupancyTypeUp); + ).addEventListener("click", moveOccupancyType); ( occupancyTypeContainer.querySelector( ".button--moveOccupancyTypeDown" ) as HTMLButtonElement - ).addEventListener("click", moveOccupancyTypeDown); + ).addEventListener("click", moveOccupancyType); occupancyTypesContainerElement.append(occupancyTypeContainer); } @@ -1008,60 +951,57 @@ declare const bulmaJS: BulmaJS; } } - document.querySelector("#button--addOccupancyType")!.addEventListener( - "click", - () => { - let addCloseModalFunction: () => void; + document.querySelector("#button--addOccupancyType")!.addEventListener("click", () => { + let addCloseModalFunction: () => void; - const doAdd = (submitEvent: SubmitEvent) => { - submitEvent.preventDefault(); + const doAdd = (submitEvent: SubmitEvent) => { + submitEvent.preventDefault(); - cityssm.postJSON( - los.urlPrefix + "/admin/doAddOccupancyType", - submitEvent.currentTarget, - (responseJSON: { - success: boolean; - errorMessage?: string; - occupancyTypes?: recordTypes.OccupancyType[]; - }) => { - if (responseJSON.success) { - addCloseModalFunction(); - occupancyTypes = responseJSON.occupancyTypes!; - renderOccupancyTypes(); - } else { - bulmaJS.alert({ - title: "Error Adding " + exports.aliases.occupancy + " Type", - message: responseJSON.errorMessage || "", - contextualColorName: "danger" - }); - } + cityssm.postJSON( + los.urlPrefix + "/admin/doAddOccupancyType", + submitEvent.currentTarget, + (responseJSON: { + success: boolean; + errorMessage?: string; + occupancyTypes?: recordTypes.OccupancyType[]; + }) => { + if (responseJSON.success) { + addCloseModalFunction(); + occupancyTypes = responseJSON.occupancyTypes!; + renderOccupancyTypes(); + } else { + bulmaJS.alert({ + title: "Error Adding " + exports.aliases.occupancy + " Type", + message: responseJSON.errorMessage || "", + contextualColorName: "danger" + }); } - ); - }; - - cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType", { - onshow: (modalElement) => { - los.populateAliases(modalElement); - }, - onshown: (modalElement, closeModalFunction) => { - addCloseModalFunction = closeModalFunction; - - ( - modalElement.querySelector( - "#occupancyTypeAdd--occupancyType" - ) as HTMLInputElement - ).focus(); - - modalElement.querySelector("form")!.addEventListener("submit", doAdd); - - bulmaJS.toggleHtmlClipped(); - }, - onremoved: () => { - bulmaJS.toggleHtmlClipped(); } - }); - } - ); + ); + }; + + cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType", { + onshow: (modalElement) => { + los.populateAliases(modalElement); + }, + onshown: (modalElement, closeModalFunction) => { + addCloseModalFunction = closeModalFunction; + + ( + modalElement.querySelector( + "#occupancyTypeAdd--occupancyType" + ) as HTMLInputElement + ).focus(); + + modalElement.querySelector("form")!.addEventListener("submit", doAdd); + + bulmaJS.toggleHtmlClipped(); + }, + onremoved: () => { + bulmaJS.toggleHtmlClipped(); + } + }); + }); renderOccupancyTypes(); })(); diff --git a/public/javascripts/adminOccupancyTypes.min.js b/public/javascripts/adminOccupancyTypes.min.js index d9e9ae16..981efeea 100644 --- a/public/javascripts/adminOccupancyTypes.min.js +++ b/public/javascripts/adminOccupancyTypes.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,c=document.querySelector("#container--occupancyTypes"),t=document.querySelector("#container--occupancyTypePrints");let n=exports.occupancyTypes;delete exports.occupancyTypes;let a=exports.allOccupancyTypeFields;delete exports.allOccupancyTypeFields;const s=new Set;function i(e){const c=e.currentTarget,t=c.closest(".container--occupancyType"),n=Number.parseInt(t.dataset.occupancyTypeId,10);s.has(n)?s.delete(n):s.add(n),c.innerHTML=s.has(n)?'':'';const a=t.querySelectorAll(".panel-block");for(const e of a)e.classList.toggle("is-hidden")}function o(e){e.success?(n=e.occupancyTypes,a=e.allOccupancyTypeFields,F()):bulmaJS.alert({title:"Error Updating "+exports.aliases.occupancy+" Type",message:e.errorMessage||"",contextualColorName:"danger"})}function l(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);bulmaJS.confirm({title:`Delete ${exports.aliases.occupancy} Type`,message:`Are you sure you want to delete this ${exports.aliases.occupancy.toLowerCase()} type?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${exports.aliases.occupancy} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyType",{occupancyTypeId:t},o)}}})}function p(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),a=n.find(e=>t===e.occupancyTypeId);let s;function i(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyType",c.currentTarget,e=>{o(e),e.success&&s()})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyType",{onshow(c){e.populateAliases(c),c.querySelector("#occupancyTypeEdit--occupancyTypeId").value=t.toString(),c.querySelector("#occupancyTypeEdit--occupancyType").value=a.occupancyType},onshown(e,c){s=c,e.querySelector("#occupancyTypeEdit--occupancyType").focus(),e.querySelector("form").addEventListener("submit",i),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function d(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);let n;function a(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypeField",c.currentTarget,e=>{s.add(t),o(e),e.success&&(n(),y(t,e.occupancyTypeFieldId))})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypeField",{onshow(c){e.populateAliases(c),t&&(c.querySelector("#occupancyTypeFieldAdd--occupancyTypeId").value=t.toString())},onshown(e,c){n=c,e.querySelector("#occupancyTypeFieldAdd--occupancyTypeField").focus(),e.querySelector("form").addEventListener("submit",a),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function u(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypeUp",{occupancyTypeId:t,moveToTop:c.shiftKey?"1":"0"},o)}function r(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypeDown",{occupancyTypeId:t,moveToBottom:c.shiftKey?"1":"0"},o)}function y(c,t){let s;c&&(s=n.find(e=>e.occupancyTypeId===c));const i=(s?s.occupancyTypeFields:a).find(e=>e.occupancyTypeFieldId===t);let l,p,d,u,r;function y(){p.min=l.value}function T(){""===u.value?(l.disabled=!1,p.disabled=!1,d.disabled=!1):(l.disabled=!0,p.disabled=!0,d.disabled=!0)}function v(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyTypeField",c.currentTarget,e=>{o(e),e.success&&r()})}function m(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyTypeField",{occupancyTypeFieldId:t},e=>{o(e),e.success&&r()})}function f(){bulmaJS.confirm({title:"Delete Field",message:"Are you sure you want to delete this field? Note that historical records that make use of this field will not be affected.",contextualColorName:"warning",okButton:{text:"Yes, Delete Field",callbackFunction:m}})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField",{onshow:c=>{e.populateAliases(c),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldId").value=i.occupancyTypeFieldId.toString(),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeField").value=i.occupancyTypeField,c.querySelector("#occupancyTypeFieldEdit--isRequired").value=i.isRequired?"1":"0",(l=c.querySelector("#occupancyTypeFieldEdit--minimumLength")).value=i.minimumLength.toString(),(p=c.querySelector("#occupancyTypeFieldEdit--maximumLength")).value=i.maximumLength.toString(),(d=c.querySelector("#occupancyTypeFieldEdit--pattern")).value=i.pattern,(u=c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues")).value=i.occupancyTypeFieldValues,T()},onshown:(e,c)=>{r=c,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),e.querySelector("form").addEventListener("submit",v),l.addEventListener("keyup",y),y(),u.addEventListener("keyup",T),e.querySelector("#button--deleteOccupancyTypeField").addEventListener("click",f)},onremoved:()=>{bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})}function T(e){e.preventDefault();const c=Number.parseInt(e.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId,10);y(Number.parseInt(e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),c)}function v(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypeFieldUp",{occupancyTypeFieldId:t,moveToTop:c.shiftKey?"1":"0"},o)}function m(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypeFieldDown",{occupancyTypeFieldId:t,moveToBottom:c.shiftKey?"1":"0"},o)}function f(c,t,n){if(0===n.length)c.insertAdjacentHTML("beforeend",'

There are no additional fields.

');else for(const a of n){const n=document.createElement("div");n.className="panel-block is-block container--occupancyTypeField",t&&!s.has(t)&&n.classList.add("is-hidden"),n.dataset.occupancyTypeFieldId=a.occupancyTypeFieldId.toString(),n.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeFieldUp","button--moveOccupancyTypeFieldDown")+"
",n.querySelector(".button--editOccupancyTypeField").addEventListener("click",T),n.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click",v),n.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click",m),c.append(n)}}function b(c){const t=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;let n;function a(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypePrint",c.currentTarget,e=>{e.success&&n(),o(e)})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypePrint",{onshow(c){e.populateAliases(c),c.querySelector("#occupancyTypePrintAdd--occupancyTypeId").value=t;const n=c.querySelector("#occupancyTypePrintAdd--printEJS");for(const[e,c]of Object.entries(exports.occupancyTypePrintTitles)){const t=document.createElement("option");t.value=e,t.textContent=c,n.append(t)}},onshown(e,c){var t;n=c,null===(t=e.querySelector("form"))||void 0===t||t.addEventListener("submit",a)}})}function g(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS,n=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypePrintUp",{occupancyTypeId:n,printEJS:t,moveToTop:c.shiftKey?"1":"0"},o)}function S(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS,n=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/doMoveOccupancyTypePrintDown",{occupancyTypeId:n,printEJS:t,moveToBottom:c.shiftKey?"1":"0"},o)}function h(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS,n=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;bulmaJS.confirm({title:"Delete Print",message:"Are you sure you want to remove this print option?",contextualColorName:"warning",okButton:{text:"Yes, Remove Print",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyTypePrint",{occupancyTypeId:n,printEJS:t},o)}}})}function O(c,t,n){if(0===n.length)c.insertAdjacentHTML("beforeend",'
\n
\n

There are no prints associated with this record.

\n
\n
');else for(const t of n){const n=document.createElement("div");n.className="panel-block is-block container--occupancyTypePrint",n.dataset.printEJS=t;const a="*"===t?"(All Available Prints)":exports.occupancyTypePrintTitles[t];let s="fa-star";t.startsWith("pdf/")?s="fa-file-pdf":t.startsWith("screen/")&&(s="fa-file"),n.innerHTML='
'+cityssm.escapeHTML(a||t)+'
'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypePrintUp","button--moveOccupancyTypePrintDown")+'
',n.querySelector(".button--moveOccupancyTypePrintUp").addEventListener("click",g),n.querySelector(".button--moveOccupancyTypePrintDown").addEventListener("click",S),n.querySelector(".button--deleteOccupancyTypePrint").addEventListener("click",h),c.append(n)}}function F(){if(c.innerHTML='

(All '+cityssm.escapeHTML(exports.aliases.occupancy)+' Types)

',t.innerHTML="",f(c.querySelector("#container--allOccupancyTypeFields"),void 0,a),c.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),0===n.length)return c.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.occupancy} types.

\n
`),void t.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.occupancy} types.

\n
`);for(const a of n){{const t=document.createElement("div");t.className="panel container--occupancyType",t.dataset.occupancyTypeId=a.occupancyTypeId.toString(),t.innerHTML='

'+cityssm.escapeHTML(a.occupancyType)+'

'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeUp","button--moveOccupancyTypeDown")+"
",f(t,a.occupancyTypeId,a.occupancyTypeFields),t.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click",i),t.querySelector(".button--deleteOccupancyType").addEventListener("click",l),t.querySelector(".button--editOccupancyType").addEventListener("click",p),t.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),t.querySelector(".button--moveOccupancyTypeUp").addEventListener("click",u),t.querySelector(".button--moveOccupancyTypeDown").addEventListener("click",r),c.append(t)}{const e=document.createElement("div");e.className="panel container--occupancyTypePrintList",e.dataset.occupancyTypeId=a.occupancyTypeId.toString(),e.innerHTML='

'+cityssm.escapeHTML(a.occupancyType)+'

',O(e,a.occupancyTypeId,a.occupancyTypePrints),e.querySelector(".button--addOccupancyTypePrint").addEventListener("click",b),t.append(e)}}}document.querySelector("#button--addOccupancyType").addEventListener("click",()=>{let c;const t=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyType",t.currentTarget,e=>{e.success?(c(),n=e.occupancyTypes,F()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupancy+" Type",message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType",{onshow:c=>{e.populateAliases(c)},onshown:(e,n)=>{c=n,e.querySelector("#occupancyTypeAdd--occupancyType").focus(),e.querySelector("form").addEventListener("submit",t),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),F()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,c=document.querySelector("#container--occupancyTypes"),t=document.querySelector("#container--occupancyTypePrints");let n=exports.occupancyTypes;delete exports.occupancyTypes;let a=exports.allOccupancyTypeFields;delete exports.allOccupancyTypeFields;const s=new Set;function i(e){const c=e.currentTarget,t=c.closest(".container--occupancyType"),n=Number.parseInt(t.dataset.occupancyTypeId,10);s.has(n)?s.delete(n):s.add(n),c.innerHTML=s.has(n)?'':'';const a=t.querySelectorAll(".panel-block");for(const e of a)e.classList.toggle("is-hidden")}function o(e){e.success?(n=e.occupancyTypes,a=e.allOccupancyTypeFields,S()):bulmaJS.alert({title:"Error Updating "+exports.aliases.occupancy+" Type",message:e.errorMessage||"",contextualColorName:"danger"})}function l(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);bulmaJS.confirm({title:`Delete ${exports.aliases.occupancy} Type`,message:`Are you sure you want to delete this ${exports.aliases.occupancy.toLowerCase()} type?`,contextualColorName:"warning",okButton:{text:`Yes, Delete ${exports.aliases.occupancy} Type`,callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyType",{occupancyTypeId:t},o)}}})}function p(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),a=n.find(e=>t===e.occupancyTypeId);let s;function i(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyType",c.currentTarget,e=>{o(e),e.success&&s()})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyType",{onshow(c){e.populateAliases(c),c.querySelector("#occupancyTypeEdit--occupancyTypeId").value=t.toString(),c.querySelector("#occupancyTypeEdit--occupancyType").value=a.occupancyType},onshown(e,c){s=c,e.querySelector("#occupancyTypeEdit--occupancyType").focus(),e.querySelector("form").addEventListener("submit",i),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function d(c){const t=Number.parseInt(c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10);let n;function a(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypeField",c.currentTarget,e=>{s.add(t),o(e),e.success&&(n(),r(t,e.occupancyTypeFieldId))})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypeField",{onshow(c){e.populateAliases(c),t&&(c.querySelector("#occupancyTypeFieldAdd--occupancyTypeId").value=t.toString())},onshown(e,c){n=c,e.querySelector("#occupancyTypeFieldAdd--occupancyTypeField").focus(),e.querySelector("form").addEventListener("submit",a),bulmaJS.toggleHtmlClipped()},onremoved(){bulmaJS.toggleHtmlClipped()}})}function u(c){const t=c.currentTarget,n=c.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypeUp":"doMoveOccupancyTypeDown"),{occupancyTypeId:n,moveToEnd:c.shiftKey?"1":"0"},o)}function r(c,t){let s;c&&(s=n.find(e=>e.occupancyTypeId===c));const i=(s?s.occupancyTypeFields:a).find(e=>e.occupancyTypeFieldId===t);let l,p,d,u,r;function y(){p.min=l.value}function T(){""===u.value?(l.disabled=!1,p.disabled=!1,d.disabled=!1):(l.disabled=!0,p.disabled=!0,d.disabled=!0)}function v(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doUpdateOccupancyTypeField",c.currentTarget,e=>{o(e),e.success&&r()})}function m(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyTypeField",{occupancyTypeFieldId:t},e=>{o(e),e.success&&r()})}function f(){bulmaJS.confirm({title:"Delete Field",message:"Are you sure you want to delete this field? Note that historical records that make use of this field will not be affected.",contextualColorName:"warning",okButton:{text:"Yes, Delete Field",callbackFunction:m}})}cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField",{onshow:c=>{e.populateAliases(c),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldId").value=i.occupancyTypeFieldId.toString(),c.querySelector("#occupancyTypeFieldEdit--occupancyTypeField").value=i.occupancyTypeField,c.querySelector("#occupancyTypeFieldEdit--isRequired").value=i.isRequired?"1":"0",(l=c.querySelector("#occupancyTypeFieldEdit--minimumLength")).value=i.minimumLength.toString(),(p=c.querySelector("#occupancyTypeFieldEdit--maximumLength")).value=i.maximumLength.toString(),(d=c.querySelector("#occupancyTypeFieldEdit--pattern")).value=i.pattern,(u=c.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues")).value=i.occupancyTypeFieldValues,T()},onshown:(e,c)=>{r=c,bulmaJS.init(e),bulmaJS.toggleHtmlClipped(),cityssm.enableNavBlocker(),e.querySelector("form").addEventListener("submit",v),l.addEventListener("keyup",y),y(),u.addEventListener("keyup",T),e.querySelector("#button--deleteOccupancyTypeField").addEventListener("click",f)},onremoved:()=>{bulmaJS.toggleHtmlClipped(),cityssm.disableNavBlocker()}})}function y(e){e.preventDefault();const c=Number.parseInt(e.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId,10);r(Number.parseInt(e.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId,10),c)}function T(c){const t=c.currentTarget,n=c.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypeFieldUp":"doMoveOccupancyTypeFieldDown"),{occupancyTypeFieldId:n,moveToEnd:c.shiftKey?"1":"0"},o)}function v(c,t,n){if(0===n.length)c.insertAdjacentHTML("beforeend",'

There are no additional fields.

');else for(const a of n){const n=document.createElement("div");n.className="panel-block is-block container--occupancyTypeField",t&&!s.has(t)&&n.classList.add("is-hidden"),n.dataset.occupancyTypeFieldId=a.occupancyTypeFieldId.toString(),n.innerHTML='
'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeFieldUp","button--moveOccupancyTypeFieldDown")+"
",n.querySelector(".button--editOccupancyTypeField").addEventListener("click",y),n.querySelector(".button--moveOccupancyTypeFieldUp").addEventListener("click",T),n.querySelector(".button--moveOccupancyTypeFieldDown").addEventListener("click",T),c.append(n)}}function m(c){const t=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;let n;function a(c){c.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyTypePrint",c.currentTarget,e=>{e.success&&n(),o(e)})}cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyTypePrint",{onshow(c){e.populateAliases(c),c.querySelector("#occupancyTypePrintAdd--occupancyTypeId").value=t;const n=c.querySelector("#occupancyTypePrintAdd--printEJS");for(const[e,c]of Object.entries(exports.occupancyTypePrintTitles)){const t=document.createElement("option");t.value=e,t.textContent=c,n.append(t)}},onshown(e,c){var t;n=c,null===(t=e.querySelector("form"))||void 0===t||t.addEventListener("submit",a)}})}function f(c){const t=c.currentTarget,n=t.closest(".container--occupancyTypePrint").dataset.printEJS,a=t.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;cityssm.postJSON(e.urlPrefix+"/admin/"+("up"===t.dataset.direction?"doMoveOccupancyTypePrintUp":"doMoveOccupancyTypePrintDown"),{occupancyTypeId:a,printEJS:n,moveToEnd:c.shiftKey?"1":"0"},o)}function b(c){c.preventDefault();const t=c.currentTarget.closest(".container--occupancyTypePrint").dataset.printEJS,n=c.currentTarget.closest(".container--occupancyTypePrintList").dataset.occupancyTypeId;bulmaJS.confirm({title:"Delete Print",message:"Are you sure you want to remove this print option?",contextualColorName:"warning",okButton:{text:"Yes, Remove Print",callbackFunction:function(){cityssm.postJSON(e.urlPrefix+"/admin/doDeleteOccupancyTypePrint",{occupancyTypeId:n,printEJS:t},o)}}})}function g(c,t,n){if(0===n.length)c.insertAdjacentHTML("beforeend",'
\n
\n

There are no prints associated with this record.

\n
\n
');else for(const t of n){const n=document.createElement("div");n.className="panel-block is-block container--occupancyTypePrint",n.dataset.printEJS=t;const a="*"===t?"(All Available Prints)":exports.occupancyTypePrintTitles[t];let s="fa-star";t.startsWith("pdf/")?s="fa-file-pdf":t.startsWith("screen/")&&(s="fa-file"),n.innerHTML='
'+cityssm.escapeHTML(a||t)+'
'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypePrintUp","button--moveOccupancyTypePrintDown")+'
',n.querySelector(".button--moveOccupancyTypePrintUp").addEventListener("click",f),n.querySelector(".button--moveOccupancyTypePrintDown").addEventListener("click",f),n.querySelector(".button--deleteOccupancyTypePrint").addEventListener("click",b),c.append(n)}}function S(){if(c.innerHTML='

(All '+cityssm.escapeHTML(exports.aliases.occupancy)+' Types)

',t.innerHTML="",v(c.querySelector("#container--allOccupancyTypeFields"),void 0,a),c.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),0===n.length)return c.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.occupancy} types.

\n
`),void t.insertAdjacentHTML("afterbegin",`
There are no active ${e.escapedAliases.occupancy} types.

\n
`);for(const a of n){{const t=document.createElement("div");t.className="panel container--occupancyType",t.dataset.occupancyTypeId=a.occupancyTypeId.toString(),t.innerHTML='

'+cityssm.escapeHTML(a.occupancyType)+'

'+e.getMoveUpDownButtonFieldHTML("button--moveOccupancyTypeUp","button--moveOccupancyTypeDown")+"
",v(t,a.occupancyTypeId,a.occupancyTypeFields),t.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click",i),t.querySelector(".button--deleteOccupancyType").addEventListener("click",l),t.querySelector(".button--editOccupancyType").addEventListener("click",p),t.querySelector(".button--addOccupancyTypeField").addEventListener("click",d),t.querySelector(".button--moveOccupancyTypeUp").addEventListener("click",u),t.querySelector(".button--moveOccupancyTypeDown").addEventListener("click",u),c.append(t)}{const e=document.createElement("div");e.className="panel container--occupancyTypePrintList",e.dataset.occupancyTypeId=a.occupancyTypeId.toString(),e.innerHTML='

'+cityssm.escapeHTML(a.occupancyType)+'

',g(e,a.occupancyTypeId,a.occupancyTypePrints),e.querySelector(".button--addOccupancyTypePrint").addEventListener("click",m),t.append(e)}}}document.querySelector("#button--addOccupancyType").addEventListener("click",()=>{let c;const t=t=>{t.preventDefault(),cityssm.postJSON(e.urlPrefix+"/admin/doAddOccupancyType",t.currentTarget,e=>{e.success?(c(),n=e.occupancyTypes,S()):bulmaJS.alert({title:"Error Adding "+exports.aliases.occupancy+" Type",message:e.errorMessage||"",contextualColorName:"danger"})})};cityssm.openHtmlModal("adminOccupancyTypes-addOccupancyType",{onshow:c=>{e.populateAliases(c)},onshown:(e,n)=>{c=n,e.querySelector("#occupancyTypeAdd--occupancyType").focus(),e.querySelector("form").addEventListener("submit",t),bulmaJS.toggleHtmlClipped()},onremoved:()=>{bulmaJS.toggleHtmlClipped()}})}),S()})(); \ No newline at end of file