ecs - Terminal Menü

Erstellen und verwalten Sie Ihre Menüstruktur mit bis zu zehn Ebenen.

Anmeldung

Benutzername oder E-Mail und das eigene Passwort. Das Feld leer zu lassen führt über das gemeinsame Admin-Passwort — der Notzugang, falls einmal keine Einladung ankommt.

Passwort vergessen

Benutzername oder E-Mail eingeben. Gibt es dazu ein Konto, geht ein Link an die hinterlegte Adresse. Er gilt eine Stunde und lässt sich nur einmal verwenden; das bisherige Passwort bleibt bis dahin gültig.

Papierkorb

Gelöschte Terminaltypen und Menüs werden hier vollständig aufbewahrt – mit allen Menüpunkten – und lassen sich zurückholen.

Terminal auswählen

Welcher Terminaltyp mit welchem Softwarestand soll simuliert werden? Gezeigt wird der dazu gespeicherte Menübaum.

Terminal-Simulator

Spielt einen gespeicherten Menübaum auf dem nachgebildeten Gerät ab. Die Geräte haben keine Tasten — alles läuft über das Touchdisplay. Ersatzweise geht auch die Tastatur: Ziffern, Enter = OK, Rücktaste = Korr, Entf = Abbruch. Esc schließt den Simulator.

PAXCCV
CCV
A920
Verifone
Move/5000ingenico
--:--✻ ▾ ▮
CCV A960

Design

Wirkt sofort, unabhängig vom Hell/Dunkel-Umschalter. Betrifft nur die Werkzeugoberfläche, nicht die Terminal-Simulation.

Hilfe zum Menübaum-Generator

Mit Esc oder einem Klick außerhalb schließen.

Wozu der Generator dient

Sie pflegen hier die Menüstruktur Ihrer Terminals: je Terminaltyp (z. B. A960) einen oder mehrere Menübäume mit bis zu zehn Ebenen. Alle Daten liegen auf dem Server, nicht im Browser — jeder sieht denselben Stand.

Anmeldung und Rollen

  • Ohne Anmeldung gibt es nichts zu sehen: Der Server liefert weder Menüs noch Terminaltypen aus, die Oberfläche zeigt nur die Aufforderung zur Anmeldung.
  • Betrachter (angemeldet) darf ebenfalls nichts ändern, sieht aber zusätzlich ausgeblendete Terminaltypen und Menüs sowie inaktive Menüpunkte.
  • Bearbeiter darf Menüs, Terminaltypen und Papierkorb — nicht die Benutzerverwaltung und nicht das Menü Exportieren.
  • Admin darf zusätzlich unter 👥 Benutzer Konten anlegen, Rollen vergeben, einladen, sperren und löschen — und als Einziger exportieren, sichern und vom Server neu laden.

Angemeldet wird sich oben rechts über 🔒 Anmelden mit Benutzername oder E-Mail und dem eigenen Passwort. Bleibt das Namensfeld leer, gilt das gemeinsame Admin-Passwort als Notzugang — falls einmal keine Einladung ankommt.

Benutzer anlegen 👥

Ein neues Konto bekommt Benutzernamen, E-Mail und Rolle. Es kann sich erst anmelden, wenn der Eingeladene über den Link aus der E-Mail seine Adresse bestätigt und ein Passwort mit mindestens zehn Zeichen vergeben hat.

Die Liste ist nach Rollen gruppiert — Admin, Bearbeiter, Betrachter, jeweils mit der Anzahl der Konten. Innerhalb einer Gruppe stehen sie nach Benutzernamen.

  • Die Einladung geht erst auf Nachfrage hinaus — direkt nach dem Anlegen oder später jederzeit über Einladung senden.
  • Der Link gilt sieben Tage und lässt sich nur einmal verwenden; eine neue Einladung entwertet die vorherige.
  • Gesperrt nimmt den Zugang, ohne das Konto zu löschen. Der letzte verbleibende Admin lässt sich weder löschen noch herabstufen.
  • Passwörter sind für niemanden einsehbar — auch nicht für den Admin. Sie liegen ausschließlich als Hash in der Datenbank.
  • Passwort vergessen? steht im Anmeldedialog: Benutzername oder E-Mail eingeben, der Link an die hinterlegte Adresse gilt eine Stunde. Bis er benutzt wird, bleibt das alte Passwort gültig. Ob es ein Konto gibt, verrät die Antwort bewusst nicht.

