# Das Fenster

> Der Rahmen um jede Seite: die Titelleiste mit der Hilfe-Taste, der Schaltfläche Melden, ihren Design-Tasten und dem Benutzerchip, die Navigationsleiste und was jeden Eintrag zeigt, die Statusleiste und ihr Aktionsprotokoll, das Band der gestoppten Runtime, der Hilfebereich, Benachrichtigungen, der Dialog zur Einwilligung in Absturzberichte, die Ansichten, die eine verlorene Verbindung zeigt, das Vollbild, der Zoom im Fenster der Station und der Infobereich.

Jede Seite von Ganter Lab wird in einem Rahmen gezeichnet: eine Titelleiste, eine Navigationsleiste links, die Seite selbst und eine Statusleiste unten. Der Rahmen ist auf jeder Seite und in jeder Ansicht, die auf die Station schaut, derselbe, im Fenster der Station wie in einem Browser im Netz (siehe [Fernzugriff](remote-access)); die wenigen Stellen, an denen sich beide unterscheiden, sind unten genannt. Den Rahmen zu sehen braucht keine Berechtigung, aber mehrere seiner Einträge und Marken werden nur für eine Identität gezeichnet, die die passende Berechtigung hält, genau wie die Seiten dahinter.

## Der Rahmen auf einen Blick {#the-frame-at-a-glance}

| Teil | Wo | Was er hält |
|---|---|---|
| Titelleiste | Oben | Das Markenzeichen, die Hilfe-Taste, die Schaltfläche Melden, die drei Design-Tasten und der Benutzerchip. Im Fenster der Station zeichnet das Betriebssystem die Fensterleiste ("Ganter Lab", mit Minimieren, Maximieren und Schließen), die Titelleiste der Weboberfläche klappt weg, und die Hilfe-Taste, die Schaltfläche Melden, die Design-Tasten und der Chip legen sich in die obere rechte Ecke. Ein Browser behält die volle Leiste, mit dem Markenzeichen und dem Namen links. Mit einer [Marke](settings-branding) sagt die Fensterleiste die Bezeichnung der Station und trägt ihr Icon, und die Leiste zeigt das Logo der Station anstelle von Zeichen und Namen. |
| Band der gestoppten Runtime | Unter der Titelleiste | Nur vorhanden, solange die Runtime gestoppt ist (siehe unten). |
| Navigationsleiste | Linker Rand | Bis zu elf Einträge in zwei Gruppen: die Arbeitsgruppe oben und die Stationsgruppe unten festgehalten. |
| Inhalt | Mitte | Die Seite. Eine Seite, die sich nicht zeichnen lässt, fällt auf eine einzige Meldung zurück ("In diesem Bereich ist etwas schiefgelaufen", "Der Rest der Ansicht arbeitet weiter. Der Fehler wurde auf der Seite Ereignisse unter Konsole festgehalten.", mit **Erneut versuchen**), während der Rahmen am Leben bleibt; die nächste Navigation bekommt eine saubere Seite. |
| Snackbars | Über dem Inhalt, unten rechts | Die unterbrechenden Benachrichtigungen, die neueste oben. |
| Statusleiste | Unten | Die Anzeigen, zuletzt darunter die Versionsmarke, das Aktionsprotokoll und die Uhr. |

Das Fenster öffnet nie kleiner als 880 mal 520 Pixel und merkt sich zwischen den Starts, wo Sie es gelassen haben (Position, Größe, maximiert); siehe [Erster Start](app-install#first-launch).

## Titelleiste {#title-bar}

### Die Hilfe-Taste {#the-help-key}

Ein Fragezeichen links in der rechten Gruppe der Titelleiste, durch einen dünnen Trenner von den Design-Tasten getrennt. Sie öffnet den Hilfebereich, der unter [Kontexthilfe](#contextual-help) beschrieben ist, und markiert sich selbst, solange der Bereich offen ist. Sie wird auf jeder Route, für jede Identität und auch bei gestoppter Runtime gezeichnet.

### Die Schaltfläche Melden {#the-report-button}

Rechts neben der Hilfe-Taste schreibt die Schaltfläche Melden eine Meldung an Ganter, einen Fehler, einen Vorschlag oder eine Treiberanfrage, mit einem Bildschirmfoto des Fensters. Sie ist nur ein Symbol, so groß wie die Hilfe-Taste: ihr Tooltip nennt ihren Namen, **Melden**, und darunter, was sie tut, und ein Bildschirmleser kündigt sie unter diesem Namen an. Ein Druck nimmt zuerst das Fenster auf und öffnet erst dann das Formular der Meldung in einem Dialog über der Seite, sodass das Formular nie auf seinem eigenen Bild erscheint; das Formular, was es sendet und was der Server antwortet, steht unter [Rückmeldung](account-feedback#the-report-button). Sie wird auf jeder Route für eine Identität gezeichnet, deren Rolle Meldungen an Ganter senden hat, was jede Rolle hat, bis ein Administrator es ausschaltet, und für eine Identität ohne diese Berechtigung gar nicht. Solange eine Situation die Meldung verweigert, bleibt sie gezeichnet und ausgegraut, mit dem Grund im Tooltip unter ihrem Namen: ein Browser statt des Fensters der Station, eine Sitzung, die nicht senden kann (das Profil der Vorführung oder eine Anmeldung am Ganter-Konto der Station, die zu wiederholen ist), oder ein Bildschirmfoto, das gerade aufgenommen wird. Eine Station, die an keinem Ganter-Konto angemeldet ist, wird nicht abgewiesen: ihre Meldung geht ohne Konto hinaus, und das Formular sagt, dass Ganter nicht darauf antworten kann. Die veröffentlichte Vorführung zeichnet sie nicht.

### Design-Tasten {#theme-keys}

Drei Tasten nebeneinander, in dieser Reihenfolge, jede mit einem Tooltip, der sie benennt:

| Taste | Tooltip | Was sie tut |
|---|---|---|
| Systemvorgabe (ein Bildschirmzeichen) | Design: Systemvorgabe | Folgt der Erscheinung von Windows. Im Fenster der Station löst der Host sie auf und wendet sie in dem Moment neu an, in dem Windows zwischen Hell und Dunkel wechselt; ein Browser löst sie an seiner eigenen Vorliebe für Hell oder Dunkel auf. |
| Hell (ein Sonnenzeichen) | Design: Hell | Die helle Erscheinung, was auch immer Windows sagt. |
| Dunkel (ein Mondzeichen) | Design: Dunkel | Die dunkle Erscheinung, was auch immer Windows sagt. |

Die hervorgehobene Taste ist die geltende **Wahl**, nie die Erscheinung, zu der sie sich auflöst: Systemvorgabe bleibt als Systemvorgabe markiert, während es wie Hell oder Dunkel aussieht. Im Fenster der Station selbst wendet ein Druck auf eine Taste sie sofort an und speichert sie als Vorliebe der Station in der Konfigurationsdatenbank, und jeder Browser, der kein eigenes Design gewählt hat, folgt ihr sofort. In einem Browser ändert ein Druck auf eine Taste nur diesen Browser: die Wahl bleibt dort gespeichert und übersteht ein Neuladen, nichts erreicht die Station, und von da an folgt dieser Browser dem Design der Station nicht mehr. Die Tasten fragen nach keiner Berechtigung, denn die Wahl eines Browsers erreicht keine andere Ansicht. [Einstellungen, Darstellung](settings-appearance) zeigt und ändert dieselben drei Werte, unter denselben Bedingungen.

### Der Benutzerchip {#the-user-chip}

Rechts von den Design-Tasten, hinter einem dünnen Trenner, nennt der Chip, wer in **dieser Ansicht** angemeldet ist: **Anmelden**, solange niemand es ist, und der Anzeigename, sobald jemand es ist. Der Punkt auf dem Personenzeichen ist grün, solange jemand angemeldet ist, und sonst grau. Der Chip wird immer gezeichnet, auf jeder Route und in jeder Ansicht, denn Rollen gelten immer, und nicht angemeldet zu sein ist eine eigene Identität (die Rolle "Nicht angemeldet").

Ein Druck darauf öffnet den Anmeldedialog:

- Der Titel liest **Anmelden** oder **Benutzer wechseln**, solange jemand bereits angemeldet ist und die Liste gezeigt wird. In diesem Fall trägt eine Kopfzeile "Angemeldet als *Name*" eine Schaltfläche **Abmelden**.
- Die Liste führt jeden lokalen Benutzer mit einem zweibuchstabigen Kürzel, dem Namen und einer Marke auf: ein Schloss für einen Benutzer mit PIN (Tooltip "PIN erforderlich"), ein Pfeil für einen ohne (Tooltip "Meldet beim Antippen an"), der in dem Moment angemeldet ist, in dem die Zeile gedrückt wird.
- Ein Benutzer mit PIN öffnet den Schritt der PIN: das Kürzel und der Name des Benutzers, **Zurück**, die Dachzeile "PIN eingeben" und ein Tastenfeld, das 4 bis 6 Ziffern nimmt. Die Haken-Taste oder Eingabe schickt ab.
- Eine Ablehnung bleibt an Ort und Stelle auf dem Tastenfeld: "Diese PIN ist nicht richtig." oder "Zu viele falsche PINs. Versuchen Sie es in *n* Sekunden/Minuten erneut." Fünf falsche PINs hintereinander schließen die Tür für eine Minute; jeder weitere Fünferlauf verdoppelt die Wartezeit, bis auf fünfzehn Minuten.
- Gibt es auf der Station noch keinen lokalen Benutzer, sagt der Dialog das, statt eine leere Liste zu zeigen: "Diese Station hat noch keine lokalen Benutzer. Der erste, der Hauptadministrator, wird auf der Seite Benutzer angelegt."

Im Fenster der Station wechselt der Chip die Sitzung der Station, also die Identität, unter der jeder Befehl dieses Fensters läuft; in einem Browser meldet er diese Verbindung an und sonst nichts. In beiden Fällen landet das Ergebnis auch im Aktionsprotokoll der Statusleiste ("Angemeldet als Ana.", "Ana wurde abgemeldet.", "Anmeldung abgelehnt. Weiterhin angemeldet als Ana."), denn wer angemeldet ist, entscheidet, was jeder andere Befehl darf. Der ganze Ablauf steht unter [Anmelden](users-signing-in).

## Navigationsleiste {#navigation-rail}

Die Leiste ist 64 Pixel breit: ein Zeichen und eine Beschriftung je Eintrag, der aktive Eintrag hervorgehoben. Jeder Eintrag wird nur gezeichnet, wenn die Identität in dieser Ansicht mindestens eine der genannten Berechtigungen hält; die Seiten selbst prüfen beim Öffnen erneut, die Leiste kürzt also nur das weg, was ohnehin abgelehnt würde. Die Berechtigungen sind die Schalter des Rolleneditors; siehe [Berechtigungen](users-permissions).

| Eintrag | Gruppe | Öffnet | Gezeichnet, wenn |
|---|---|---|---|
| Willkommen | Oben | Die Seite Willkommen (`/welcome`): alle Bereiche des Programms, Schritt für Schritt erklärt | Auf einer Station nur, solange die Station die Seite behält (siehe [Willkommen](welcome)), und dann eine von Connector konfigurieren, Logic konfigurieren, Process verwalten, Dashboards ändern, Lokale Benutzer verwalten, Agent verwalten (MCP). Die veröffentlichte Vorführung zeichnet ihn immer, für jeden Besucher. |
| View | Oben | Die Seite der Dashboards (`/view`; leuchtet auch für `/`, `/home` und die eigene Adresse eines Dashboards `/d/…`) | Immer: Dashboards anzusehen kann nie entzogen werden |
| Process | Oben | Der Arbeitsbereich Process, der auch die Historien hält (leuchtet auch für `/histories`) | Eine von Modelle ansehen, Abläufe ausführen, Rezepte und Bewertungen ändern, Process verwalten, Historien anzeigen |
| Logic | Oben | Die Seite Logic | Logic anzeigen |
| Connector | Oben | Die Seite Connector | Connector anzeigen |
| Benutzer | Oben | Die Seite Benutzer | Immer auf einer echten Station (die Seite selbst sagt einem Nicht-Administrator, dass die Verwaltung gesperrt ist). Die veröffentlichte Vorführung lässt sie weg. |
| Validierung | Unten | Die Seite Validierung | Validierung anzeigen |
| Ereignisse | Unten | Die Seite Ereignisse | Ereignisse anzeigen |
| Agentenzugriff | Unten | Die Seite Agent | Agent verwalten (MCP) |
| Fernzugriff | Unten | Die Seite Fernzugriff | Fernzugriff anzeigen |
| Einstellungen | Unten | Die Seite Einstellungen | Einstellungen ändern |
| Konto | Unten | Die Seite Konto. Der einzige Eintrag, der mit dem G der Marke statt mit einem Zeichen gezeichnet wird. | Immer auf einer echten Station. Die veröffentlichte Vorführung lässt ihn weg. |

Ist niemand angemeldet, entscheidet die Rolle "Nicht angemeldet". Ihre Werksberechtigungen halten alles außer Lokale Benutzer verwalten und Fernzugriff (LAN), eine frische Station zeichnet also jeden Eintrag, bis ein Administrator diese Rolle unter [Rollen](users-roles) enger fasst. Nimmt ein Rollenwechsel den Eintrag der Seite weg, auf der Sie sind, bringt die Anwendung Sie zum ersten Eintrag, den sie noch zeichnet.

Zwei Einträge tragen eine Marke:

- **Validierung** trägt ein Kennzeichen in Vorsichtsfarbe mit der Anzahl der zu reparierenden Punkte (99+ jenseits von neunundneunzig), verborgen, solange die Konfiguration sauber ist. Es folgt dem Suchlauf des Prüfers im Hintergrund und ändert sich also, während Sie bearbeiten; siehe [Validierung](validation).
- **Konto** trägt ein Ausrufezeichen nur, wenn die Lizenz Aufmerksamkeit braucht: bernsteinfarben, wenn das Abonnement überfällig ist, innerhalb von 14 Tagen endet oder kein bekanntes Enddatum hat, obwohl es enden soll; rot, wenn das Abonnement gekündigt ist oder wenn es einen Lizenzplatz erteilen könnte, diese Station aber keinen hält. Ein Druck auf den markierten Eintrag landet im Abschnitt Abonnement statt oben auf der Seite; siehe [Abonnement](account-subscription). Einen neutralen Punkt für "verbunden" gibt es nicht.

## Statusleiste {#status-bar}

Die Leiste liest von links nach rechts: die Gruppe der Anzeigen, die mit der Versionsmarke endet, das Aktionsprotokoll in der dehnbaren Mitte und allein am rechten Ende die Uhr. Sie frischt jede Sekunde auf.

### Die Anzeigen {#the-indicators}

| Anzeige | Liest | Gezeigt, wenn | Klick |
|---|---|---|---|
| Rücklauf des kostenlosen Modus | "Kostenlos · 12:34" im Rücklauf, "Kostenlos · Runtime gestoppt", sobald er abgelaufen ist, "Kostenlos", solange keine verbleibende Zeit bekannt ist; das G des Eintrags Konto aus der Navigationsleiste, in Bernstein. Tooltip: "Kostenloser Modus: Die Runtime stoppt, wenn die Zeit abgelaufen ist. Melden Sie sich an oder fügen Sie eine Lizenz hinzu, um die Begrenzung aufzuheben. Klicken Sie hier, um das Konto zu öffnen." | Die Station ist nicht lizenziert (siehe [Kostenloser Modus und Lizenz](app-free-mode)) | Konto (auf einem Gerät, das auf seinem Startbildschirm gesperrt ist, informiert sie nur) |
| Zustand | Das Zeichen des Connectors aus der Navigationsleiste, eingefärbt nach dem Zustand des Connectors, und ein Text, der mit dem Connector beginnt. Das schlechteste Gerät: "Connector: *Name* kommuniziert nicht" (rot) oder "Connector: *Name* instabil" (bernsteinfarben); liest jedes Gerät, dann "Connector: verbunden" (grün); "Connector: gestoppt" (grau), solange der Connector selbst nicht läuft. Der eingebettete OPC UA-Server gehört nicht dazu: Der Connector liest die Geräte, während der Server gestoppt ist, und der Zustand des Servers steht unter [Zustand](connector-opcua-server). Tooltip: "Zustand von Connector (zum Öffnen klicken)". | Immer | Connector |
| Alarme | Eine Glocke und "Alarme: *n* aktiv (*m* unquittiert)", Zeichen und Text eingefärbt nach der schwersten Priorität darunter (dieselbe Skala, die der Baum von Logic und die Seite Ereignisse nutzen). Tooltip: "Alarme (zum Öffnen der Alarmliste klicken)". | Ein Alarm ist aktiv oder wartet noch auf eine Quittierung | Ereignisse, Alarme |
| Aufzeichnungen | "Process: *n* in Aufzeichnung", "Process: *n* angehalten" oder "Process: *n* in Aufzeichnung · *m* angehalten"; das Zeichen von Process aus der Navigationsleiste, grün, bernsteinfarben, solange ein Lauf angehalten ist (jeder Lauf zählt einmal, nach seinem Zustand: ein angehaltener Lauf zählt nicht zusätzlich als in Aufzeichnung; nur seine Uhr pausiert, die Erfassung läuft weiter). Tooltip: "Laufende Aufzeichnungen (zum Öffnen von Process klicken)". | Mindestens eine Einheit zeichnet auf oder ist angehalten | Process |
| Neue Version | Ein Pfeilzeichen in der Akzentfarbe und "Aktualisierung verfügbar" oder, im Ton der Vorsicht, "Aktualisierung mit wichtigen Korrekturen", wenn die Version als Trägerin wichtiger Korrekturen gekennzeichnet ist. Eine Versionsnummer nennt sie nicht. Der Tooltip sagt, dass eine neue Version verfügbar ist, ergänzt, ob sie bereits heruntergeladen ist ("Sie ist heruntergeladen und wird beim nächsten Neustart von Ganter Lab installiert."), und endet mit "Klicken Sie hier, um Einstellungen, Aktualisierungen zu öffnen." | Eine neuere Version wartet darauf, genommen zu werden, und wurde unter [Einstellungen, Aktualisierungen](settings-updates) nicht ignoriert, für eine Identität mit der Berechtigung Einstellungen ändern (ein Bediener an einem entfernten Tablet sieht nie eine Entscheidung, die nicht seine ist), und nie auf einem Build ohne Aktualisierungskanal | Einstellungen, Aktualisierungen |

Jede Anzeige trägt das Zeichen des Bereichs, für den sie spricht, und ihre Worte beginnen mit dem Namen dieses Bereichs, sodass ein Blick sagt, welcher Teil der Station in Ordnung ist und welcher nicht: Die Zeichen von Connector und Process sind die aus der Navigationsleiste, der Rücklauf trägt das G des Eintrags Konto, und die Alarme behalten die Glocke, da ein Klick darauf die Alarmliste unter Ereignisse öffnet und nicht Logic. Die Farben sind die jedes Zustandspunkts der Anwendung: grün für gesund, bernsteinfarben für eingeschränkt oder startend, rot für gestört oder offline, grau für neutral. Das Symbol im Infobereich sagt denselben Zustand des Connectors (siehe unten).

### Das Aktionsprotokoll {#the-action-feed}

Die Mitte der Leiste ist der eine Ort, an dem das Ergebnis dessen landet, was Sie gerade getan haben: ein Speichern, ein Löschen, ein Umbenennen, ein Import, ein Druck, ein Suchlauf, eine Quittierung. Jeder Befehl, der den Zustand ändert, meldet beide Ausgänge, den geglückten wie den abgelehnten.

- Ein Erfolg verblasst nach sechs Sekunden von selbst. Ein Fehlschlag behält eine rote Marke und verschwindet nach etwa zehn Sekunden von selbst, wenn ihn nicht vorher ein neueres Ergebnis ersetzt oder Sie seine Schaltfläche **Ausblenden** (x) drücken. Eine Ablehnung zu einem Gerät, einer seriellen Leitung oder einem MQTT-Broker im Connector (ein Feld, das noch fehlt, oder eine Änderung, die die Station nicht angenommen hat) verschwindet außerdem, sobald ein späteres Speichern desselben Geräts, derselben Leitung oder desselben Brokers in dieser Ansicht gelingt, denn die Seite zeigt dann genau das, was gespeichert ist.
- Der Text wird vor der Uhr abgekürzt; der ganze Text steht im Tooltip.
- Ein Eintrag darf **eine** Folgeschaltfläche neben sich tragen, zum Beispiel **Rückgängig** nach dem Entfernen einer Dashboard-Komponente. Sie lebt und stirbt mit dem Eintrag: das Ablaufen des Eintrags, das nächste Ergebnis, ein Ausblenden und der Druck selbst nehmen sie fort, damit die Leiste nie einen Befehl anbietet, der nicht mehr zum Text daneben antwortet.
- Das Protokoll gehört der Verbindung: diese Ansicht zeigt die Ergebnisse dessen, was diese Ansicht getan hat, nie das, was ein Browser anderswo getan hat. Das Fenster der Station trägt zusätzlich die Arbeit, um die keine Ansicht gebeten hat (eine automatische Sicherung, ein Bericht, der von selbst entstand, ein Fehlschlag des Hosts).
- Die eine Ausnahme: ein Befehl, der in einer Dashboard-Komponente gedrückt wird (ein Button, ein Toggle, ein Input), antwortet unter dieser Komponente, der Fläche, die noch da ist, wenn ein Dashboard im Vollbild diese Leiste verbirgt.

Seiten lassen nie ein eigenes Aufblitzen "Gespeichert" oder eine eigene Statuszeile wachsen; wenn Sie die Antwort auf einen Druck suchen, ist sie hier.

### Die Uhr {#the-clock}

**Die Uhr**: das lokale Datum und die lokale Zeit in den Formaten, die unter [Einstellungen, Lokalisierung](settings-localization) gewählt sind (zum Beispiel `dd/MM/yyyy HH:mm:ss`), im Sekundentakt. Der Tooltip liest "Einstellungen: Lokalisierung", denn dort werden diese Formate gesetzt.

Die Leiste nennt keine Version: Die laufende Programmversion steht unter [Über](settings-about) und unter der Überschrift von [Einstellungen, Aktualisierungen](settings-updates).

### Solange die Runtime gestoppt ist {#while-the-runtime-is-stopped}

Zustand, Alarme und Aufzeichnungen lassen sich nicht behaupten, solange nichts gelesen wird, deshalb weicht die Gruppe der Anzeigen einer einzigen Botschaft, die irgendwohin Nützliches führt: "Anmelden für ein längeres kostenloses Zeitfenster" oder "Lizenz hinzufügen, um die Begrenzung aufzuheben" (beide öffnen die Seite Konto), oder, wenn es nichts mehr zu kaufen gibt, "Runtime neu starten, um fortzufahren" im Fenster der Station und "Der Neustart erfolgt an der Station, dem Rechner, auf dem Ganter Lab läuft." in einem Browser. Der Rücklauf bleibt links an erster Stelle und liest "Kostenlos · Runtime gestoppt".

## Das Band der gestoppten Runtime und die pausierte Seite {#the-stopped-runtime-band-and-the-paused-page}

Läuft das Zeitfenster des kostenlosen Modus ab, hält die Runtime an (siehe [Kostenloser Modus und Lizenz](app-free-mode)), und die Anwendung sagt das einmal, auf jeder Route und in jeder Ansicht gleich:

- Ein Band unter der Titelleiste: **Runtime gestoppt**, "Erfassung, Logic und Aufzeichnung sind angehalten. Ihre Konfiguration und die aufgezeichneten Läufe sind unversehrt.", und die eine Schaltfläche **Runtime neu starten**. Die Schaltfläche gibt es nur im Fenster der Station: ein Browser liest an ihrer Stelle "Der Neustart erfolgt an der Station, dem Rechner, auf dem Ganter Lab läuft.", damit ein Zeitfenster des kostenlosen Modus nie aus dem Netz zurückgesetzt werden kann.
- Jede Seite außer Konto weicht einem Hinweis auf die Pause: **Diese Ansicht ist angehalten**, "Sie liest die Station live, und solange die Runtime gestoppt ist, wird nichts gelesen. Sie wartet hier, statt Werte zu zeigen, die nicht mehr stimmen.", dann "Der Neustart erfolgt sofort und ist unbegrenzt. Die Runtime ist wieder da, sobald Sie es verlangen." an der Station und "Der Bediener an der Station kann sie jederzeit und unbegrenzt neu starten. Diese Ansicht kommt von selbst zurück." anderswo. Konto behält seine Seite, denn das Anmelden oder das Hinzufügen einer Lizenz ist das, was die Begrenzung aufhebt.
- Ein Dashboard im Vollbild verlässt es, damit das Band und die Navigationsleiste zu sehen sind.
- Jeder Befehl, der die Station ändern würde, wird mit denselben zwei Worten abgelehnt, "Runtime gestoppt": auf den Werkzeugleisten, in den Menüs, auf Schaltflächen von Snackbars (ausgegraut mit diesem Tooltip) und am Agenten-Endpunkt.

Ein Neustart, der fehlschlägt, löst eine Warnbenachrichtigung aus, "Neustart der Runtime fehlgeschlagen: Die Runtime konnte nicht vollständig neu gestartet werden. Prüfen Sie Ereignisse und versuchen Sie es erneut.", und die Schaltfläche bleibt für einen weiteren Versuch.

## Kontexthilfe {#contextual-help}

Die Hilfe-Taste öffnet einen Bereich rechts, neben der Seite statt über ihr: die Seite arbeitet weiter, damit die Anweisung auf der Ansicht ausgeführt werden kann, um die es geht. Auf einer schmalen Ansicht (einem Telefon oder einem hochkant gehaltenen Tablet) nimmt der Bereich stattdessen das Fenster. Esc schließt ihn, ebenso seine eigene Schließtaste, und der Fokus geht zur Hilfe-Taste zurück.

Was er zeigt, ist die Dokumentationsseite zu dem, was vor Ihnen liegt. Die Route entscheidet darüber, den Bereich auf Logic zu öffnen öffnet also die Seite Logic dieser Dokumentation; auf einer Seite, die als eine lange Spalte gelesen wird (Einstellungen, Agent, Konto), entscheidet stattdessen der Abschnitt, zu dem Sie gescrollt haben, Einstellungen bei Sicherungen öffnet also Sicherungen. Der Wechsel auf eine andere Seite oder in einen anderen Abschnitt derselben Seite bringt die Seite, die zu dem gehört, was jetzt zu sehen ist, statt den vorigen Artikel darüber stehen zu lassen.

Der Bereich trägt den Titel der Seite, ihre Zusammenfassung, die Liste ihrer Abschnitte und ihren ganzen Text. Links auf andere Seiten der Dokumentation und auf Abschnitte öffnen im Bereich; ein Link, der die Dokumentation verlässt, öffnet in Ihrem Browser. Die eigene Taste **Die vollständige Dokumentation öffnen** öffnet dieselbe Seite auf der Website, in derselben Sprache und für die Version, die diese Station ausführt; sie ist das eine hier, das ein Netz braucht.

Oben im Hilfebereich, über dem Artikel, beginnt **Rundgang starten** einen Weg durch alle Bereiche des Programms; er öffnet jede Seite und zeigt auf ihre echten Bedienelemente, ohne etwas zu ändern (siehe [Der Rundgang durch das Programm](tour)). Wer ihn hier startet, schließt damit zuerst den Hilfebereich, damit die Sprechblase das Fenster für sich hat. Die Schaltfläche wird auf jeder Seite für die Identitäten gezeichnet, für die die Leiste den Eintrag Willkommen zeichnet, ob die Station diese Seite behält oder nicht. Sie bleibt stehen, wenn der Hilfebereich keine Hilfe zu zeigen hat, weil der Rundgang auf die Seite zeigt und nicht auf einen Artikel.

Die Dokumentation wird mit der Anwendung installiert, nicht geholt: sie ist die Dokumentation der Version, die Sie ausführen, in der Sprache der Station, und sie öffnet ganz ohne Internetverbindung. Ein Browser im Netz liest dieselben Seiten von der Station, eine Ansicht in der Werkhalle steht also nie ohne sie da. Trägt ein Paket keine Hilfe für die laufende Version oder die Sprache der Station, sagt der Bereich, welche Version und welche Sprache er gesucht hat, statt etwas anderes zu öffnen, und dieselbe Zeile wird nach [Ereignisse, Konsole](events-console) geschrieben.

## Benachrichtigungen {#notifications}

### Snackbars {#snackbars}

Unterbrechende Meldungen stapeln sich unten rechts über der Seite, die neueste oben. Jede Karte trägt einen farbigen Akzent für ihre Schwere (Information, Warnung, Fehler), einen möglichen Titel, die Nachricht, etwaige Schaltflächen und ein **Ausblenden** (x). Eine Karte bleibt haften, sofern das, was sie ausgelöst hat, ihr keine Frist gegeben hat. Solange die Runtime gestoppt ist, wird eine Schaltfläche einer Karte, die die Station ändern würde, mit dem Tooltip "Runtime gestoppt" ausgegraut.

Was sie unter anderem auslöst:

| Karte | Schaltflächen | Bleibt |
|---|---|---|
| Eine Alarmaktivierung (Titel: der Name des Alarms; Nachricht: sein Aktivierungstext), für jeden Alarm, dessen Art der Meldung nicht "Statusleiste" ist | **Quittieren** (dieselbe Quittierung wie überall sonst) und **Alarme öffnen** (die Alarmliste unter Ereignisse) | Bleibend, oder 8 Sekunden bei einem Alarm der Art "Zeitlich begrenzt"; eine Quittierung oder eine Rückkehr in den Normalzustand schließt sie. Die Karte auszublenden ist **keine** Quittierung. |
| "Zeitgrenze des kostenlosen Modus": "Die Runtime hält in etwa *n* Minuten an. Melden Sie sich an oder fügen Sie eine Lizenz hinzu, um die Begrenzung aufzuheben." | Keine | 12 Sekunden |
| "Runtime gestoppt": "Die Zeitgrenze des kostenlosen Modus wurde erreicht und die Runtime hat angehalten. Melden Sie sich an oder fügen Sie eine Lizenz hinzu, um die Begrenzung aufzuheben, oder starten Sie die Runtime an der Station neu." | Keine | Bis die Runtime zurück ist |
| "Der Server konnte nicht gestartet werden" (der eingebettete OPC UA-Server, meist ein bereits belegter Port) | **Connector öffnen** | Bleibend |
| "Konfiguration wiederhergestellt", "Konfiguration mit einer Warnung wiederhergestellt", "Wiederherstellung der Konfiguration verschoben" oder "Wiederherstellung der Konfiguration fehlgeschlagen", nach einer eingeplanten Wiederherstellung aus einer Sicherung | Keine | Bleibend |
| "Agentenzugriff (MCP) konnte nicht gestartet werden", "Fernzugriff auf das Dashboard nicht verfügbar", "Das Web-Dashboard konnte nicht gestartet werden" | Keine | Bleibend |
| "Aktualisierung verschoben": ein Neustart mit Aktualisierung wurde verlangt, während eine Aufzeichnung läuft | Keine | Bleibend |
| Eine ausgelöste Verriegelung einer Einheit, ein OPC UA-Client oder ein Gerät, das auf die Freigabe eines Zertifikats wartet | Eine Schaltfläche, die die antwortende Seite öffnet | Bleibend |

Snackbars sind für das da, was unterbricht; das Ergebnis Ihrer eigenen Handlung ist nie eine Karte (siehe das Aktionsprotokoll oben).

### Windows-Benachrichtigungen {#windows-notifications}

Die Karten leben im Fenster, deshalb lösen dieselben Momente auch eine Windows-Benachrichtigung aus, solange das Fenster in den Infobereich ausgeblendet oder minimiert ist: eine Alarmaktivierung ("*Priorität* Alarm: *Name*"), eine ausgelöste Verriegelung, die Warnung des kostenlosen Modus und der Halt, ein Fehlschlag des Servers oder einer Wiederherstellung bei einem verborgenen Start und der einmalige Hinweis beim ersten Ausblenden. Ein Klick auf die Benachrichtigung öffnet das Fenster, in dem die Karte wartet. Diese Benachrichtigungen gibt es nur auf einem installierten Build; eine portable Kopie oder ein Entwicklungsstand behält allein die Karten im Fenster.

## Der Dialog zur Einwilligung in Absturzberichte {#the-crash-consent-dialog}

Hat sich Ganter Lab unerwartet geschlossen, öffnet der nächste Start, der das Fenster zeigt, **Absturzbericht senden?** über der Seite (ein in den Infobereich verborgener Start wartet auf den nächsten sichtbaren):

- "Ganter Lab wurde beim letzten Mal unerwartet beendet. Das Senden dieses Berichts hilft uns, die Ursache zu beheben. Er enthält den Fehler und einen kurzen Ausschnitt des jüngsten Protokolls. Prüfen Sie ihn unten, bevor Sie ihn senden."
- **Einzelheiten zum Absturz**: der ganze Inhalt, der gesendet würde, mit einer Schaltfläche **Kopieren** (für einen Moment "Kopiert"). Der Inhalt ist der Zeitpunkt der Aufnahme, der Zusammenhang, die Version der Anwendung, das Betriebssystem, die Ausnahme mit ihrem Stapel und die letzten 60 Zeilen des Protokolls, bereinigt um den Windows-Benutzernamen und den Profilpfad. Sonst verlässt nichts die Station.
- **Absturzberichte immer automatisch senden**: willigt ein, künftige Abstürze ohne Nachfrage zu senden (derselbe Schalter wie unter [Einstellungen, Absturzberichte](settings-crash-reports)). Er ist mit "Runtime gestoppt" ausgegraut, solange die Runtime gestoppt ist, denn die Einwilligung ließe sich nicht speichern.
- **Nicht senden** verwirft den aufgenommenen Absturz, damit er nicht erneut angeboten wird. **Bericht senden** sendet ihn; ein Senden, das fehlschlägt, behält den Absturz und fragt beim nächsten Start erneut. Der Bericht wird Ihrem Ganter-Konto zugeordnet, wenn die Station angemeldet ist, und sonst anonym angenommen.

Der Absturz wird als `crash\pending-crash.json` unter dem Datenordner aufbewahrt, bis er gesendet oder abgelehnt ist.

## Wenn die Ansicht die Station verliert {#when-the-screen-loses-the-station}

Die Seite wird von der Station live geliefert, eine Ansicht kann sie also verlieren: die Verbindung bricht ab, die Station startet neu, die Seite läuft in einen Fehler. Ein Browser im Netz trifft diese Ansichten am häufigsten; das Fenster der Station wird genauso geliefert und kann sie ebenfalls zeigen.

- **Der Hinweis zur Verbindung.** Eine Seite, die innerhalb einer laufenden Ansicht fehlschlägt, zeigt unten ein leises Band: "Auf dieser Seite ist ein Problem aufgetreten, die Anwendung läuft aber weiter. Einzelheiten stehen auf der Seite Ereignisse.", mit **Neu laden** und einer Marke zum Ausblenden. Nichts geht verloren; das Neuladen hängt die Ansicht wieder an.
- **Die Karte zum erneuten Verbinden** nimmt die ganze Ansicht ein, solange die Verbindung weg ist:

| Zustand | Titel | Was sie sagt und anbietet |
|---|---|---|
| Verbindet erneut | Verbindung zur Station wird wiederhergestellt | "Diese Ansicht liest die Station live (den Rechner, auf dem Ganter Lab läuft), und die Verbindung ist abgerissen. Sie verbindet sich selbsttätig neu, und Ihre Konfiguration und die aufgezeichneten Läufe sind unversehrt." Fortschritt: "Versuch *n* von *m*", mit " · nächster in *s* s", solange eine Wartezeit läuft. |
| Fehlgeschlagen | Die Station antwortet nicht | "Diese Ansicht hat nach mehreren Versuchen aufgehört, sich neu zu verbinden. Möglicherweise ist Ganter Lab an der Station geschlossen (dem Rechner, auf dem Ganter Lab läuft). Hier geht nichts verloren: Die Ansicht kommt vollständig zurück, sobald die Station antwortet." **Erneut versuchen** und **Diese Ansicht neu laden**. Eine Ansicht, die aufgegeben hat, während ihre Registerkarte verborgen war, versucht es in dem Moment noch einmal, in dem wieder auf sie geschaut wird. |
| Zurückgestellt | Diese Ansicht ist zurückgestellt | "Die Station hat diese Ansicht zurückgestellt und alles behalten, was darauf war. Beim Fortsetzen kommt sie genau so zurück, wie sie war." **Fortsetzen** und **Diese Ansicht neu laden**; nach einem Fortsetzen, das nicht durchging: "Das Fortsetzen ist nicht durchgegangen. Fordern Sie es noch einmal an, oder laden Sie die Ansicht neu." |
| Abgewiesen | Diese Ansicht muss neu geladen werden | "Die Station antwortet wieder, hält aber nicht mehr, was auf dieser Ansicht war, deshalb kann sie nicht dort fortgesetzt werden, wo sie stehen geblieben ist. Durch Neuladen kommt sie live zurück. Ihre Konfiguration und die aufgezeichneten Läufe sind unversehrt." **Diese Ansicht neu laden**. Das Neuladen ist immer Ihr Klick; eine Ansicht wird nie unter Ihnen ersetzt. |

- **Das Fenster konnte nicht geliefert werden.** Das Fenster der Station wird von einem Port innerhalb des Rechners geliefert. Lässt sich dieser Port nicht öffnen (fast immer eine zweite bereits laufende Kopie von Ganter Lab), zeichnet das Fenster statt einer leeren Seite seinen eigenen Hinweis: **Ganter Lab konnte seine Ansicht nicht öffnen**, "Die Anwendung läuft, und Ihre Geräte werden weiterhin gelesen. Was fehlt, ist die Ansicht…", der Port, was das System gemeldet hat, und der Protokollordner. Es versucht es alle fünf Sekunden erneut und öffnet von selbst, sobald der Port frei ist.
- **Nicht gefunden.** Eine Adresse, die zu keiner Seite passt, landet im Rahmen: **Diese Ansicht gehört nicht zu dieser Station**, "Diese Adresse gehört zu keiner Ansicht hier. Sie wurde möglicherweise umbenannt oder entfernt.", mit **Zu View wechseln**, was View öffnet.
- **Zum Ansehen anmelden.** Ein Browser im Netz, dessen Identität den Fernzugriff (LAN) nicht hält, oder jede Ansicht, deren Rolle die verlangte Seite nicht öffnet, bekommt die Anmeldekarte an Stelle der Seite ("Melden Sie sich an, um diese Station aus dem Netzwerk anzusehen." oder "Melden Sie sich an, um diese Seite zu öffnen."), mit dem Namen der Identität, die abgelehnt wurde. Nach der Anmeldung wird die verlangte Seite gezeichnet. Das Fenster der Station und ein Browser auf dem Rechner der Station werden nie über den Fernzugriff gesperrt.

## Vollbild und Erweitern {#full-screen-and-expand}

Ein Dashboard in View und der Bereich oder das Bild einer Einheit unter Process können den Rahmen auf zwei Arten verbergen, beide in der hinteren Gruppe der Leiste des Dashboards:

| Befehl | Tooltip | Was er tut |
|---|---|---|
| Erweitern | Das ganze Fenster nutzen | Verbirgt die Titelleiste und die Navigationsleiste; das Dashboard nimmt das ganze Fenster. |
| Vollbild | Vollbild (F11) | Das echte Vollbild: das Fenster der Station geht auf den ganzen Bildschirm; ein Browser bittet um das Vollbild des Dokuments (ein Browser, der ablehnt, verbirgt trotzdem den Rahmen). |

Beide Befehle sind ausgegraut, solange kein Dashboard offen ist, und werden nicht gezeichnet, solange ein Dashboard bearbeitet wird: einen der beiden zu betreten würde die Bearbeitung beenden, ohne es zu sagen. Ob die Statusleiste in einem der beiden Modi unten bleibt, ist die eigene Einstellung des Dashboards (siehe [Dashboard-Einstellungen](view-settings)). Die Modi schließen sich aus: Vollbild im erweiterten Zustand zu drücken hebt an, statt umzuschalten.

Tasten: **F11** schaltet das Vollbild um (und tut nichts, solange bearbeitet wird oder ein Ordner offen ist); **Esc** verlässt, das Innerste zuerst: einen Ordner, der umbenannt wird, dann die Überlagerung der Navigation, dann das Vollbild, dann das Erweitern. Ein Browser, der das Vollbild mit seiner eigenen Geste verlässt, nimmt den Modus mit. Das Verlassen der Route des Dashboards stellt den Rahmen wieder her, und eine gestoppte Runtime verlässt das Vollbild, damit das Band und die Navigationsleiste zurück sind. Das eigene Werkzeug **Vollbild** eines Diagramms füllt den Bildschirm auf dieselbe Weise (siehe [Diagramme](view-charts)); Esc schließt zuerst das Diagramm. Mehr unter [Vollbild](view-fullscreen).

## Zoom des Fensters {#desktop-zoom}

Im Fenster der Station zoomt **Strg + Mausrad** die ganze Fläche in den eigenen Stufen der Browser-Engine (jede Stufe multipliziert mit 1,2, zwischen 25 % und 500 %), und **Strg + 0** kehrt zu 100 % zurück. Jede Änderung wird im Aktionsprotokoll angesagt ("Zoomstufe: 120 %") und sofort gespeichert, je Installation, in `window-placement.json` unter dem Datenordner (nie in der Konfigurationsdatenbank, nie in einer Sicherung). [Einstellungen, Darstellung](settings-appearance) zeigt die aktuelle Stufe und setzt sie zurück. Ein Browser behält seinen eigenen Zoom.

## Der Infobereich {#the-system-tray}

Ganter Lab ist immer in Betrieb: das Schließen des Fensters blendet es aus, während der eingebettete Server, die Erfassung und die Aufzeichnungen weiterarbeiten (es sei denn, "Beim Schließen im Hintergrund weiterlaufen" ist unter [Einstellungen, Start](settings-startup) aus, dann beendet das X die Anwendung). Das Symbol im Infobereich ist die Kachel der Marke mit einem Zustandspunkt, der den Connector spiegelt, dieselbe Aussage in denselben Worten wie der Zustand auf der Statusleiste: grün verbunden, bernsteinfarben instabil, rot kommuniziert nicht, grau gestoppt. Sein Tooltip liest "Ganter Lab: *Zustand*", die Zeile der Statusleiste, mit dem Zusatz "(Aufzeichnung)", solange ein Lauf aufzeichnet (alle 15 Sekunden geprüft). Mit einem Icon und einer Bezeichnung unter [Einstellungen, Marke](settings-branding) ist das Symbol das Icon der Station mit demselben Punkt, und Tooltip und Öffnen-Eintrag des Menüs sagen die Bezeichnung der Station anstelle von Ganter Lab.

- Ein Linksklick öffnet das Fenster; ein Rechtsklick öffnet das Menü: **Ganter Lab öffnen**, eine Zeile zum Lesen mit dem Zustand der Statusleiste und "(Aufzeichnung)", solange ein Lauf aufzeichnet, und **Beenden**. Es gibt keine Bedienelemente zum Starten oder Stoppen im Menü: ein versehentlicher Klick darf die Clients, die den Server lesen, nicht abschalten.
- Wenn das X das Fenster zum ersten Mal ausblendet, öffnet sich zuerst ein kleines Fenster der Anwendung selbst darüber, **Ganter Lab läuft weiter**. Es sagt, dass der Server, das Lesen der Geräte und laufende Aufzeichnungen weitergehen; dass das Symbol im Infobereich neben der Uhr bleibt (unter dem Pfeil ^ in der Taskleiste, wenn Windows es ausblendet) und dass **Beenden** im Menü des Symbols die Anwendung beendet; und dass das Ausschalten von "Beim Schließen im Hintergrund weiterlaufen" unter [Einstellungen, Start](settings-startup) das X jedes Mal beenden lässt. **Im Hintergrund weiterlaufen** ist die Vorgabe (Enter, Esc und das Schließen des kleinen Fensters wählen es ebenfalls) und blendet das Fenster aus. **Jetzt beenden** beendet nur dieses Mal, über dasselbe Beenden wie das Menü, sodass eine laufende Aufzeichnung weiterhin zuerst fragt, und der Schalter bleibt an. Nach jeder der beiden Antworten erscheint es auf dieser Station nie wieder. Es ist ein Fenster der Anwendung selbst, keine Windows-Benachrichtigung, und erscheint deshalb unabhängig davon, wie die Anwendung gestartet wurde.
- **Beenden** hält alles über einen einzigen Abbau an: den Agentenzugriff, den Web-Host, die Überwachungen, die Runtime von Process (Läufe bleiben fortsetzbar), den eingebetteten Server, die Runtime der Logik (gehaltene Werte werden geschrieben), das Ereignisjournal und den Host. Solange eine Aufzeichnung läuft, kommt zuerst das Fenster mit einer ruhigen Bestätigung zurück, **Eine Aufzeichnung läuft**: "Beim Beenden wird die Datenerfassung gestoppt. Alles bisher Aufgezeichnete ist gespeichert und wird beim nächsten Start von Ganter Lab wieder geöffnet, solange die Anwendung geschlossen ist, wird jedoch nichts Neues aufgezeichnet." **Geöffnet lassen** ist die Voreinstellung; **Trotzdem beenden** fährt fort. Eine geladene Aktualisierung wird auf dem Weg hinaus installiert.

## Was der Rahmen nicht tut {#what-the-frame-does-not-do}

- Er verbirgt Benutzer nie vor einem Nicht-Administrator; die Seite trägt stattdessen ihren eigenen Hinweis.
- Er bietet den Neustart der Runtime nie anderswo als im Band an, und nie in einem Browser.
- Er zeigt nie die Ergebnisse einer anderen Ansicht und macht aus einem Ergebnis nie eine Karte.
- Er ändert nie das Design einer anderen Ansicht aus einem Browser heraus: eine in einem Browser gedrückte Taste gilt nur für diesen Browser.
- Der Hilfebereich greift nie auf die Website zu, um einen Artikel zu zeigen, öffnet nie eine Seite, die für eine andere Version geschrieben wurde, und fällt nie auf Englisch zurück, wenn die installierte Hilfe eine Sprache nicht trägt.
- Die Hilfe-Taste, die Schaltfläche Melden, die Design-Tasten, der Chip, die Navigationsleiste und die Statusleiste sind die einzigen Bedienelemente des Rahmens; jeder Befehl über einer Sache, die Sie einrichten, gehört zur Seite dieser Sache (siehe [Wie die Seiten funktionieren](app-conventions)).
