show floors in descending order

This commit is contained in:
David Senoner 2025-05-19 16:40:11 +02:00
parent e3b9a83e73
commit cab2b67227
4 changed files with 48 additions and 40 deletions

View file

@ -21,27 +21,27 @@
"devDependencies": { "devDependencies": {
"@exodus/schemasafe": "^1.3.0", "@exodus/schemasafe": "^1.3.0",
"@internationalized/date": "^3.8.0", "@internationalized/date": "^3.8.0",
"@lucide/svelte": "^0.482.0", "@lucide/svelte": "^0.511.0",
"@sinclair/typebox": ">=0.32.30 <1", "@sinclair/typebox": "^0.34.33",
"@sveltejs/adapter-auto": "^6.0.1", "@sveltejs/adapter-auto": "^6.0.1",
"@sveltejs/kit": "^2.21.1", "@sveltejs/kit": "^2.21.1",
"@sveltejs/vite-plugin-svelte": "^5.0.3", "@sveltejs/vite-plugin-svelte": "^5.0.3",
"@tailwindcss/vite": "^4.1.7", "@tailwindcss/vite": "^4.1.7",
"@tanstack/table-core": "^8.20.5", "@tanstack/table-core": "^8.21.3",
"@typeschema/class-validator": "^0.2.0", "@typeschema/class-validator": "^0.3.0",
"@vinejs/vine": "^1.8.0", "@vinejs/vine": "^3.0.1",
"arktype": ">=2.0.0-rc.8", "arktype": "^2.1.20",
"autoprefixer": "^10.4.21", "autoprefixer": "^10.4.21",
"bits-ui": "1.5.2", "bits-ui": "1.5.2",
"class-validator": "^0.14.1", "class-validator": "^0.14.2",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"drizzle-kit": "^0.31.1", "drizzle-kit": "^0.31.1",
"embla-carousel-svelte": "^8.6.0", "embla-carousel-svelte": "^8.6.0",
"formsnap": "2.0.1", "formsnap": "2.0.1",
"husky": "^9.1.7", "husky": "^9.1.7",
"joi": "^17.13.1", "joi": "^17.13.3",
"layerchart": "2.0.0-next.6", "layerchart": "2.0.0-next.6",
"lint-staged": "^15.5.2", "lint-staged": "^16.0.0",
"mode-watcher": "^1.0.7", "mode-watcher": "^1.0.7",
"paneforge": "1.0.0-next.5", "paneforge": "1.0.0-next.5",
"prettier": "^3.5.3", "prettier": "^3.5.3",
@ -54,15 +54,15 @@
"svelte-sonner": "^1.0.1", "svelte-sonner": "^1.0.1",
"sveltekit-superforms": "^2.25.0", "sveltekit-superforms": "^2.25.0",
"tailwind-merge": "^3.3.0", "tailwind-merge": "^3.3.0",
"tailwind-variants": "^0.2.1", "tailwind-variants": "^1.0.0",
"tailwindcss": "^4.1.7", "tailwindcss": "^4.1.7",
"tw-animate-css": "^1.3.0", "tw-animate-css": "^1.3.0",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"valibot": ">=0.33.0 <1", "valibot": "^1.1.0",
"vaul-svelte": "1.0.0-next.7", "vaul-svelte": "1.0.0-next.7",
"vite": "^6.3.5", "vite": "^6.3.5",
"yup": "^1.4.0", "yup": "^1.6.1",
"zod": "^3.24.4" "zod": "^3.25.1"
}, },
"dependencies": { "dependencies": {
"@node-rs/argon2": "^2.0.2", "@node-rs/argon2": "^2.0.2",

View file

@ -1,6 +1,7 @@
import { db } from "$lib/server/db"; import { db } from "$lib/server/db";
import * as table from "$lib/server/db/schema"; import * as table from "$lib/server/db/schema";
import { redirect } from "@sveltejs/kit"; import { redirect } from "@sveltejs/kit";
import { desc } from "drizzle-orm";
export const load = async (event) => { export const load = async (event) => {
if (!event.locals.user) { if (!event.locals.user) {
@ -9,6 +10,6 @@ export const load = async (event) => {
const floors_length = (await db.select().from(table.floors).orderBy(table.floors.floor)).length; const floors_length = (await db.select().from(table.floors).orderBy(table.floors.floor)).length;
if (floors_length == 0) await db.insert(table.floors).values({ floor: 0, url: "/" }); if (floors_length == 0) await db.insert(table.floors).values({ floor: 0, url: "/" });
const floors = await db.select().from(table.floors).orderBy(table.floors.floor); const floors = await db.select().from(table.floors).orderBy(desc(table.floors.floor));
return { user: event.locals.user, floors: floors }; return { user: event.locals.user, floors: floors };
}; };

View file

@ -1,36 +1,36 @@
import { db } from "$lib/server/db"; import { db } from "$lib/server/db";
import * as table from "$lib/server/db/schema"; import * as table from "$lib/server/db/schema";
import { eq } from "drizzle-orm";
import type { PageServerLoad } from "./$types"; import type { PageServerLoad } from "./$types";
export const load: PageServerLoad = async ({ params }) => { export const load: PageServerLoad = async ({ params }) => {
{ {
const floor = await db.select({ floor: table.plans.floor, json: table.plans.plan }).from(table.plans); const floor_cnt = await db.select({ floor: table.plans.floor, json: table.plans.plan }).from(table.plans).where(eq(table.plans.floor, params.slug));
if (floor.length == 0) { if (floor_cnt.length == 0) {
await db.insert(table.plans).values({ floor: params.slug, plan: { await db.insert(table.plans).values({ floor: params.slug, plan: {
"regions": [ "regions": [
{ "start": { "x": 100, "y": 100 }, "end": { "x": 400, "y": 100 } }, { "start": { "x": 100, "y": 100 }, "end": { "x": 400, "y": 100 } },
{ "start": { "x": 400, "y": 100 }, "end": { "x": 400, "y": 300 } }, { "start": { "x": 400, "y": 100 }, "end": { "x": 400, "y": 300 } },
{ "start": { "x": 400, "y": 300 }, "end": { "x": 100, "y": 300 } }, { "start": { "x": 400, "y": 300 }, "end": { "x": 100, "y": 300 } },
{ "start": { "x": 100, "y": 300 }, "end": { "x": 100, "y": 100 } } { "start": { "x": 100, "y": 300 }, "end": { "x": 100, "y": 100 } }
], ],
"doors": [ "doors": [
{ "location": { "x": 240, "y": 100 }, "width": 50, "rotation": 0 } { "location": { "x": 240, "y": 100 }, "width": 50, "rotation": 0 }
], ],
"furnitures": [ "furnitures": [
{ {
"minBound": { "x": 150, "y": 150 }, "minBound": { "x": 150, "y": 150 },
"maxBound": { "x": 200, "y": 200 }, "maxBound": { "x": 200, "y": 200 },
"equipName": "Table", "equipName": "Table",
"xPlacement": 150, "xPlacement": 150,
"yPlacement": 150, "yPlacement": 150,
"rotation": 0 "rotation": 0
} }
] ]
} }});
});
} }
} }
const floor = await db.select({ floor: table.plans.floor, json: table.plans.plan }).from(table.plans); const floor_ = await db.select({ floor: table.plans.floor, json: table.plans.plan }).from(table.plans).where(eq(table.plans.floor, params.slug));
return { slug: params.slug, floor: floor }; return { slug: params.slug, floor: floor_ };
}; };

View file

@ -32,6 +32,13 @@ export const actions = {
const floors = await db.select().from(table.floors); const floors = await db.select().from(table.floors);
if (floors.length == 1) return fail(400, { message: "Cannot delete last floor!" }); if (floors.length == 1) return fail(400, { message: "Cannot delete last floor!" });
const exists = await db
.select({ floor: table.floors.floor })
.from(table.floors)
.where(eq(table.floors.floor, n));
if (exists.length == 0) return fail(400, { message: "Floor " + n + " does not exist!" });
await db.delete(table.floors).where(eq(table.floors.floor, n)); await db.delete(table.floors).where(eq(table.floors.floor, n));
}, },
}; };