Aufgaben: erledigte trotzdem bearbeiten + Nachträge anlegen

Drei Frontend-Guards raus, die verhindert haben, dass man an
erledigten Aufgaben noch etwas machen kann:

- TaskList: der Reply-/Subtask-Input war für erledigte Aufgaben
  komplett ausgeblendet. Jetzt sichtbar mit angepasstem Placeholder
  ("Nachtrag zu erledigter Aufgabe…" / "Antwort zu erledigter
  Anfrage…").
- ContractDetail: der Subtask-Input war für erledigte Aufgaben aus.
  Jetzt sichtbar – man muss die Aufgabe nicht mehr als offen
  markieren, nur um einen Nachtrag anzuhängen.
- ContractDetail: der Edit-Button war für erledigte Aufgaben aus.
  Jetzt immer verfügbar (Löschen war eh schon da).

Backend hatte keine Restriktion, es waren rein UI-Gate.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-07-04 00:55:58 +02:00
parent a3bdb3f467
commit cc6fa9be47
2 changed files with 20 additions and 14 deletions
+13 -11
View File
@@ -1147,8 +1147,11 @@ function ContractTaskItem({
)}
{/* Add Subtask */}
{/* Subtask/Antwort hinzufügen: Mitarbeiter mit Berechtigung ODER Kundenportal */}
{!isCompleted && ((canEdit && !isCustomerPortal) || isCustomerPortal) && (
{/* Subtask/Antwort hinzufügen: Mitarbeiter mit Berechtigung ODER Kundenportal.
2026-07-04: bewusst OHNE isCompleted-Guard man soll auch
zu erledigten Aufgaben Nachträge anlegen können, ohne die
Aufgabe erst wieder auf offen zu setzen. */}
{((canEdit && !isCustomerPortal) || isCustomerPortal) && (
<div className="mt-2 ml-2">
{showSubtaskInput ? (
<form onSubmit={handleAddSubtask} className="flex items-center gap-2">
@@ -1181,15 +1184,14 @@ function ContractTaskItem({
</div>
{canEdit && !isCustomerPortal && (
<div className="flex gap-1 opacity-0 group-hover:opacity-100">
{!isCompleted && (
<button
onClick={onEdit}
className="text-gray-400 hover:text-blue-600 p-1"
title="Bearbeiten"
>
<Edit className="w-4 h-4" />
</button>
)}
{/* 2026-07-04: Edit auch bei erledigten Aufgaben verfügbar. */}
<button
onClick={onEdit}
className="text-gray-400 hover:text-blue-600 p-1"
title="Bearbeiten"
>
<Edit className="w-4 h-4" />
</button>
<button
onClick={() => {
if (confirm('Aufgabe wirklich löschen?')) {