Änderungswünsche und Fehler 🐞

Über 🐞 Meldung kann jeder Angemeldete einen Fehler oder einen Änderungswunsch eintragen. Die Admins bekommen die Meldung sofort per E-Mail.

  • Screenshot auf drei Wegen: Feld anklicken und Datei wählen, Datei hineinziehen, oder direkt nach dem Bildschirmfoto mit Strg+V einfügen. Bis zu drei Bilder je Meldung.
  • Die Bilder liegen in der Datenbank, nicht als Datei auf dem Server, und werden nur an Angemeldete ausgeliefert. Vor dem Speichern zeichnet der Server sie neu — das entfernt EXIF-Daten und alles, was an einer Bilddatei hängen könnte.
  • Begleitangaben (Programmstand, geladener Terminaltyp und Menü, Rolle, Fenstergröße, Browser) hängt das Formular selbst an und zeigt sie vorher an.
  • Den Bearbeitungsstand — offen, in Arbeit, erledigt, abgelehnt — setzt nur ein Admin, wahlweise mit einer Anmerkung. Sobald etwas erledigt oder abgelehnt ist, bekommt der Melder eine E-Mail mit dieser Anmerkung.
  • Alle Angemeldeten sehen alle Meldungen, das erspart Doppelmeldungen; die E-Mail-Adresse des Melders sieht nur der Admin.

Änderungshistorie 🕘

Der Admin sieht unter 🕘 Historie, wer wann was geändert hat: Anmeldungen und fehlgeschlagene Versuche, gespeicherte und gelöschte Menüs, Terminaltypen, Papierkorb, Import sowie alles rund um Benutzerkonten.

  • Beim Bearbeiten eines Menüs speichert das Werkzeug laufend automatisch. Damit das Protokoll lesbar bleibt, werden solche Folgespeicherungen desselben Menüs innerhalb von zehn Minuten zu einem Eintrag zusammengefasst und mit einem Zähler wie (7×) versehen.
  • Benutzername und Rolle stehen fest im Eintrag — er bleibt also lesbar, auch wenn das Konto später gelöscht wird.
  • Das Suchfeld filtert nach Benutzer, Ziel oder Aktion. Einträge älter als ein Jahr werden nach und nach entfernt.

Die Werkzeugleiste

Sie hat zwei Zeilen. Oben steht, was gezeigt wird: Terminaltyp, Menü und Sicht — letzteres zeigt den Baum aus Sicht einer Bedienergruppe. Darunter steht, was man tun kann: die Klappmenüs Menü, Terminaltyp, Exportieren und 🧰 Werkzeuge, dazu der 📟 Simulator. Rechts daneben laufen die Statusangaben mit: ungespeicherte Änderungen, Anzahl der Menüpunkte, Zeitpunkt der letzten Speicherung und der Programmstand.

Unter 🧰 Werkzeuge stecken Meldung, Papierkorb und Hilfe, für den Admin zusätzlich Benutzer, Historie und Sicherungen.

💾 Sicherungen

Ein Skript auf dem Server sichert alle zwei Stunden Datenbank und Dateien. Der Eintrag unter Werkzeuge zeigt dem Admin, was wann gelaufen ist — mehr nicht: Der Sicherungsordner ist per .htaccess gegen jeden Abruf gesperrt, denn die Sicherungen enthalten Benutzerkonten, Passwort-Hashes und die Zugangsdaten zur Datenbank.

Ist der jüngste Lauf älter als zwei Stunden, steht dort eine Warnung — dann läuft der Cronjob nicht. Zurückgespielt wird über SSH; die Befehle stehen in DEPLOY.md.

Terminaltyp ▾

  • Anlegen fragt in einem Zug nach Name, Hersteller und Bedienergruppen. Umbenennen ändert nur den Namen.
  • Hersteller und Bedienergruppen koppelt den Typ an einen Hersteller und legt fest, welche Ebenen es an diesem Gerät überhaupt gibt und wie sie dort heißen. Üblicherweise gibt der Hersteller sie vor („Bedienergruppen vom Hersteller übernehmen“); weicht ein Gerät ab — das Verifone T650p etwa kennt nur zwei, und der Kassierer heißt dort Händler —, wird die Aufstellung hier eigens gesetzt.
  • Hersteller verwalten pflegt die Herstellerliste samt deren Bedienergruppen. Eine Änderung dort schlägt sofort auf alle Terminaltypen durch, die vom Hersteller erben. Ein Hersteller lässt sich erst löschen, wenn kein Terminaltyp mehr an ihm hängt.
  • Für Betrachter ausblenden versteckt den Typ samt allen seinen Menüs, ohne etwas zu löschen.
  • Löschen entfernt den Typ mit allen zugehörigen Menüs — das lässt sich nicht rückgängig machen.

