delete occupancy type
parent
9928c5ed04
commit
0ba94ae199
|
|
@ -0,0 +1,3 @@
|
||||||
|
import type { RequestHandler } from "express";
|
||||||
|
export declare const handler: RequestHandler;
|
||||||
|
export default handler;
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { deleteOccupancyType } from "../../helpers/lotOccupancyDB/deleteOccupancyType.js";
|
||||||
|
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
|
||||||
|
export const handler = async (request, response) => {
|
||||||
|
const success = deleteOccupancyType(request.body.occupancyTypeId, request.session);
|
||||||
|
const occupancyTypes = getOccupancyTypes();
|
||||||
|
response.json({
|
||||||
|
success,
|
||||||
|
occupancyTypes
|
||||||
|
});
|
||||||
|
};
|
||||||
|
export default handler;
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
import type { RequestHandler } from "express";
|
||||||
|
|
||||||
|
import { deleteOccupancyType } from "../../helpers/lotOccupancyDB/deleteOccupancyType.js";
|
||||||
|
|
||||||
|
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
|
||||||
|
|
||||||
|
export const handler: RequestHandler = async (request, response) => {
|
||||||
|
const success = deleteOccupancyType(
|
||||||
|
request.body.occupancyTypeId,
|
||||||
|
request.session
|
||||||
|
);
|
||||||
|
|
||||||
|
const occupancyTypes = getOccupancyTypes();
|
||||||
|
|
||||||
|
response.json({
|
||||||
|
success,
|
||||||
|
occupancyTypes
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export default handler;
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
import type * as recordTypes from "../../types/recordTypes";
|
||||||
|
export declare const deleteOccupancyType: (occupancyTypeId: number | string, requestSession: recordTypes.PartialSession) => boolean;
|
||||||
|
export default deleteOccupancyType;
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
import sqlite from "better-sqlite3";
|
||||||
|
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
||||||
|
import { clearOccupancyTypesCache } from "../functions.cache.js";
|
||||||
|
export const deleteOccupancyType = (occupancyTypeId, requestSession) => {
|
||||||
|
const database = sqlite(databasePath);
|
||||||
|
const rightNowMillis = Date.now();
|
||||||
|
const result = database
|
||||||
|
.prepare("update OccupancyTypes" +
|
||||||
|
" set recordDelete_userName = ?," +
|
||||||
|
" recordDelete_timeMillis = ?" +
|
||||||
|
" where occupancyTypeId = ?")
|
||||||
|
.run(requestSession.user.userName, rightNowMillis, occupancyTypeId);
|
||||||
|
database.close();
|
||||||
|
clearOccupancyTypesCache();
|
||||||
|
return result.changes > 0;
|
||||||
|
};
|
||||||
|
export default deleteOccupancyType;
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
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";
|
||||||
|
|
||||||
|
export const deleteOccupancyType = (
|
||||||
|
occupancyTypeId: number | string,
|
||||||
|
requestSession: recordTypes.PartialSession
|
||||||
|
): boolean => {
|
||||||
|
const database = sqlite(databasePath);
|
||||||
|
|
||||||
|
const rightNowMillis = Date.now();
|
||||||
|
|
||||||
|
const result = database
|
||||||
|
.prepare(
|
||||||
|
"update OccupancyTypes" +
|
||||||
|
" set recordDelete_userName = ?," +
|
||||||
|
" recordDelete_timeMillis = ?" +
|
||||||
|
" where occupancyTypeId = ?"
|
||||||
|
)
|
||||||
|
.run(requestSession.user.userName, rightNowMillis, occupancyTypeId);
|
||||||
|
|
||||||
|
database.close();
|
||||||
|
|
||||||
|
clearOccupancyTypesCache();
|
||||||
|
|
||||||
|
return result.changes > 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default deleteOccupancyType;
|
||||||
|
|
@ -25,6 +25,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
panelBlockElement.classList.toggle("is-hidden");
|
panelBlockElement.classList.toggle("is-hidden");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const deleteOccupancyType = (clickEvent) => {
|
||||||
|
const occupancyTypeId = Number.parseInt(clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId, 10);
|
||||||
|
const doDelete = () => {
|
||||||
|
cityssm.postJSON(urlPrefix + "/admin/doDeleteOccupancyType", {
|
||||||
|
occupancyTypeId
|
||||||
|
}, (responseJSON) => {
|
||||||
|
if (responseJSON.success) {
|
||||||
|
occupancyTypes = responseJSON.occupancyTypes;
|
||||||
|
renderOccupancyTypes();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
bulmaJS.alert({
|
||||||
|
title: "Error Deleting " +
|
||||||
|
exports.aliases.occupancy +
|
||||||
|
" Type",
|
||||||
|
message: responseJSON.errorMessage,
|
||||||
|
contextualColorName: "danger"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
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: doDelete
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
const openEditOccupancyType = (clickEvent) => {
|
const openEditOccupancyType = (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) => {
|
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||||
|
|
@ -145,20 +176,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="level-right">' +
|
('<div class="level-right">' +
|
||||||
'<div class="level-item">' +
|
('<div class="level-item">' +
|
||||||
'<button class="button is-primary is-small button--editOccupancyType" type="button">' +
|
'<button class="button is-danger is-small button--deleteOccupancyType" type="button">' +
|
||||||
'<span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span>' +
|
'<span class="icon is-small"><i class="fas fa-trash" aria-hidden="true"></i></span>' +
|
||||||
"<span>Edit " +
|
"<span>Delete</span>" +
|
||||||
exports.aliases.occupancy +
|
"</button>" +
|
||||||
" Type</span>" +
|
"</div>") +
|
||||||
"</button>" +
|
('<div class="level-item">' +
|
||||||
"</div>" +
|
'<button class="button is-primary is-small button--editOccupancyType" type="button">' +
|
||||||
'<div class="level-item">' +
|
'<span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span>' +
|
||||||
'<button class="button is-success is-small button--addOccupancyTypeField" type="button">' +
|
"<span>Edit " +
|
||||||
'<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>' +
|
exports.aliases.occupancy +
|
||||||
"<span>Add Field</span>" +
|
" Type</span>" +
|
||||||
"</button>" +
|
"</button>" +
|
||||||
"</div>" +
|
"</div>") +
|
||||||
|
('<div class="level-item">' +
|
||||||
|
'<button class="button is-success is-small button--addOccupancyTypeField" type="button">' +
|
||||||
|
'<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>' +
|
||||||
|
"<span>Add Field</span>" +
|
||||||
|
"</button>" +
|
||||||
|
"</div>") +
|
||||||
('<div class="level-item">' +
|
('<div class="level-item">' +
|
||||||
'<div class="field has-addons">' +
|
'<div class="field has-addons">' +
|
||||||
'<div class="control">' +
|
'<div class="control">' +
|
||||||
|
|
@ -232,6 +269,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
occupancyTypeContainer
|
occupancyTypeContainer
|
||||||
.querySelector(".button--editOccupancyType")
|
.querySelector(".button--editOccupancyType")
|
||||||
.addEventListener("click", openEditOccupancyType);
|
.addEventListener("click", openEditOccupancyType);
|
||||||
|
occupancyTypeContainer
|
||||||
|
.querySelector(".button--deleteOccupancyType")
|
||||||
|
.addEventListener("click", deleteOccupancyType);
|
||||||
occupancyTypeContainer
|
occupancyTypeContainer
|
||||||
.querySelector(".button--moveOccupancyTypeUp")
|
.querySelector(".button--moveOccupancyTypeUp")
|
||||||
.addEventListener("click", moveOccupancyTypeUp);
|
.addEventListener("click", moveOccupancyTypeUp);
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,56 @@ declare const bulmaJS: BulmaJS;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const deleteOccupancyType = (clickEvent: Event) => {
|
||||||
|
const occupancyTypeId = Number.parseInt(
|
||||||
|
(
|
||||||
|
(clickEvent.currentTarget as HTMLElement).closest(
|
||||||
|
".container--occupancyType"
|
||||||
|
) as HTMLElement
|
||||||
|
).dataset.occupancyTypeId,
|
||||||
|
10
|
||||||
|
);
|
||||||
|
|
||||||
|
const doDelete = () => {
|
||||||
|
|
||||||
|
cityssm.postJSON(
|
||||||
|
urlPrefix + "/admin/doDeleteOccupancyType",
|
||||||
|
{
|
||||||
|
occupancyTypeId
|
||||||
|
},
|
||||||
|
(responseJSON: {
|
||||||
|
success: boolean;
|
||||||
|
errorMessage?: string;
|
||||||
|
occupancyTypes?: recordTypes.OccupancyType[];
|
||||||
|
}) => {
|
||||||
|
if (responseJSON.success) {
|
||||||
|
occupancyTypes = responseJSON.occupancyTypes;
|
||||||
|
renderOccupancyTypes();
|
||||||
|
} else {
|
||||||
|
bulmaJS.alert({
|
||||||
|
title:
|
||||||
|
"Error Deleting " +
|
||||||
|
exports.aliases.occupancy +
|
||||||
|
" Type",
|
||||||
|
message: responseJSON.errorMessage,
|
||||||
|
contextualColorName: "danger"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
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: doDelete
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const openEditOccupancyType = (clickEvent: Event) => {
|
const openEditOccupancyType = (clickEvent: Event) => {
|
||||||
const occupancyTypeId = Number.parseInt(
|
const occupancyTypeId = Number.parseInt(
|
||||||
(
|
(
|
||||||
|
|
@ -251,20 +301,26 @@ declare const bulmaJS: BulmaJS;
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>") +
|
"</div>") +
|
||||||
('<div class="level-right">' +
|
('<div class="level-right">' +
|
||||||
'<div class="level-item">' +
|
('<div class="level-item">' +
|
||||||
'<button class="button is-primary is-small button--editOccupancyType" type="button">' +
|
'<button class="button is-danger is-small button--deleteOccupancyType" type="button">' +
|
||||||
'<span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span>' +
|
'<span class="icon is-small"><i class="fas fa-trash" aria-hidden="true"></i></span>' +
|
||||||
"<span>Edit " +
|
"<span>Delete</span>" +
|
||||||
exports.aliases.occupancy +
|
"</button>" +
|
||||||
" Type</span>" +
|
"</div>") +
|
||||||
"</button>" +
|
('<div class="level-item">' +
|
||||||
"</div>" +
|
'<button class="button is-primary is-small button--editOccupancyType" type="button">' +
|
||||||
'<div class="level-item">' +
|
'<span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span>' +
|
||||||
'<button class="button is-success is-small button--addOccupancyTypeField" type="button">' +
|
"<span>Edit " +
|
||||||
'<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>' +
|
exports.aliases.occupancy +
|
||||||
"<span>Add Field</span>" +
|
" Type</span>" +
|
||||||
"</button>" +
|
"</button>" +
|
||||||
"</div>" +
|
"</div>") +
|
||||||
|
('<div class="level-item">' +
|
||||||
|
'<button class="button is-success is-small button--addOccupancyTypeField" type="button">' +
|
||||||
|
'<span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span>' +
|
||||||
|
"<span>Add Field</span>" +
|
||||||
|
"</button>" +
|
||||||
|
"</div>") +
|
||||||
('<div class="level-item">' +
|
('<div class="level-item">' +
|
||||||
'<div class="field has-addons">' +
|
'<div class="field has-addons">' +
|
||||||
'<div class="control">' +
|
'<div class="control">' +
|
||||||
|
|
@ -356,6 +412,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
.querySelector(".button--editOccupancyType")
|
.querySelector(".button--editOccupancyType")
|
||||||
.addEventListener("click", openEditOccupancyType);
|
.addEventListener("click", openEditOccupancyType);
|
||||||
|
|
||||||
|
occupancyTypeContainer
|
||||||
|
.querySelector(".button--deleteOccupancyType")
|
||||||
|
.addEventListener("click", deleteOccupancyType);
|
||||||
|
|
||||||
occupancyTypeContainer
|
occupancyTypeContainer
|
||||||
.querySelector(".button--moveOccupancyTypeUp")
|
.querySelector(".button--moveOccupancyTypeUp")
|
||||||
.addEventListener("click", moveOccupancyTypeUp);
|
.addEventListener("click", moveOccupancyTypeUp);
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -16,6 +16,7 @@ import handler_doAddOccupancyType from "../handlers/admin-post/doAddOccupancyTyp
|
||||||
import handler_doUpdateOccupancyType from "../handlers/admin-post/doUpdateOccupancyType.js";
|
import handler_doUpdateOccupancyType from "../handlers/admin-post/doUpdateOccupancyType.js";
|
||||||
import handler_doMoveOccupancyTypeUp from "../handlers/admin-post/doMoveOccupancyTypeUp.js";
|
import handler_doMoveOccupancyTypeUp from "../handlers/admin-post/doMoveOccupancyTypeUp.js";
|
||||||
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_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";
|
||||||
|
|
@ -49,6 +50,7 @@ router.post("/doAddOccupancyType", permissionHandlers.adminPostHandler, handler_
|
||||||
router.post("/doUpdateOccupancyType", permissionHandlers.adminPostHandler, handler_doUpdateOccupancyType);
|
router.post("/doUpdateOccupancyType", permissionHandlers.adminPostHandler, handler_doUpdateOccupancyType);
|
||||||
router.post("/doMoveOccupancyTypeUp", permissionHandlers.adminPostHandler, handler_doMoveOccupancyTypeUp);
|
router.post("/doMoveOccupancyTypeUp", permissionHandlers.adminPostHandler, handler_doMoveOccupancyTypeUp);
|
||||||
router.post("/doMoveOccupancyTypeDown", permissionHandlers.adminPostHandler, handler_doMoveOccupancyTypeDown);
|
router.post("/doMoveOccupancyTypeDown", permissionHandlers.adminPostHandler, handler_doMoveOccupancyTypeDown);
|
||||||
|
router.post("/doDeleteOccupancyType", permissionHandlers.adminPostHandler, handler_doDeleteOccupancyType);
|
||||||
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);
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ import handler_doAddOccupancyType from "../handlers/admin-post/doAddOccupancyTyp
|
||||||
import handler_doUpdateOccupancyType from "../handlers/admin-post/doUpdateOccupancyType.js";
|
import handler_doUpdateOccupancyType from "../handlers/admin-post/doUpdateOccupancyType.js";
|
||||||
import handler_doMoveOccupancyTypeUp from "../handlers/admin-post/doMoveOccupancyTypeUp.js";
|
import handler_doMoveOccupancyTypeUp from "../handlers/admin-post/doMoveOccupancyTypeUp.js";
|
||||||
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";
|
||||||
|
|
||||||
// Config Table Management
|
// Config Table Management
|
||||||
|
|
||||||
|
|
@ -147,6 +148,12 @@ router.post(
|
||||||
handler_doMoveOccupancyTypeDown
|
handler_doMoveOccupancyTypeDown
|
||||||
);
|
);
|
||||||
|
|
||||||
|
router.post(
|
||||||
|
"/doDeleteOccupancyType",
|
||||||
|
permissionHandlers.adminPostHandler,
|
||||||
|
handler_doDeleteOccupancyType
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Config Tables
|
* Config Tables
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue