Totaal kassa's
{{ stats.total }}
Online
{{ stats.online }}
Offline
{{ stats.offline }}
Wassalons
{{ stats.wassalons }}
π {{ needsSetup.length }} wassalon{{ needsSetup.length !== 1 ? 's' : '' }} zonder geocoding
Voeg adres + lat/lon toe om ze op de kaart te zien. Klik "Bewerk" naast een wassalon om dat in te vullen.
- {{ w.wassalon_name }}
π Dashboard π₯ Users πͺ Wassalons π₯ Kassa's ποΈ Enrollment-tokens π Admin
β οΈ {{ conflictKassas.length }} re-enroll-conflict{{ conflictKassas.length !== 1 ? 'en' : '' }} β actie nodig
Een verse Pi met dezelfde Pi-serial als een bestaande kassa probeert te enrollen. Om een datalek tussen klanten te voorkomen wordt nooit automatisch herlinkt. De kassa toont intussen "wacht op activatie" en de Pi probeert elke 5 min opnieuw. Beslis per geval:
- Zelfde klant, defecte/vervangen Pi β klik Relink (behoudt wassalon + config).
- Pi-hergebruik (andere klant / afgehaakt) β klik Verwijder oude kassa. De volgende enroll wordt dan een schone nieuwe kassa.
-
{{ k.kassa_name }}
ποΈ unclaimed
π {{ k.wassalon_name }}
Β· serial β¦{{ k.pi_serial.slice(-12) }}
Β· Pi meldt zich als
{{ k.reenroll_hostname }}Β· laatste poging {{ formatLastSeen(k.reenroll_last_at) }} β Relink goedgekeurd β kassa komt vanzelf online (max 5 min) {{ relinkState[k.kassa_id] }}
Net de oude kassa verwijderd maar de Pi blijft hangen? Controleer dat de auth-user
ook weg is (Supabase Dashboard β Authentication β Users, β¦@kassa.internal).
π {{ unlinkedKassas.length }} kassa{{ unlinkedKassas.length !== 1 ? "'s" : '' }} wacht{{ unlinkedKassas.length === 1 ? '' : 'en' }} op koppeling
Deze kassas zijn online (heartbeat ontvangen) maar nog niet aan een wassalon gekoppeld. Klik 'Link' om toe te wijzen β Pi pickt het op binnen seconden via Realtime (of binnen 30 min via volgende heartbeat als Realtime niet werkt).
- {{ k.name }} ποΈ unclaimed Β· serial β¦{{ k.pi_serial.slice(-12) }} Β· laatst gezien {{ formatLastSeen(k.last_seen) }}
π {{ wassalonsWithoutKassas.length }} wassalon{{ wassalonsWithoutKassas.length !== 1 ? 's' : '' }} zonder kassa-Pi
Deze staan in de cloud maar hebben nog geen Pi met heartbeat. Voeg een kassa toe via
scripts/onboard-kassa.sh
om ze in de hoofdlijst te zien verschijnen.
- {{ w.name }} Β· {{ w.address_city }} Β· eigenaar {{ ownerNameFor(w.owner_id) }}
Laden...
Geen kassas gevonden voor deze filter.
| Kassa | Wassalon | Plaats | Eigenaar | Laatst gezien | ||
|---|---|---|---|---|---|---|
|
{{ k.kassa_name }}
ποΈ unclaimed
β οΈ re-enroll-conflict
β» relink goedgekeurd
{{ k.kassa_id.slice(0, 8) }}...
Pi: β¦{{ k.pi_serial.slice(-12) }}
|
{{ k.wassalon_name }}
{{ k.address_line1 }}
niet gekoppeld
|
{{ k.address_postal }} {{ k.address_city }}
{{ k.wassalon_location }}
β
{{ k.country || '?' }} Β· {{ k.timezone }}
Β· geen geocoding
β
|
{{ k.owner_full_name || k.owner_email }}
{{ k.owner_email }}
geen eigenaar
|
{{ formatLastSeen(k.last_seen) }}
nog nooit
|
Geen wassalons aangemaakt. Klik "+ Nieuwe wassalon" om er één aan te maken.
Geen wassalons matchen de zoekterm.
| Naam | Plaats | Eigenaar | Kassas | Geocoded | Aangemaakt | |
|---|---|---|---|---|---|---|
|
{{ w.name }}
{{ w.address_line1 }}
|
{{ w.address_postal }} {{ w.address_city }}
{{ w.location }}
β
{{ w.country || '?' }} Β· {{ w.timezone || 'Europe/Brussels' }}
|
{{ ownerNameFor(w.owner_id) }}
geen eigenaar
|
{{ kassaCountForWassalon(w.id) }} | β geen lat/lon | {{ formatDate(w.created_at) }} |
Users laden...
Geen users gevonden.
| User | Wassalons | Kassa's | Online | Aangemaakt | Laatste login | |
|---|---|---|---|---|---|---|
|
{{ displayName(o) }}
admin
{{ o.email }}
geen naam ingevuld
|
{{ o.wassalons_owned }} + {{ o.wassalons_staff }} staff
|
{{ o.kassas_count }} | β {{ o.online_kassas }}/{{ o.kassas_count }} {{ o.online_kassas }}/{{ o.kassas_count }} 0/{{ o.kassas_count }} | {{ formatDate(o.created_at) }} | {{ formatLastSeen(o.last_sign_in_at) }} nooit |
π App-admins
Users die fleet-app toegang hebben β kunnen alle wassalons + kassas + eigenaars zien en beheren. Wees voorzichtig met wie je hier bij voegt.
App-admins laden...
Geen app-admins. (Dit kan eigenlijk niet β als je dit ziet ben je waarschijnlijk uitgelogd.)
| Sinds | Notes | Laatste login | ||
|---|---|---|---|---|
|
{{ displayName(a) }}
jij
{{ a.email }}
{{ a.user_id.slice(0, 8) }}...
|
{{ formatDate(a.admin_since) }} | {{ a.notes }} β | {{ formatLastSeen(a.last_sign_in_at) }} nooit |
ποΈ Enrollment-tokens β zero-touch kassa-onboarding
Tokens worden door install.sh op de Pi gebruikt om zichzelf bij Supabase
te registreren. Geen service-key op de Pi nodig. Token-bron: pre-staged op SD-kaart
(/boot/firmware/wassalon-enrollment.txt) of interactief getypt tijdens install.
Workflow: Genereer token β kopieer plain-text (alleen nu zichtbaar) β plak op SD-kaart of geef aan installateur β Pi enrollt zichzelf β kassa verschijnt als 'unclaimed' op het dashboard.
Tokens laden...
Nog geen tokens. Klik + Genereer tokens om er aan te maken.
Geen tokens matchen dit filter.
| Prefix | Status | Label | Aangemaakt | Vervalt | Gebruikt door | |
|---|---|---|---|---|---|---|
| {{ t.token_prefix }}β¦ | β gebruikt vervallen beschikbaar | {{ t.label }} β | {{ formatDate(t.created_at) }} | {{ formatDate(t.expires_at) }} |
{{ t.pi_hostname }}
β¦{{ t.pi_serial.slice(-12) }}
|