Skip to content

Latest commit

 

History

History
43 lines (28 loc) · 3.05 KB

File metadata and controls

43 lines (28 loc) · 3.05 KB

Kitchen display

The kitchen display is a dedicated full-screen view for the kitchen: large, readable order cards with auto-refresh and optional sound on new orders.

Kitchen display — full-screen order cards

URL and access

  • URL: /kitchen (e.g. http://localhost:4202/kitchen)
  • Access: Same as Orders — authenticated users with order access (owner, admin, kitchen, bartender, waiter, receptionist). Route protected by authGuard and orderAccessGuard.

Features

  • Full-screen layout — No sidebar; header with title, “Back to orders” link, sound toggle, and last-refresh time.
  • Large order cards — Order #, table name, customer (if any), relative order time; list of items with quantity, name, notes, and item status (pending / preparing / ready / delivered).
  • Read-only — No status change controls; status updates are done from the main Orders page (/orders).
  • Active orders only — Shows orders in status: pending, preparing, ready, partially_delivered. Completed/paid/cancelled are not shown.
  • Auto-refresh — Polling every 15 seconds plus live updates via WebSocket when order data changes.
  • Optional sound — Toggle “Sound on” / “Sound off”. When on, a short double beep plays on WebSocket events new_order and items_added. Preference is stored in localStorage (kitchen-display-sound).

Navigation

  • Sidebar: link “Kitchen display” (same nav block as Orders). Opens /kitchen.
  • From kitchen view: “Back to orders” returns to /orders.

i18n

Translation keys under KITCHEN_DISPLAY.* and NAV.KITCHEN_DISPLAY in front/public/i18n/ (en, de, es, ca).

Prep stations (optional)

When the tenant defines kitchen stations under Settings → Kitchen stations, each product can be mapped to a station (or use tenant defaults for unmapped items by category: food vs beverages). Order lines then include kitchen_station_id, kitchen_station_name, and kitchen_station_route (kitchen | bar).

  • Kitchen display (/kitchen) and Bar display (/bar) show a Station filter when at least one station exists for that route. All stations shows every line for that display; a specific station shows only lines resolved to that station.
  • Query param: ?station=<id> bookmarks a station view; omit or all for all stations.
  • Printing: Browser / invoice printing is unchanged. Splitting physical kitchen tickets per station (e.g. one printout per grill vs cold line) is a follow-up for a local print agent or bridge; see docs/PRINTING.md.

Technical

  • Component: front/src/app/kitchen-display/kitchen-display.component.ts
  • Route: app.routes.ts/kitchen with authGuard and orderAccessGuard
  • API: ApiService.getOrders(false) and WebSocket orderUpdates$; GET /tenant/kitchen-stations for the filter; station CRUD and defaults under Settings (owner/admin).
  • Tests: front/src/app/kitchen-display/kitchen-display.component.spec.ts; backend back/tests/test_kitchen_stations.py (resolution helpers).