From d78232d85273781009cf8ff9571f0a0cfad497e8 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Wed, 5 Oct 2022 09:38:37 -0400 Subject: [PATCH] quick sorting in config table management --- .../admin-post/doMoveLotOccupantTypeDown.js | 6 +- .../admin-post/doMoveLotOccupantTypeDown.ts | 10 +- .../admin-post/doMoveLotOccupantTypeUp.js | 6 +- .../admin-post/doMoveLotOccupantTypeUp.ts | 10 +- handlers/admin-post/doMoveLotStatusDown.js | 6 +- handlers/admin-post/doMoveLotStatusDown.ts | 10 +- handlers/admin-post/doMoveLotStatusUp.js | 6 +- handlers/admin-post/doMoveLotStatusUp.ts | 10 +- .../doMoveWorkOrderMilestoneTypeDown.js | 6 +- .../doMoveWorkOrderMilestoneTypeDown.ts | 10 +- .../doMoveWorkOrderMilestoneTypeUp.js | 6 +- .../doMoveWorkOrderMilestoneTypeUp.ts | 10 +- .../admin-post/doMoveWorkOrderTypeDown.js | 6 +- .../admin-post/doMoveWorkOrderTypeDown.ts | 10 +- handlers/admin-post/doMoveWorkOrderTypeUp.js | 6 +- handlers/admin-post/doMoveWorkOrderTypeUp.ts | 10 +- .../moveLotOccupantTypeDown.d.ts | 1 + .../lotOccupancyDB/moveLotOccupantTypeDown.js | 25 +++ .../lotOccupancyDB/moveLotOccupantTypeDown.ts | 37 +++++ .../lotOccupancyDB/moveLotOccupantTypeUp.d.ts | 1 + .../lotOccupancyDB/moveLotOccupantTypeUp.js | 20 +++ .../lotOccupancyDB/moveLotOccupantTypeUp.ts | 29 ++++ helpers/lotOccupancyDB/moveLotStatusDown.d.ts | 1 + helpers/lotOccupancyDB/moveLotStatusDown.js | 25 +++ helpers/lotOccupancyDB/moveLotStatusDown.ts | 37 +++++ helpers/lotOccupancyDB/moveLotStatusUp.d.ts | 1 + helpers/lotOccupancyDB/moveLotStatusUp.js | 28 +++- helpers/lotOccupancyDB/moveLotStatusUp.ts | 41 +++-- .../moveWorkOrderMilestoneTypeDown.d.ts | 1 + .../moveWorkOrderMilestoneTypeDown.js | 25 +++ .../moveWorkOrderMilestoneTypeDown.ts | 43 +++++ .../moveWorkOrderMilestoneTypeUp.d.ts | 1 + .../moveWorkOrderMilestoneTypeUp.js | 20 +++ .../moveWorkOrderMilestoneTypeUp.ts | 29 ++++ .../lotOccupancyDB/moveWorkOrderTypeDown.d.ts | 1 + .../lotOccupancyDB/moveWorkOrderTypeDown.js | 33 +++- .../lotOccupancyDB/moveWorkOrderTypeDown.ts | 53 ++++-- .../lotOccupancyDB/moveWorkOrderTypeUp.d.ts | 1 + helpers/lotOccupancyDB/moveWorkOrderTypeUp.js | 28 +++- helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts | 43 +++-- public-typescript/adminTables.js | 68 ++++---- public-typescript/adminTables.ts | 152 ++++++------------ public/javascripts/adminTables.min.js | 2 +- 43 files changed, 649 insertions(+), 225 deletions(-) diff --git a/handlers/admin-post/doMoveLotOccupantTypeDown.js b/handlers/admin-post/doMoveLotOccupantTypeDown.js index 57f0b58c..8c7aaac4 100644 --- a/handlers/admin-post/doMoveLotOccupantTypeDown.js +++ b/handlers/admin-post/doMoveLotOccupantTypeDown.js @@ -1,7 +1,9 @@ -import { moveLotOccupantTypeDown } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeDown.js"; +import { moveLotOccupantTypeDown, moveLotOccupantTypeDownToBottom } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeDown.js"; import { getLotOccupantTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveLotOccupantTypeDown(request.body.lotOccupantTypeId); + const success = request.body.moveToBottom === "1" + ? moveLotOccupantTypeDownToBottom(request.body.lotOccupantTypeId) + : moveLotOccupantTypeDown(request.body.lotOccupantTypeId); const lotOccupantTypes = getLotOccupantTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveLotOccupantTypeDown.ts b/handlers/admin-post/doMoveLotOccupantTypeDown.ts index f0100cbc..933d078c 100644 --- a/handlers/admin-post/doMoveLotOccupantTypeDown.ts +++ b/handlers/admin-post/doMoveLotOccupantTypeDown.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveLotOccupantTypeDown } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeDown.js"; +import { + moveLotOccupantTypeDown, + moveLotOccupantTypeDownToBottom +} from "../../helpers/lotOccupancyDB/moveLotOccupantTypeDown.js"; import { getLotOccupantTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveLotOccupantTypeDown(request.body.lotOccupantTypeId); + const success = + request.body.moveToBottom === "1" + ? moveLotOccupantTypeDownToBottom(request.body.lotOccupantTypeId) + : moveLotOccupantTypeDown(request.body.lotOccupantTypeId); const lotOccupantTypes = getLotOccupantTypes(); diff --git a/handlers/admin-post/doMoveLotOccupantTypeUp.js b/handlers/admin-post/doMoveLotOccupantTypeUp.js index 5e2e0d51..01d57312 100644 --- a/handlers/admin-post/doMoveLotOccupantTypeUp.js +++ b/handlers/admin-post/doMoveLotOccupantTypeUp.js @@ -1,7 +1,9 @@ -import { moveLotOccupantTypeUp } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeUp.js"; +import { moveLotOccupantTypeUp, moveLotOccupantTypeUpToTop } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeUp.js"; import { getLotOccupantTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveLotOccupantTypeUp(request.body.lotOccupantTypeId); + const success = request.body.moveToTop === "1" + ? moveLotOccupantTypeUpToTop(request.body.lotOccupantTypeId) + : moveLotOccupantTypeUp(request.body.lotOccupantTypeId); const lotOccupantTypes = getLotOccupantTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveLotOccupantTypeUp.ts b/handlers/admin-post/doMoveLotOccupantTypeUp.ts index 52a687f7..84f4f1ac 100644 --- a/handlers/admin-post/doMoveLotOccupantTypeUp.ts +++ b/handlers/admin-post/doMoveLotOccupantTypeUp.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveLotOccupantTypeUp } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeUp.js"; +import { + moveLotOccupantTypeUp, + moveLotOccupantTypeUpToTop +} from "../../helpers/lotOccupancyDB/moveLotOccupantTypeUp.js"; import { getLotOccupantTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveLotOccupantTypeUp(request.body.lotOccupantTypeId); + const success = + request.body.moveToTop === "1" + ? moveLotOccupantTypeUpToTop(request.body.lotOccupantTypeId) + : moveLotOccupantTypeUp(request.body.lotOccupantTypeId); const lotOccupantTypes = getLotOccupantTypes(); diff --git a/handlers/admin-post/doMoveLotStatusDown.js b/handlers/admin-post/doMoveLotStatusDown.js index 17bffe1b..f395d087 100644 --- a/handlers/admin-post/doMoveLotStatusDown.js +++ b/handlers/admin-post/doMoveLotStatusDown.js @@ -1,7 +1,9 @@ -import { moveLotStatusDown } from "../../helpers/lotOccupancyDB/moveLotStatusDown.js"; +import { moveLotStatusDown, moveLotStatusDownToBottom } from "../../helpers/lotOccupancyDB/moveLotStatusDown.js"; import { getLotStatuses } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveLotStatusDown(request.body.lotStatusId); + const success = request.body.moveToBottom === "1" + ? moveLotStatusDownToBottom(request.body.lotStatusId) + : moveLotStatusDown(request.body.lotStatusId); const lotStatuses = getLotStatuses(); response.json({ success, diff --git a/handlers/admin-post/doMoveLotStatusDown.ts b/handlers/admin-post/doMoveLotStatusDown.ts index 3208eb10..d851b7f3 100644 --- a/handlers/admin-post/doMoveLotStatusDown.ts +++ b/handlers/admin-post/doMoveLotStatusDown.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveLotStatusDown } from "../../helpers/lotOccupancyDB/moveLotStatusDown.js"; +import { + moveLotStatusDown, + moveLotStatusDownToBottom +} from "../../helpers/lotOccupancyDB/moveLotStatusDown.js"; import { getLotStatuses } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveLotStatusDown(request.body.lotStatusId); + const success = + request.body.moveToBottom === "1" + ? moveLotStatusDownToBottom(request.body.lotStatusId) + : moveLotStatusDown(request.body.lotStatusId); const lotStatuses = getLotStatuses(); diff --git a/handlers/admin-post/doMoveLotStatusUp.js b/handlers/admin-post/doMoveLotStatusUp.js index 4ba3d37e..20173804 100644 --- a/handlers/admin-post/doMoveLotStatusUp.js +++ b/handlers/admin-post/doMoveLotStatusUp.js @@ -1,7 +1,9 @@ -import { moveLotStatusUp } from "../../helpers/lotOccupancyDB/moveLotStatusUp.js"; +import { moveLotStatusUp, moveLotStatusUpToTop } from "../../helpers/lotOccupancyDB/moveLotStatusUp.js"; import { getLotStatuses } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveLotStatusUp(request.body.lotStatusId); + const success = request.body.moveToTop === "1" + ? moveLotStatusUpToTop(request.body.lotStatusId) + : moveLotStatusUp(request.body.lotStatusId); const lotStatuses = getLotStatuses(); response.json({ success, diff --git a/handlers/admin-post/doMoveLotStatusUp.ts b/handlers/admin-post/doMoveLotStatusUp.ts index 6afeb108..1a052130 100644 --- a/handlers/admin-post/doMoveLotStatusUp.ts +++ b/handlers/admin-post/doMoveLotStatusUp.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveLotStatusUp } from "../../helpers/lotOccupancyDB/moveLotStatusUp.js"; +import { + moveLotStatusUp, + moveLotStatusUpToTop +} from "../../helpers/lotOccupancyDB/moveLotStatusUp.js"; import { getLotStatuses } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveLotStatusUp(request.body.lotStatusId); + const success = + request.body.moveToTop === "1" + ? moveLotStatusUpToTop(request.body.lotStatusId) + : moveLotStatusUp(request.body.lotStatusId); const lotStatuses = getLotStatuses(); diff --git a/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js b/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js index b212f180..d2925a38 100644 --- a/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js +++ b/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js @@ -1,7 +1,9 @@ -import { moveWorkOrderMilestoneTypeDown } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js"; +import { moveWorkOrderMilestoneTypeDown, moveWorkOrderMilestoneTypeDownToBottom } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js"; import { getWorkOrderMilestoneTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveWorkOrderMilestoneTypeDown(request.body.workOrderMilestoneTypeId); + const success = request.body.moveToBottom === "1" + ? moveWorkOrderMilestoneTypeDownToBottom(request.body.workOrderMilestoneTypeId) + : moveWorkOrderMilestoneTypeDown(request.body.workOrderMilestoneTypeId); const workOrderMilestoneTypes = getWorkOrderMilestoneTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.ts b/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.ts index f0dd3a97..be9b5e3c 100644 --- a/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.ts +++ b/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveWorkOrderMilestoneTypeDown } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js"; +import { + moveWorkOrderMilestoneTypeDown, + moveWorkOrderMilestoneTypeDownToBottom +} from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js"; import { getWorkOrderMilestoneTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveWorkOrderMilestoneTypeDown(request.body.workOrderMilestoneTypeId); + const success = + request.body.moveToBottom === "1" + ? moveWorkOrderMilestoneTypeDownToBottom(request.body.workOrderMilestoneTypeId) + : moveWorkOrderMilestoneTypeDown(request.body.workOrderMilestoneTypeId); const workOrderMilestoneTypes = getWorkOrderMilestoneTypes(); diff --git a/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js b/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js index 072b6645..024f7718 100644 --- a/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js +++ b/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js @@ -1,7 +1,9 @@ -import { moveWorkOrderMilestoneTypeUp } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js"; +import { moveWorkOrderMilestoneTypeUp, moveWorkOrderMilestoneTypeUpToTop } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js"; import { getWorkOrderMilestoneTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveWorkOrderMilestoneTypeUp(request.body.workOrderMilestoneTypeId); + const success = request.body.moveToTop === "1" + ? moveWorkOrderMilestoneTypeUpToTop(request.body.workOrderMilestoneTypeId) + : moveWorkOrderMilestoneTypeUp(request.body.workOrderMilestoneTypeId); const workOrderMilestoneTypes = getWorkOrderMilestoneTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.ts b/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.ts index 1dd3eb8c..18b7a9b1 100644 --- a/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.ts +++ b/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveWorkOrderMilestoneTypeUp } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js"; +import { + moveWorkOrderMilestoneTypeUp, + moveWorkOrderMilestoneTypeUpToTop +} from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js"; import { getWorkOrderMilestoneTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveWorkOrderMilestoneTypeUp(request.body.workOrderMilestoneTypeId); + const success = + request.body.moveToTop === "1" + ? moveWorkOrderMilestoneTypeUpToTop(request.body.workOrderMilestoneTypeId) + : moveWorkOrderMilestoneTypeUp(request.body.workOrderMilestoneTypeId); const workOrderMilestoneTypes = getWorkOrderMilestoneTypes(); diff --git a/handlers/admin-post/doMoveWorkOrderTypeDown.js b/handlers/admin-post/doMoveWorkOrderTypeDown.js index 4aae884c..9b53291d 100644 --- a/handlers/admin-post/doMoveWorkOrderTypeDown.js +++ b/handlers/admin-post/doMoveWorkOrderTypeDown.js @@ -1,7 +1,9 @@ -import { moveWorkOrderTypeDown } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeDown.js"; +import { moveWorkOrderTypeDown, moveWorkOrderTypeDownToBottom } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeDown.js"; import { getWorkOrderTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveWorkOrderTypeDown(request.body.workOrderTypeId); + const success = request.body.moveToBottom === "1" + ? moveWorkOrderTypeDownToBottom(request.body.workOrderTypeId) + : moveWorkOrderTypeDown(request.body.workOrderTypeId); const workOrderTypes = getWorkOrderTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveWorkOrderTypeDown.ts b/handlers/admin-post/doMoveWorkOrderTypeDown.ts index a553269d..65f45112 100644 --- a/handlers/admin-post/doMoveWorkOrderTypeDown.ts +++ b/handlers/admin-post/doMoveWorkOrderTypeDown.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveWorkOrderTypeDown } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeDown.js"; +import { + moveWorkOrderTypeDown, + moveWorkOrderTypeDownToBottom +} from "../../helpers/lotOccupancyDB/moveWorkOrderTypeDown.js"; import { getWorkOrderTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveWorkOrderTypeDown(request.body.workOrderTypeId); + const success = + request.body.moveToBottom === "1" + ? moveWorkOrderTypeDownToBottom(request.body.workOrderTypeId) + : moveWorkOrderTypeDown(request.body.workOrderTypeId); const workOrderTypes = getWorkOrderTypes(); diff --git a/handlers/admin-post/doMoveWorkOrderTypeUp.js b/handlers/admin-post/doMoveWorkOrderTypeUp.js index 621d5f97..7584e0dc 100644 --- a/handlers/admin-post/doMoveWorkOrderTypeUp.js +++ b/handlers/admin-post/doMoveWorkOrderTypeUp.js @@ -1,7 +1,9 @@ -import { moveWorkOrderTypeUp } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeUp.js"; +import { moveWorkOrderTypeUp, moveWorkOrderTypeUpToTop } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeUp.js"; import { getWorkOrderTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveWorkOrderTypeUp(request.body.workOrderTypeId); + const success = request.body.moveToTop === "1" + ? moveWorkOrderTypeUpToTop(request.body.workOrderTypeId) + : moveWorkOrderTypeUp(request.body.workOrderTypeId); const workOrderTypes = getWorkOrderTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveWorkOrderTypeUp.ts b/handlers/admin-post/doMoveWorkOrderTypeUp.ts index 5826a907..21a90265 100644 --- a/handlers/admin-post/doMoveWorkOrderTypeUp.ts +++ b/handlers/admin-post/doMoveWorkOrderTypeUp.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveWorkOrderTypeUp } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeUp.js"; +import { + moveWorkOrderTypeUp, + moveWorkOrderTypeUpToTop +} from "../../helpers/lotOccupancyDB/moveWorkOrderTypeUp.js"; import { getWorkOrderTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveWorkOrderTypeUp(request.body.workOrderTypeId); + const success = + request.body.moveToTop === "1" + ? moveWorkOrderTypeUpToTop(request.body.workOrderTypeId) + : moveWorkOrderTypeUp(request.body.workOrderTypeId); const workOrderTypes = getWorkOrderTypes(); diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.d.ts b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.d.ts index 00db11d3..aa18aad1 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.d.ts +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.d.ts @@ -1,2 +1,3 @@ export declare const moveLotOccupantTypeDown: (lotOccupantTypeId: number | string) => boolean; +export declare const moveLotOccupantTypeDownToBottom: (lotOccupantTypeId: number | string) => boolean; export default moveLotOccupantTypeDown; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.js b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.js index 6333e839..80768bdb 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.js +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.js @@ -23,4 +23,29 @@ export const moveLotOccupantTypeDown = (lotOccupantTypeId) => { clearLotOccupantTypesCache(); return result.changes > 0; }; +export const moveLotOccupantTypeDownToBottom = (lotOccupantTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from LotOccupantTypes where lotOccupantTypeId = ?") + .get(lotOccupantTypeId).orderNumber; + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from LotOccupantTypes" + + " where recordDelete_timeMillis is null") + .get().maxOrderNumber; + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update LotOccupantTypes set orderNumber = ? + 1 where lotOccupantTypeId = ?") + .run(maxOrderNumber, lotOccupantTypeId); + database + .prepare("update LotOccupantTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?") + .run(currentOrderNumber); + } + database.close(); + clearLotOccupantTypesCache(); + return true; +}; export default moveLotOccupantTypeDown; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.ts b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.ts index 279b49cd..3014b079 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.ts +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.ts @@ -41,4 +41,41 @@ export const moveLotOccupantTypeDown = ( return result.changes > 0; }; + +export const moveLotOccupantTypeDownToBottom = (lotOccupantTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from LotOccupantTypes where lotOccupantTypeId = ?") + .get(lotOccupantTypeId).orderNumber; + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from LotOccupantTypes" + + " where recordDelete_timeMillis is null" + ) + .get().maxOrderNumber; + + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update LotOccupantTypes set orderNumber = ? + 1 where lotOccupantTypeId = ?") + .run(maxOrderNumber, lotOccupantTypeId); + + database + .prepare( + "update LotOccupantTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearLotOccupantTypesCache(); + + return true; +}; export default moveLotOccupantTypeDown; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.d.ts b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.d.ts index 50aaaaf3..fdfc9fce 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.d.ts +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.d.ts @@ -1,2 +1,3 @@ export declare const moveLotOccupantTypeUp: (lotOccupantTypeId: number | string) => boolean; +export declare const moveLotOccupantTypeUpToTop: (lotOccupantTypeId: number | string) => boolean; export default moveLotOccupantTypeUp; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.js b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.js index d65a90f9..c79641e7 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.js +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.js @@ -27,4 +27,24 @@ export const moveLotOccupantTypeUp = (lotOccupantTypeId) => { clearLotOccupantTypesCache(); return result.changes > 0; }; +export const moveLotOccupantTypeUpToTop = (lotOccupantTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from LotOccupantTypes where lotOccupantTypeId = ?") + .get(lotOccupantTypeId).orderNumber; + if (currentOrderNumber > 0) { + database + .prepare("update LotOccupantTypes set orderNumber = -1 where lotOccupantTypeId = ?") + .run(lotOccupantTypeId); + database + .prepare("update LotOccupantTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?") + .run(currentOrderNumber); + } + database.close(); + clearLotOccupantTypesCache(); + return true; +}; export default moveLotOccupantTypeUp; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.ts b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.ts index bd6b4a2a..e92591cc 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.ts +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.ts @@ -46,4 +46,33 @@ export const moveLotOccupantTypeUp = ( return result.changes > 0; }; +export const moveLotOccupantTypeUpToTop = (lotOccupantTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from LotOccupantTypes where lotOccupantTypeId = ?") + .get(lotOccupantTypeId).orderNumber; + + if (currentOrderNumber > 0) { + database + .prepare("update LotOccupantTypes set orderNumber = -1 where lotOccupantTypeId = ?") + .run(lotOccupantTypeId); + + database + .prepare( + "update LotOccupantTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearLotOccupantTypesCache(); + + return true; +}; + export default moveLotOccupantTypeUp; diff --git a/helpers/lotOccupancyDB/moveLotStatusDown.d.ts b/helpers/lotOccupancyDB/moveLotStatusDown.d.ts index 0a6e5dde..87d4c7ae 100644 --- a/helpers/lotOccupancyDB/moveLotStatusDown.d.ts +++ b/helpers/lotOccupancyDB/moveLotStatusDown.d.ts @@ -1,2 +1,3 @@ export declare const moveLotStatusDown: (lotStatusId: number | string) => boolean; +export declare const moveLotStatusDownToBottom: (lotStatusId: number | string) => boolean; export default moveLotStatusDown; diff --git a/helpers/lotOccupancyDB/moveLotStatusDown.js b/helpers/lotOccupancyDB/moveLotStatusDown.js index adad5f1d..5b739c03 100644 --- a/helpers/lotOccupancyDB/moveLotStatusDown.js +++ b/helpers/lotOccupancyDB/moveLotStatusDown.js @@ -23,4 +23,29 @@ export const moveLotStatusDown = (lotStatusId) => { clearLotStatusesCache(); return result.changes > 0; }; +export const moveLotStatusDownToBottom = (lotStatusId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") + .get(lotStatusId).orderNumber; + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from LotStatuses" + + " where recordDelete_timeMillis is null") + .get().maxOrderNumber; + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update LotStatuses set orderNumber = ? + 1 where lotStatusId = ?") + .run(maxOrderNumber, lotStatusId); + database + .prepare("update LotStatuses" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?") + .run(currentOrderNumber); + } + database.close(); + clearLotStatusesCache(); + return true; +}; export default moveLotStatusDown; diff --git a/helpers/lotOccupancyDB/moveLotStatusDown.ts b/helpers/lotOccupancyDB/moveLotStatusDown.ts index e7b32e02..c9c18db8 100644 --- a/helpers/lotOccupancyDB/moveLotStatusDown.ts +++ b/helpers/lotOccupancyDB/moveLotStatusDown.ts @@ -39,4 +39,41 @@ export const moveLotStatusDown = (lotStatusId: number | string): boolean => { return result.changes > 0; }; +export const moveLotStatusDownToBottom = (lotStatusId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") + .get(lotStatusId).orderNumber; + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from LotStatuses" + + " where recordDelete_timeMillis is null" + ) + .get().maxOrderNumber; + + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update LotStatuses set orderNumber = ? + 1 where lotStatusId = ?") + .run(maxOrderNumber, lotStatusId); + + database + .prepare( + "update LotStatuses" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearLotStatusesCache(); + + return true; +}; + export default moveLotStatusDown; diff --git a/helpers/lotOccupancyDB/moveLotStatusUp.d.ts b/helpers/lotOccupancyDB/moveLotStatusUp.d.ts index 090b829e..efe8af01 100644 --- a/helpers/lotOccupancyDB/moveLotStatusUp.d.ts +++ b/helpers/lotOccupancyDB/moveLotStatusUp.d.ts @@ -1,2 +1,3 @@ export declare const moveLotStatusUp: (lotStatusId: number | string) => boolean; +export declare const moveLotStatusUpToTop: (lotStatusId: number | string) => boolean; export default moveLotStatusUp; diff --git a/helpers/lotOccupancyDB/moveLotStatusUp.js b/helpers/lotOccupancyDB/moveLotStatusUp.js index 6b80c97e..79a4814d 100644 --- a/helpers/lotOccupancyDB/moveLotStatusUp.js +++ b/helpers/lotOccupancyDB/moveLotStatusUp.js @@ -4,9 +4,7 @@ import { clearLotStatusesCache } from "../functions.cache.js"; export const moveLotStatusUp = (lotStatusId) => { const database = sqlite(databasePath); const currentOrderNumber = database - .prepare("select orderNumber" + - " from LotStatuses" + - " where lotStatusId = ?") + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") .get(lotStatusId).orderNumber; if (currentOrderNumber <= 0) { database.close(); @@ -19,12 +17,30 @@ export const moveLotStatusUp = (lotStatusId) => { " and orderNumber = ? - 1") .run(currentOrderNumber); const result = database - .prepare("update LotStatuses" + - " set orderNumber = ? - 1" + - " where lotStatusId = ?") + .prepare("update LotStatuses set orderNumber = ? - 1 where lotStatusId = ?") .run(currentOrderNumber, lotStatusId); database.close(); clearLotStatusesCache(); return result.changes > 0; }; +export const moveLotStatusUpToTop = (lotStatusId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") + .get(lotStatusId).orderNumber; + if (currentOrderNumber > 0) { + database + .prepare("update LotStatuses set orderNumber = -1 where lotStatusId = ?") + .run(lotStatusId); + database + .prepare("update LotStatuses" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?") + .run(currentOrderNumber); + } + database.close(); + clearLotStatusesCache(); + return true; +}; export default moveLotStatusUp; diff --git a/helpers/lotOccupancyDB/moveLotStatusUp.ts b/helpers/lotOccupancyDB/moveLotStatusUp.ts index 9e201ace..bd4701ca 100644 --- a/helpers/lotOccupancyDB/moveLotStatusUp.ts +++ b/helpers/lotOccupancyDB/moveLotStatusUp.ts @@ -8,11 +8,7 @@ export const moveLotStatusUp = (lotStatusId: number | string): boolean => { const database = sqlite(databasePath); const currentOrderNumber: number = database - .prepare( - "select orderNumber" + - " from LotStatuses" + - " where lotStatusId = ?" - ) + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") .get(lotStatusId).orderNumber; if (currentOrderNumber <= 0) { @@ -30,11 +26,7 @@ export const moveLotStatusUp = (lotStatusId: number | string): boolean => { .run(currentOrderNumber); const result = database - .prepare( - "update LotStatuses" + - " set orderNumber = ? - 1" + - " where lotStatusId = ?" - ) + .prepare("update LotStatuses set orderNumber = ? - 1 where lotStatusId = ?") .run(currentOrderNumber, lotStatusId); database.close(); @@ -44,4 +36,33 @@ export const moveLotStatusUp = (lotStatusId: number | string): boolean => { return result.changes > 0; }; +export const moveLotStatusUpToTop = (lotStatusId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") + .get(lotStatusId).orderNumber; + + if (currentOrderNumber > 0) { + database + .prepare("update LotStatuses set orderNumber = -1 where lotStatusId = ?") + .run(lotStatusId); + + database + .prepare( + "update LotStatuses" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearLotStatusesCache(); + + return true; +}; + export default moveLotStatusUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.d.ts b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.d.ts index db79e8df..7f4e2e78 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.d.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.d.ts @@ -1,2 +1,3 @@ export declare const moveWorkOrderMilestoneTypeDown: (workOrderMilestoneTypeId: number | string) => boolean; +export declare const moveWorkOrderMilestoneTypeDownToBottom: (workOrderMilestoneTypeId: number | string) => boolean; export default moveWorkOrderMilestoneTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js index 33fd5e34..a3e318b3 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js @@ -23,4 +23,29 @@ export const moveWorkOrderMilestoneTypeDown = (workOrderMilestoneTypeId) => { clearWorkOrderMilestoneTypesCache(); return result.changes > 0; }; +export const moveWorkOrderMilestoneTypeDownToBottom = (workOrderMilestoneTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?") + .get(workOrderMilestoneTypeId).orderNumber; + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from WorkOrderMilestoneTypes" + + " where recordDelete_timeMillis is null") + .get().maxOrderNumber; + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update WorkOrderMilestoneTypes set orderNumber = ? + 1 where workOrderMilestoneTypeId = ?") + .run(maxOrderNumber, workOrderMilestoneTypeId); + database + .prepare("update WorkOrderMilestoneTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?") + .run(currentOrderNumber); + } + database.close(); + clearWorkOrderMilestoneTypesCache(); + return true; +}; export default moveWorkOrderMilestoneTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.ts b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.ts index 54be7264..a2a93200 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.ts @@ -41,4 +41,47 @@ export const moveWorkOrderMilestoneTypeDown = ( return result.changes > 0; }; +export const moveWorkOrderMilestoneTypeDownToBottom = ( + workOrderMilestoneTypeId: number | string +): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare( + "select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?" + ) + .get(workOrderMilestoneTypeId).orderNumber; + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from WorkOrderMilestoneTypes" + + " where recordDelete_timeMillis is null" + ) + .get().maxOrderNumber; + + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare( + "update WorkOrderMilestoneTypes set orderNumber = ? + 1 where workOrderMilestoneTypeId = ?" + ) + .run(maxOrderNumber, workOrderMilestoneTypeId); + + database + .prepare( + "update WorkOrderMilestoneTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearWorkOrderMilestoneTypesCache(); + + return true; +}; + export default moveWorkOrderMilestoneTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.d.ts b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.d.ts index d76fc840..8883e3fd 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.d.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.d.ts @@ -1,2 +1,3 @@ export declare const moveWorkOrderMilestoneTypeUp: (workOrderMilestoneTypeId: number | string) => boolean; +export declare const moveWorkOrderMilestoneTypeUpToTop: (workOrderMilestoneTypeId: number | string) => boolean; export default moveWorkOrderMilestoneTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js index cc7f6ef2..358f8407 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js @@ -27,4 +27,24 @@ export const moveWorkOrderMilestoneTypeUp = (workOrderMilestoneTypeId) => { clearWorkOrderMilestoneTypesCache(); return result.changes > 0; }; +export const moveWorkOrderMilestoneTypeUpToTop = (workOrderMilestoneTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?") + .get(workOrderMilestoneTypeId).orderNumber; + if (currentOrderNumber > 0) { + database + .prepare("update WorkOrderMilestoneTypes set orderNumber = -1 where workOrderMilestoneTypeId = ?") + .run(workOrderMilestoneTypeId); + database + .prepare("update WorkOrderMilestoneTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?") + .run(currentOrderNumber); + } + database.close(); + clearWorkOrderMilestoneTypesCache(); + return true; +}; export default moveWorkOrderMilestoneTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.ts b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.ts index 21b7b984..603c39a1 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.ts @@ -46,4 +46,33 @@ export const moveWorkOrderMilestoneTypeUp = ( return result.changes > 0; }; +export const moveWorkOrderMilestoneTypeUpToTop = (workOrderMilestoneTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?") + .get(workOrderMilestoneTypeId).orderNumber; + + if (currentOrderNumber > 0) { + database + .prepare("update WorkOrderMilestoneTypes set orderNumber = -1 where workOrderMilestoneTypeId = ?") + .run(workOrderMilestoneTypeId); + + database + .prepare( + "update WorkOrderMilestoneTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearWorkOrderMilestoneTypesCache(); + + return true; +}; + export default moveWorkOrderMilestoneTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.d.ts b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.d.ts index 03a81485..d9ac2606 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.d.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.d.ts @@ -1,2 +1,3 @@ export declare const moveWorkOrderTypeDown: (workOrderTypeId: number | string) => boolean; +export declare const moveWorkOrderTypeDownToBottom: (workOrderTypeId: number | string) => boolean; export default moveWorkOrderTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.js b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.js index e42ab03a..223f8282 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.js +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.js @@ -4,9 +4,7 @@ import { clearWorkOrderTypesCache } from "../functions.cache.js"; export const moveWorkOrderTypeDown = (workOrderTypeId) => { const database = sqlite(databasePath); const currentOrderNumber = database - .prepare("select orderNumber" + - " from WorkOrderTypes" + - " where workOrderTypeId = ?") + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") .get(workOrderTypeId).orderNumber; database .prepare("update WorkOrderTypes" + @@ -15,12 +13,35 @@ export const moveWorkOrderTypeDown = (workOrderTypeId) => { " and orderNumber = ? + 1") .run(currentOrderNumber); const result = database - .prepare("update WorkOrderTypes" + - " set orderNumber = ? + 1" + - " where workOrderTypeId = ?") + .prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?") .run(currentOrderNumber, workOrderTypeId); database.close(); clearWorkOrderTypesCache(); return result.changes > 0; }; +export const moveWorkOrderTypeDownToBottom = (workOrderTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") + .get(workOrderTypeId).orderNumber; + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from WorkOrderTypes" + + " where recordDelete_timeMillis is null") + .get().maxOrderNumber; + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?") + .run(maxOrderNumber, workOrderTypeId); + database + .prepare("update WorkOrderTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?") + .run(currentOrderNumber); + } + database.close(); + clearWorkOrderTypesCache(); + return true; +}; export default moveWorkOrderTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.ts b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.ts index 32e66e78..4acc8434 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.ts @@ -4,17 +4,11 @@ import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; import { clearWorkOrderTypesCache } from "../functions.cache.js"; -export const moveWorkOrderTypeDown = ( - workOrderTypeId: number | string -): boolean => { +export const moveWorkOrderTypeDown = (workOrderTypeId: number | string): boolean => { const database = sqlite(databasePath); const currentOrderNumber: number = database - .prepare( - "select orderNumber" + - " from WorkOrderTypes" + - " where workOrderTypeId = ?" - ) + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") .get(workOrderTypeId).orderNumber; database @@ -27,11 +21,7 @@ export const moveWorkOrderTypeDown = ( .run(currentOrderNumber); const result = database - .prepare( - "update WorkOrderTypes" + - " set orderNumber = ? + 1" + - " where workOrderTypeId = ?" - ) + .prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?") .run(currentOrderNumber, workOrderTypeId); database.close(); @@ -41,4 +31,41 @@ export const moveWorkOrderTypeDown = ( return result.changes > 0; }; +export const moveWorkOrderTypeDownToBottom = (workOrderTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") + .get(workOrderTypeId).orderNumber; + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from WorkOrderTypes" + + " where recordDelete_timeMillis is null" + ) + .get().maxOrderNumber; + + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?") + .run(maxOrderNumber, workOrderTypeId); + + database + .prepare( + "update WorkOrderTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearWorkOrderTypesCache(); + + return true; +}; + export default moveWorkOrderTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.d.ts b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.d.ts index 3d6c2c0e..88690f08 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.d.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.d.ts @@ -1,2 +1,3 @@ export declare const moveWorkOrderTypeUp: (workOrderTypeId: number | string) => boolean; +export declare const moveWorkOrderTypeUpToTop: (workOrderTypeId: number | string) => boolean; export default moveWorkOrderTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.js b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.js index aad1a9f0..251b76d9 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.js +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.js @@ -4,9 +4,7 @@ import { clearWorkOrderTypesCache } from "../functions.cache.js"; export const moveWorkOrderTypeUp = (workOrderTypeId) => { const database = sqlite(databasePath); const currentOrderNumber = database - .prepare("select orderNumber" + - " from WorkOrderTypes" + - " where workOrderTypeId = ?") + .prepare("select orderNumber" + " from WorkOrderTypes" + " where workOrderTypeId = ?") .get(workOrderTypeId).orderNumber; if (currentOrderNumber <= 0) { database.close(); @@ -19,12 +17,30 @@ export const moveWorkOrderTypeUp = (workOrderTypeId) => { " and orderNumber = ? - 1") .run(currentOrderNumber); const result = database - .prepare("update WorkOrderTypes" + - " set orderNumber = ? - 1" + - " where workOrderTypeId = ?") + .prepare("update WorkOrderTypes" + " set orderNumber = ? - 1" + " where workOrderTypeId = ?") .run(currentOrderNumber, workOrderTypeId); database.close(); clearWorkOrderTypesCache(); return result.changes > 0; }; +export const moveWorkOrderTypeUpToTop = (workOrderTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") + .get(workOrderTypeId).orderNumber; + if (currentOrderNumber > 0) { + database + .prepare("update WorkOrderTypes set orderNumber = -1 where workOrderTypeId = ?") + .run(workOrderTypeId); + database + .prepare("update WorkOrderTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?") + .run(currentOrderNumber); + } + database.close(); + clearWorkOrderTypesCache(); + return true; +}; export default moveWorkOrderTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts index 19537570..def8f588 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts @@ -4,17 +4,11 @@ import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; import { clearWorkOrderTypesCache } from "../functions.cache.js"; -export const moveWorkOrderTypeUp = ( - workOrderTypeId: number | string -): boolean => { +export const moveWorkOrderTypeUp = (workOrderTypeId: number | string): boolean => { const database = sqlite(databasePath); const currentOrderNumber: number = database - .prepare( - "select orderNumber" + - " from WorkOrderTypes" + - " where workOrderTypeId = ?" - ) + .prepare("select orderNumber" + " from WorkOrderTypes" + " where workOrderTypeId = ?") .get(workOrderTypeId).orderNumber; if (currentOrderNumber <= 0) { @@ -33,9 +27,7 @@ export const moveWorkOrderTypeUp = ( const result = database .prepare( - "update WorkOrderTypes" + - " set orderNumber = ? - 1" + - " where workOrderTypeId = ?" + "update WorkOrderTypes" + " set orderNumber = ? - 1" + " where workOrderTypeId = ?" ) .run(currentOrderNumber, workOrderTypeId); @@ -46,4 +38,33 @@ export const moveWorkOrderTypeUp = ( return result.changes > 0; }; +export const moveWorkOrderTypeUpToTop = (workOrderTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") + .get(workOrderTypeId).orderNumber; + + if (currentOrderNumber > 0) { + database + .prepare("update WorkOrderTypes set orderNumber = -1 where workOrderTypeId = ?") + .run(workOrderTypeId); + + database + .prepare( + "update WorkOrderTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearWorkOrderTypesCache(); + + return true; +}; + export default moveWorkOrderTypeUp; diff --git a/public-typescript/adminTables.js b/public-typescript/adminTables.js index 7874a845..5a4e82c9 100644 --- a/public-typescript/adminTables.js +++ b/public-typescript/adminTables.js @@ -68,7 +68,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderTypeUp", { - workOrderTypeId + workOrderTypeId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; @@ -87,7 +88,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderTypeDown", { - workOrderTypeId + workOrderTypeId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; @@ -118,8 +120,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); containerElement.innerHTML = ""; for (const workOrderType of workOrderTypes) { const tableRowElement = document.createElement("tr"); - tableRowElement.dataset.workOrderTypeId = - workOrderType.workOrderTypeId.toString(); + tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId.toString(); tableRowElement.innerHTML = "" + "
" + @@ -157,9 +158,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); "" + "" + ""; - tableRowElement - .querySelector("form") - .addEventListener("submit", updateWorkOrderType); + tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType); tableRowElement .querySelector(".button--moveWorkOrderTypeUp") .addEventListener("click", moveWorkOrderTypeUp); @@ -260,7 +259,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp", { - workOrderMilestoneTypeId + workOrderMilestoneTypeId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; @@ -279,7 +279,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown", { - workOrderMilestoneTypeId + workOrderMilestoneTypeId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { workOrderMilestoneTypes = responseJSON.workOrderMilestoneTypes; @@ -394,8 +395,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; bulmaJS.alert({ - message: exports.aliases.lot + - " Status Updated Successfully", + message: exports.aliases.lot + " Status Updated Successfully", contextualColorName: "success" }); } @@ -424,16 +424,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); tableRowElement.remove(); } bulmaJS.alert({ - message: exports.aliases.lot + - " Status Deleted Successfully", + message: exports.aliases.lot + " Status Deleted Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: "Error Deleting " + - exports.aliases.lot + - " Status", + title: "Error Deleting " + exports.aliases.lot + " Status", message: responseJSON.errorMessage, contextualColorName: "danger" }); @@ -458,7 +455,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const lotStatusId = tableRowElement.dataset.lotStatusId; cityssm.postJSON(urlPrefix + "/admin/doMoveLotStatusUp", { - lotStatusId + lotStatusId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; @@ -477,7 +475,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const lotStatusId = tableRowElement.dataset.lotStatusId; cityssm.postJSON(urlPrefix + "/admin/doMoveLotStatusDown", { - lotStatusId + lotStatusId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { lotStatuses = responseJSON.lotStatuses; @@ -510,8 +509,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); containerElement.innerHTML = ""; for (const lotStatus of lotStatuses) { const tableRowElement = document.createElement("tr"); - tableRowElement.dataset.lotStatusId = - lotStatus.lotStatusId.toString(); + tableRowElement.dataset.lotStatusId = lotStatus.lotStatusId.toString(); tableRowElement.innerHTML = "" + "" + @@ -549,9 +547,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); "" + "" + ""; - tableRowElement - .querySelector("form") - .addEventListener("submit", updateLotStatus); + tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus); tableRowElement .querySelector(".button--moveLotStatusUp") .addEventListener("click", moveLotStatusUp); @@ -578,9 +574,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); } else { bulmaJS.alert({ - title: "Error Adding " + - exports.aliases.lot + - " Status", + title: "Error Adding " + exports.aliases.lot + " Status", message: responseJSON.errorMessage, contextualColorName: "danger" }); @@ -653,11 +647,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); }); }; bulmaJS.confirm({ - title: "Delete " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", message: "Are you sure you want to delete this " + exports.aliases.lot.toLowerCase() + " " + @@ -671,11 +661,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); messageIsHtml: true, contextualColorName: "warning", okButton: { - text: "Yes, Delete " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + text: "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", callbackFunction: doDelete } }); @@ -684,7 +670,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; cityssm.postJSON(urlPrefix + "/admin/doMoveLotOccupantTypeUp", { - lotOccupantTypeId + lotOccupantTypeId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; @@ -707,7 +694,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; cityssm.postJSON(urlPrefix + "/admin/doMoveLotOccupantTypeDown", { - lotOccupantTypeId + lotOccupantTypeId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { lotOccupantTypes = responseJSON.lotOccupantTypes; @@ -795,9 +783,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); "" + "" + ""; - tableRowElement - .querySelector("form") - .addEventListener("submit", updateLotOccupantType); + tableRowElement.querySelector("form").addEventListener("submit", updateLotOccupantType); tableRowElement .querySelector(".button--moveLotOccupantTypeUp") .addEventListener("click", moveLotOccupantTypeUp); diff --git a/public-typescript/adminTables.ts b/public-typescript/adminTables.ts index 7078c61b..ff0f39f2 100644 --- a/public-typescript/adminTables.ts +++ b/public-typescript/adminTables.ts @@ -49,9 +49,7 @@ declare const bulmaJS: BulmaJS; }; const deleteWorkOrderType = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; @@ -104,17 +102,16 @@ declare const bulmaJS: BulmaJS; }); }; - const moveWorkOrderTypeUp = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const moveWorkOrderTypeUp = (clickEvent: MouseEvent) => { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; cityssm.postJSON( urlPrefix + "/admin/doMoveWorkOrderTypeUp", { - workOrderTypeId + workOrderTypeId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON: { success: boolean; @@ -135,17 +132,16 @@ declare const bulmaJS: BulmaJS; ); }; - const moveWorkOrderTypeDown = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const moveWorkOrderTypeDown = (clickEvent: MouseEvent) => { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; cityssm.postJSON( urlPrefix + "/admin/doMoveWorkOrderTypeDown", { - workOrderTypeId + workOrderTypeId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON: { success: boolean; @@ -189,8 +185,7 @@ declare const bulmaJS: BulmaJS; for (const workOrderType of workOrderTypes) { const tableRowElement = document.createElement("tr"); - tableRowElement.dataset.workOrderTypeId = - workOrderType.workOrderTypeId.toString(); + tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId.toString(); tableRowElement.innerHTML = "" + @@ -230,9 +225,7 @@ declare const bulmaJS: BulmaJS; "" + ""; - tableRowElement - .querySelector("form") - .addEventListener("submit", updateWorkOrderType); + tableRowElement.querySelector("form").addEventListener("submit", updateWorkOrderType); tableRowElement .querySelector(".button--moveWorkOrderTypeUp") .addEventListener("click", moveWorkOrderTypeUp); @@ -284,7 +277,8 @@ declare const bulmaJS: BulmaJS; * Work Order Milestone Types */ - let workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] = exports.workOrderMilestoneTypes; + let workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] = + exports.workOrderMilestoneTypes; delete exports.workOrderMilestoneTypes; const updateWorkOrderMilestoneType = (submitEvent: SubmitEvent) => { @@ -317,9 +311,7 @@ declare const bulmaJS: BulmaJS; }; const deleteWorkOrderMilestoneType = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; @@ -372,17 +364,16 @@ declare const bulmaJS: BulmaJS; }); }; - const moveWorkOrderMilestoneTypeUp = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const moveWorkOrderMilestoneTypeUp = (clickEvent: MouseEvent) => { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; cityssm.postJSON( urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeUp", { - workOrderMilestoneTypeId + workOrderMilestoneTypeId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON: { success: boolean; @@ -403,17 +394,16 @@ declare const bulmaJS: BulmaJS; ); }; - const moveWorkOrderMilestoneTypeDown = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const moveWorkOrderMilestoneTypeDown = (clickEvent: MouseEvent) => { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const workOrderMilestoneTypeId = tableRowElement.dataset.workOrderMilestoneTypeId; cityssm.postJSON( urlPrefix + "/admin/doMoveWorkOrderMilestoneTypeDown", { - workOrderMilestoneTypeId + workOrderMilestoneTypeId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON: { success: boolean; @@ -570,15 +560,12 @@ declare const bulmaJS: BulmaJS; lotStatuses = responseJSON.lotStatuses; bulmaJS.alert({ - message: - exports.aliases.lot + - " Status Updated Successfully", + message: exports.aliases.lot + " Status Updated Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: - "Error Updating " + exports.aliases.lot + " Status", + title: "Error Updating " + exports.aliases.lot + " Status", message: responseJSON.errorMessage, contextualColorName: "danger" }); @@ -588,9 +575,7 @@ declare const bulmaJS: BulmaJS; }; const deleteLotStatus = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const lotStatusId = tableRowElement.dataset.lotStatusId; @@ -615,17 +600,12 @@ declare const bulmaJS: BulmaJS; } bulmaJS.alert({ - message: - exports.aliases.lot + - " Status Deleted Successfully", + message: exports.aliases.lot + " Status Deleted Successfully", contextualColorName: "success" }); } else { bulmaJS.alert({ - title: - "Error Deleting " + - exports.aliases.lot + - " Status", + title: "Error Deleting " + exports.aliases.lot + " Status", message: responseJSON.errorMessage, contextualColorName: "danger" }); @@ -650,17 +630,16 @@ declare const bulmaJS: BulmaJS; }); }; - const moveLotStatusUp = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const moveLotStatusUp = (clickEvent: MouseEvent) => { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const lotStatusId = tableRowElement.dataset.lotStatusId; cityssm.postJSON( urlPrefix + "/admin/doMoveLotStatusUp", { - lotStatusId + lotStatusId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON: { success: boolean; @@ -672,8 +651,7 @@ declare const bulmaJS: BulmaJS; renderLotStatuses(); } else { bulmaJS.alert({ - title: - "Error Moving " + exports.aliases.lot + " Status", + title: "Error Moving " + exports.aliases.lot + " Status", message: responseJSON.errorMessage, contextualColorName: "danger" }); @@ -682,17 +660,16 @@ declare const bulmaJS: BulmaJS; ); }; - const moveLotStatusDown = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const moveLotStatusDown = (clickEvent: MouseEvent) => { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const lotStatusId = tableRowElement.dataset.lotStatusId; cityssm.postJSON( urlPrefix + "/admin/doMoveLotStatusDown", { - lotStatusId + lotStatusId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON: { success: boolean; @@ -704,8 +681,7 @@ declare const bulmaJS: BulmaJS; renderLotStatuses(); } else { bulmaJS.alert({ - title: - "Error Moving " + exports.aliases.lot + " Status", + title: "Error Moving " + exports.aliases.lot + " Status", message: responseJSON.errorMessage, contextualColorName: "danger" }); @@ -739,8 +715,7 @@ declare const bulmaJS: BulmaJS; for (const lotStatus of lotStatuses) { const tableRowElement = document.createElement("tr"); - tableRowElement.dataset.lotStatusId = - lotStatus.lotStatusId.toString(); + tableRowElement.dataset.lotStatusId = lotStatus.lotStatusId.toString(); tableRowElement.innerHTML = "" + @@ -780,9 +755,7 @@ declare const bulmaJS: BulmaJS; "" + ""; - tableRowElement - .querySelector("form") - .addEventListener("submit", updateLotStatus); + tableRowElement.querySelector("form").addEventListener("submit", updateLotStatus); tableRowElement .querySelector(".button--moveLotStatusUp") .addEventListener("click", moveLotStatusUp); @@ -819,10 +792,7 @@ declare const bulmaJS: BulmaJS; formElement.querySelector("input").focus(); } else { bulmaJS.alert({ - title: - "Error Adding " + - exports.aliases.lot + - " Status", + title: "Error Adding " + exports.aliases.lot + " Status", message: responseJSON.errorMessage, contextualColorName: "danger" }); @@ -837,8 +807,7 @@ declare const bulmaJS: BulmaJS; * Lot Occupant Types */ - let lotOccupantTypes: recordTypes.LotOccupantType[] = - exports.lotOccupantTypes; + let lotOccupantTypes: recordTypes.LotOccupantType[] = exports.lotOccupantTypes; delete exports.lotOccupantTypes; const updateLotOccupantType = (submitEvent: SubmitEvent) => { @@ -880,9 +849,7 @@ declare const bulmaJS: BulmaJS; }; const deleteLotOccupantType = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; @@ -931,12 +898,7 @@ declare const bulmaJS: BulmaJS; }; bulmaJS.confirm({ - title: - "Delete " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + title: "Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", message: "Are you sure you want to delete this " + exports.aliases.lot.toLowerCase() + @@ -952,27 +914,22 @@ declare const bulmaJS: BulmaJS; contextualColorName: "warning", okButton: { text: - "Yes, Delete " + - exports.aliases.lot + - " " + - exports.aliases.occupant + - " Type", + "Yes, Delete " + exports.aliases.lot + " " + exports.aliases.occupant + " Type", callbackFunction: doDelete } }); }; - const moveLotOccupantTypeUp = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const moveLotOccupantTypeUp = (clickEvent: MouseEvent) => { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; cityssm.postJSON( urlPrefix + "/admin/doMoveLotOccupantTypeUp", { - lotOccupantTypeId + lotOccupantTypeId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON: { success: boolean; @@ -998,17 +955,16 @@ declare const bulmaJS: BulmaJS; ); }; - const moveLotOccupantTypeDown = (clickEvent: Event) => { - const tableRowElement = ( - clickEvent.currentTarget as HTMLElement - ).closest("tr"); + const moveLotOccupantTypeDown = (clickEvent: MouseEvent) => { + const tableRowElement = (clickEvent.currentTarget as HTMLElement).closest("tr"); const lotOccupantTypeId = tableRowElement.dataset.lotOccupantTypeId; cityssm.postJSON( urlPrefix + "/admin/doMoveLotOccupantTypeDown", { - lotOccupantTypeId + lotOccupantTypeId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON: { success: boolean; @@ -1112,9 +1068,7 @@ declare const bulmaJS: BulmaJS; "" + ""; - tableRowElement - .querySelector("form") - .addEventListener("submit", updateLotOccupantType); + tableRowElement.querySelector("form").addEventListener("submit", updateLotOccupantType); tableRowElement .querySelector(".button--moveLotOccupantTypeUp") .addEventListener("click", moveLotOccupantTypeUp); diff --git a/public/javascripts/adminTables.min.js b/public/javascripts/adminTables.min.js index 73224844..01fedcc7 100644 --- a/public/javascripts/adminTables.min.js +++ b/public/javascripts/adminTables.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix;let t=exports.workOrderTypes;delete exports.workOrderTypes;const s=s=>{s.preventDefault(),cityssm.postJSON(e+"/admin/doUpdateWorkOrderType",s.currentTarget,e=>{e.success?(t=e.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})},o=s=>{const o=s.currentTarget.closest("tr"),r=o.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:()=>{cityssm.postJSON(e+"/admin/doDeleteWorkOrderType",{workOrderTypeId:r},e=>{e.success?(0===(t=e.workOrderTypes).length?l():o.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})}}})},r=s=>{const o=s.currentTarget.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e+"/admin/doMoveWorkOrderTypeUp",{workOrderTypeId:o},e=>{e.success?(t=e.workOrderTypes,l()):bulmaJS.alert({title:"Error Moving Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})},a=s=>{const o=s.currentTarget.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e+"/admin/doMoveWorkOrderTypeDown",{workOrderTypeId:o},e=>{e.success?(t=e.workOrderTypes,l()):bulmaJS.alert({title:"Error Moving Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})},l=()=>{const e=document.querySelector("#container--workOrderTypes");if(0!==t.length){e.innerHTML="";for(const l of t){const t=document.createElement("tr");t.dataset.workOrderTypeId=l.workOrderTypeId.toString(),t.innerHTML='
',t.querySelector("form").addEventListener("submit",s),t.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",r),t.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),t.querySelector(".button--deleteWorkOrderType").addEventListener("click",o),e.append(t)}}else e.innerHTML='

There are no active work order types.

'};document.querySelector("#form--addWorkOrderType").addEventListener("submit",s=>{s.preventDefault();const o=s.currentTarget;cityssm.postJSON(e+"/admin/doAddWorkOrderType",o,e=>{e.success?(t=e.workOrderTypes,l(),o.reset(),o.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})}),l();let n=exports.workOrderMilestoneTypes;delete exports.workOrderMilestoneTypes;const d=t=>{t.preventDefault(),cityssm.postJSON(e+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{e.success?(n=e.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})},c=t=>{const s=t.currentTarget.closest("tr"),o=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:()=>{cityssm.postJSON(e+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:o},e=>{e.success?(0===(n=e.workOrderMilestoneTypes).length?p():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})}}})},i=t=>{const s=t.currentTarget.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e+"/admin/doMoveWorkOrderMilestoneTypeUp",{workOrderMilestoneTypeId:s},e=>{e.success?(n=e.workOrderMilestoneTypes,p()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})},u=t=>{const s=t.currentTarget.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e+"/admin/doMoveWorkOrderMilestoneTypeDown",{workOrderMilestoneTypeId:s},e=>{e.success?(n=e.workOrderMilestoneTypes,p()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})},p=()=>{const e=document.querySelector("#container--workOrderMilestoneTypes");if(0!==n.length){e.innerHTML="";for(const t of n){const s=document.createElement("tr");s.dataset.workOrderMilestoneTypeId=t.workOrderMilestoneTypeId.toString(),s.innerHTML='
',s.querySelector("form").addEventListener("submit",d),s.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),s.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",u),s.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",c),e.append(s)}}else e.innerHTML='

There are no active work order milestone types.

'};document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e+"/admin/doAddWorkOrderMilestoneType",s,e=>{e.success?(n=e.workOrderMilestoneTypes,p(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})}),p();let m=exports.lotStatuses;delete exports.lotStatuses;const y=t=>{t.preventDefault(),cityssm.postJSON(e+"/admin/doUpdateLotStatus",t.currentTarget,e=>{e.success?(m=e.lotStatuses,bulmaJS.alert({message:exports.aliases.lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})},v=t=>{const s=t.currentTarget.closest("tr"),o=s.dataset.lotStatusId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" Status",message:"Are you sure you want to delete this status?
Note that no "+exports.aliases.lots.toLowerCase()+" will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:()=>{cityssm.postJSON(e+"/admin/doDeleteLotStatus",{lotStatusId:o},e=>{e.success?(0===(m=e.lotStatuses).length?b():s.remove(),bulmaJS.alert({message:exports.aliases.lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})}}})},T=t=>{const s=t.currentTarget.closest("tr").dataset.lotStatusId;cityssm.postJSON(e+"/admin/doMoveLotStatusUp",{lotStatusId:s},e=>{e.success?(m=e.lotStatuses,b()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})},g=t=>{const s=t.currentTarget.closest("tr").dataset.lotStatusId;cityssm.postJSON(e+"/admin/doMoveLotStatusDown",{lotStatusId:s},e=>{e.success?(m=e.lotStatuses,b()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})},b=()=>{const e=document.querySelector("#container--lotStatuses");if(0!==t.length){e.innerHTML="";for(const t of m){const s=document.createElement("tr");s.dataset.lotStatusId=t.lotStatusId.toString(),s.innerHTML='
',s.querySelector("form").addEventListener("submit",y),s.querySelector(".button--moveLotStatusUp").addEventListener("click",T),s.querySelector(".button--moveLotStatusDown").addEventListener("click",g),s.querySelector(".button--deleteLotStatus").addEventListener("click",v),e.append(s)}}else e.innerHTML='

There are no active '+cityssm.escapeHTML(exports.aliases.lot.toLowerCase())+" statuses.

"};document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e+"/admin/doAddLotStatus",s,e=>{e.success?(m=e.lotStatuses,b(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})}),b();let S=exports.lotOccupantTypes;delete exports.lotOccupantTypes;const O=t=>{t.preventDefault(),cityssm.postJSON(e+"/admin/doUpdateLotOccupantType",t.currentTarget,e=>{e.success?(S=e.lotOccupantTypes,bulmaJS.alert({message:exports.aliases.lot+" "+exports.aliases.occupant+" Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})},M=t=>{const s=t.currentTarget.closest("tr"),o=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:"Are you sure you want to delete this "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupant.toLowerCase()+" type?
Note that no "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupancy.toLowerCase()+" will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",callbackFunction:()=>{cityssm.postJSON(e+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:o},e=>{e.success?(0===(S=e.lotOccupantTypes).length?f():s.remove(),bulmaJS.alert({message:exports.aliases.lot+" "+exports.aliases.occupant+" Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})}}})},k=t=>{const s=t.currentTarget.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e+"/admin/doMoveLotOccupantTypeUp",{lotOccupantTypeId:s},e=>{e.success?(S=e.lotOccupantTypes,f()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})},w=t=>{const s=t.currentTarget.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e+"/admin/doMoveLotOccupantTypeDown",{lotOccupantTypeId:s},e=>{e.success?(S=e.lotOccupantTypes,f()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})},f=()=>{const e=document.querySelector("#container--lotOccupantTypes");if(0!==t.length){e.innerHTML="";for(const t of S){const s=document.createElement("tr");s.dataset.lotOccupantTypeId=t.lotOccupantTypeId.toString(),s.innerHTML='
',s.querySelector("form").addEventListener("submit",O),s.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",k),s.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",w),s.querySelector(".button--deleteLotOccupantType").addEventListener("click",M),e.append(s)}}else e.innerHTML='

There are no active '+cityssm.escapeHTML(exports.aliases.lot.toLowerCase())+" "+cityssm.escapeHTML(exports.aliases.occupant.toLowerCase())+" types.

"};document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e+"/admin/doAddLotOccupantType",s,e=>{e.success?(S=e.lotOccupantTypes,f(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})}),f()})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix;let t=exports.workOrderTypes;delete exports.workOrderTypes;const s=s=>{s.preventDefault(),cityssm.postJSON(e+"/admin/doUpdateWorkOrderType",s.currentTarget,e=>{e.success?(t=e.workOrderTypes,bulmaJS.alert({message:"Work Order Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})},o=s=>{const o=s.currentTarget.closest("tr"),r=o.dataset.workOrderTypeId;bulmaJS.confirm({title:"Delete Work Order Type",message:"Are you sure you want to delete this work order type?
Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Type",callbackFunction:()=>{cityssm.postJSON(e+"/admin/doDeleteWorkOrderType",{workOrderTypeId:r},e=>{e.success?(0===(t=e.workOrderTypes).length?l():o.remove(),bulmaJS.alert({message:"Work Order Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})}}})},r=s=>{const o=s.currentTarget.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e+"/admin/doMoveWorkOrderTypeUp",{workOrderTypeId:o,moveToTop:s.shiftKey?"1":"0"},e=>{e.success?(t=e.workOrderTypes,l()):bulmaJS.alert({title:"Error Moving Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})},a=s=>{const o=s.currentTarget.closest("tr").dataset.workOrderTypeId;cityssm.postJSON(e+"/admin/doMoveWorkOrderTypeDown",{workOrderTypeId:o,moveToBottom:s.shiftKey?"1":"0"},e=>{e.success?(t=e.workOrderTypes,l()):bulmaJS.alert({title:"Error Moving Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})},l=()=>{const e=document.querySelector("#container--workOrderTypes");if(0!==t.length){e.innerHTML="";for(const l of t){const t=document.createElement("tr");t.dataset.workOrderTypeId=l.workOrderTypeId.toString(),t.innerHTML='
',t.querySelector("form").addEventListener("submit",s),t.querySelector(".button--moveWorkOrderTypeUp").addEventListener("click",r),t.querySelector(".button--moveWorkOrderTypeDown").addEventListener("click",a),t.querySelector(".button--deleteWorkOrderType").addEventListener("click",o),e.append(t)}}else e.innerHTML='

There are no active work order types.

'};document.querySelector("#form--addWorkOrderType").addEventListener("submit",s=>{s.preventDefault();const o=s.currentTarget;cityssm.postJSON(e+"/admin/doAddWorkOrderType",o,e=>{e.success?(t=e.workOrderTypes,l(),o.reset(),o.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Type",message:e.errorMessage,contextualColorName:"danger"})})}),l();let n=exports.workOrderMilestoneTypes;delete exports.workOrderMilestoneTypes;const d=t=>{t.preventDefault(),cityssm.postJSON(e+"/admin/doUpdateWorkOrderMilestoneType",t.currentTarget,e=>{e.success?(n=e.workOrderMilestoneTypes,bulmaJS.alert({message:"Work Order Milestone Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})},c=t=>{const s=t.currentTarget.closest("tr"),o=s.dataset.workOrderMilestoneTypeId;bulmaJS.confirm({title:"Delete Work Order Milestone Type",message:"Are you sure you want to delete this work order milestone type?
Note that no work orders will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Work Order Milestone Type",callbackFunction:()=>{cityssm.postJSON(e+"/admin/doDeleteWorkOrderMilestoneType",{workOrderMilestoneTypeId:o},e=>{e.success?(0===(n=e.workOrderMilestoneTypes).length?p():s.remove(),bulmaJS.alert({message:"Work Order Milestone Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})}}})},i=t=>{const s=t.currentTarget.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e+"/admin/doMoveWorkOrderMilestoneTypeUp",{workOrderMilestoneTypeId:s,moveToTop:t.shiftKey?"1":"0"},e=>{e.success?(n=e.workOrderMilestoneTypes,p()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})},u=t=>{const s=t.currentTarget.closest("tr").dataset.workOrderMilestoneTypeId;cityssm.postJSON(e+"/admin/doMoveWorkOrderMilestoneTypeDown",{workOrderMilestoneTypeId:s,moveToBottom:t.shiftKey?"1":"0"},e=>{e.success?(n=e.workOrderMilestoneTypes,p()):bulmaJS.alert({title:"Error Moving Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})},p=()=>{const e=document.querySelector("#container--workOrderMilestoneTypes");if(0!==n.length){e.innerHTML="";for(const t of n){const s=document.createElement("tr");s.dataset.workOrderMilestoneTypeId=t.workOrderMilestoneTypeId.toString(),s.innerHTML='
',s.querySelector("form").addEventListener("submit",d),s.querySelector(".button--moveWorkOrderMilestoneTypeUp").addEventListener("click",i),s.querySelector(".button--moveWorkOrderMilestoneTypeDown").addEventListener("click",u),s.querySelector(".button--deleteWorkOrderMilestoneType").addEventListener("click",c),e.append(s)}}else e.innerHTML='

There are no active work order milestone types.

'};document.querySelector("#form--addWorkOrderMilestoneType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e+"/admin/doAddWorkOrderMilestoneType",s,e=>{e.success?(n=e.workOrderMilestoneTypes,p(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding Work Order Milestone Type",message:e.errorMessage,contextualColorName:"danger"})})}),p();let m=exports.lotStatuses;delete exports.lotStatuses;const y=t=>{t.preventDefault(),cityssm.postJSON(e+"/admin/doUpdateLotStatus",t.currentTarget,e=>{e.success?(m=e.lotStatuses,bulmaJS.alert({message:exports.aliases.lot+" Status Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})},v=t=>{const s=t.currentTarget.closest("tr"),o=s.dataset.lotStatusId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" Status",message:"Are you sure you want to delete this status?
Note that no "+exports.aliases.lots.toLowerCase()+" will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete Status",callbackFunction:()=>{cityssm.postJSON(e+"/admin/doDeleteLotStatus",{lotStatusId:o},e=>{e.success?(0===(m=e.lotStatuses).length?b():s.remove(),bulmaJS.alert({message:exports.aliases.lot+" Status Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})}}})},T=t=>{const s=t.currentTarget.closest("tr").dataset.lotStatusId;cityssm.postJSON(e+"/admin/doMoveLotStatusUp",{lotStatusId:s,moveToTop:t.shiftKey?"1":"0"},e=>{e.success?(m=e.lotStatuses,b()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})},g=t=>{const s=t.currentTarget.closest("tr").dataset.lotStatusId;cityssm.postJSON(e+"/admin/doMoveLotStatusDown",{lotStatusId:s,moveToBottom:t.shiftKey?"1":"0"},e=>{e.success?(m=e.lotStatuses,b()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})},b=()=>{const e=document.querySelector("#container--lotStatuses");if(0!==t.length){e.innerHTML="";for(const t of m){const s=document.createElement("tr");s.dataset.lotStatusId=t.lotStatusId.toString(),s.innerHTML='
',s.querySelector("form").addEventListener("submit",y),s.querySelector(".button--moveLotStatusUp").addEventListener("click",T),s.querySelector(".button--moveLotStatusDown").addEventListener("click",g),s.querySelector(".button--deleteLotStatus").addEventListener("click",v),e.append(s)}}else e.innerHTML='

There are no active '+cityssm.escapeHTML(exports.aliases.lot.toLowerCase())+" statuses.

"};document.querySelector("#form--addLotStatus").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e+"/admin/doAddLotStatus",s,e=>{e.success?(m=e.lotStatuses,b(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot+" Status",message:e.errorMessage,contextualColorName:"danger"})})}),b();let S=exports.lotOccupantTypes;delete exports.lotOccupantTypes;const O=t=>{t.preventDefault(),cityssm.postJSON(e+"/admin/doUpdateLotOccupantType",t.currentTarget,e=>{e.success?(S=e.lotOccupantTypes,bulmaJS.alert({message:exports.aliases.lot+" "+exports.aliases.occupant+" Type Updated Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Updating "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})},M=t=>{const s=t.currentTarget.closest("tr"),o=s.dataset.lotOccupantTypeId;bulmaJS.confirm({title:"Delete "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:"Are you sure you want to delete this "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupant.toLowerCase()+" type?
Note that no "+exports.aliases.lot.toLowerCase()+" "+exports.aliases.occupancy.toLowerCase()+" will be removed.",messageIsHtml:!0,contextualColorName:"warning",okButton:{text:"Yes, Delete "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",callbackFunction:()=>{cityssm.postJSON(e+"/admin/doDeleteLotOccupantType",{lotOccupantTypeId:o},e=>{e.success?(0===(S=e.lotOccupantTypes).length?w():s.remove(),bulmaJS.alert({message:exports.aliases.lot+" "+exports.aliases.occupant+" Type Deleted Successfully",contextualColorName:"success"})):bulmaJS.alert({title:"Error Deleting "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})}}})},k=t=>{const s=t.currentTarget.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e+"/admin/doMoveLotOccupantTypeUp",{lotOccupantTypeId:s,moveToTop:t.shiftKey?"1":"0"},e=>{e.success?(S=e.lotOccupantTypes,w()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})},f=t=>{const s=t.currentTarget.closest("tr").dataset.lotOccupantTypeId;cityssm.postJSON(e+"/admin/doMoveLotOccupantTypeDown",{lotOccupantTypeId:s,moveToBottom:t.shiftKey?"1":"0"},e=>{e.success?(S=e.lotOccupantTypes,w()):bulmaJS.alert({title:"Error Moving "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})},w=()=>{const e=document.querySelector("#container--lotOccupantTypes");if(0!==t.length){e.innerHTML="";for(const t of S){const s=document.createElement("tr");s.dataset.lotOccupantTypeId=t.lotOccupantTypeId.toString(),s.innerHTML='
',s.querySelector("form").addEventListener("submit",O),s.querySelector(".button--moveLotOccupantTypeUp").addEventListener("click",k),s.querySelector(".button--moveLotOccupantTypeDown").addEventListener("click",f),s.querySelector(".button--deleteLotOccupantType").addEventListener("click",M),e.append(s)}}else e.innerHTML='

There are no active '+cityssm.escapeHTML(exports.aliases.lot.toLowerCase())+" "+cityssm.escapeHTML(exports.aliases.occupant.toLowerCase())+" types.

"};document.querySelector("#form--addLotOccupantType").addEventListener("submit",t=>{t.preventDefault();const s=t.currentTarget;cityssm.postJSON(e+"/admin/doAddLotOccupantType",s,e=>{e.success?(S=e.lotOccupantTypes,w(),s.reset(),s.querySelector("input").focus()):bulmaJS.alert({title:"Error Adding "+exports.aliases.lot+" "+exports.aliases.occupant+" Type",message:e.errorMessage,contextualColorName:"danger"})})}),w()})(); \ No newline at end of file