Beteiligte in die Projekteinstellungen, TODOs aus Protokoll, Bewegung
Beteiligten-Zuordnung verlagert: p.assign ist jetzt ein Stammdatum und nur noch in den Projekteinstellungen editierbar (planCycleAssign()). Wochenbericht und Projektboard zeigen sie nur noch an, mit Verweis dorthin (springZuEinstellungen()). cycleAssign() ist damit entfallen. Neu "TODOs aus Protokoll": ein externes Besprechungsprotokoll als PDF wird per KI eingelesen und daraus in einem zweiten KI-Schritt Aufgaben abgeleitet. Eigener Bereich in der Aufgaben-/GANTT-Leiste, bewusst unabhaengig von den gespeicherten Protokollen - nichts davon wird abgelegt. Drei Schritte in einem Dialog mit fester Fusszeile; die Vorschlagsliste als kompakte, aufklappbare Zeilen, weil ein echter Import leicht 20 Vorschlaege liefert. Sichtbarkeit je Aufgabe im GANTT: neue Spalte plan_todos.show_in_gantt (Vorgabe 1, idempotente Migration) und eine Checkbox im Aufgaben-Dialog. Eine terminierte Aufgabe kann damit gezielt aus dem Terminplan herausgehalten werden, bleibt sonst aber eine vollwertige Aufgabe. plan-build-gantt.js und plan-drag.js pruefen dieselbe Bedingung, damit Zeilenzahl und Umsortierung nicht auseinanderlaufen. KI-Timeout dritte Stufe: ein abweichender, aber entfernter Endpunkt (Drittanbieter-Proxy) bekommt 2 Minuten statt der 45 Sekunden der echten Anbieter-API. Gemessen: die Punkte-Erkennung eines realen Protokolls brauchte dort 39 Sekunden, lag also stets knapp unter dem alten Limit und brach bei jeder Schwankung ab. Bewegung: Hover- und Klick-Rueckmeldung als Token-Satz in :root, angewandt auf die anklickbaren Zeilen, Schalter und Dialoge. Die Akzentleiste ist ein inset-Schatten statt eines positionierten Elements, damit Drag-and-Drop unberuehrt bleibt; prefers-reduced-motion war bisher gar nicht vorhanden und kippt jetzt einfach die Tokens. Plan Checker: optionaler Projektabgleich des Plankopfs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6ba93b2a92
commit
93505e0e48
17 files changed
+1883
-334
No files matched your search
+51
-2
@@ -323,6 +323,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pc-section">
|
||||
<label class="pc-label">Projekt (optional)</label>
|
||||
<select id="planCheckerProjekt" class="pc-select" style="width:100%">
|
||||
<option value="">Kein Projekt wählen</option>
|
||||
</select>
|
||||
<p class="hint" style="margin:4px 0 0">Prüft zusätzlich, ob der Plankopf zu diesem Projekt passt (Nummer/Bezeichnung).</p>
|
||||
</div>
|
||||
|
||||
<div class="pc-section">
|
||||
<label class="pc-label">KI-Anbieter</label>
|
||||
<select id="planCheckerAnbieter" class="pc-select" style="width:100%"></select>
|
||||
@@ -879,6 +887,7 @@
|
||||
<button onclick="addTodo()" id="addTodoBtn">+ TODO</button>
|
||||
<button onclick="openTemplateModal()" id="templateBtn" title="Standard-Aufgaben einer Leistungsphase einfügen">+ Vorlage</button>
|
||||
<button onclick="openHonorarModal()" id="honorarBtn" title="Terminplan aus Honorar und Leistungsphasen-Anteilen errechnen">+ Terminplan</button>
|
||||
<button onclick="openProtokollTodosModal()" id="protokollTodosBtn" title="Externes Besprechungsprotokoll (PDF) per KI einlesen und daraus Aufgaben ableiten">+ TODOs aus Protokoll</button>
|
||||
<button onclick="autoScheduleTodos()" id="autoScheduleBtn" title="Aufgaben nach Abhängigkeiten automatisch anordnen">Auto-Schedule</button>
|
||||
<button onclick="toggleCriticalPath()" id="criticalPathBtn" title="Kritischen Pfad ein-/ausblenden">Kritischer Pfad</button>
|
||||
<!-- Nur für Sandbox-Pläne der Planung sichtbar (renderPlanPage(),
|
||||
@@ -902,6 +911,7 @@
|
||||
<button onclick="addPlanMilestone()" id="addMilestoneBtnList">+ Meilenstein</button>
|
||||
<button onclick="openTemplateModal()" id="templateBtnList" title="Standard-Aufgaben einer Leistungsphase einfügen">+ Vorlage</button>
|
||||
<button onclick="openHonorarModal()" id="honorarBtnList" title="Terminplan aus Honorar und Leistungsphasen-Anteilen errechnen">+ Terminplan</button>
|
||||
<button onclick="openProtokollTodosModal()" id="protokollTodosBtnList" title="Externes Besprechungsprotokoll (PDF) per KI einlesen und daraus Aufgaben ableiten">+ TODOs aus Protokoll</button>
|
||||
<button class="secondary" onclick="autoScheduleTodos()" id="autoScheduleBtnList" title="Aufgaben nach Abhängigkeiten automatisch anordnen">Auto-Schedule</button>
|
||||
</div>
|
||||
|
||||
@@ -1056,9 +1066,8 @@
|
||||
|
||||
<div class="plan-panel plan-panel-wide">
|
||||
<h3 class="plan-panel-title">Beteiligte</h3>
|
||||
<p class="hint" style="margin-top:0">Wer diesem Projekt zugeordnet ist — kräftig die Hauptverantwortung, blass die Unterstützung. Geändert wird die Zuordnung im Wochenbericht.</p>
|
||||
<p class="hint" style="margin-top:0">Wer diesem Projekt zugeordnet ist — kräftig die Hauptverantwortung, blass die Unterstützung. Zum Ändern anklicken.</p>
|
||||
<div class="board-role-mini" id="planAssignMatrix"></div>
|
||||
<div class="plan-verweis-row" id="planAssignVerweis"></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1250,6 +1259,41 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- "TODOs aus Protokoll" (js/plan/plan-protokoll-todos.js): liest ein
|
||||
EXTERNES Besprechungsprotokoll (PDF) per KI ein und leitet daraus
|
||||
Aufgaben für dieses Projekt ab. Bewusst unabhängig vom Protokoll-Import
|
||||
oben: nichts davon wird gespeichert, kein Bezug zu project_protokolle —
|
||||
ein reines Ad-hoc-Werkzeug wie der Plan Checker. Drei Schritte
|
||||
(Hochladen → Punkte wählen → Aufgaben bestätigen) in EINEM Dialog mit
|
||||
sichtbarem Fortschritt (#protokollTodosSteps) und fester Zurück/
|
||||
Abbrechen/Weiter-Fußzeile — Titel, Fortschritt und der Inhalt von
|
||||
#protokollTodosBody werden je Schritt neu gerendert, der Rahmen bleibt
|
||||
stehen. Entwurfsrichtung "A — Schritt-Dialog" aus dem Entwurfsvergleich
|
||||
(Taste-Skill), von Erik gewählt. -->
|
||||
<div class="modal-bg" id="protokollTodosModal" style="display:none">
|
||||
<div class="modal modal-wide">
|
||||
<h2 id="protokollTodosTitle">Externes Protokoll einlesen</h2>
|
||||
<p class="hint" id="protokollTodosSubtitle" style="margin-top:-4px"></p>
|
||||
<div class="protokoll-todos-steps" id="protokollTodosSteps">
|
||||
<div class="seg" data-i="0"></div><div class="seg" data-i="1"></div><div class="seg" data-i="2"></div>
|
||||
</div>
|
||||
<div class="protokoll-ki-fallback-banner" id="protokollTodosFallback" hidden></div>
|
||||
<div id="protokollTodosBody"></div>
|
||||
<span class="field-error" id="protokollTodosError" hidden></span>
|
||||
<div class="protokoll-import-loading" id="protokollTodosLoading" hidden>
|
||||
<span class="protokoll-import-spinner" aria-hidden="true"></span>
|
||||
<span id="protokollTodosLoadingText">Wird verarbeitet …</span>
|
||||
</div>
|
||||
<div class="toolbar" style="margin-top:14px; justify-content:space-between">
|
||||
<button type="button" class="secondary" id="protokollTodosBackBtn" onclick="protokollTodosZurueck()" disabled>Zurück</button>
|
||||
<div style="display:flex; gap:8px">
|
||||
<button type="button" class="secondary" onclick="closeProtokollTodosModal()">Abbrechen</button>
|
||||
<button type="button" id="protokollTodosPrimaryBtn" onclick="protokollTodosWeiter()">Einlesen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Vorlagen-Dialog: Standard-Aufgaben einer Leistungsphase einfügen.
|
||||
Eigenständiger Dialog — der frühere gemeinsame Dialog mit Modus-Umschalter
|
||||
("Aus Vorlage" / "Aus Honorar") wurde in zwei getrennte Dialoge aufgeteilt,
|
||||
@@ -1401,6 +1445,10 @@
|
||||
<input type="hidden" id="todoEditEnd">
|
||||
<span class="field-error" id="todoEditRangeError" hidden></span>
|
||||
<p class="hint">Ohne Zeitraum erscheint die Aufgabe nur unter „Aufgaben“, nicht im Terminplan.</p>
|
||||
<label style="display:flex; align-items:center; gap:6px; margin-top:6px; font-weight:normal">
|
||||
<input type="checkbox" id="todoEditShowInGantt" checked>
|
||||
Im Terminplan (GANTT) anzeigen
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
@@ -1766,6 +1814,7 @@
|
||||
<script src="/js/plan/plan-files.js?v=3"></script>
|
||||
<script src="/js/plan/plan-protokoll.js?v=17"></script>
|
||||
<script src="/js/plan/plan-templates.js?v=4"></script>
|
||||
<script src="/js/plan/plan-protokoll-todos.js?v=1"></script>
|
||||
<script src="/js/plan/plan-honorar.js?v=6"></script>
|
||||
<!-- plan-leistung.js muss NACH plan-honorar.js stehen: es umhuellt dessen
|
||||
invalidateHonorarConfig(), damit eine Aenderung der Anteile auch seinen
|
||||
|
||||
Reference in new issue
Block a user