Die Auswahl Terminaltyp in der oberen Zeile filtert die Ansicht auf einen Typ.

Menü ▾

  • Neues Menü beginnt einen leeren Baum für den gewählten Terminaltyp.
  • Menü speichern schreibt den aktuellen Baum in die Datenbank.
  • In Terminaltyp kopieren legt den Baum als eigenständiges Menü bei einem anderen Terminaltyp an. Danach wird direkt dorthin gewechselt.
  • Zwei Menüs vergleichen stellt zwei gespeicherte Bäume gegenüber: fehlende, zusätzliche und geänderte Punkte, dazu Kopfdaten wie Softwarestand und Hostkenner.
  • Frühere Stände (nur Admin) zeigt, wie das Menü vor früheren Bearbeitungen aussah. Festgehalten wird der Stand vor einer Änderung, höchstens einmal je zehn Minuten — sonst legte das automatische Speichern im Sekundentakt Einträge an. Aufgehoben werden die 20 jüngsten Stände je Menü. Jeder lässt sich gegen den aktuellen Stand vergleichen und zurückspielen; der jetzige Stand wird dabei selbst festgehalten, ein versehentliches Zurückspielen ist also ebenfalls umkehrbar.
  • Menü für Betrachter ausblenden und Löschen wirken nur auf das ausgewählte Menü. Beim Löschen gehen auch die früheren Stände mit — die vollständige Momentaufnahme liegt dann im Papierkorb.

Menüpunkte bearbeiten

  • Klick auf eine Zeile öffnet den Punkt rechts zum Bearbeiten.
  • + Hauptmenüpunkt legt einen Punkt auf oberster Ebene an, Unterpunkt hinzufügen einen unter dem gewählten Punkt.
  • Ziehen am Griff ⠿ hängt einen Punkt samt Unterpunkten an eine andere Stelle. ↑ / ↓ ändern die Reihenfolge unter demselben Oberpunkt.
  • 📋 Punkt samt Unterpunkten kopieren hängt den gewählten Punkt mit allem darunter an eine andere Stelle: in dasselbe oder ein anderes Menü, wahlweise als Hauptmenüpunkt oder unter einen vorhandenen Punkt. Das Original bleibt, wo es ist; die Kopie bekommt eigene Kennungen. Ziele, unter denen der Zweig die zehnte Ebene sprengen würde, sind nicht auswählbar, und unter einem Zielpunkt wird die Kopie auf dessen Freigaben beschnitten.
  • Nach dem Speichern springt die Auswahl zum Oberpunkt, sodass sich mehrere Geschwister nacheinander anlegen lassen.
  • Maximal zehn Ebenen; das Verschieben wird abgelehnt, wenn der Zweig sonst tiefer geriete.

Die Felder: Menüpunkt ist der angezeigte Text, Funktionscode dient dem Vergleich zweier Menüs, Beschreibung erscheint beim Überfahren der Zeile, Link / Funktion und Symbol landen in der HTML-Ausgabe. Aktiv abzuwählen versteckt den Punkt vor Betrachtern, ohne ihn zu löschen.

Bedienergruppen K M T

