delete occupancy type field
parent
08f5731867
commit
bea375613f
|
|
@ -0,0 +1,3 @@
|
||||||
|
import type { RequestHandler } from "express";
|
||||||
|
export declare const handler: RequestHandler;
|
||||||
|
export default handler;
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { deleteOccupancyTypeField } from "../../helpers/lotOccupancyDB/deleteOccupancyTypeField.js";
|
||||||
|
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
|
||||||
|
export const handler = async (request, response) => {
|
||||||
|
const success = deleteOccupancyTypeField(request.body.occupancyTypeFieldId, request.session);
|
||||||
|
const occupancyTypes = getOccupancyTypes();
|
||||||
|
response.json({
|
||||||
|
success,
|
||||||
|
occupancyTypes
|
||||||
|
});
|
||||||
|
};
|
||||||
|
export default handler;
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
import type { RequestHandler } from "express";
|
||||||
|
|
||||||
|
import { deleteOccupancyTypeField } from "../../helpers/lotOccupancyDB/deleteOccupancyTypeField.js";
|
||||||
|
|
||||||
|
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
|
||||||
|
|
||||||
|
export const handler: RequestHandler = async (request, response) => {
|
||||||
|
const success = deleteOccupancyTypeField(
|
||||||
|
request.body.occupancyTypeFieldId,
|
||||||
|
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 deleteOccupancyTypeField: (occupancyTypeFieldId: number | string, requestSession: recordTypes.PartialSession) => boolean;
|
||||||
|
export default deleteOccupancyTypeField;
|
||||||
|
|
@ -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 deleteOccupancyTypeField = (occupancyTypeFieldId, requestSession) => {
|
||||||
|
const database = sqlite(databasePath);
|
||||||
|
const rightNowMillis = Date.now();
|
||||||
|
const result = database
|
||||||
|
.prepare("update OccupancyTypeFields" +
|
||||||
|
" set recordDelete_userName = ?," +
|
||||||
|
" recordDelete_timeMillis = ?" +
|
||||||
|
" where occupancyTypeFieldId = ?")
|
||||||
|
.run(requestSession.user.userName, rightNowMillis, occupancyTypeFieldId);
|
||||||
|
database.close();
|
||||||
|
clearOccupancyTypesCache();
|
||||||
|
return result.changes > 0;
|
||||||
|
};
|
||||||
|
export default deleteOccupancyTypeField;
|
||||||
|
|
@ -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 deleteOccupancyTypeField = (
|
||||||
|
occupancyTypeFieldId: number | string,
|
||||||
|
requestSession: recordTypes.PartialSession
|
||||||
|
): boolean => {
|
||||||
|
const database = sqlite(databasePath);
|
||||||
|
|
||||||
|
const rightNowMillis = Date.now();
|
||||||
|
|
||||||
|
const result = database
|
||||||
|
.prepare(
|
||||||
|
"update OccupancyTypeFields" +
|
||||||
|
" set recordDelete_userName = ?," +
|
||||||
|
" recordDelete_timeMillis = ?" +
|
||||||
|
" where occupancyTypeFieldId = ?"
|
||||||
|
)
|
||||||
|
.run(requestSession.user.userName, rightNowMillis, occupancyTypeFieldId);
|
||||||
|
|
||||||
|
database.close();
|
||||||
|
|
||||||
|
clearOccupancyTypesCache();
|
||||||
|
|
||||||
|
return result.changes > 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default deleteOccupancyTypeField;
|
||||||
|
|
@ -229,6 +229,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
const doDelete = () => {
|
||||||
|
const _doDelete = () => {
|
||||||
|
cityssm.postJSON(urlPrefix + "/admin/doDeleteOccupancyTypeField", {
|
||||||
|
occupancyTypeFieldId
|
||||||
|
}, (responseJSON) => {
|
||||||
|
if (responseJSON.success) {
|
||||||
|
occupancyTypes = responseJSON.occupancyTypes;
|
||||||
|
editCloseModalFunction();
|
||||||
|
renderOccupancyTypes();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
bulmaJS.alert({
|
||||||
|
title: "Error Deleting Field",
|
||||||
|
message: responseJSON.errorMessage,
|
||||||
|
contextualColorName: "danger"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
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: _doDelete
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField", {
|
cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField", {
|
||||||
onshow: (modalElement) => {
|
onshow: (modalElement) => {
|
||||||
los.populateAliases(modalElement);
|
los.populateAliases(modalElement);
|
||||||
|
|
@ -250,6 +279,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
},
|
},
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
editCloseModalFunction = closeModalFunction;
|
editCloseModalFunction = closeModalFunction;
|
||||||
|
bulmaJS.init(modalElement);
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
cityssm.enableNavBlocker();
|
cityssm.enableNavBlocker();
|
||||||
modalElement
|
modalElement
|
||||||
|
|
@ -258,6 +288,9 @@ 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
|
||||||
|
.querySelector("#button--deleteOccupancyTypeField")
|
||||||
|
.addEventListener("click", doDelete);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ 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";
|
||||||
|
|
||||||
import type { BulmaJS } from "@cityssm/bulma-js/types";
|
import type { BulmaJS } from "@cityssm/bulma-js/types";
|
||||||
|
import { response } from "express";
|
||||||
|
|
||||||
declare const cityssm: cityssmGlobal;
|
declare const cityssm: cityssmGlobal;
|
||||||
declare const bulmaJS: BulmaJS;
|
declare const bulmaJS: BulmaJS;
|
||||||
|
|
@ -406,6 +407,45 @@ declare const bulmaJS: BulmaJS;
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const doDelete = () => {
|
||||||
|
const _doDelete = () => {
|
||||||
|
cityssm.postJSON(
|
||||||
|
urlPrefix + "/admin/doDeleteOccupancyTypeField",
|
||||||
|
{
|
||||||
|
occupancyTypeFieldId
|
||||||
|
},
|
||||||
|
(responseJSON: {
|
||||||
|
success: boolean;
|
||||||
|
errorMessage?: string;
|
||||||
|
occupancyTypes?: recordTypes.OccupancyType[];
|
||||||
|
}) => {
|
||||||
|
if (responseJSON.success) {
|
||||||
|
occupancyTypes = responseJSON.occupancyTypes;
|
||||||
|
editCloseModalFunction();
|
||||||
|
renderOccupancyTypes();
|
||||||
|
} else {
|
||||||
|
bulmaJS.alert({
|
||||||
|
title: "Error Deleting Field",
|
||||||
|
message: responseJSON.errorMessage,
|
||||||
|
contextualColorName: "danger"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
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: _doDelete
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField", {
|
cityssm.openHtmlModal("adminOccupancyTypes-editOccupancyTypeField", {
|
||||||
onshow: (modalElement) => {
|
onshow: (modalElement) => {
|
||||||
los.populateAliases(modalElement);
|
los.populateAliases(modalElement);
|
||||||
|
|
@ -460,6 +500,7 @@ declare const bulmaJS: BulmaJS;
|
||||||
onshown: (modalElement, closeModalFunction) => {
|
onshown: (modalElement, closeModalFunction) => {
|
||||||
editCloseModalFunction = closeModalFunction;
|
editCloseModalFunction = closeModalFunction;
|
||||||
|
|
||||||
|
bulmaJS.init(modalElement);
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
cityssm.enableNavBlocker();
|
cityssm.enableNavBlocker();
|
||||||
|
|
||||||
|
|
@ -477,6 +518,10 @@ declare const bulmaJS: BulmaJS;
|
||||||
"keyup",
|
"keyup",
|
||||||
toggleInputFields
|
toggleInputFields
|
||||||
);
|
);
|
||||||
|
|
||||||
|
modalElement
|
||||||
|
.querySelector("#button--deleteOccupancyTypeField")
|
||||||
|
.addEventListener("click", doDelete);
|
||||||
},
|
},
|
||||||
onremoved: () => {
|
onremoved: () => {
|
||||||
bulmaJS.toggleHtmlClipped();
|
bulmaJS.toggleHtmlClipped();
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,24 @@
|
||||||
<span class="icon"><i class="fas fa-save" aria-hidden="true"></i></span>
|
<span class="icon"><i class="fas fa-save" aria-hidden="true"></i></span>
|
||||||
<span>Update Field</span>
|
<span>Update Field</span>
|
||||||
</button>
|
</button>
|
||||||
|
<div class="dropdown is-up is-right mr-2">
|
||||||
|
<div class="dropdown-trigger">
|
||||||
|
<button class="button" type="button">
|
||||||
|
<span>More Options</span>
|
||||||
|
<span class="icon is-small">
|
||||||
|
<i class="fas fa-angle-down" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<div class="dropdown-content">
|
||||||
|
<a class="dropdown-item" id="button--deleteOccupancyTypeField" href="#">
|
||||||
|
<span class="icon is-small"><i class="fas fa-trash has-text-danger" aria-hidden="true"></i></span>
|
||||||
|
<span>Delete Field</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<button class="button is-close-modal-button" type="button">Cancel</button>
|
<button class="button is-close-modal-button" type="button">Cancel</button>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -19,6 +19,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";
|
import handler_doUpdateOccupancyTypeField from "../handlers/admin-post/doUpdateOccupancyTypeField.js";
|
||||||
|
import handler_doDeleteOccupancyTypeField from "../handlers/admin-post/doDeleteOccupancyTypeField.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";
|
||||||
|
|
@ -60,6 +61,7 @@ router.post("/doMoveOccupancyTypeDown", permissionHandlers.adminPostHandler, han
|
||||||
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.post("/doUpdateOccupancyTypeField", permissionHandlers.adminPostHandler, handler_doUpdateOccupancyTypeField);
|
||||||
|
router.post("/doDeleteOccupancyTypeField", permissionHandlers.adminPostHandler, handler_doDeleteOccupancyTypeField);
|
||||||
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);
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import handler_doDeleteOccupancyType from "../handlers/admin-post/doDeleteOccupa
|
||||||
|
|
||||||
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_doUpdateOccupancyTypeField from "../handlers/admin-post/doUpdateOccupancyTypeField.js";
|
||||||
|
import handler_doDeleteOccupancyTypeField from "../handlers/admin-post/doDeleteOccupancyTypeField.js";
|
||||||
|
|
||||||
// Config Table Management
|
// Config Table Management
|
||||||
|
|
||||||
|
|
@ -177,6 +178,12 @@ router.post(
|
||||||
handler_doUpdateOccupancyTypeField
|
handler_doUpdateOccupancyTypeField
|
||||||
);
|
);
|
||||||
|
|
||||||
|
router.post(
|
||||||
|
"/doDeleteOccupancyTypeField",
|
||||||
|
permissionHandlers.adminPostHandler,
|
||||||
|
handler_doDeleteOccupancyTypeField
|
||||||
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Config Tables
|
* Config Tables
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue