update occupancy type field

deepsource-autofix-76c6eb20
Dan Gowans 2022-09-06 15:26:26 -04:00
parent b6808f1559
commit 1b57e629c6
13 changed files with 499 additions and 9 deletions

View File

@ -0,0 +1,3 @@
import type { RequestHandler } from "express";
export declare const handler: RequestHandler;
export default handler;

View File

@ -0,0 +1,11 @@
import { updateOccupancyTypeField } from "../../helpers/lotOccupancyDB/updateOccupancyTypeField.js";
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
export const handler = async (request, response) => {
const success = updateOccupancyTypeField(request.body, request.session);
const occupancyTypes = getOccupancyTypes();
response.json({
success,
occupancyTypes
});
};
export default handler;

View File

@ -0,0 +1,18 @@
import type { RequestHandler } from "express";
import { updateOccupancyTypeField } from "../../helpers/lotOccupancyDB/updateOccupancyTypeField.js";
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
export const handler: RequestHandler = async (request, response) => {
const success = updateOccupancyTypeField(request.body, request.session);
const occupancyTypes = getOccupancyTypes();
response.json({
success,
occupancyTypes
});
};
export default handler;

View File

@ -0,0 +1,12 @@
import type * as recordTypes from "../../types/recordTypes";
interface UpdateOccupancyTypeFieldForm {
occupancyTypeFieldId: number | string;
occupancyTypeField: string;
isRequired: "0" | "1";
minimumLength?: string;
maximumLength?: string;
pattern?: string;
occupancyTypeFieldValues: string;
}
export declare const updateOccupancyTypeField: (occupancyTypeFieldForm: UpdateOccupancyTypeFieldForm, requestSession: recordTypes.PartialSession) => boolean;
export default updateOccupancyTypeField;

View File

@ -0,0 +1,24 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearOccupancyTypesCache } from "../functions.cache.js";
export const updateOccupancyTypeField = (occupancyTypeFieldForm, requestSession) => {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare("update OccupancyTypeFields" +
" set occupancyTypeField = ?," +
" isRequired = ?," +
" minimumLength = ?," +
" maximumLength = ?," +
" pattern = ?," +
" occupancyTypeFieldValues = ?," +
" recordUpdate_userName = ?," +
" recordUpdate_timeMillis = ?" +
" where occupancyTypeFieldId = ?" +
" and recordDelete_timeMillis is null")
.run(occupancyTypeFieldForm.occupancyTypeField, Number.parseInt(occupancyTypeFieldForm.isRequired, 10), occupancyTypeFieldForm.minimumLength || 0, occupancyTypeFieldForm.maximumLength || 100, occupancyTypeFieldForm.pattern || "", occupancyTypeFieldForm.occupancyTypeFieldValues, requestSession.user.userName, rightNowMillis, occupancyTypeFieldForm.occupancyTypeFieldId);
database.close();
clearOccupancyTypesCache();
return result.changes > 0;
};
export default updateOccupancyTypeField;

View File

@ -0,0 +1,60 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearOccupancyTypesCache } from "../functions.cache.js";
import type * as recordTypes from "../../types/recordTypes";
interface UpdateOccupancyTypeFieldForm {
occupancyTypeFieldId: number | string;
occupancyTypeField: string;
isRequired: "0" | "1";
minimumLength?: string;
maximumLength?: string;
pattern?: string;
occupancyTypeFieldValues: string;
}
export const updateOccupancyTypeField = (
occupancyTypeFieldForm: UpdateOccupancyTypeFieldForm,
requestSession: recordTypes.PartialSession
): boolean => {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
"update OccupancyTypeFields" +
" set occupancyTypeField = ?," +
" isRequired = ?," +
" minimumLength = ?," +
" maximumLength = ?," +
" pattern = ?," +
" occupancyTypeFieldValues = ?," +
" recordUpdate_userName = ?," +
" recordUpdate_timeMillis = ?" +
" where occupancyTypeFieldId = ?" +
" and recordDelete_timeMillis is null"
)
.run(
occupancyTypeFieldForm.occupancyTypeField,
Number.parseInt(occupancyTypeFieldForm.isRequired, 10),
occupancyTypeFieldForm.minimumLength || 0,
occupancyTypeFieldForm.maximumLength || 100,
occupancyTypeFieldForm.pattern || "",
occupancyTypeFieldForm.occupancyTypeFieldValues,
requestSession.user.userName,
rightNowMillis,
occupancyTypeFieldForm.occupancyTypeFieldId
);
database.close();
clearOccupancyTypesCache();
return result.changes > 0;
};
export default updateOccupancyTypeField;