Jeder Menüpunkt hält fest, welche Gruppen ihn am Terminal sehen: Kassierer, Manager, Techniker. Gefüllte Marke heißt freigegeben, blasser Umriss gesperrt.

  • Ändern über die Kästchen Sichtbar für im Bearbeitungsfeld oder direkt per Klick auf die Marke in der Baumzeile.
  • Eine Änderung gilt für den ganzen Zweig darunter. Freigeben geht nur, wenn der Oberpunkt die Gruppe durchlässt — sonst wäre der Punkt am Terminal nicht erreichbar.
  • Ein neuer Unterpunkt erbt die Freigaben seines Oberpunkts, ein neuer Hauptmenüpunkt ist für alle Gruppen sichtbar.
  • Beim Verschieben wird der Zweig auf die Freigaben des neuen Oberpunkts beschnitten; hinzu kommt dabei nichts.
  • Die Auswahl Sicht in der oberen Zeile zeigt den Baum aus Sicht einer Gruppe. Das ist eine reine Ansicht und ändert nichts. Sie lässt sich erst bedienen, wenn ein Menübaum geladen ist — vorher gäbe es nichts zu filtern.
  • Welche Gruppen überhaupt erscheinen, hängt am Terminaltyp und damit meist an dessen Hersteller (Terminaltyp ▾ → Hersteller und Bedienergruppen). Kennt ein Gerät eine Ebene nicht, fehlen Spalte, Marke, Kästchen und Filtereintrag — der gespeicherte Wert bleibt aber erhalten und ist sofort wieder da, sobald die Gruppe dem Typ zurückgegeben wird.

Suchen, Auf- und Zuklappen

  • Die Suche durchsucht Titel, Funktionscode, Beschreibung, Link und Symbol. Angezeigt werden der Weg zum Treffer und alles unterhalb des Treffers.
  • Beim Eintippen öffnen sich die Wege zu den Treffern automatisch; danach lässt sich alles frei zuklappen.
  • + Alle aufklappen und - Alle zuklappen wirken auf den ganzen Baum.

📟 Simulator

Der Simulator spielt einen gespeicherten Menübaum auf dem nachgebildeten Gerät ab. Beim Start wird gewählt, welcher Terminaltyp mit welchem Softwarestand laufen soll; über 🔄 Gerät oder Softwarestand wechseln geht das auch mitten in der Simulation. Der Simulator liest nur; am gespeicherten Menü ändert sich dabei nichts.

Die Bauform ergibt sich aus dem Namen des Terminaltyps: der A920 hat die Kamera im Oberteil und den Chipleser unten am Gerät, der A960 den Chipleser an der rechten Kante, das Verifone T650p eine helle Kachelseite mit dem Menü hinter dem Zeichen in der unteren Leiste — dort startet die Zahlung mit einem Tipp auf den Betrag. Kontaktlos wird bei allen am oberen Terminalrand gelesen, der Magnetstreifen an der rechten Kante. Diese drei haben keine Tasten — Ziffernblock und Funktionstasten liegen auf dem Display.

Anders das Ingenico Move/5000: ein tragbares Gerät mit echter Tastatur. Betrag und PIN werden über die Tasten am Gehäuse eingegeben, das Display zeigt nur die Anzeige. Unten am Displayrand liegen die vier fest belegten Tasten F1 bis F4; sie lassen sich anklicken oder über dieselben Tasten der PC-Tastatur auslösen. Der Chipleser sitzt an der Unterkante.

  • Betrag über den Ziffernblock eingeben (von rechts nach links in Cent) und mit starten. löscht die letzte Ziffer.
  • Menü öffnet die Schaltfläche unten links. Punkte lassen sich antippen oder über ihre Ziffer wählen; ‹ Zurück führt eine Ebene hoch. Ein Punkt ohne Unterpunkte gilt als Funktion und wird ausgeführt — heißt er nach Abschluss oder Kassenschnitt, wird dazu ein Beleg gedruckt.
  • Karte: stecken (Chip-Schlitz an der rechten Seite unten), vorhalten (weiße Zone oben) oder durchziehen (Rille darüber an derselben Kante) — direkt am Gerät oder über die Schaltflächen links. Chip verlangt immer eine PIN, kontaktlos erst über 50,00 EUR, der Magnetstreifen eine Unterschrift.
  • Die Auswahl Angemeldete Bedienergruppe zeigt das Menü so, wie es diese Gruppe am Terminal sieht — gesperrte Punkte tauchen gar nicht erst auf.
  • Auf dem Beleg stehen Hostkenner und Softwarestand aus den Kopfdaten des Menüs.

Exportieren ▾

