From 111663a2746c45b9c91f94eb1cc72b19133443e0 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Tue, 29 Apr 2025 13:14:43 -0400 Subject: [PATCH] interment container type maint closes #8 --- database/addIntermentContainerType.d.ts | 4 +- database/addIntermentContainerType.js | 2 +- database/addIntermentContainerType.ts | 6 +- database/deleteRecord.d.ts | 2 +- database/deleteRecord.js | 1 + database/deleteRecord.ts | 2 + database/moveRecord.d.ts | 2 +- database/moveRecord.js | 1 + database/moveRecord.ts | 2 + database/updateIntermentContainerType.d.ts | 6 + database/updateIntermentContainerType.js | 18 ++ database/updateIntermentContainerType.ts | 43 +++ .../doAddIntermentContainerType.d.ts | 3 + .../admin-post/doAddIntermentContainerType.js | 11 + .../admin-post/doAddIntermentContainerType.ts | 25 ++ .../doDeleteIntermentContainerType.d.ts | 4 + .../doDeleteIntermentContainerType.js | 10 + .../doDeleteIntermentContainerType.ts | 23 ++ .../doMoveIntermentContainerTypeDown.d.ts | 5 + .../doMoveIntermentContainerTypeDown.js | 12 + .../doMoveIntermentContainerTypeDown.ts | 35 +++ .../doMoveIntermentContainerTypeUp.d.ts | 5 + .../doMoveIntermentContainerTypeUp.js | 12 + .../doMoveIntermentContainerTypeUp.ts | 32 ++ .../admin-post/doUpdateCommittalType.d.ts | 2 +- handlers/admin-post/doUpdateCommittalType.ts | 2 +- .../doUpdateIntermentContainerType.d.ts | 3 + .../doUpdateIntermentContainerType.js | 10 + .../doUpdateIntermentContainerType.ts | 24 ++ .../javascripts/burialSiteStatuses.admin.js | 2 +- .../javascripts/burialSiteStatuses.admin.ts | 2 +- public/javascripts/committalTypes.admin.js | 2 +- public/javascripts/committalTypes.admin.ts | 2 +- .../intermentContainerTypes.admin.d.ts | 1 + .../intermentContainerTypes.admin.js | 181 ++++++++++++ .../intermentContainerTypes.admin.ts | 275 ++++++++++++++++++ .../workOrderMilestoneTypes.admin.js | 2 +- .../workOrderMilestoneTypes.admin.ts | 2 +- public/javascripts/workOrderTypes.admin.js | 2 +- public/javascripts/workOrderTypes.admin.ts | 2 +- routes/admin.js | 11 + routes/admin.ts | 34 ++- views/admin-tables.ejs | 91 +++++- 43 files changed, 890 insertions(+), 26 deletions(-) create mode 100644 database/updateIntermentContainerType.d.ts create mode 100644 database/updateIntermentContainerType.js create mode 100644 database/updateIntermentContainerType.ts create mode 100644 handlers/admin-post/doAddIntermentContainerType.d.ts create mode 100644 handlers/admin-post/doAddIntermentContainerType.js create mode 100644 handlers/admin-post/doAddIntermentContainerType.ts create mode 100644 handlers/admin-post/doDeleteIntermentContainerType.d.ts create mode 100644 handlers/admin-post/doDeleteIntermentContainerType.js create mode 100644 handlers/admin-post/doDeleteIntermentContainerType.ts create mode 100644 handlers/admin-post/doMoveIntermentContainerTypeDown.d.ts create mode 100644 handlers/admin-post/doMoveIntermentContainerTypeDown.js create mode 100644 handlers/admin-post/doMoveIntermentContainerTypeDown.ts create mode 100644 handlers/admin-post/doMoveIntermentContainerTypeUp.d.ts create mode 100644 handlers/admin-post/doMoveIntermentContainerTypeUp.js create mode 100644 handlers/admin-post/doMoveIntermentContainerTypeUp.ts create mode 100644 handlers/admin-post/doUpdateIntermentContainerType.d.ts create mode 100644 handlers/admin-post/doUpdateIntermentContainerType.js create mode 100644 handlers/admin-post/doUpdateIntermentContainerType.ts create mode 100644 public/javascripts/intermentContainerTypes.admin.d.ts create mode 100644 public/javascripts/intermentContainerTypes.admin.js create mode 100644 public/javascripts/intermentContainerTypes.admin.ts diff --git a/database/addIntermentContainerType.d.ts b/database/addIntermentContainerType.d.ts index 21ecbde4..bde5846c 100644 --- a/database/addIntermentContainerType.d.ts +++ b/database/addIntermentContainerType.d.ts @@ -1,7 +1,7 @@ export interface AddForm { intermentContainerType: string; intermentContainerTypeKey?: string; - isCremationType?: string; - orderNumber?: number; + isCremationType: '0' | '1'; + orderNumber?: number | string; } export default function addIntermentContainerType(addForm: AddForm, user: User): number; diff --git a/database/addIntermentContainerType.js b/database/addIntermentContainerType.js index 235a5c7d..c605fc63 100644 --- a/database/addIntermentContainerType.js +++ b/database/addIntermentContainerType.js @@ -10,7 +10,7 @@ export default function addIntermentContainerType(addForm, user) { recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis) values (?, ?, ?, ?, ?, ?, ?, ?)`) - .run(addForm.intermentContainerType, addForm.intermentContainerTypeKey ?? '', addForm.isCremationType === undefined ? 0 : 1, addForm.orderNumber ?? -1, user.userName, rightNowMillis, user.userName, rightNowMillis); + .run(addForm.intermentContainerType, addForm.intermentContainerTypeKey ?? '', addForm.isCremationType, addForm.orderNumber ?? -1, user.userName, rightNowMillis, user.userName, rightNowMillis); database.close(); clearCacheByTableName('IntermentContainerTypes'); return result.lastInsertRowid; diff --git a/database/addIntermentContainerType.ts b/database/addIntermentContainerType.ts index 25315c09..12a3ea50 100644 --- a/database/addIntermentContainerType.ts +++ b/database/addIntermentContainerType.ts @@ -6,8 +6,8 @@ import { clearCacheByTableName } from '../helpers/functions.cache.js' export interface AddForm { intermentContainerType: string intermentContainerTypeKey?: string - isCremationType?: string - orderNumber?: number + isCremationType: '0' | '1' + orderNumber?: number | string } export default function addIntermentContainerType( @@ -29,7 +29,7 @@ export default function addIntermentContainerType( .run( addForm.intermentContainerType, addForm.intermentContainerTypeKey ?? '', - addForm.isCremationType === undefined ? 0 : 1, + addForm.isCremationType, addForm.orderNumber ?? -1, user.userName, rightNowMillis, diff --git a/database/deleteRecord.d.ts b/database/deleteRecord.d.ts index e7cbe4bb..ce67c986 100644 --- a/database/deleteRecord.d.ts +++ b/database/deleteRecord.d.ts @@ -1,3 +1,3 @@ -type RecordTable = 'BurialSiteComments' | 'BurialSiteStatuses' | 'BurialSiteTypeFields' | 'BurialSiteTypes' | 'CommittalTypes' | 'ContractComments' | 'Contracts' | 'ContractTypeFields' | 'ContractTypes' | 'FeeCategories' | 'Fees' | 'FuneralHomes' | 'WorkOrderComments' | 'WorkOrderMilestones' | 'WorkOrderMilestoneTypes' | 'WorkOrders' | 'WorkOrderTypes'; +type RecordTable = 'BurialSiteComments' | 'BurialSiteStatuses' | 'BurialSiteTypeFields' | 'BurialSiteTypes' | 'CommittalTypes' | 'ContractComments' | 'Contracts' | 'ContractTypeFields' | 'ContractTypes' | 'FeeCategories' | 'Fees' | 'FuneralHomes' | 'IntermentContainerTypes' | 'WorkOrderComments' | 'WorkOrderMilestones' | 'WorkOrderMilestoneTypes' | 'WorkOrders' | 'WorkOrderTypes'; export declare function deleteRecord(recordTable: RecordTable, recordId: number | string, user: User): boolean; export {}; diff --git a/database/deleteRecord.js b/database/deleteRecord.js index d8885962..2aef1f10 100644 --- a/database/deleteRecord.js +++ b/database/deleteRecord.js @@ -14,6 +14,7 @@ const recordIdColumns = new Map([ ['FeeCategories', 'feeCategoryId'], ['Fees', 'feeId'], ['FuneralHomes', 'funeralHomeId'], + ['IntermentContainerTypes', 'intermentContainerTypeId'], ['WorkOrderComments', 'workOrderCommentId'], ['WorkOrderMilestones', 'workOrderMilestoneId'], ['WorkOrderMilestoneTypes', 'workOrderMilestoneTypeId'], diff --git a/database/deleteRecord.ts b/database/deleteRecord.ts index c53a46ea..efe0df8d 100644 --- a/database/deleteRecord.ts +++ b/database/deleteRecord.ts @@ -16,6 +16,7 @@ type RecordTable = | 'FeeCategories' | 'Fees' | 'FuneralHomes' + | 'IntermentContainerTypes' | 'WorkOrderComments' | 'WorkOrderMilestones' | 'WorkOrderMilestoneTypes' @@ -35,6 +36,7 @@ const recordIdColumns = new Map([ ['FeeCategories', 'feeCategoryId'], ['Fees', 'feeId'], ['FuneralHomes', 'funeralHomeId'], + ['IntermentContainerTypes', 'intermentContainerTypeId'], ['WorkOrderComments', 'workOrderCommentId'], ['WorkOrderMilestones', 'workOrderMilestoneId'], ['WorkOrderMilestoneTypes', 'workOrderMilestoneTypeId'], diff --git a/database/moveRecord.d.ts b/database/moveRecord.d.ts index 6e850cb4..1e3c7de0 100644 --- a/database/moveRecord.d.ts +++ b/database/moveRecord.d.ts @@ -1,4 +1,4 @@ -type RecordTable = 'BurialSiteStatuses' | 'BurialSiteTypes' | 'CommittalTypes' | 'ContractTypes' | 'FeeCategories' | 'WorkOrderMilestoneTypes' | 'WorkOrderTypes'; +type RecordTable = 'BurialSiteStatuses' | 'BurialSiteTypes' | 'CommittalTypes' | 'ContractTypes' | 'FeeCategories' | 'IntermentContainerTypes' | 'WorkOrderMilestoneTypes' | 'WorkOrderTypes'; export declare function moveRecordDown(recordTable: RecordTable, recordId: number | string): boolean; export declare function moveRecordDownToBottom(recordTable: RecordTable, recordId: number | string): boolean; export declare function moveRecordUp(recordTable: RecordTable, recordId: number | string): boolean; diff --git a/database/moveRecord.js b/database/moveRecord.js index 6e0a60a2..236ae5ef 100644 --- a/database/moveRecord.js +++ b/database/moveRecord.js @@ -8,6 +8,7 @@ const recordIdColumns = new Map([ ['CommittalTypes', 'committalTypeId'], ['ContractTypes', 'contractTypeId'], ['FeeCategories', 'feeCategoryId'], + ['IntermentContainerTypes', 'intermentContainerTypeId'], ['WorkOrderMilestoneTypes', 'workOrderMilestoneTypeId'], ['WorkOrderTypes', 'workOrderTypeId'] ]); diff --git a/database/moveRecord.ts b/database/moveRecord.ts index 473f55de..881d22d6 100644 --- a/database/moveRecord.ts +++ b/database/moveRecord.ts @@ -11,6 +11,7 @@ type RecordTable = | 'CommittalTypes' | 'ContractTypes' | 'FeeCategories' + | 'IntermentContainerTypes' | 'WorkOrderMilestoneTypes' | 'WorkOrderTypes' @@ -20,6 +21,7 @@ const recordIdColumns = new Map([ ['CommittalTypes', 'committalTypeId'], ['ContractTypes', 'contractTypeId'], ['FeeCategories', 'feeCategoryId'], + ['IntermentContainerTypes', 'intermentContainerTypeId'], ['WorkOrderMilestoneTypes', 'workOrderMilestoneTypeId'], ['WorkOrderTypes', 'workOrderTypeId'] ]) diff --git a/database/updateIntermentContainerType.d.ts b/database/updateIntermentContainerType.d.ts new file mode 100644 index 00000000..3b672ffa --- /dev/null +++ b/database/updateIntermentContainerType.d.ts @@ -0,0 +1,6 @@ +export interface UpdateIntermentContainerTypeForm { + intermentContainerTypeId: number | string; + intermentContainerType: string; + isCremationType: '0' | '1'; +} +export default function updateIntermentContainerType(updateForm: UpdateIntermentContainerTypeForm, user: User): boolean; diff --git a/database/updateIntermentContainerType.js b/database/updateIntermentContainerType.js new file mode 100644 index 00000000..7b1e0821 --- /dev/null +++ b/database/updateIntermentContainerType.js @@ -0,0 +1,18 @@ +import sqlite from 'better-sqlite3'; +import { sunriseDB } from '../helpers/database.helpers.js'; +import { clearCacheByTableName } from '../helpers/functions.cache.js'; +export default function updateIntermentContainerType(updateForm, user) { + const database = sqlite(sunriseDB); + const rightNowMillis = Date.now(); + const result = database + .prepare(`update IntermentContainerTypes + set intermentContainerType = ?, + isCremationType = ?, + recordUpdate_userName = ?, recordUpdate_timeMillis = ? + where recordDelete_timeMillis is null + and intermentContainerTypeId = ?`) + .run(updateForm.intermentContainerType, updateForm.isCremationType, user.userName, rightNowMillis, updateForm.intermentContainerTypeId); + database.close(); + clearCacheByTableName('IntermentContainerTypes'); + return result.changes > 0; +} diff --git a/database/updateIntermentContainerType.ts b/database/updateIntermentContainerType.ts new file mode 100644 index 00000000..a3896f09 --- /dev/null +++ b/database/updateIntermentContainerType.ts @@ -0,0 +1,43 @@ +import sqlite from 'better-sqlite3' + +import { sunriseDB } from '../helpers/database.helpers.js' +import { clearCacheByTableName } from '../helpers/functions.cache.js' + +export interface UpdateIntermentContainerTypeForm { + intermentContainerTypeId: number | string + + intermentContainerType: string + isCremationType: '0' | '1' +} + +export default function updateIntermentContainerType( + updateForm: UpdateIntermentContainerTypeForm, + user: User +): boolean { + const database = sqlite(sunriseDB) + + const rightNowMillis = Date.now() + + const result = database + .prepare( + `update IntermentContainerTypes + set intermentContainerType = ?, + isCremationType = ?, + recordUpdate_userName = ?, recordUpdate_timeMillis = ? + where recordDelete_timeMillis is null + and intermentContainerTypeId = ?` + ) + .run( + updateForm.intermentContainerType, + updateForm.isCremationType, + user.userName, + rightNowMillis, + updateForm.intermentContainerTypeId + ) + + database.close() + + clearCacheByTableName('IntermentContainerTypes') + + return result.changes > 0 +} diff --git a/handlers/admin-post/doAddIntermentContainerType.d.ts b/handlers/admin-post/doAddIntermentContainerType.d.ts new file mode 100644 index 00000000..103dba76 --- /dev/null +++ b/handlers/admin-post/doAddIntermentContainerType.d.ts @@ -0,0 +1,3 @@ +import type { Request, Response } from 'express'; +import { type AddIntermentContainerTypeForm } from '../../database/addIntermentContainerType.js'; +export default function handler(request: Request, response: Response): void; diff --git a/handlers/admin-post/doAddIntermentContainerType.js b/handlers/admin-post/doAddIntermentContainerType.js new file mode 100644 index 00000000..66f7885b --- /dev/null +++ b/handlers/admin-post/doAddIntermentContainerType.js @@ -0,0 +1,11 @@ +import addIntermentContainerType from '../../database/addIntermentContainerType.js'; +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js'; +export default function handler(request, response) { + const intermentContainerTypeId = addIntermentContainerType(request.body, request.session.user); + const intermentContainerTypes = getIntermentContainerTypes(); + response.json({ + success: true, + intermentContainerTypeId, + intermentContainerTypes + }); +} diff --git a/handlers/admin-post/doAddIntermentContainerType.ts b/handlers/admin-post/doAddIntermentContainerType.ts new file mode 100644 index 00000000..f5ab6cc0 --- /dev/null +++ b/handlers/admin-post/doAddIntermentContainerType.ts @@ -0,0 +1,25 @@ +import type { Request, Response } from 'express' + +import addIntermentContainerType, { + type AddIntermentContainerTypeForm +} from '../../database/addIntermentContainerType.js' +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js' + +export default function handler( + request: Request, + response: Response +): void { + const intermentContainerTypeId = addIntermentContainerType( + request.body, + request.session.user as User + ) + + const intermentContainerTypes = getIntermentContainerTypes() + + response.json({ + success: true, + + intermentContainerTypeId, + intermentContainerTypes + }) +} diff --git a/handlers/admin-post/doDeleteIntermentContainerType.d.ts b/handlers/admin-post/doDeleteIntermentContainerType.d.ts new file mode 100644 index 00000000..4038bcf1 --- /dev/null +++ b/handlers/admin-post/doDeleteIntermentContainerType.d.ts @@ -0,0 +1,4 @@ +import type { Request, Response } from 'express'; +export default function handler(request: Request, response: Response): void; diff --git a/handlers/admin-post/doDeleteIntermentContainerType.js b/handlers/admin-post/doDeleteIntermentContainerType.js new file mode 100644 index 00000000..46fc3b81 --- /dev/null +++ b/handlers/admin-post/doDeleteIntermentContainerType.js @@ -0,0 +1,10 @@ +import { deleteRecord } from '../../database/deleteRecord.js'; +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js'; +export default function handler(request, response) { + const success = deleteRecord('IntermentContainerTypes', request.body.intermentContainerTypeId, request.session.user); + const intermentContainerTypes = getIntermentContainerTypes(); + response.json({ + success, + intermentContainerTypes + }); +} diff --git a/handlers/admin-post/doDeleteIntermentContainerType.ts b/handlers/admin-post/doDeleteIntermentContainerType.ts new file mode 100644 index 00000000..ff168576 --- /dev/null +++ b/handlers/admin-post/doDeleteIntermentContainerType.ts @@ -0,0 +1,23 @@ +import type { Request, Response } from 'express' + +import { deleteRecord } from '../../database/deleteRecord.js' +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js' + +export default function handler( + request: Request, + response: Response +): void { + const success = deleteRecord( + 'IntermentContainerTypes', + request.body.intermentContainerTypeId as string, + request.session.user as User + ) + + const intermentContainerTypes = getIntermentContainerTypes() + + response.json({ + success, + + intermentContainerTypes + }) +} diff --git a/handlers/admin-post/doMoveIntermentContainerTypeDown.d.ts b/handlers/admin-post/doMoveIntermentContainerTypeDown.d.ts new file mode 100644 index 00000000..6f9fd219 --- /dev/null +++ b/handlers/admin-post/doMoveIntermentContainerTypeDown.d.ts @@ -0,0 +1,5 @@ +import type { Request, Response } from 'express'; +export default function handler(request: Request, response: Response): void; diff --git a/handlers/admin-post/doMoveIntermentContainerTypeDown.js b/handlers/admin-post/doMoveIntermentContainerTypeDown.js new file mode 100644 index 00000000..18d0214e --- /dev/null +++ b/handlers/admin-post/doMoveIntermentContainerTypeDown.js @@ -0,0 +1,12 @@ +import { moveRecordDown, moveRecordDownToBottom } from '../../database/moveRecord.js'; +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js'; +export default function handler(request, response) { + const success = request.body.moveToEnd === '1' + ? moveRecordDownToBottom('IntermentContainerTypes', request.body.intermentContainerTypeId) + : moveRecordDown('IntermentContainerTypes', request.body.intermentContainerTypeId); + const intermentContainerTypes = getIntermentContainerTypes(); + response.json({ + success, + intermentContainerTypes + }); +} diff --git a/handlers/admin-post/doMoveIntermentContainerTypeDown.ts b/handlers/admin-post/doMoveIntermentContainerTypeDown.ts new file mode 100644 index 00000000..187c6271 --- /dev/null +++ b/handlers/admin-post/doMoveIntermentContainerTypeDown.ts @@ -0,0 +1,35 @@ +import type { Request, Response } from 'express' + +import { + moveRecordDown, + moveRecordDownToBottom +} from '../../database/moveRecord.js' +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js' + +export default function handler( + request: Request< + unknown, + unknown, + { intermentContainerTypeId: string; moveToEnd: '0' | '1' } + >, + response: Response +): void { + const success = + request.body.moveToEnd === '1' + ? moveRecordDownToBottom( + 'IntermentContainerTypes', + request.body.intermentContainerTypeId + ) + : moveRecordDown( + 'IntermentContainerTypes', + request.body.intermentContainerTypeId + ) + + const intermentContainerTypes = getIntermentContainerTypes() + + response.json({ + success, + + intermentContainerTypes + }) +} diff --git a/handlers/admin-post/doMoveIntermentContainerTypeUp.d.ts b/handlers/admin-post/doMoveIntermentContainerTypeUp.d.ts new file mode 100644 index 00000000..6f9fd219 --- /dev/null +++ b/handlers/admin-post/doMoveIntermentContainerTypeUp.d.ts @@ -0,0 +1,5 @@ +import type { Request, Response } from 'express'; +export default function handler(request: Request, response: Response): void; diff --git a/handlers/admin-post/doMoveIntermentContainerTypeUp.js b/handlers/admin-post/doMoveIntermentContainerTypeUp.js new file mode 100644 index 00000000..93195f1c --- /dev/null +++ b/handlers/admin-post/doMoveIntermentContainerTypeUp.js @@ -0,0 +1,12 @@ +import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js'; +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js'; +export default function handler(request, response) { + const success = request.body.moveToEnd === '1' + ? moveRecordUpToTop('IntermentContainerTypes', request.body.intermentContainerTypeId) + : moveRecordUp('IntermentContainerTypes', request.body.intermentContainerTypeId); + const intermentContainerTypes = getIntermentContainerTypes(); + response.json({ + success, + intermentContainerTypes + }); +} diff --git a/handlers/admin-post/doMoveIntermentContainerTypeUp.ts b/handlers/admin-post/doMoveIntermentContainerTypeUp.ts new file mode 100644 index 00000000..a73164c0 --- /dev/null +++ b/handlers/admin-post/doMoveIntermentContainerTypeUp.ts @@ -0,0 +1,32 @@ +import type { Request, Response } from 'express' + +import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js' +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js' + +export default function handler( + request: Request< + unknown, + unknown, + { intermentContainerTypeId: string; moveToEnd: '0' | '1' } + >, + response: Response +): void { + const success = + request.body.moveToEnd === '1' + ? moveRecordUpToTop( + 'IntermentContainerTypes', + request.body.intermentContainerTypeId + ) + : moveRecordUp( + 'IntermentContainerTypes', + request.body.intermentContainerTypeId + ) + + const intermentContainerTypes = getIntermentContainerTypes() + + response.json({ + success, + + intermentContainerTypes + }) +} diff --git a/handlers/admin-post/doUpdateCommittalType.d.ts b/handlers/admin-post/doUpdateCommittalType.d.ts index f40ee0a2..540b96af 100644 --- a/handlers/admin-post/doUpdateCommittalType.d.ts +++ b/handlers/admin-post/doUpdateCommittalType.d.ts @@ -1,5 +1,5 @@ import type { Request, Response } from 'express'; export default function handler(request: Request, response: Response): void; diff --git a/handlers/admin-post/doUpdateCommittalType.ts b/handlers/admin-post/doUpdateCommittalType.ts index 03c3062c..d0e2c490 100644 --- a/handlers/admin-post/doUpdateCommittalType.ts +++ b/handlers/admin-post/doUpdateCommittalType.ts @@ -7,7 +7,7 @@ export default function handler( request: Request< unknown, unknown, - { committalTypeId: string; committalType: string } + { committalType: string; committalTypeId: string; } >, response: Response ): void { diff --git a/handlers/admin-post/doUpdateIntermentContainerType.d.ts b/handlers/admin-post/doUpdateIntermentContainerType.d.ts new file mode 100644 index 00000000..029bf509 --- /dev/null +++ b/handlers/admin-post/doUpdateIntermentContainerType.d.ts @@ -0,0 +1,3 @@ +import type { Request, Response } from 'express'; +import { type UpdateIntermentContainerTypeForm } from '../../database/updateIntermentContainerType.js'; +export default function handler(request: Request, response: Response): void; diff --git a/handlers/admin-post/doUpdateIntermentContainerType.js b/handlers/admin-post/doUpdateIntermentContainerType.js new file mode 100644 index 00000000..a9c9badd --- /dev/null +++ b/handlers/admin-post/doUpdateIntermentContainerType.js @@ -0,0 +1,10 @@ +import updateIntermentContainerType from '../../database/updateIntermentContainerType.js'; +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js'; +export default function handler(request, response) { + const success = updateIntermentContainerType(request.body, request.session.user); + const intermentContainerTypes = getIntermentContainerTypes(); + response.json({ + success, + intermentContainerTypes + }); +} diff --git a/handlers/admin-post/doUpdateIntermentContainerType.ts b/handlers/admin-post/doUpdateIntermentContainerType.ts new file mode 100644 index 00000000..636626bc --- /dev/null +++ b/handlers/admin-post/doUpdateIntermentContainerType.ts @@ -0,0 +1,24 @@ +import type { Request, Response } from 'express' + +import updateIntermentContainerType, { + type UpdateIntermentContainerTypeForm +} from '../../database/updateIntermentContainerType.js' +import { getIntermentContainerTypes } from '../../helpers/functions.cache.js' + +export default function handler( + request: Request, + response: Response +): void { + const success = updateIntermentContainerType( + request.body, + request.session.user as User + ) + + const intermentContainerTypes = getIntermentContainerTypes() + + response.json({ + success, + + intermentContainerTypes + }) +} diff --git a/public/javascripts/burialSiteStatuses.admin.js b/public/javascripts/burialSiteStatuses.admin.js index 81fb2430..ec1a535d 100644 --- a/public/javascripts/burialSiteStatuses.admin.js +++ b/public/javascripts/burialSiteStatuses.admin.js @@ -110,7 +110,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
-
+
diff --git a/public/javascripts/burialSiteStatuses.admin.ts b/public/javascripts/burialSiteStatuses.admin.ts index 29bf54c4..e619c959 100644 --- a/public/javascripts/burialSiteStatuses.admin.ts +++ b/public/javascripts/burialSiteStatuses.admin.ts @@ -171,7 +171,7 @@ declare const bulmaJS: BulmaJS
-
+
diff --git a/public/javascripts/committalTypes.admin.js b/public/javascripts/committalTypes.admin.js index fb41149d..de4a35d3 100644 --- a/public/javascripts/committalTypes.admin.js +++ b/public/javascripts/committalTypes.admin.js @@ -110,7 +110,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
-
+
diff --git a/public/javascripts/committalTypes.admin.ts b/public/javascripts/committalTypes.admin.ts index c357733d..b1753b4f 100644 --- a/public/javascripts/committalTypes.admin.ts +++ b/public/javascripts/committalTypes.admin.ts @@ -171,7 +171,7 @@ declare const bulmaJS: BulmaJS
-
+
diff --git a/public/javascripts/intermentContainerTypes.admin.d.ts b/public/javascripts/intermentContainerTypes.admin.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/public/javascripts/intermentContainerTypes.admin.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/public/javascripts/intermentContainerTypes.admin.js b/public/javascripts/intermentContainerTypes.admin.js new file mode 100644 index 00000000..171b45af --- /dev/null +++ b/public/javascripts/intermentContainerTypes.admin.js @@ -0,0 +1,181 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +(() => { + const sunrise = exports.sunrise; + let intermentContainerTypes = exports.intermentContainerTypes; + delete exports.intermentContainerTypes; + function updateIntermentContainerType(submitEvent) { + submitEvent.preventDefault(); + cityssm.postJSON(`${sunrise.urlPrefix}/admin/doUpdateIntermentContainerType`, submitEvent.currentTarget, (rawResponseJSON) => { + const responseJSON = rawResponseJSON; + if (responseJSON.success) { + intermentContainerTypes = responseJSON.intermentContainerTypes; + bulmaJS.alert({ + message: 'Interment Container Type Updated Successfully', + contextualColorName: 'success' + }); + } + else { + bulmaJS.alert({ + title: 'Error Updating Interment Container Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }); + } + }); + } + function deleteIntermentContainerType(clickEvent) { + const tableRowElement = clickEvent.currentTarget.closest('tr'); + const intermentContainerTypeId = tableRowElement.dataset.intermentContainerTypeId; + function doDelete() { + cityssm.postJSON(`${sunrise.urlPrefix}/admin/doDeleteIntermentContainerType`, { + intermentContainerTypeId + }, (rawResponseJSON) => { + const responseJSON = rawResponseJSON; + if (responseJSON.success) { + intermentContainerTypes = responseJSON.intermentContainerTypes; + if (intermentContainerTypes.length === 0) { + renderIntermentContainerTypes(); + } + else { + tableRowElement.remove(); + } + bulmaJS.alert({ + message: 'Interment Container Type Deleted Successfully', + contextualColorName: 'success' + }); + } + else { + bulmaJS.alert({ + title: 'Error Deleting Interment Container Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }); + } + }); + } + bulmaJS.confirm({ + title: 'Delete Interment Container Type', + message: `Are you sure you want to delete this type?
+ Note that no contracts will be removed.`, + messageIsHtml: true, + contextualColorName: 'warning', + okButton: { + text: 'Yes, Delete Type', + callbackFunction: doDelete + } + }); + } + function moveIntermentContainerType(clickEvent) { + const buttonElement = clickEvent.currentTarget; + const tableRowElement = buttonElement.closest('tr'); + const intermentContainerTypeId = tableRowElement.dataset.intermentContainerTypeId; + cityssm.postJSON(`${sunrise.urlPrefix}/admin/${buttonElement.dataset.direction === 'up' + ? 'doMoveIntermentContainerTypeUp' + : 'doMoveIntermentContainerTypeDown'}`, { + intermentContainerTypeId, + moveToEnd: clickEvent.shiftKey ? '1' : '0' + }, (rawResponseJSON) => { + const responseJSON = rawResponseJSON; + if (responseJSON.success) { + intermentContainerTypes = responseJSON.intermentContainerTypes; + renderIntermentContainerTypes(); + } + else { + bulmaJS.alert({ + title: 'Error Moving Interment Container Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }); + } + }); + } + function renderIntermentContainerTypes() { + const containerElement = document.querySelector('#container--intermentContainerTypes'); + if (intermentContainerTypes.length === 0) { + containerElement.innerHTML = ` +
+

There are no active interment container types.

+
+ `; + return; + } + containerElement.innerHTML = ''; + for (const intermentContainerType of intermentContainerTypes) { + const tableRowElement = document.createElement('tr'); + tableRowElement.dataset.intermentContainerTypeId = + intermentContainerType.intermentContainerTypeId.toString(); + const formId = `form--updateIntermentContainerType_${intermentContainerType.intermentContainerTypeId.toString()}`; + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` + + +
+
+ +
+
+ + + +
+ +
+ + +
+
+ +
+
+ ${sunrise.getMoveUpDownButtonFieldHTML('button--moveIntermentContainerTypeUp', 'button--moveIntermentContainerTypeDown', false)} +
+
+ +
+
+ `; + tableRowElement + .querySelector('form') + ?.addEventListener('submit', updateIntermentContainerType); + tableRowElement.querySelector('.button--moveIntermentContainerTypeUp').addEventListener('click', moveIntermentContainerType); + tableRowElement.querySelector('.button--moveIntermentContainerTypeDown').addEventListener('click', moveIntermentContainerType); + tableRowElement + .querySelector('.button--deleteIntermentContainerType') + ?.addEventListener('click', deleteIntermentContainerType); + containerElement.append(tableRowElement); + } + } + ; + document.querySelector('#form--addIntermentContainerType').addEventListener('submit', (submitEvent) => { + submitEvent.preventDefault(); + const formElement = submitEvent.currentTarget; + cityssm.postJSON(`${sunrise.urlPrefix}/admin/doAddIntermentContainerType`, formElement, (rawResponseJSON) => { + const responseJSON = rawResponseJSON; + if (responseJSON.success) { + intermentContainerTypes = responseJSON.intermentContainerTypes; + renderIntermentContainerTypes(); + formElement.reset(); + formElement.querySelector('input')?.focus(); + } + else { + bulmaJS.alert({ + title: 'Error Adding Interment Container Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }); + } + }); + }); + renderIntermentContainerTypes(); +})(); diff --git a/public/javascripts/intermentContainerTypes.admin.ts b/public/javascripts/intermentContainerTypes.admin.ts new file mode 100644 index 00000000..cdb5c1a1 --- /dev/null +++ b/public/javascripts/intermentContainerTypes.admin.ts @@ -0,0 +1,275 @@ +import type { BulmaJS } from '@cityssm/bulma-js/types.js' +import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types.js' + +import type { IntermentContainerType } from '../../types/record.types.js' + +import type { Sunrise } from './types.js' + +declare const exports: { + sunrise: Sunrise + + intermentContainerTypes?: IntermentContainerType[] +} + +declare const cityssm: cityssmGlobal +declare const bulmaJS: BulmaJS +;(() => { + const sunrise = exports.sunrise as Sunrise + + let intermentContainerTypes = + exports.intermentContainerTypes as IntermentContainerType[] + delete exports.intermentContainerTypes + + type IntermentContainerTypeResponseJSON = + | { + success: false + errorMessage?: string + } + | { + success: true + intermentContainerTypes: IntermentContainerType[] + } + + function updateIntermentContainerType(submitEvent: SubmitEvent): void { + submitEvent.preventDefault() + + cityssm.postJSON( + `${sunrise.urlPrefix}/admin/doUpdateIntermentContainerType`, + submitEvent.currentTarget, + (rawResponseJSON) => { + const responseJSON = + rawResponseJSON as IntermentContainerTypeResponseJSON + + if (responseJSON.success) { + intermentContainerTypes = responseJSON.intermentContainerTypes + + bulmaJS.alert({ + message: 'Interment Container Type Updated Successfully', + contextualColorName: 'success' + }) + } else { + bulmaJS.alert({ + title: 'Error Updating Interment Container Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }) + } + } + ) + } + + function deleteIntermentContainerType(clickEvent: Event): void { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest( + 'tr' + ) as HTMLTableRowElement + + const intermentContainerTypeId = + tableRowElement.dataset.intermentContainerTypeId + + function doDelete(): void { + cityssm.postJSON( + `${sunrise.urlPrefix}/admin/doDeleteIntermentContainerType`, + { + intermentContainerTypeId + }, + (rawResponseJSON) => { + const responseJSON = + rawResponseJSON as IntermentContainerTypeResponseJSON + + if (responseJSON.success) { + intermentContainerTypes = responseJSON.intermentContainerTypes + + if (intermentContainerTypes.length === 0) { + renderIntermentContainerTypes() + } else { + tableRowElement.remove() + } + + bulmaJS.alert({ + message: 'Interment Container Type Deleted Successfully', + contextualColorName: 'success' + }) + } else { + bulmaJS.alert({ + title: 'Error Deleting Interment Container Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }) + } + } + ) + } + + bulmaJS.confirm({ + title: 'Delete Interment Container Type', + message: `Are you sure you want to delete this type?
+ Note that no contracts will be removed.`, + messageIsHtml: true, + contextualColorName: 'warning', + okButton: { + text: 'Yes, Delete Type', + callbackFunction: doDelete + } + }) + } + + function moveIntermentContainerType(clickEvent: MouseEvent): void { + const buttonElement = clickEvent.currentTarget as HTMLButtonElement + + const tableRowElement = buttonElement.closest('tr') as HTMLTableRowElement + + const intermentContainerTypeId = + tableRowElement.dataset.intermentContainerTypeId + + cityssm.postJSON( + `${sunrise.urlPrefix}/admin/${ + buttonElement.dataset.direction === 'up' + ? 'doMoveIntermentContainerTypeUp' + : 'doMoveIntermentContainerTypeDown' + }`, + { + intermentContainerTypeId, + moveToEnd: clickEvent.shiftKey ? '1' : '0' + }, + (rawResponseJSON) => { + const responseJSON = + rawResponseJSON as IntermentContainerTypeResponseJSON + + if (responseJSON.success) { + intermentContainerTypes = responseJSON.intermentContainerTypes + renderIntermentContainerTypes() + } else { + bulmaJS.alert({ + title: 'Error Moving Interment Container Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }) + } + } + ) + } + + function renderIntermentContainerTypes(): void { + const containerElement = document.querySelector( + '#container--intermentContainerTypes' + ) as HTMLTableSectionElement + + if (intermentContainerTypes.length === 0) { + containerElement.innerHTML = ` +
+

There are no active interment container types.

+
+ ` + + return + } + + containerElement.innerHTML = '' + + for (const intermentContainerType of intermentContainerTypes) { + const tableRowElement = document.createElement('tr') + + tableRowElement.dataset.intermentContainerTypeId = + intermentContainerType.intermentContainerTypeId.toString() + + const formId = `form--updateIntermentContainerType_${intermentContainerType.intermentContainerTypeId.toString()}` + + // eslint-disable-next-line no-unsanitized/property + tableRowElement.innerHTML = ` +
+ +
+
+ +
+
+
+ + +
+ +
+ + +
+
+ +
+
+ ${sunrise.getMoveUpDownButtonFieldHTML( + 'button--moveIntermentContainerTypeUp', + 'button--moveIntermentContainerTypeDown', + false + )} +
+
+ +
+
+ ` + + tableRowElement + .querySelector('form') + ?.addEventListener('submit', updateIntermentContainerType) + ;( + tableRowElement.querySelector( + '.button--moveIntermentContainerTypeUp' + ) as HTMLButtonElement + ).addEventListener('click', moveIntermentContainerType) + ;( + tableRowElement.querySelector( + '.button--moveIntermentContainerTypeDown' + ) as HTMLButtonElement + ).addEventListener('click', moveIntermentContainerType) + + tableRowElement + .querySelector('.button--deleteIntermentContainerType') + ?.addEventListener('click', deleteIntermentContainerType) + + containerElement.append(tableRowElement) + } + } + ;( + document.querySelector( + '#form--addIntermentContainerType' + ) as HTMLFormElement + ).addEventListener('submit', (submitEvent: SubmitEvent) => { + submitEvent.preventDefault() + + const formElement = submitEvent.currentTarget as HTMLFormElement + + cityssm.postJSON( + `${sunrise.urlPrefix}/admin/doAddIntermentContainerType`, + formElement, + (rawResponseJSON) => { + const responseJSON = + rawResponseJSON as IntermentContainerTypeResponseJSON + + if (responseJSON.success) { + intermentContainerTypes = responseJSON.intermentContainerTypes + renderIntermentContainerTypes() + formElement.reset() + formElement.querySelector('input')?.focus() + } else { + bulmaJS.alert({ + title: 'Error Adding Interment Container Type', + message: responseJSON.errorMessage ?? '', + contextualColorName: 'danger' + }) + } + } + ) + }) + + renderIntermentContainerTypes() +})() diff --git a/public/javascripts/workOrderMilestoneTypes.admin.js b/public/javascripts/workOrderMilestoneTypes.admin.js index 99ac07cc..f969e2a9 100644 --- a/public/javascripts/workOrderMilestoneTypes.admin.js +++ b/public/javascripts/workOrderMilestoneTypes.admin.js @@ -111,7 +111,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
-
+
-
+
-
+
diff --git a/public/javascripts/workOrderTypes.admin.ts b/public/javascripts/workOrderTypes.admin.ts index 808159f7..2908d123 100644 --- a/public/javascripts/workOrderTypes.admin.ts +++ b/public/javascripts/workOrderTypes.admin.ts @@ -169,7 +169,7 @@ declare const bulmaJS: BulmaJS
-
+
diff --git a/routes/admin.js b/routes/admin.js index b5931025..15141b1c 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -14,6 +14,7 @@ import handler_doAddContractTypeField from '../handlers/admin-post/doAddContract import handler_doAddContractTypePrint from '../handlers/admin-post/doAddContractTypePrint.js'; import handler_doAddFee from '../handlers/admin-post/doAddFee.js'; import handler_doAddFeeCategory from '../handlers/admin-post/doAddFeeCategory.js'; +import handler_doAddIntermentContainerType from '../handlers/admin-post/doAddIntermentContainerType.js'; import handler_doAddWorkOrderMilestoneType from '../handlers/admin-post/doAddWorkOrderMilestoneType.js'; import handler_doAddWorkOrderType from '../handlers/admin-post/doAddWorkOrderType.js'; import handler_doBackupDatabase from '../handlers/admin-post/doBackupDatabase.js'; @@ -27,6 +28,7 @@ import handler_doDeleteContractTypeField from '../handlers/admin-post/doDeleteCo import handler_doDeleteContractTypePrint from '../handlers/admin-post/doDeleteContractTypePrint.js'; import handler_doDeleteFee from '../handlers/admin-post/doDeleteFee.js'; import handler_doDeleteFeeCategory from '../handlers/admin-post/doDeleteFeeCategory.js'; +import handler_doDeleteIntermentContainerType from '../handlers/admin-post/doDeleteIntermentContainerType.js'; import handler_doDeleteWorkOrderMilestoneType from '../handlers/admin-post/doDeleteWorkOrderMilestoneType.js'; import handler_doDeleteWorkOrderType from '../handlers/admin-post/doDeleteWorkOrderType.js'; import handler_doMoveBurialSiteStatusDown from '../handlers/admin-post/doMoveBurialSiteStatusDown.js'; @@ -47,6 +49,8 @@ import handler_doMoveFeeCategoryDown from '../handlers/admin-post/doMoveFeeCateg import handler_doMoveFeeCategoryUp from '../handlers/admin-post/doMoveFeeCategoryUp.js'; import handler_doMoveFeeDown from '../handlers/admin-post/doMoveFeeDown.js'; import handler_doMoveFeeUp from '../handlers/admin-post/doMoveFeeUp.js'; +import handler_doMoveIntermentContainerTypeDown from '../handlers/admin-post/doMoveIntermentContainerTypeDown.js'; +import handler_doMoveIntermentContainerTypeUp from '../handlers/admin-post/doMoveIntermentContainerTypeUp.js'; import handler_doMoveWorkOrderMilestoneTypeDown from '../handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js'; import handler_doMoveWorkOrderMilestoneTypeUp from '../handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js'; import handler_doMoveWorkOrderTypeDown from '../handlers/admin-post/doMoveWorkOrderTypeDown.js'; @@ -60,6 +64,7 @@ import handler_doUpdateContractTypeField from '../handlers/admin-post/doUpdateCo import handler_doUpdateFee from '../handlers/admin-post/doUpdateFee.js'; import handler_doUpdateFeeAmount from '../handlers/admin-post/doUpdateFeeAmount.js'; import handler_doUpdateFeeCategory from '../handlers/admin-post/doUpdateFeeCategory.js'; +import handler_doUpdateIntermentContainerType from '../handlers/admin-post/doUpdateIntermentContainerType.js'; import handler_doUpdateWorkOrderMilestoneType from '../handlers/admin-post/doUpdateWorkOrderMilestoneType.js'; import handler_doUpdateWorkOrderType from '../handlers/admin-post/doUpdateWorkOrderType.js'; // Ntfy Startup @@ -144,6 +149,12 @@ router.post('/doUpdateCommittalType', handler_doUpdateCommittalType); router.post('/doMoveCommittalTypeUp', handler_doMoveCommittalTypeUp); router.post('/doMoveCommittalTypeDown', handler_doMoveCommittalTypeDown); router.post('/doDeleteCommittalType', handler_doDeleteCommittalType); +// Config Tables - Interment Container Types +router.post('/doAddIntermentContainerType', handler_doAddIntermentContainerType); +router.post('/doUpdateIntermentContainerType', handler_doUpdateIntermentContainerType); +router.post('/doMoveIntermentContainerTypeUp', handler_doMoveIntermentContainerTypeUp); +router.post('/doMoveIntermentContainerTypeDown', handler_doMoveIntermentContainerTypeDown); +router.post('/doDeleteIntermentContainerType', handler_doDeleteIntermentContainerType); /* * Database Maintenance */ diff --git a/routes/admin.ts b/routes/admin.ts index 5f816e51..bdee2bdc 100644 --- a/routes/admin.ts +++ b/routes/admin.ts @@ -15,6 +15,7 @@ import handler_doAddContractTypeField from '../handlers/admin-post/doAddContract import handler_doAddContractTypePrint from '../handlers/admin-post/doAddContractTypePrint.js' import handler_doAddFee from '../handlers/admin-post/doAddFee.js' import handler_doAddFeeCategory from '../handlers/admin-post/doAddFeeCategory.js' +import handler_doAddIntermentContainerType from '../handlers/admin-post/doAddIntermentContainerType.js' import handler_doAddWorkOrderMilestoneType from '../handlers/admin-post/doAddWorkOrderMilestoneType.js' import handler_doAddWorkOrderType from '../handlers/admin-post/doAddWorkOrderType.js' import handler_doBackupDatabase from '../handlers/admin-post/doBackupDatabase.js' @@ -28,6 +29,7 @@ import handler_doDeleteContractTypeField from '../handlers/admin-post/doDeleteCo import handler_doDeleteContractTypePrint from '../handlers/admin-post/doDeleteContractTypePrint.js' import handler_doDeleteFee from '../handlers/admin-post/doDeleteFee.js' import handler_doDeleteFeeCategory from '../handlers/admin-post/doDeleteFeeCategory.js' +import handler_doDeleteIntermentContainerType from '../handlers/admin-post/doDeleteIntermentContainerType.js' import handler_doDeleteWorkOrderMilestoneType from '../handlers/admin-post/doDeleteWorkOrderMilestoneType.js' import handler_doDeleteWorkOrderType from '../handlers/admin-post/doDeleteWorkOrderType.js' import handler_doMoveBurialSiteStatusDown from '../handlers/admin-post/doMoveBurialSiteStatusDown.js' @@ -48,6 +50,8 @@ import handler_doMoveFeeCategoryDown from '../handlers/admin-post/doMoveFeeCateg import handler_doMoveFeeCategoryUp from '../handlers/admin-post/doMoveFeeCategoryUp.js' import handler_doMoveFeeDown from '../handlers/admin-post/doMoveFeeDown.js' import handler_doMoveFeeUp from '../handlers/admin-post/doMoveFeeUp.js' +import handler_doMoveIntermentContainerTypeDown from '../handlers/admin-post/doMoveIntermentContainerTypeDown.js' +import handler_doMoveIntermentContainerTypeUp from '../handlers/admin-post/doMoveIntermentContainerTypeUp.js' import handler_doMoveWorkOrderMilestoneTypeDown from '../handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js' import handler_doMoveWorkOrderMilestoneTypeUp from '../handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js' import handler_doMoveWorkOrderTypeDown from '../handlers/admin-post/doMoveWorkOrderTypeDown.js' @@ -61,6 +65,7 @@ import handler_doUpdateContractTypeField from '../handlers/admin-post/doUpdateCo import handler_doUpdateFee from '../handlers/admin-post/doUpdateFee.js' import handler_doUpdateFeeAmount from '../handlers/admin-post/doUpdateFeeAmount.js' import handler_doUpdateFeeCategory from '../handlers/admin-post/doUpdateFeeCategory.js' +import handler_doUpdateIntermentContainerType from '../handlers/admin-post/doUpdateIntermentContainerType.js' import handler_doUpdateWorkOrderMilestoneType from '../handlers/admin-post/doUpdateWorkOrderMilestoneType.js' import handler_doUpdateWorkOrderType from '../handlers/admin-post/doUpdateWorkOrderType.js' @@ -186,10 +191,7 @@ router.post('/doDeleteWorkOrderType', handler_doDeleteWorkOrderType) // Config Tables - Work Order Milestone Types -router.post( - '/doAddWorkOrderMilestoneType', - handler_doAddWorkOrderMilestoneType -) +router.post('/doAddWorkOrderMilestoneType', handler_doAddWorkOrderMilestoneType) router.post( '/doUpdateWorkOrderMilestoneType', @@ -235,6 +237,30 @@ router.post('/doMoveCommittalTypeDown', handler_doMoveCommittalTypeDown) router.post('/doDeleteCommittalType', handler_doDeleteCommittalType) +// Config Tables - Interment Container Types + +router.post('/doAddIntermentContainerType', handler_doAddIntermentContainerType) + +router.post( + '/doUpdateIntermentContainerType', + handler_doUpdateIntermentContainerType +) + +router.post( + '/doMoveIntermentContainerTypeUp', + handler_doMoveIntermentContainerTypeUp +) + +router.post( + '/doMoveIntermentContainerTypeDown', + handler_doMoveIntermentContainerTypeDown +) + +router.post( + '/doDeleteIntermentContainerType', + handler_doDeleteIntermentContainerType +) + /* * Database Maintenance */ diff --git a/views/admin-tables.ejs b/views/admin-tables.ejs index adafb8e7..5afb6689 100644 --- a/views/admin-tables.ejs +++ b/views/admin-tables.ejs @@ -48,10 +48,15 @@

Work Order Types

+
+
+ +
+
+
+
@@ -192,10 +269,15 @@

Burial Site Statuses

+
+
+ +
+