View File

@ -104,9 +104,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
}; };
const openAddOccupancyTypeField = (clickEvent) => { const openAddOccupancyTypeField = (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 occupancyType = occupancyTypes.find((currentOccupancyType) => {
return occupancyTypeId === currentOccupancyType.occupancyTypeId;
});
let addCloseModalFunction; let addCloseModalFunction;
const doAdd = (submitEvent) => { const doAdd = (submitEvent) => {
submitEvent.preventDefault(); submitEvent.preventDefault();
@ -116,6 +113,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
addCloseModalFunction(); addCloseModalFunction();
occupancyTypes = responseJSON.occupancyTypes; occupancyTypes = responseJSON.occupancyTypes;
renderOccupancyTypes(); renderOccupancyTypes();
openEditOccupancyTypeField(occupancyTypeId, responseJSON.occupancyTypeFieldId);
} }
else { else {
bulmaJS.alert({ bulmaJS.alert({
@ -186,6 +184,93 @@ Object.defineProperty(exports, "__esModule", { value: true });
} }
}); });
}; };
const openEditOccupancyTypeField = (occupancyTypeId, occupancyTypeFieldId) => {
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
return currentOccupancyType.occupancyTypeId === occupancyTypeId;
});
const occupancyTypeField = occupancyType.occupancyTypeFields.find((currentOccupancyTypeField) => {
return (currentOccupancyTypeField.occupancyTypeFieldId ===
occupancyTypeFieldId);
});
let minimumLengthElement;
let maximumLengthElement;
let patternElement;
let occupancyTypeFieldValuesElement;
let editCloseModalFunction;
const updateMaximumLengthMin = () => {
maximumLengthElement.min = minimumLengthElement.value;
};
const toggleInputFields = () => {
if (occupancyTypeFieldValuesElement.value === "") {
minimumLengthElement.disabled = false;
maximumLengthElement.disabled = false;
patternElement.disabled = false;
}
else {
minimumLengthElement.disabled = true;
maximumLengthElement.disabled = true;
patternElement.disabled = true;
}
};
const doUpdate = (submitEvent) => {
submitEvent.preventDefault();
cityssm.postJSON(urlPrefix + "/admin/doUpdateOccupancyTypeField", submitEvent.currentTarget, (responseJSON) => {
if (responseJSON.success) {
occupancyTypes = responseJSON.occupancyTypes;
editCloseModalFunction();
renderOccupancyTypes();
}
else {
bulmaJS.alert({
title: "Error Updating Field",
message: responseJSON.errorMessage,
contextualColorName: "danger"
});
}
});
};
cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField", {
onshow: (modalElement) => {
los.populateAliases(modalElement);
modalElement.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldId").value = occupancyTypeField.occupancyTypeFieldId.toString();
modalElement.querySelector("#occupancyTypeFieldEdit--occupancyTypeField").value = occupancyTypeField.occupancyTypeField;
modalElement.querySelector("#occupancyTypeFieldEdit--isRequired").value = occupancyTypeField.isRequired ? "1" : "0";
minimumLengthElement = modalElement.querySelector("#occupancyTypeFieldEdit--minimumLength");
minimumLengthElement.value =
occupancyTypeField.minimumLength.toString();
maximumLengthElement = modalElement.querySelector("#occupancyTypeFieldEdit--maximumLength");
maximumLengthElement.value =
occupancyTypeField.maximumLength.toString();
patternElement = modalElement.querySelector("#occupancyTypeFieldEdit--pattern");
patternElement.value = occupancyTypeField.pattern;
occupancyTypeFieldValuesElement = modalElement.querySelector("#occupancyTypeFieldEdit--occupancyTypeFieldValues");
occupancyTypeFieldValuesElement.value =
occupancyTypeField.occupancyTypeFieldValues;
toggleInputFields();
},
onshown: (modalElement, closeModalFunction) => {
editCloseModalFunction = closeModalFunction;
bulmaJS.toggleHtmlClipped();
cityssm.enableNavBlocker();
modalElement
.querySelector("form")
.addEventListener("submit", doUpdate);
minimumLengthElement.addEventListener("keyup", updateMaximumLengthMin);
updateMaximumLengthMin();
occupancyTypeFieldValuesElement.addEventListener("keyup", toggleInputFields);
},
onremoved: () => {
bulmaJS.toggleHtmlClipped();
cityssm.disableNavBlocker();
}
});
};
const openEditOccupancyTypeFieldByClick = (clickEvent) => {
clickEvent.preventDefault();
const occupancyTypeFieldId = Number.parseInt(clickEvent.currentTarget.closest(".container--occupancyTypeField").dataset.occupancyTypeFieldId, 10);
const occupancyTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId, 10);
openEditOccupancyTypeField(occupancyTypeId, occupancyTypeFieldId);
};
const renderOccupancyTypes = () => { const renderOccupancyTypes = () => {
if (occupancyTypes.length === 0) { if (occupancyTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML =
@ -304,6 +389,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
"</div>") + "</div>") +
"</div>" + "</div>" +
"</div>"; "</div>";
panelBlockElement
.querySelector(".button--editOccupancyTypeField")
.addEventListener("click", openEditOccupancyTypeFieldByClick);
occupancyTypeContainer.append(panelBlockElement); occupancyTypeContainer.append(panelBlockElement);
} }
} }

