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:
co-authored by
Claude Fable 5
parent
408e23f25b
commit
f45ca44d3c
@@ -19,6 +19,7 @@ reverse.
|
|||||||
|
|
||||||
## 2026-08-27
|
## 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 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
|
- 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
|
- 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
|
||||||
|
|||||||
@@ -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
|
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
|
kann `tools/pull-doc --git-commit` (D88) per Cron eine Git-Historie des
|
||||||
Server-Dokuments führen — ein Netz außerhalb des Browsers.
|
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
@@ -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
|
weder Splitter noch Min/Normal/Max-Buttons — es ist nichts zu teilen. Die
|
||||||
Bereichstitel („DIAGRAMM", „TEXT-EDITOR") entfallen; die Zeile wird für
|
Bereichstitel („DIAGRAMM", „TEXT-EDITOR") entfallen; die Zeile wird für
|
||||||
Umschalter und Aktionen gebraucht. Der **Dokumenten-Wähler** steht als
|
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 —
|
Bereichen erreichbar; sein Name übernimmt hier die Zeile des Untertitels —
|
||||||
es kommt keine Fläche hinzu. Die übrigen
|
es kommt keine Fläche hinzu. Die übrigen
|
||||||
**Aktions-Knöpfe** bleiben rechts in der Titelzeile und werden mit
|
**Aktions-Knöpfe** bleiben rechts in der Titelzeile und werden mit
|
||||||
|
|||||||
@@ -41,6 +41,11 @@
|
|||||||
<span class="docname" id="docName"></span>
|
<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>
|
<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>
|
</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/
|
<!-- Ein Menü, nach Dokumentart gruppiert; Umbenennen/Löschen/
|
||||||
Wiederherstellen hängen als Symbole an der Zeile des jeweiligen
|
Wiederherstellen hängen als Symbole an der Zeile des jeweiligen
|
||||||
Dokuments (immer sichtbar — Touch kennt kein Hover). Scrollt als
|
Dokuments (immer sichtbar — Touch kennt kein Hover). Scrollt als
|
||||||
|
|||||||
@@ -3938,6 +3938,20 @@ const docList = document.getElementById('docList');
|
|||||||
function updateDocName(){
|
function updateDocName(){
|
||||||
const d = activeDoc();
|
const d = activeDoc();
|
||||||
if(docNameEl) docNameEl.textContent = d ? d.name : '';
|
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
|
/* Aus einer URL geladene Dokumente (D23): die vollständige Quelle in den
|
||||||
Tooltip, da der Name in der Titelzeile mit Ellipse abgeschnitten wird.
|
Tooltip, da der Name in der Titelzeile mit Ellipse abgeschnitten wird.
|
||||||
Muss nach applyLang erneut laufen — das setzt data-i18n-title zurück. */
|
Muss nach applyLang erneut laufen — das setzt data-i18n-title zurück. */
|
||||||
|
|||||||
@@ -83,7 +83,15 @@
|
|||||||
Ellipse kürzt, statt die Werkzeuge rechts zu verdrängen. */
|
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}
|
.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}
|
.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
|
/* 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
|
frühere nackte Beschriftung in der Panel-Zeile war als Knopf nicht zu
|
||||||
erkennen (der Anlass von D81). */
|
erkennen (der Anlass von D81). */
|
||||||
|
|||||||
Reference in New Issue
Block a user