feat(editor): Taiga-Story und -Tasks aus dem Knoten-Fenster anlegen (D91, #trk.create)
Zwei Aktionen im Knoten-Fenster, nur wo GET /info das Feature meldet (Lebendprobe-Muster, je Basis einmal gecacht) und nur an Knoten ohne Ticket-Referenz — die Ref an der Zeile ist der Idempotenz-Marker. Login-Dialog (type=password, kein window.prompt; nur das Token landet im Browser, 401 fragt neu), Projekt-Dialog vorbelegt aus dem geerbten &taiga.<slug>, Häkchen-Dialog nach der D91-Vorbelegung; Refs und ggf. das Projekt-Schlagwort gehen undo-fähig als Tokens an die Zeilen (appendToken: vor %% und vor der Fortsetzungsmarke). Regeln headless in taiga.js (15 neue Tests); Deploy zieht TAIGA_API_URL aus der .env als WERKBAUM_TAIGA_API_URL in die Server-Umgebung nach (Nutzerwunsch). E2E im Browser gegen Backend + Taiga-Stub gemessen: Buttons nur ohne Ref, Vorbelegung Kundenprojekt aus geerbtem Tag, Refs #US-/#T- an den richtigen Zeilen, Erledigtes uebersprungen, abweichende Projektwahl schreibt &taiga.mi-intern zurueck, Undo/Redo je Schreibzug, falsches Passwort bleibt als Taiga-Fehlertext im Dialog. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
fd0e730656
commit
d1de8758b1
@@ -1070,6 +1070,15 @@
|
||||
padding:5px 10px;border:1px solid var(--or);border-radius:7px;
|
||||
color:var(--or);text-decoration:none;font-size:.74rem;font-weight:500;
|
||||
}
|
||||
/* Taiga-Aktionen im Knoten-Fenster (D91) — dasselbe Knopf-Idiom wie der
|
||||
↗-Link, nur als <button>. */
|
||||
.nodetip-taiga{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
|
||||
.nodetip-taigabtn{
|
||||
padding:5px 10px;border:1px solid var(--or);border-radius:7px;
|
||||
background:none;color:var(--or);cursor:pointer;
|
||||
font:inherit;font-size:.74rem;font-weight:500;
|
||||
}
|
||||
.nodetip-taigabtn:hover{background:rgba(15,118,110,.08)}
|
||||
/* Die Spitze zeigt auf den Knoten — ohne sie wäre bei dicht stehenden Knoten
|
||||
nicht zu sehen, welcher gemeint ist. Ein gedrehtes Quadrat mit zwei Kanten:
|
||||
so erbt es Rahmen UND Schatten des Fensters. JS setzt --tipx (Spitze) und
|
||||
@@ -1672,6 +1681,27 @@
|
||||
}
|
||||
@media print{ .tabmodal-overlay{ display:none; } }
|
||||
|
||||
/* ---------- Taiga-Anlege- und Anmeldedialog (D91) ----------
|
||||
Im tabmodal-Idiom (Overlay + Karte); nur die Innereien sind eigen. */
|
||||
.taigadlg .taiga-subject{margin:0 0 12px;font-weight:600}
|
||||
.taigadlg .taiga-lab{display:block;margin:0 0 10px}
|
||||
.taigadlg .taiga-lab span{display:block;font-size:.78rem;color:var(--muted);margin-bottom:3px}
|
||||
.taigadlg .taiga-lab input,.taigadlg .taiga-lab select{
|
||||
width:100%;box-sizing:border-box;padding:7px 9px;font:inherit;
|
||||
border:1px solid rgba(36,52,71,.3);border-radius:7px;background:var(--paper);color:var(--ink);
|
||||
}
|
||||
.taigadlg .taiga-pick{margin:12px 0 6px;font-size:.82rem;color:var(--muted)}
|
||||
.taigadlg .taiga-cands{max-height:11rem;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
|
||||
.taigadlg .taiga-cand{display:flex;align-items:center;gap:6px;font-size:.88rem}
|
||||
.taigadlg .taiga-err{color:var(--warn);font-size:.85rem;margin:10px 0 0}
|
||||
.taigadlg .taiga-btns{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
|
||||
.taigadlg .taiga-ok,.taigadlg .taiga-cancel{
|
||||
padding:7px 14px;border-radius:7px;font:inherit;cursor:pointer;
|
||||
}
|
||||
.taigadlg .taiga-ok{border:1px solid var(--or);background:var(--or);color:#fff;font-weight:500}
|
||||
.taigadlg .taiga-ok:disabled,.taigadlg .taiga-cancel:disabled{opacity:.5;cursor:default}
|
||||
.taigadlg .taiga-cancel{border:1px solid rgba(36,52,71,.3);background:none;color:var(--ink)}
|
||||
|
||||
/* Abschnitts-Kopf „Lokale Sicherungen" im Uhr-Menü (D89) */
|
||||
.snaphead{
|
||||
padding:8px 12px 4px;margin-top:4px;
|
||||
|
||||
Reference in New Issue
Block a user