reorder occupancy type
parent
739f88a44a
commit
ef96f8545b
|
|
@ -0,0 +1,3 @@
|
|||
import type { RequestHandler } from "express";
|
||||
export declare const handler: RequestHandler;
|
||||
export default handler;
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import { moveOccupancyTypeDown } from "../../helpers/lotOccupancyDB/moveOccupancyTypeDown.js";
|
||||
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
|
||||
export const handler = async (request, response) => {
|
||||
const success = moveOccupancyTypeDown(request.body.occupancyTypeId);
|
||||
const occupancyTypes = getOccupancyTypes();
|
||||
response.json({
|
||||
success,
|
||||
occupancyTypes
|
||||
});
|
||||
};
|
||||
export default handler;
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import type { RequestHandler } from "express";
|
||||
|
||||
import { moveOccupancyTypeDown } from "../../helpers/lotOccupancyDB/moveOccupancyTypeDown.js";
|
||||
|
||||
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
|
||||
|
||||
export const handler: RequestHandler = async (request, response) => {
|
||||
const success = moveOccupancyTypeDown(request.body.occupancyTypeId);
|
||||
|
||||
const occupancyTypes = getOccupancyTypes();
|
||||
|
||||
response.json({
|
||||
success,
|
||||
occupancyTypes
|
||||
});
|
||||
};
|
||||
|
||||
export default handler;
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import type { RequestHandler } from "express";
|
||||
export declare const handler: RequestHandler;
|
||||
export default handler;
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import { moveOccupancyTypeUp } from "../../helpers/lotOccupancyDB/moveOccupancyTypeUp.js";
|
||||
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
|
||||
export const handler = async (request, response) => {
|
||||
const success = moveOccupancyTypeUp(request.body.occupancyTypeId);
|
||||
const occupancyTypes = getOccupancyTypes();
|
||||
response.json({
|
||||
success,
|
||||
occupancyTypes
|
||||
});
|
||||
};
|
||||
export default handler;
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import type { RequestHandler } from "express";
|
||||
|
||||
import { moveOccupancyTypeUp } from "../../helpers/lotOccupancyDB/moveOccupancyTypeUp.js";
|
||||
|
||||
import { getOccupancyTypes } from "../../helpers/functions.cache.js";
|
||||
|
||||
export const handler: RequestHandler = async (request, response) => {
|
||||
const success = moveOccupancyTypeUp(request.body.occupancyTypeId);
|
||||
|
||||
const occupancyTypes = getOccupancyTypes();
|
||||
|
||||
response.json({
|
||||
success,
|
||||
occupancyTypes
|
||||
});
|
||||
};
|
||||
|
||||
export default handler;
|
||||
|
|
@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
(() => {
|
||||
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
|
||||
const containerElement = document.querySelector("#container--occupancyTypes");
|
||||
const occupancyTypes = exports.occupancyTypes;
|
||||
let occupancyTypes = exports.occupancyTypes;
|
||||
delete exports.occupancyTypes;
|
||||
const expandedOccupancyTypes = new Set();
|
||||
const toggleOccupancyTypeFields = (clickEvent) => {
|
||||
|
|
@ -24,6 +24,44 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
panelBlockElement.classList.toggle("is-hidden");
|
||||
}
|
||||
};
|
||||
const moveOccupancyTypeUp = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeUp", {
|
||||
occupancyTypeId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
occupancyTypes = responseJSON.occupancyTypes;
|
||||
renderOccupancyTypes();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Occupancy Type",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
const moveOccupancyTypeDown = (clickEvent) => {
|
||||
clickEvent.preventDefault();
|
||||
const occupancyTypeId = clickEvent.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;
|
||||
cityssm.postJSON(urlPrefix + "/admin/doMoveOccupancyTypeDown", {
|
||||
occupancyTypeId
|
||||
}, (responseJSON) => {
|
||||
if (responseJSON.success) {
|
||||
occupancyTypes = responseJSON.occupancyTypes;
|
||||
renderOccupancyTypes();
|
||||
}
|
||||
else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Occupancy Type",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
const renderOccupancyTypes = () => {
|
||||
if (occupancyTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
|
|
@ -142,6 +180,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
occupancyTypeContainer
|
||||
.querySelector(".button--toggleOccupancyTypeFields")
|
||||
.addEventListener("click", toggleOccupancyTypeFields);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--moveOccupancyTypeUp")
|
||||
.addEventListener("click", moveOccupancyTypeUp);
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--moveOccupancyTypeDown")
|
||||
.addEventListener("click", moveOccupancyTypeDown);
|
||||
containerElement.append(occupancyTypeContainer);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ declare const bulmaJS: BulmaJS;
|
|||
"#container--occupancyTypes"
|
||||
) as HTMLElement;
|
||||
|
||||
const occupancyTypes: recordTypes.OccupancyType[] = exports.occupancyTypes;
|
||||
let occupancyTypes: recordTypes.OccupancyType[] = exports.occupancyTypes;
|
||||
delete exports.occupancyTypes;
|
||||
|
||||
const expandedOccupancyTypes = new Set<number>();
|
||||
|
|
@ -55,6 +55,72 @@ declare const bulmaJS: BulmaJS;
|
|||
}
|
||||
};
|
||||
|
||||
const moveOccupancyTypeUp = (clickEvent: Event) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const occupancyTypeId = (
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--occupancyType"
|
||||
) as HTMLElement
|
||||
).dataset.occupancyTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveOccupancyTypeUp",
|
||||
{
|
||||
occupancyTypeId
|
||||
},
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
occupancyTypes?: recordTypes.OccupancyType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
occupancyTypes = responseJSON.occupancyTypes;
|
||||
renderOccupancyTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Occupancy Type",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
const moveOccupancyTypeDown = (clickEvent: Event) => {
|
||||
clickEvent.preventDefault();
|
||||
|
||||
const occupancyTypeId = (
|
||||
(clickEvent.currentTarget as HTMLElement).closest(
|
||||
".container--occupancyType"
|
||||
) as HTMLElement
|
||||
).dataset.occupancyTypeId;
|
||||
|
||||
cityssm.postJSON(
|
||||
urlPrefix + "/admin/doMoveOccupancyTypeDown",
|
||||
{
|
||||
occupancyTypeId
|
||||
},
|
||||
(responseJSON: {
|
||||
success: boolean;
|
||||
errorMessage?: string;
|
||||
occupancyTypes?: recordTypes.OccupancyType[];
|
||||
}) => {
|
||||
if (responseJSON.success) {
|
||||
occupancyTypes = responseJSON.occupancyTypes;
|
||||
renderOccupancyTypes();
|
||||
} else {
|
||||
bulmaJS.alert({
|
||||
title: "Error Moving Occupancy Type",
|
||||
message: responseJSON.errorMessage,
|
||||
contextualColorName: "danger"
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
const renderOccupancyTypes = () => {
|
||||
if (occupancyTypes.length === 0) {
|
||||
containerElement.innerHTML =
|
||||
|
|
@ -196,6 +262,14 @@ declare const bulmaJS: BulmaJS;
|
|||
.querySelector(".button--toggleOccupancyTypeFields")
|
||||
.addEventListener("click", toggleOccupancyTypeFields);
|
||||
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--moveOccupancyTypeUp")
|
||||
.addEventListener("click", moveOccupancyTypeUp);
|
||||
|
||||
occupancyTypeContainer
|
||||
.querySelector(".button--moveOccupancyTypeDown")
|
||||
.addEventListener("click", moveOccupancyTypeDown);
|
||||
|
||||
containerElement.append(occupancyTypeContainer);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{document.querySelector("main").dataset.urlPrefix;const e=document.querySelector("#container--occupancyTypes"),a=exports.occupancyTypes;delete exports.occupancyTypes;const s=new Set,t=e=>{const a=e.currentTarget,t=a.closest(".container--occupancyType"),i=Number.parseInt(t.dataset.occupancyTypeId,10);s.has(i)?s.delete(i):s.add(i),a.innerHTML=s.has(i)?'<i class="fas fa-fw fa-minus" aria-hidden="true"></i>':'<i class="fas fa-fw fa-plus" aria-hidden="true"></i>';const c=t.querySelectorAll(".panel-block");for(const e of c)e.classList.toggle("is-hidden")};(()=>{if(0!==a.length){e.innerHTML="";for(const i of a){const a=document.createElement("div");if(a.className="panel container--occupancyType",a.dataset.occupancyTypeId=i.occupancyTypeId.toString(),a.innerHTML='<div class="panel-heading"><div class="level is-mobile"><div class="level-left"><div class="level-item"><button class="button is-small button--toggleOccupancyTypeFields" data-tooltip="Toggle Fields" type="button" aria-label="Toggle Fields">'+(s.has(i.occupancyTypeId)?'<i class="fas fa-fw fa-minus" aria-hidden="true"></i>':'<i class="fas fa-fw fa-plus" aria-hidden="true"></i>')+'</button></div><div class="level-item"><h2 class="title is-4">'+cityssm.escapeHTML(i.occupancyType)+'</h2></div></div><div class="level-right"><div class="level-item"><button class="button is-primary is-small button--editOccupancyType" type="button"><span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit '+exports.aliases.occupancy+' Type</span></button></div><div class="level-item"><button class="button is-success is-small button--addOccupancyTypeField" type="button"><span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span><span>Add Field</span></button></div><div class="level-item"><div class="field has-addons"><div class="control"><button class="button is-small button--moveOccupancyTypeUp" data-tooltip="Move Up" type="button" aria-label="Move Up"><i class="fas fa-arrow-up" aria-hidden="true"></i></button></div><div class="control"><button class="button is-small button--moveOccupancyTypeDown" data-tooltip="Move Down" type="button" aria-label="Move Down"><i class="fas fa-arrow-down" aria-hidden="true"></i></button></div></div></div></div></div></div>',0===i.occupancyTypeFields.length)a.insertAdjacentHTML("beforeend",'<div class="panel-block is-block'+(s.has(i.occupancyTypeId)?"":" is-hidden")+'"><div class="message is-info"><p class="message-body">There are no additional fields.</p></div></div>');else for(const e of i.occupancyTypeFields){const t=document.createElement("div");t.className="panel-block is-block container--occupancyTypeField",s.has(i.occupancyTypeId)||t.classList.add("is-hidden"),t.dataset.occupancyTypeFieldId=e.occupancyTypeFieldId.toString(),t.innerHTML='<div class="level is-mobile"><div class="level-left"><div class="level-item"><a class="has-text-weight-bold button--editOccupancyTypeField" href="#">'+cityssm.escapeHTML(e.occupancyTypeField)+'</a></div></div><div class="level-right"><div class="level-item"><div class="field has-addons"><div class="control"><button class="button is-small button--moveOccupancyTypeFieldUp" data-tooltip="Move Up" type="button" aria-label="Move Up"><i class="fas fa-arrow-up" aria-hidden="true"></i></button></div><div class="control"><button class="button is-small button--moveOccupancyTypeFieldDown" data-tooltip="Move Down" type="button" aria-label="Move Down"><i class="fas fa-arrow-down" aria-hidden="true"></i></button></div></div></div></div></div>',a.append(t)}a.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click",t),e.append(a)}}else e.innerHTML='<div class="message is-warning><p class="message-body">There are no active '+exports.aliases.occupancy.toLowerCase()+" types.</p></div>"})()})();
|
||||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=document.querySelector("main").dataset.urlPrefix,a=document.querySelector("#container--occupancyTypes");let s=exports.occupancyTypes;delete exports.occupancyTypes;const c=new Set,t=e=>{const a=e.currentTarget,s=a.closest(".container--occupancyType"),t=Number.parseInt(s.dataset.occupancyTypeId,10);c.has(t)?c.delete(t):c.add(t),a.innerHTML=c.has(t)?'<i class="fas fa-fw fa-minus" aria-hidden="true"></i>':'<i class="fas fa-fw fa-plus" aria-hidden="true"></i>';const i=s.querySelectorAll(".panel-block");for(const e of i)e.classList.toggle("is-hidden")},i=a=>{a.preventDefault();const c=a.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e+"/admin/doMoveOccupancyTypeUp",{occupancyTypeId:c},e=>{e.success?(s=e.occupancyTypes,o()):bulmaJS.alert({title:"Error Moving Occupancy Type",message:e.errorMessage,contextualColorName:"danger"})})},n=a=>{a.preventDefault();const c=a.currentTarget.closest(".container--occupancyType").dataset.occupancyTypeId;cityssm.postJSON(e+"/admin/doMoveOccupancyTypeDown",{occupancyTypeId:c},e=>{e.success?(s=e.occupancyTypes,o()):bulmaJS.alert({title:"Error Moving Occupancy Type",message:e.errorMessage,contextualColorName:"danger"})})},o=()=>{if(0!==s.length){a.innerHTML="";for(const e of s){const s=document.createElement("div");if(s.className="panel container--occupancyType",s.dataset.occupancyTypeId=e.occupancyTypeId.toString(),s.innerHTML='<div class="panel-heading"><div class="level is-mobile"><div class="level-left"><div class="level-item"><button class="button is-small button--toggleOccupancyTypeFields" data-tooltip="Toggle Fields" type="button" aria-label="Toggle Fields">'+(c.has(e.occupancyTypeId)?'<i class="fas fa-fw fa-minus" aria-hidden="true"></i>':'<i class="fas fa-fw fa-plus" aria-hidden="true"></i>')+'</button></div><div class="level-item"><h2 class="title is-4">'+cityssm.escapeHTML(e.occupancyType)+'</h2></div></div><div class="level-right"><div class="level-item"><button class="button is-primary is-small button--editOccupancyType" type="button"><span class="icon is-small"><i class="fas fa-pencil-alt" aria-hidden="true"></i></span><span>Edit '+exports.aliases.occupancy+' Type</span></button></div><div class="level-item"><button class="button is-success is-small button--addOccupancyTypeField" type="button"><span class="icon is-small"><i class="fas fa-plus" aria-hidden="true"></i></span><span>Add Field</span></button></div><div class="level-item"><div class="field has-addons"><div class="control"><button class="button is-small button--moveOccupancyTypeUp" data-tooltip="Move Up" type="button" aria-label="Move Up"><i class="fas fa-arrow-up" aria-hidden="true"></i></button></div><div class="control"><button class="button is-small button--moveOccupancyTypeDown" data-tooltip="Move Down" type="button" aria-label="Move Down"><i class="fas fa-arrow-down" aria-hidden="true"></i></button></div></div></div></div></div></div>',0===e.occupancyTypeFields.length)s.insertAdjacentHTML("beforeend",'<div class="panel-block is-block'+(c.has(e.occupancyTypeId)?"":" is-hidden")+'"><div class="message is-info"><p class="message-body">There are no additional fields.</p></div></div>');else for(const a of e.occupancyTypeFields){const t=document.createElement("div");t.className="panel-block is-block container--occupancyTypeField",c.has(e.occupancyTypeId)||t.classList.add("is-hidden"),t.dataset.occupancyTypeFieldId=a.occupancyTypeFieldId.toString(),t.innerHTML='<div class="level is-mobile"><div class="level-left"><div class="level-item"><a class="has-text-weight-bold button--editOccupancyTypeField" href="#">'+cityssm.escapeHTML(a.occupancyTypeField)+'</a></div></div><div class="level-right"><div class="level-item"><div class="field has-addons"><div class="control"><button class="button is-small button--moveOccupancyTypeFieldUp" data-tooltip="Move Up" type="button" aria-label="Move Up"><i class="fas fa-arrow-up" aria-hidden="true"></i></button></div><div class="control"><button class="button is-small button--moveOccupancyTypeFieldDown" data-tooltip="Move Down" type="button" aria-label="Move Down"><i class="fas fa-arrow-down" aria-hidden="true"></i></button></div></div></div></div></div>',s.append(t)}s.querySelector(".button--toggleOccupancyTypeFields").addEventListener("click",t),s.querySelector(".button--moveOccupancyTypeUp").addEventListener("click",i),s.querySelector(".button--moveOccupancyTypeDown").addEventListener("click",n),a.append(s)}}else a.innerHTML='<div class="message is-warning><p class="message-body">There are no active '+exports.aliases.occupancy.toLowerCase()+" types.</p></div>"};o()})();
|
||||
|
|
@ -12,6 +12,8 @@ import handler_doMoveFeeUp from "../handlers/admin-post/doMoveFeeUp.js";
|
|||
import handler_doMoveFeeDown from "../handlers/admin-post/doMoveFeeDown.js";
|
||||
import handler_doDeleteFee from "../handlers/admin-post/doDeleteFee.js";
|
||||
import handler_occupancyTypes from "../handlers/admin-get/occupancyTypes.js";
|
||||
import handler_doMoveOccupancyTypeUp from "../handlers/admin-post/doMoveOccupancyTypeUp.js";
|
||||
import handler_doMoveOccupancyTypeDown from "../handlers/admin-post/doMoveOccupancyTypeDown.js";
|
||||
import handler_tables from "../handlers/admin-get/tables.js";
|
||||
import handler_doAddWorkOrderType from "../handlers/admin-post/doAddWorkOrderType.js";
|
||||
import handler_doUpdateWorkOrderType from "../handlers/admin-post/doUpdateWorkOrderType.js";
|
||||
|
|
@ -41,6 +43,8 @@ router.post("/doMoveFeeUp", permissionHandlers.adminPostHandler, handler_doMoveF
|
|||
router.post("/doMoveFeeDown", permissionHandlers.adminPostHandler, handler_doMoveFeeDown);
|
||||
router.post("/doDeleteFee", permissionHandlers.adminPostHandler, handler_doDeleteFee);
|
||||
router.get("/occupancyTypes", permissionHandlers.adminGetHandler, handler_occupancyTypes);
|
||||
router.post("/doMoveOccupancyTypeUp", permissionHandlers.adminPostHandler, handler_doMoveOccupancyTypeUp);
|
||||
router.post("/doMoveOccupancyTypeDown", permissionHandlers.adminPostHandler, handler_doMoveOccupancyTypeDown);
|
||||
router.get("/tables", permissionHandlers.adminGetHandler, handler_tables);
|
||||
router.post("/doAddWorkOrderType", permissionHandlers.adminPostHandler, handler_doAddWorkOrderType);
|
||||
router.post("/doUpdateWorkOrderType", permissionHandlers.adminPostHandler, handler_doUpdateWorkOrderType);
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ import handler_doDeleteFee from "../handlers/admin-post/doDeleteFee.js";
|
|||
|
||||
import handler_occupancyTypes from "../handlers/admin-get/occupancyTypes.js";
|
||||
|
||||
import handler_doMoveOccupancyTypeUp from "../handlers/admin-post/doMoveOccupancyTypeUp.js";
|
||||
import handler_doMoveOccupancyTypeDown from "../handlers/admin-post/doMoveOccupancyTypeDown.js";
|
||||
|
||||
// Config Table Management
|
||||
|
||||
import handler_tables from "../handlers/admin-get/tables.js";
|
||||
|
|
@ -118,6 +121,19 @@ router.get(
|
|||
handler_occupancyTypes
|
||||
);
|
||||
|
||||
router.post(
|
||||
"/doMoveOccupancyTypeUp",
|
||||
permissionHandlers.adminPostHandler,
|
||||
handler_doMoveOccupancyTypeUp
|
||||
);
|
||||
|
||||
router.post(
|
||||
"/doMoveOccupancyTypeDown",
|
||||
permissionHandlers.adminPostHandler,
|
||||
handler_doMoveOccupancyTypeDown
|
||||
);
|
||||
|
||||
|
||||
/*
|
||||
* Config Tables
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue