feat(kopf): Dokumentart grau hinter dem Namens-Chip — Mitgeliefert/Lokal/Geteilt samt Host (D90)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-27 13:03:53 +02:00
co-authored by Claude Fable 5
parent 408e23f25b
commit f45ca44d3c
6 changed files with 68 additions and 2 deletions
+1
View File
@@ -19,6 +19,7 @@ reverse.
## 2026-08-27
- The document kind now stands in grey behind the name chip — Included, Local or Shared with the server's host, the same words as the menu groups
- A second Werkbaum window now raises a modal dialog in both windows — it closes by itself as soon as the other window is gone
- A standing warning appears when changes have not reached the server for 30 seconds — whatever the reason: an open conflict bar, a dead session, the network
- Unsent text is never discarded silently any more: it is rescued into the local backups before a reload, a conflict decision or a server full-text replaces it, and closing with unsent changes asks first
+36
View File
@@ -7706,3 +7706,39 @@ sind jetzt alle laut oder abgestellt; tritt es erneut auf, benennt die
Warnung den Zustand, und die Sicherungen halten den Text. Unabhängig davon
kann `tools/pull-doc --git-commit` (D88) per Cron eine Git-Historie des
Server-Dokuments führen — ein Netz außerhalb des Browsers.
## D90 — Die Dokumentart steht grau hinter dem Namens-Chip
Nutzerwunsch, unmittelbar aus dem D89-Vorfall: Hinter der Brotkrume
(„Werkbaum Name", D81) soll erkennbar sein, was für ein Dokument vorn ist —
als Symbol oder „einfach in grau derselbe String wie im Dokumenten-Menü für
die Abschnitte". Gebaut ist die zweite Variante: **dieselben Begriffe wie die
Menü-Gruppen** (Mitgeliefert · Lokal · Geteilt, D81-Nachtrag 4), klein und
grau hinter dem Chip; bei Server-Dokumenten mit dem **Host** dahinter
(„Geteilt · werkbaum.javagil.de") — dieselbe Auskunft wie in der Menüzeile
(D76-Nachtrag 8). Keine neue Symbolsprache, keine neuen i18n-Schlüssel: Die
Gruppen-Begriffe existieren in neun Sprachen, und Wiedererkennung zwischen
Chip und Menü ist der Zweck.
**Der Anlass macht die Wahl leicht:** Beim D89-Vorfall lag vermutlich die
**lokale Kopie** gleichen Namens vorn (die beim Teilen absichtlich stehen
bleibt, D76-Nachtrag 8) — im Editor von der geteilten Fassung nicht zu
unterscheiden, nur der Teilen-Knopf verriet es dem, der wusste, worauf er
achtet. Jetzt steht der Unterschied dauerhaft neben dem Namen: „Lokal"
gegen „Geteilt · host". Die vier Arten aus dem Wunsch (app/local/sourceUrl/
live) fallen auf die drei Gruppen-Begriffe zusammen — dieselbe Entscheidung
wie im Menü (D81-Nachtrag 4: URL- und Server-Dokumente sind beide
„Geteilt"), und die Unterscheidung, die vor Verlust schützt, ist
Lokal↔Geteilt, nicht URL↔Server.
**Bei langen Namen bleibt die Art stehen** (`flex:0 0 auto`), der Name
bekommt die Ellipse — die Art ist die Information, die vor Verwechslung
schützt. Kein `aria-hidden`: Anders als Größen-Badge und Pillen ist der
Text keine Doppelung, ein Screenreader erfährt ihn sonst nirgends an
dieser Stelle.
**Nachgemessen** im Browser: „Geteilt · 127.0.0.1:8080" am Server-Dokument,
„Mitgeliefert" am Beispiel, „Lokal" an einem frisch angelegten Dokument;
der Sprachwechsel zieht mit („Included"); auf 375 px liegt das Label
vollständig im Bild und die Chip-Zeile bleibt im D81-Layout (Kopf 95 px =
Kopfzeile + Chip-Zeile). Reine UI-Verdrahtung, Browser-geprüft
(D54-Nachtrag-3-Grenze); `docKind()` selbst ist seit D81 headless getestet.
+3 -1
View File
@@ -564,7 +564,9 @@ der Titelzeile schaltet ein **Knopf** auf den anderen um; er zeigt das Ziel
weder Splitter noch Min/Normal/Max-Buttons — es ist nichts zu teilen. Die
Bereichstitel („DIAGRAMM", „TEXT-EDITOR") entfallen; die Zeile wird für
Umschalter und Aktionen gebraucht. Der **Dokumenten-Wähler** steht als
Brotkrume im App-Kopf („Werkbaum Name", D81) und ist damit aus **beiden**
Brotkrume im App-Kopf („Werkbaum Name", D81; dahinter steht grau die
**Dokumentart** — Mitgeliefert · Lokal · Geteilt, bei Server-Dokumenten samt
Host, D90) und ist damit aus **beiden**
Bereichen erreichbar; sein Name übernimmt hier die Zeile des Untertitels —
es kommt keine Fläche hinzu. Die übrigen
**Aktions-Knöpfe** bleiben rechts in der Titelzeile und werden mit
+5
View File
@@ -41,6 +41,11 @@
<span class="docname" id="docName"></span>
<svg class="doc-caret" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
</span>
<!-- Dokumentart hinter dem Chip (D90): dieselben Begriffe wie die
Menü-Abschnitte (Mitgeliefert · Lokal · Geteilt), grau — die
Verwechslung „lokale Kopie statt geteiltem Dokument" soll ohne
Menü-Blick auffallen. -->
<span class="dockind" id="docKindLabel"></span>
<!-- Ein Menü, nach Dokumentart gruppiert; Umbenennen/Löschen/
Wiederherstellen hängen als Symbole an der Zeile des jeweiligen
Dokuments (immer sichtbar — Touch kennt kein Hover). Scrollt als
+14
View File
@@ -3938,6 +3938,20 @@ const docList = document.getElementById('docList');
function updateDocName(){
const d = activeDoc();
if(docNameEl) docNameEl.textContent = d ? d.name : '';
/* Dokumentart hinter dem Chip (D90): dieselben Begriffe wie die
Menü-Abschnitte vor allem gegen die Verwechslung lokale Kopie statt
geteiltem Dokument" (der D89-Vorfall). Bei Server-Dokumenten mit Host,
wie in der Menüzeile. */
const kindEl = document.getElementById('docKindLabel');
if(kindEl){
if(d){
const art = docKind(d.id, SHIPPED_IDS);
const label = {shipped: 'docGroupShipped', own: 'docGroupOwn',
server: 'docGroupSources', url: 'docGroupSources'}[art];
const host = serverHostOf(d.id);
kindEl.textContent = t(label) + (host ? ' · ' + host : '');
} else kindEl.textContent = '';
}
/* Aus einer URL geladene Dokumente (D23): die vollständige Quelle in den
Tooltip, da der Name in der Titelzeile mit Ellipse abgeschnitten wird.
Muss nach applyLang erneut laufen das setzt data-i18n-title zurück. */
+9 -1
View File
@@ -83,7 +83,15 @@
Ellipse kürzt, statt die Werkzeuge rechts zu verdrängen. */
.brandgroup{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}
.crumb-sep{color:var(--muted);opacity:.6;font-size:1.05rem;flex:0 0 auto;user-select:none}
.docwrap{position:relative;display:inline-flex;min-width:0}
.docwrap{position:relative;display:inline-flex;align-items:center;min-width:0}
/* Dokumentart hinter dem Chip (D90): grau und klein Auskunft, kein Knopf.
flex:0 0 auto, damit bei langen Namen der Name die Ellipse bekommt und
die Art stehen bleibt (sie ist die Information, die vor Verwechslung
schützt). */
.dockind{
flex:0 0 auto;margin-left:8px;color:var(--muted);
font-size:.72rem;white-space:nowrap;
}
/* Der Auslöser sieht jetzt nach Menü aus: gerahmter Chip mit Pfeil die
frühere nackte Beschriftung in der Panel-Zeile war als Knopf nicht zu
erkennen (der Anlass von D81). */