Dieses Menü sieht nur der Admin; für Bearbeiter und Betrachter ist es ausgeblendet.

  • JSON speichern sichert den aktuell geladenen Menübaum als Datei.
  • Komplettsicherung sichert alle Terminaltypen und Menüs — diese Datei lässt sich über den Einrichtungsassistenten wieder einspielen.
  • Im Browser anzeigen öffnet eine Vorschau der fertigen Menüausgabe mit eigener Suche.
  • HTML-Ausgabe speichern legt diese Seite als Datei ab. Die Gruppenfreigaben stehen dort maschinenlesbar als data-gruppen an jedem Eintrag.
  • Vom Server neu laden verwirft lokale Änderungen und holt den gespeicherten Stand.

Speichern

Änderungen werden automatisch gespeichert: gut eine Sekunde nach der letzten Aktion wandert der Menübaum in die Datenbank. Das gilt für Verschieben, Umschalten der Bedienergruppen und die Kopfdaten ebenso wie für das Anlegen und Bearbeiten einzelner Menüpunkte.

Während etwas noch aussteht, steht oben ● Ungespeicherte Änderungen; sobald der Hinweis verschwindet, ist alles gesichert — der Zeitpunkt steht daneben unter „Zuletzt gespeichert“. Menü speichern gibt es weiterhin und schreibt sofort, ohne auf die Verzögerung zu warten.

Schlägt das Speichern fehl, etwa bei unterbrochener Verbindung, bleibt der Hinweis stehen und es erscheint eine rote Meldung. Ihre Eingaben bleiben dabei im Browser erhalten, bis das Speichern gelingt.

Menübaum kopieren

Kopiert den aktuell geladenen Menübaum „“ als neuen gespeicherten Menübaum in einen anderen Terminaltyp.

Hersteller und Bedienergruppen

Zu welchem Hersteller gehört der Terminaltyp, und welche Ebenen gibt es am Gerät? Üblicherweise gibt der Hersteller die Bedienergruppen vor. Weicht ein Gerät davon ab — das Verifone T650p etwa kennt nur Händler und Techniker —, lässt sich die Aufstellung hier eigens festlegen. Abgewählte Gruppen verschwinden aus allen Anzeigen; die gespeicherten Freigaben der Menüpunkte bleiben erhalten.

Hersteller

Der Hersteller gibt vor, welche Bedienergruppen seine Terminaltypen kennen und wie sie am Gerät heißen. Terminaltypen werden von Hand zugeordnet (Terminaltyp ▾ → Hersteller und Bedienergruppen) und übernehmen die Aufstellung, sofern dort nichts Eigenes eingestellt ist.

Änderungswünsche und Fehler

📎 Screenshot hier einfügen — anklicken, Datei hineinziehen oder mit Strg+V aus der Zwischenablage

Gemeldet

Screenshot

Änderungshistorie

Wer hat wann was geändert. Nur für Admins sichtbar. Mehrfaches Speichern desselben Menüs innerhalb von zehn Minuten steht als ein Eintrag mit Zähler.

Benutzerverwaltung

Ein neues Konto kann sich erst anmelden, wenn der Eingeladene über den Link aus der E-Mail seine Adresse bestätigt und ein Passwort vergeben hat. Passwörter liegen nur als Hash in der Datenbank.

Benutzer anlegen

Menüpunkt kopieren

Kopiert „ in ein anderes Menü — wahlweise als Hauptmenüpunkt oder unter einen vorhandenen Punkt. Das Original bleibt unverändert.

Menübäume vergleichen

Vergleicht zwei gespeicherte Menübäume. Menüpunkte werden über ihren Funktionscode zugeordnet, ersatzweise über den Titel.

Automatische Sicherung

Ein Skript auf dem Server sichert Datenbank und Dateien. Es hat bewusst keine Bedienung: Sicherungsordner und Skript liegen außerhalb des Webbereichs, sonst wären die Sicherungen über das Netz abrufbar — sie enthalten Benutzerkonten, Passwort-Hashes und die Zugangsdaten. Hier steht nur, was wann gelaufen ist. Zurückspielen geht über SSH, siehe DEPLOY.md.

Letzte Läufe

Frühere Stände von „

Festgehalten wird der Stand vor einer Bearbeitung, höchstens einmal je zehn Minuten. Aufgehoben werden die 20 jüngsten Stände je Menü; ältere fallen weg. Vergleichen stellt einen Stand dem aktuellen gegenüber, Wiederherstellen spielt ihn zurück — der jetzige Stand wird dabei selbst festgehalten.

Menüstruktur

Ziehen zum Verschieben · Klick zum Bearbeiten
Menüpunkt Ebene KMT