View File

@ -201,10 +201,6 @@ declare const bulmaJS: BulmaJS;
10 10
); );
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
return occupancyTypeId === currentOccupancyType.occupancyTypeId;
});
let addCloseModalFunction: () => void; let addCloseModalFunction: () => void;
const doAdd = (submitEvent: SubmitEvent) => { const doAdd = (submitEvent: SubmitEvent) => {
@ -217,6 +213,7 @@ declare const bulmaJS: BulmaJS;
success: boolean; success: boolean;
errorMessage?: string; errorMessage?: string;
occupancyTypes?: recordTypes.OccupancyType[]; occupancyTypes?: recordTypes.OccupancyType[];
occupancyTypeFieldId?: number;
}) => { }) => {
if (responseJSON.success) { if (responseJSON.success) {
expandedOccupancyTypes.add(occupancyTypeId); expandedOccupancyTypes.add(occupancyTypeId);
@ -224,6 +221,11 @@ declare const bulmaJS: BulmaJS;
addCloseModalFunction(); addCloseModalFunction();
occupancyTypes = responseJSON.occupancyTypes; occupancyTypes = responseJSON.occupancyTypes;
renderOccupancyTypes(); renderOccupancyTypes();
openEditOccupancyTypeField(
occupancyTypeId,
responseJSON.occupancyTypeFieldId
);
} else { } else {
bulmaJS.alert({ bulmaJS.alert({
title: "Error Adding Field", title: "Error Adding Field",
@ -338,6 +340,175 @@ declare const bulmaJS: BulmaJS;
); );
}; };
const openEditOccupancyTypeField = (
occupancyTypeId: number,
occupancyTypeFieldId: number
) => {
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
return currentOccupancyType.occupancyTypeId === occupancyTypeId;
});
const occupancyTypeField = occupancyType.occupancyTypeFields.find(
(currentOccupancyTypeField) => {
return (
currentOccupancyTypeField.occupancyTypeFieldId ===
occupancyTypeFieldId
);
}
);
let minimumLengthElement: HTMLInputElement;
let maximumLengthElement: HTMLInputElement;
let patternElement: HTMLInputElement;
let occupancyTypeFieldValuesElement: HTMLTextAreaElement;
let editCloseModalFunction: () => void;
const updateMaximumLengthMin = () => {
maximumLengthElement.min = minimumLengthElement.value;
};
const toggleInputFields = () => {
if (occupancyTypeFieldValuesElement.value === "") {
minimumLengthElement.disabled = false;
maximumLengthElement.disabled = false;
patternElement.disabled = false;
} else {
minimumLengthElement.disabled = true;
maximumLengthElement.disabled = true;
patternElement.disabled = true;
}
};
const doUpdate = (submitEvent: SubmitEvent) => {
submitEvent.preventDefault();
cityssm.postJSON(
urlPrefix + "/admin/doUpdateOccupancyTypeField",
submitEvent.currentTarget,
(responseJSON: {
success: boolean;
errorMessage?: string;
occupancyTypes?: recordTypes.OccupancyType[];
}) => {
if (responseJSON.success) {
occupancyTypes = responseJSON.occupancyTypes;
editCloseModalFunction();
renderOccupancyTypes();
} else {
bulmaJS.alert({
title: "Error Updating Field",
message: responseJSON.errorMessage,
contextualColorName: "danger"
});
}
}
);
};
cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField", {
onshow: (modalElement) => {
los.populateAliases(modalElement);
(
modalElement.querySelector(
"#occupancyTypeFieldEdit--occupancyTypeFieldId"
) as HTMLInputElement
).value = occupancyTypeField.occupancyTypeFieldId.toString();
(
modalElement.querySelector(
"#occupancyTypeFieldEdit--occupancyTypeField"
) as HTMLInputElement
).value = occupancyTypeField.occupancyTypeField;
(
modalElement.querySelector(
"#occupancyTypeFieldEdit--isRequired"
) as HTMLSelectElement
).value = occupancyTypeField.isRequired ? "1" : "0";
minimumLengthElement = modalElement.querySelector(
"#occupancyTypeFieldEdit--minimumLength"
);
minimumLengthElement.value =
occupancyTypeField.minimumLength.toString();
maximumLengthElement = modalElement.querySelector(
"#occupancyTypeFieldEdit--maximumLength"
);
maximumLengthElement.value =
occupancyTypeField.maximumLength.toString();
patternElement = modalElement.querySelector(
"#occupancyTypeFieldEdit--pattern"
);
patternElement.value = occupancyTypeField.pattern;
occupancyTypeFieldValuesElement = modalElement.querySelector(
"#occupancyTypeFieldEdit--occupancyTypeFieldValues"
);
occupancyTypeFieldValuesElement.value =
occupancyTypeField.occupancyTypeFieldValues;
toggleInputFields();
},
onshown: (modalElement, closeModalFunction) => {
editCloseModalFunction = closeModalFunction;
bulmaJS.toggleHtmlClipped();
cityssm.enableNavBlocker();
modalElement
.querySelector("form")
.addEventListener("submit", doUpdate);
minimumLengthElement.addEventListener(
"keyup",
updateMaximumLengthMin
);
updateMaximumLengthMin();
occupancyTypeFieldValuesElement.addEventListener(
"keyup",
toggleInputFields
);
},
onremoved: () => {
bulmaJS.toggleHtmlClipped();
cityssm.disableNavBlocker();
}
});
};
const openEditOccupancyTypeFieldByClick = (clickEvent: Event) => {
clickEvent.preventDefault();
const occupancyTypeFieldId = Number.parseInt(
(
(clickEvent.currentTarget as HTMLElement).closest(
".container--occupancyTypeField"
) as HTMLElement
).dataset.occupancyTypeFieldId,
10
);
const occupancyTypeId = Number.parseInt(
(
(clickEvent.currentTarget as HTMLElement).closest(
".container--occupancyType"
) as HTMLElement
).dataset.occupancyTypeId,
10
);
openEditOccupancyTypeField(occupancyTypeId, occupancyTypeFieldId);
};
const renderOccupancyTypes = () => { const renderOccupancyTypes = () => {
if (occupancyTypes.length === 0) { if (occupancyTypes.length === 0) {
containerElement.innerHTML = containerElement.innerHTML =
@ -477,6 +648,13 @@ declare const bulmaJS: BulmaJS;
"</div>" + "</div>" +
"</div>"; "</div>";
panelBlockElement
.querySelector(".button--editOccupancyTypeField")
.addEventListener(
"click",
openEditOccupancyTypeFieldByClick
);
occupancyTypeContainer.append(panelBlockElement); occupancyTypeContainer.append(panelBlockElement);
} }
} }

