From cca3077b7a03d4b88e91ebd7144b14e4298cdf34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?m=C3=BCde?= Date: Sun, 14 Jun 2026 22:55:29 +0200 Subject: [PATCH] review fixes: light-mode contrast, tz robustness, deploy copy - admin: maroon buttons use .danger class (white text); replace hardcoded #333/#ff8a8a/drop-target colors with theme vars so light mode is legible - time.ts: force hourCycle h23 (no 24:00 artifact), drop dead 24-guard - Makefile/README: rsync with excludes instead of `cp -a .` so .git and the dev DB don't ship to /opt; add rsync to deps --- Makefile | 11 ++++++++--- README.md | 2 +- client/src/admin/Admin.tsx | 10 +++++----- server/src/time.ts | 4 ++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index fe84387..8bfbc94 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ build: ## deps: install Node.js, pnpm and native-module build tools (Fedora) deps: require-root - dnf install -y nodejs gcc-c++ make python3 + dnf install -y nodejs gcc-c++ make python3 rsync corepack enable ## install: full production install on a fresh checkout (Fedora) @@ -41,9 +41,14 @@ service: require-root # Dedicated system user (no login, no home). id -u $(SERVICE_USER) >/dev/null 2>&1 || \ useradd --system --no-create-home --shell /usr/sbin/nologin $(SERVICE_USER) - # Copy the whole tree so pnpm's symlinked node_modules stay intact. + # Copy the tree (preserving pnpm's symlinked node_modules) but leave behind + # the repo metadata, local dev database, and editor/nix cruft. mkdir -p $(PREFIX) - cp -a . $(PREFIX)/ + rsync -a --delete \ + --exclude='.git' --exclude='.direnv' --exclude='.env' \ + --exclude='*.db' --exclude='*.db-wal' --exclude='*.db-shm' \ + --exclude='$(PREFIX)' \ + ./ $(PREFIX)/ # Config + secrets — never clobber an existing env file. mkdir -p $(CONFDIR) test -f $(CONFDIR)/wutzcalc.env || \ diff --git a/README.md b/README.md index a21460a..77a4d39 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ sudo useradd --system --no-create-home --shell /usr/sbin/nologin wutzcalc # 2. Install the built app (run `pnpm install && pnpm build` first) sudo mkdir -p /opt/wutzcalc -sudo cp -a . /opt/wutzcalc # or rsync/checkout into place +sudo rsync -a --exclude='.git' --exclude='*.db*' ./ /opt/wutzcalc/ sudo chown -R root:root /opt/wutzcalc # app dir stays read-only to the service # 3. Config + secrets (chmod 600 — holds ADMIN_PASSWORD) diff --git a/client/src/admin/Admin.tsx b/client/src/admin/Admin.tsx index 81884d3..40dc8b8 100644 --- a/client/src/admin/Admin.tsx +++ b/client/src/admin/Admin.tsx @@ -62,7 +62,7 @@ function Login({ onAuthed }: { onAuthed: () => void }) { value={pw} onInput={(e: any) => setPw(e.currentTarget.value)} /> - {err &&
{err}
} + {err &&
{err}
} @@ -107,7 +107,7 @@ function Stats() { <>

Umsatz nach Tagen

- +
@@ -227,7 +227,7 @@ function Drinks() { - + @@ -377,7 +377,7 @@ function Bars() { <>

Bars

{bars.map(b => ( -
+
- +
= {}; for (const p of fmt.formatToParts(d)) { @@ -49,7 +49,7 @@ function localParts(d: Date, tz: string = TZ): LocalParts { year: Number(parts.year), month: Number(parts.month), day: Number(parts.day), - hour: Number(parts.hour === '24' ? '0' : parts.hour), + hour: Number(parts.hour), minute: Number(parts.minute), second: Number(parts.second), };
TagTransaktionenBezahltCrew-TransaktionenPfand zurück