loki
d75df6db1a
chore: add playwright-mcp snapshots to gitignore
Build & Push Docker Image / build (push) Successful in 3s
2026-05-20 22:53:35 +02:00
loki
9cbda65ab0
fix: all booking endpoints create new slots for parallel rendering
...
Build & Push Docker Image / build (push) Successful in 13s
- POST /api/public/bookings: creates new slot instead of reusing
- POST /api/bookings/manual: creates new slot instead of reusing
- POST /api/slots (with customer): creates new slot for the booking
- POST /api/public/book-slot: already fixed previously
- All 4 endpoints now produce parallel slot blocks
2026-05-20 22:45:09 +02:00
loki
4a731ab5c6
fix: overlap check only counts slots with bookings
Build & Push Docker Image / build (push) Successful in 15s
2026-05-20 21:29:35 +02:00
loki
827bf2a12b
fix: book-slot always creates new slot for parallel rendering
Build & Push Docker Image / build (push) Successful in 13s
2026-05-20 20:48:30 +02:00
loki
c383638f34
fix: use dayCap instead of slot.max_bookings for capacity check in public API
Build & Push Docker Image / build (push) Successful in 30s
2026-05-20 20:21:27 +02:00
loki
daa84f947e
fix: slot click shows info panel, edit modal via button only
Build & Push Docker Image / build (push) Successful in 13s
2026-05-14 22:23:52 +02:00
loki
a7d5d7894d
feat: Outlook-style overlap layout for calendar slots
...
Build & Push Docker Image / build (push) Successful in 11s
- Replaces exact-time grouping with overlap-based column algorithm
- Slots auto-assigned to narrowest possible columns
- Outlook-style rendering: overlapping slots get smaller widths
- Same algorithm for admin and customer views
2026-05-14 22:17:28 +02:00
loki
c466415c33
fix: darker blue background for slot blocks
Build & Push Docker Image / build (push) Successful in 10s
2026-05-14 20:54:11 +02:00
loki
f7b218650d
fix: calendar slot blocks blue background instead of white
Build & Push Docker Image / build (push) Successful in 11s
2026-05-14 20:49:16 +02:00
loki
9810ea536c
fix: booking card background light blue instead of white/gray
Build & Push Docker Image / build (push) Successful in 11s
2026-05-14 20:20:22 +02:00
loki
f4b232935b
fix: reaktivieren button in green to match its positive action
Build & Push Docker Image / build (push) Successful in 33s
2026-05-14 19:51:00 +02:00
loki
827eb724fc
feat: slot click opens edit, status buttons for all states, manual entry without email
Build & Push Docker Image / build (push) Successful in 14s
2026-05-14 18:52:21 +02:00
loki
401b701a52
feat: remove max_bookings, add batch create for all supporters
Build & Push Docker Image / build (push) Successful in 11s
2026-05-14 15:22:03 +02:00
loki
922d892f5a
fix: customer calendar same side-by-side layout as admin
Build & Push Docker Image / build (push) Successful in 10s
2026-05-13 23:28:16 +02:00
loki
491ec0cbc4
fix: nullish coalescing operator precedence in overlap.ts
Build & Push Docker Image / build (push) Successful in 13s
2026-05-13 23:11:23 +02:00
loki
f91d9754b1
feat: parallel slots side by side, overlap counting by capacity
Build & Push Docker Image / build (push) Failing after 9s
2026-05-13 22:58:06 +02:00
loki
794d85a4be
feat: add 'Slot zur gleichen Zeit' button in detail panel
...
Build & Push Docker Image / build (push) Successful in 10s
- New button opens create-modal with pre-filled date + start_time
- Makes duplicating slots for multiple supporters one click away
2026-05-13 21:34:07 +02:00
loki
e7e93d74e5
fix: admin calendar shows capacity per day, no sub-blocks for free slots
...
Build & Push Docker Image / build (push) Successful in 13s
- Backend: dailyCapacities includes ALL dates (blocked + slot dates)
- Admin calendar slot blocks:
- Title bar with slot name
- Booking rows only for existing bookings/blocked slots
- No 'Frei' sub-blocks shown
- Customer calendar unchanged (still shows Frei/Belegt/Ausstehend/Bestätigt)
- Capacity header (± controls) now visible for all week days
2026-05-13 21:27:25 +02:00
loki
56ea1a6364
feat: daily capacity per day with ± controls in calendar header
...
Build & Push Docker Image / build (push) Successful in 13s
- New daily_capacity table with date-based overrides
- Default = COUNT of it_support users (dynamic)
- Backend: GET/PUT/DELETE /api/capacity/:date
- Backend: POST /api/capacity/batch for multiple dates
- Slots API returns dailyCapacities map alongside slots
- Public API: new slots get day_capacity as max_bookings
- WeekCalendar header: − N + ✕ capacity controls per day
- SlotsPage: capacity mutations + passes to calendar
- WeekCalendar slot blocks use day capacity for maxB
2026-05-13 20:47:04 +02:00
loki
6032630a4b
fix: overlap check against ALL slots, not just those with bookings
Build & Push Docker Image / build (push) Successful in 1m0s
2026-05-13 00:08:05 +02:00
loki
e6fbdd036d
feat: prevent overlapping bookings across slots on same day
Build & Push Docker Image / build (push) Successful in 12s
2026-05-12 22:35:55 +02:00
loki
224ff7c583
fix: only push latest tag, remove sha revision
Build & Push Docker Image / build (push) Successful in 10s
2026-05-12 21:34:27 +02:00
loki
7ef3ac331f
fix: clear hover badge when mouse enters slot block area
Build & Push Docker Image / build (push) Successful in 12s
2026-05-12 21:01:40 +02:00
loki
de5f7c6e99
fix: prevent hover highlight from bleeding through slot blocks
Build & Push Docker Image / build (push) Successful in 10s
2026-05-12 20:12:14 +02:00
loki
cb95f5c89c
fix: customer calendar hover effects, cursor-pointer on all buttons
Build & Push Docker Image / build (push) Successful in 11s
2026-05-12 19:57:24 +02:00
loki
0c0289ed7a
fix: remove 'Slot auswählen' placeholder panel, calendar full width
Build & Push Docker Image / build (push) Successful in 10s
2026-05-12 19:39:52 +02:00
loki
c313f11e07
feat: better wrapping for overlapping bookings in calendar
...
Build & Push Docker Image / build (push) Successful in 11s
- Flex-wrap with 33% width when max_bookings > 3
- Customer mode: flex-wrap prevents unreadably narrow blocks
- Admin mode: wraps into rows, shows borders between blocks
- Container height adapts to wrapped rows
- Hover effects preserved on wrapped blocks
2026-05-12 19:21:24 +02:00
loki
2a3647fc1f
fix: add status-colored hover effects to calendar slot blocks
...
Build & Push Docker Image / build (push) Successful in 11s
- Slot container: hover ring + shadow (blue for free, red for blocked/booked)
- Sub-blocks: hover brightness+shadow for visual feedback
2026-05-12 18:24:03 +02:00
loki
f3e235897f
fix: status-colored hover border on booking cards, remove duplicate Tag blocken button
Build & Push Docker Image / build (push) Successful in 12s
2026-05-12 17:36:07 +02:00
loki
72af40bf07
fix: remove transparent overlay from modal completely
Build & Push Docker Image / build (push) Successful in 11s
2026-05-12 17:14:43 +02:00
loki
e4d29452e2
fix: remove backdrop blur from modal overlay
Build & Push Docker Image / build (push) Successful in 11s
2026-05-12 17:01:16 +02:00
loki
df6d67b8a5
feat: add PUID/PGID support with docker-entrypoint.sh
Build & Push Docker Image / build (push) Successful in 12s
2026-05-12 00:08:31 +02:00
loki
bacac8ed8b
fix: run container as non-root user (node)
Build & Push Docker Image / build (push) Successful in 20s
2026-05-12 00:00:41 +02:00
loki
bf6e80ad25
fix: move badge and copy icon to right column, use SVG link icon
Build & Push Docker Image / build (push) Successful in 10s
2026-05-11 23:53:17 +02:00
loki
9cd0817f15
feat: technician assignment + webhooks (Slack/Teams)
...
Build & Push Docker Image / build (push) Successful in 12s
- Backend: assigned_to column on slots + GET /api/users
- SlotForm: technician dropdown to assign IT/AM staff
- SlotsPage: shows assigned technician name in detail panel
- Webhooks table + CRUD routes (POST/GET/PUT/DELETE /api/webhooks)
- Webhook sender with Slack-compatible format
- Webhooks triggered on booking.created/confirmed/cancelled
- Settings: new Webhooks tab with add/list/toggle/delete
- DB: webhooks table with migrations
2026-05-11 23:20:33 +02:00
loki
fe11521054
fix: rename button to 'Buchung Link kopieren'
Build & Push Docker Image / build (push) Successful in 10s
2026-05-11 20:18:16 +02:00
loki
8418d7bab6
fix: toast message text and z-index visibility
Build & Push Docker Image / build (push) Successful in 10s
2026-05-11 20:11:19 +02:00
loki
2c08046fb3
fix: URL kopieren button with toast popup instead of emoji
Build & Push Docker Image / build (push) Successful in 13s
2026-05-11 19:43:48 +02:00
loki
715b61ce58
feat: booking link copy, customer history, email templates
...
Build & Push Docker Image / build (push) Successful in 13s
- Copy booking link buttons in Slot panel and Bookings list
- Customer history modal from Slot panel (📋 icon)
- Backend: GET /api/bookings supports customer_email filter
- Backend: new GET/PUT /api/email-templates
- DB: email_templates table with 3 default templates
- Email transporter reads templates from DB with {{var}} placeholders
- Settings: new E-Mail tab with template editor + preview
- Placeholders: app_name, customer_name, slot_title, slot_date, start_time, end_time, booking_url
2026-05-11 19:04:45 +02:00
loki
f2ae74d699
fix: seed runs Better-Auth migrations before creating admin user
Build & Push Docker Image / build (push) Successful in 13s
2026-05-11 00:03:37 +02:00
loki
72c7a2d9db
fix: inline SQL schema in database.ts (no file dependency)
Build & Push Docker Image / build (push) Successful in 3s
2026-05-10 23:49:16 +02:00
loki
ee0ab9fd96
fix: copy schema.sql to server/dist/db in Docker build
Build & Push Docker Image / build (push) Successful in 7s
2026-05-10 23:39:20 +02:00
loki
0acd654c5f
feat: auto-seed admin user on first start (Docker-ready)
...
Build & Push Docker Image / build (push) Successful in 12s
- New server/src/seed.ts creates admin user via auth API if not exists
- Called from index.ts after app.listen
- Configurable via env: ADMIN_EMAIL, ADMIN_PASSWORD, ADMIN_NAME, ADMIN_ROLE
- Defaults match existing test account (admin@test.de / Test1234!)
- Settings table already seeded via schema.sql INSERT OR IGNORE
2026-05-10 23:22:22 +02:00
loki
929c985e51
fix: add cc_email and notes to manual booking and slot+booking creation
Build & Push Docker Image / build (push) Successful in 14s
2026-05-10 23:09:58 +02:00
loki
2412c7da1d
fix: CC email receives same notification emails as customer
Build & Push Docker Image / build (push) Successful in 12s
2026-05-10 22:48:34 +02:00
loki
d8cc5543de
fix: show notes and CC email in admin bookings panel
Build & Push Docker Image / build (push) Successful in 12s
2026-05-10 22:34:29 +02:00
loki
be81071e5a
feat: customer notes and CC email for IT department
...
Build & Push Docker Image / build (push) Successful in 12s
- DB: bookings table gets cc_email and notes columns (with migration)
- Backend: all booking endpoints accept cc_email and notes
- Customer booking form: CC email field + notes textarea
- Email templates updated to show sender from CC config
2026-05-10 22:22:51 +02:00
loki
e561416675
feat: expanded settings with working hours, booking rules, app name
Build & Push Docker Image / build (push) Failing after 8s
2026-05-10 22:16:47 +02:00
loki
683309eb94
feat: create slot + direct customer booking in one step
...
Build & Push Docker Image / build (push) Successful in 14s
- Backend POST /api/slots accepts optional customer fields (name, email, company, location)
- When customer data provided: creates slot + booking simultaneously
- Frontend SlotForm: toggleable 'Kunde direkt zuweisen' section
- IT/AM can create slot and immediately assign a customer
2026-05-10 21:31:13 +02:00
loki
4e12b4ac49
feat: selected cell stays highlighted after click in customer calendar
Build & Push Docker Image / build (push) Successful in 10s
2026-05-10 20:48:21 +02:00