View File

@ -11,7 +11,7 @@
<form id="form--occupancyTypeFieldAdd"> <form id="form--occupancyTypeFieldAdd">
<input class="input" id="occupancyTypeFieldAdd--occupancyTypeId" name="occupancyTypeId" type="hidden" /> <input class="input" id="occupancyTypeFieldAdd--occupancyTypeId" name="occupancyTypeId" type="hidden" />
<div class="field"> <div class="field">
<label class="label" for="occupancyTypeFieldAdd--occupancyTypeField">New Field</label> <label class="label" for="occupancyTypeFieldAdd--occupancyTypeField">New Field Name</label>
<div class="control"> <div class="control">
<input class="input" id="occupancyTypeFieldAdd--occupancyTypeField" name="occupancyTypeField" type="text" maxlength="100" required /> <input class="input" id="occupancyTypeFieldAdd--occupancyTypeField" name="occupancyTypeField" type="text" maxlength="100" required />
</div> </div>

View File

@ -0,0 +1,87 @@
<div class="modal">
<div class="modal-background"></div>
<div class="modal-card" style="width:900px">
<header class="modal-card-head">
<h3 class="modal-card-title">
Update <span class="alias" data-alias="Occupancy"></span> Type Field
</h3>
<button class="delete is-close-modal-button" aria-label="close" type="button"></button>
</header>
<section class="modal-card-body">
<form id="form--occupancyTypeFieldEdit">
<input class="input" id="occupancyTypeFieldEdit--occupancyTypeFieldId" name="occupancyTypeFieldId" type="hidden" />
<div class="columns">
<div class="column is-8">
<div class="field">
<label class="label" for="occupancyTypeFieldEdit--occupancyTypeField">Field Name</label>
<div class="control">
<input class="input" id="occupancyTypeFieldEdit--occupancyTypeField" name="occupancyTypeField" type="text" maxlength="100" required />
</div>
</div>
</div>
<div class="column">
<div class="field">
<label class="label" for="occupancyTypeFieldEdit--isRequired">Required</label>
<div class="control">
<div class="select is-fullwidth">
<select id="occupancyTypeFieldEdit--isRequired" name="isRequired">
<option value="0">Not Required</option>
<option value="1">Required</option>
</select>
</div>
</div>
</div>
</div>
</div>
<div class="columns">
<div class="column is-5">
<div class="columns">
<div class="column">
<div class="field">
<label class="label" for="occupancyTypeFieldEdit--minimumLength">Minimum Length</label>
<div class="control">
<input class="input" id="occupancyTypeFieldEdit--minimumLength" name="minimumLength" type="number" min="0" max="32767" step="1" onwheel="return false" />
</div>
</div>
</div>
<div class="column">
<div class="field">
<label class="label" for="occupancyTypeFieldEdit--maximumLength">Maximum Length</label>
<div class="control">
<input class="input" id="occupancyTypeFieldEdit--maximumLength" name="maximumLength" type="number" min="0" max="32767" step="1" onwheel="return false" />
</div>
</div>
</div>
</div>
<div class="field">
<label class="label" for="occupancyTypeFieldEdit--pattern">Regular Expression</label>
<div class="control">
<input class="input" id="occupancyTypeFieldEdit--pattern" name="pattern" type="text" maxlength="100" />
</div>
</div>
</div>
<div class="column">
<div class="field">
<label class="label" for="occupancyTypeFieldEdit--occupancyTypeFieldValues">Field Values</label>
<div class="control">
<textarea class="textarea" id="occupancyTypeFieldEdit--occupancyTypeFieldValues" name="occupancyTypeFieldValues"></textarea>
</div>
<p class="help is-info">
Place each item on a separate line.
Note that when field values are set, only those values can be used to complete the field.
</p>
</div>
</div>
</div>
</form>
</section>
<footer class="modal-card-foot justify-right">
<button class="button is-success" type="submit" form="form--occupancyTypeFieldEdit">
<span class="icon"><i class="fas fa-plus" aria-hidden="true"></i></span>
<span>Update Field</span>
</button>
<button class="button is-close-modal-button" type="button">Cancel</button>
</footer>
</div>
</div>

File diff suppressed because one or more lines are too long

View File

@ -18,6 +18,7 @@ import handler_doMoveOccupancyTypeUp from "../handlers/admin-post/doMoveOccupanc
import handler_doMoveOccupancyTypeDown from "../handlers/admin-post/doMoveOccupancyTypeDown.js"; import handler_doMoveOccupancyTypeDown from "../handlers/admin-post/doMoveOccupancyTypeDown.js";
import handler_doDeleteOccupancyType from "../handlers/admin-post/doDeleteOccupancyType.js"; import handler_doDeleteOccupancyType from "../handlers/admin-post/doDeleteOccupancyType.js";
import handler_doAddOccupancyTypeField from "../handlers/admin-post/doAddOccupancyTypeField.js"; import handler_doAddOccupancyTypeField from "../handlers/admin-post/doAddOccupancyTypeField.js";
import handler_doUpdateOccupancyTypeField from "../handlers/admin-post/doUpdateOccupancyTypeField.js";
import handler_tables from "../handlers/admin-get/tables.js"; import handler_tables from "../handlers/admin-get/tables.js";
import handler_doAddWorkOrderType from "../handlers/admin-post/doAddWorkOrderType.js"; import handler_doAddWorkOrderType from "../handlers/admin-post/doAddWorkOrderType.js";
import handler_doUpdateWorkOrderType from "../handlers/admin-post/doUpdateWorkOrderType.js"; import handler_doUpdateWorkOrderType from "../handlers/admin-post/doUpdateWorkOrderType.js";
@ -53,6 +54,7 @@ router.post("/doMoveOccupancyTypeUp", permissionHandlers.adminPostHandler, handl
router.post("/doMoveOccupancyTypeDown", permissionHandlers.adminPostHandler, handler_doMoveOccupancyTypeDown); router.post("/doMoveOccupancyTypeDown", permissionHandlers.adminPostHandler, handler_doMoveOccupancyTypeDown);
router.post("/doDeleteOccupancyType", permissionHandlers.adminPostHandler, handler_doDeleteOccupancyType); router.post("/doDeleteOccupancyType", permissionHandlers.adminPostHandler, handler_doDeleteOccupancyType);
router.post("/doAddOccupancyTypeField", permissionHandlers.adminPostHandler, handler_doAddOccupancyTypeField); router.post("/doAddOccupancyTypeField", permissionHandlers.adminPostHandler, handler_doAddOccupancyTypeField);
router.post("/doUpdateOccupancyTypeField", permissionHandlers.adminPostHandler, handler_doUpdateOccupancyTypeField);
router.get("/tables", permissionHandlers.adminGetHandler, handler_tables); router.get("/tables", permissionHandlers.adminGetHandler, handler_tables);
router.post("/doAddWorkOrderType", permissionHandlers.adminPostHandler, handler_doAddWorkOrderType); router.post("/doAddWorkOrderType", permissionHandlers.adminPostHandler, handler_doAddWorkOrderType);
router.post("/doUpdateWorkOrderType", permissionHandlers.adminPostHandler, handler_doUpdateWorkOrderType); router.post("/doUpdateWorkOrderType", permissionHandlers.adminPostHandler, handler_doUpdateWorkOrderType);

View File

@ -29,6 +29,7 @@ import handler_doMoveOccupancyTypeDown from "../handlers/admin-post/doMoveOccupa
import handler_doDeleteOccupancyType from "../handlers/admin-post/doDeleteOccupancyType.js"; import handler_doDeleteOccupancyType from "../handlers/admin-post/doDeleteOccupancyType.js";
import handler_doAddOccupancyTypeField from "../handlers/admin-post/doAddOccupancyTypeField.js"; import handler_doAddOccupancyTypeField from "../handlers/admin-post/doAddOccupancyTypeField.js";
import handler_doUpdateOccupancyTypeField from "../handlers/admin-post/doUpdateOccupancyTypeField.js";
// Config Table Management // Config Table Management
@ -164,6 +165,12 @@ router.post(
handler_doAddOccupancyTypeField handler_doAddOccupancyTypeField
); );
router.post(
"/doUpdateOccupancyTypeField",
permissionHandlers.adminPostHandler,
handler_doUpdateOccupancyTypeField
);
/* /*
* Config Tables * Config Tables
*/ */