-
Antworten auf Kommentare: Ersteller der Aufgabe bekommt nur noch eine Benachrichtigung
- getRecipientIDs() nahm den Ersteller der Aufgabe in die Empfaenger von
commentResponse auf; der Core benachrichtigt ihn zusaetzlich mit
commentResponseOwner, so kam jede Antwort auf einen fremden Kommentar
doppelt an. Bei neuen Kommentaren ergaenzt der Core ihn ueber getOwnerID()
- commentResponse geht an alle Beteiligten: wer den Kommentar nicht
geschrieben hat, liest jetzt "zum Kommentar von X" statt "zu deinem
Kommentar" (Benachrichtigung und E-Mail, de/en)
- commentResponseOwner (gesammelt): fehlendes "von" ergaenzt
- Integrationstests: genau eine Benachrichtigung fuer den Ersteller, Text
nennt den Kommentarschreiber
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-11 Löschungen +168 Hinzufügungen 179 Gesamt 5 Dateien
|
-
Widerrufsbutton nach § 356a BGB und Preisangaben am Produkt
Widerruf:
- Gäste konnten nicht widerrufen: Action ohne allowGuestAccess und mit
userID-Vergleich, der für Gäste nie passte. Gäste weisen sich jetzt
über Bestellnummer und Kunden-E-Mail aus (in der Action geprüft).
- Pflichtfeld Name (neue Spalte shop1_order_cancellation.name)
- Bestätigungsschaltfläche "Widerruf bestätigen"
- Eingangsbestätigung per Mail mit Erklärung, Eingangszeitpunkt, Name,
Bestellnummer und E-Mail
- Begründungsfeld neutral als "Anmerkung (optional)"
- ACP: Kundennachricht wurde nie angezeigt (message statt customerMessage),
fehlende Sprachvariablen ergänzt
- Test tests/orderCancellationTest.php
Preisangaben:
- Hinweis "inkl. USt." / "ohne USt." / "ohne USt. (§ 19 UStG)" und bei
physischen Produkten "zzgl. Versandkosten" an allen Produktpreisen
Sonstiges:
- Mail-Begrüßung nutzte 12-Stunden-Format ("g"), dadurch fast immer "Morgen"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
de.yourecom.shop
6.2
-410 Löschungen +620 Hinzufügungen 1.030 Gesamt 16 Dateien
|
-
Listen-Performance: Abfragen in Produkt- und Bestelllisten gebündelt
Produktliste 406 -> 44, "Meine Bestellungen" 345 -> 122 Abfragen, Ausgabe identisch.
- Kunde, Steuersatz und Währungen einmal pro Request statt pro Preis/Position
- Steuerkategorie und Produkt-Icons über vorhandene Caches
- Letzte Produktversion, Bestellpositionen, Produkte, Status und Widerrufe
in den Listen gesammelt vorladen
- Inhaltsliste liest die Produkte der Produktliste nicht erneut ein
- Wechselkurs-Cronjob leert den Währungs-Cache
- ViewableOrderList sortiert über den richtigen Alias shopOrder
- Test tests/listPreloadTest.php
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
de.yourecom.shop
6.2
-62 Löschungen +382 Hinzufügungen 444 Gesamt 15 Dateien
|
-
Tests: Links der Werkzeugleiste je Seite, Kartenvorlage ohne Listenansicht
- QuickFilterLinksTest: auf der Kategorie-Seite enthaelt jeder Link die
Kategorie, auf der Startseite keiner
- ExternalTemplateUseTest: taskListItems laesst sich wie auf der Produktseite
von shop.workplace rendern (nur Objekte und die zwei Schalter, kein view)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
+101 Hinzufügungen 101 Gesamt 2 Dateien
|
-
Werkzeugleiste: Links auf Kategorie-Seiten, Zahlen je Kategorie, Karten/Board vor "Auswaehlen"
- die Links der Schnellfilter und des Umschalters enthielten auf Kategorie-
Seiten die Kategorie nicht ("category-task-list/" ohne ID, 404); die Seite
reicht ihr Objekt jetzt ueber getControllerObject() weiter
- TaskQuickCounts zaehlt auch fuer eine Kategorie (mit Unterkategorien), damit
Chips ohne Treffer dort ebenfalls entfallen
- Karten/Board stehen direkt links von "Auswaehlen", Sortierung und Filter
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-5 Löschungen +56 Hinzufügungen 61 Gesamt 5 Dateien
|
-
6.2.36: Sperrseite fuer gesperrte Instanzen (nginx 503 per Markierungsdatei ausserhalb der Instanz), Tests, Anleitung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
-1 Löschungen +87 Hinzufügungen 88 Gesamt 6 Dateien
|
-
6.2.35: Sperren sperrt zusaetzlich das Datenbankkonto der Instanz (Wartungsmodus allein liess sich vom Kunden-Admin aufheben), Test
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
-1 Löschungen +53 Hinzufügungen 54 Gesamt 3 Dateien
|
-
Tests: RPC-Endpoints als Browser-Anfrage durch Controller und Action
EndpointFlowTest ruft die Controller mit Body und Routenvariablen auf und liest
die Wirkung aus der Datenbank: Papierkorb, Wiederherstellen, Deaktivieren,
Loeschen (auch ueber das Datum), Erledigt/Offen, Status des Workflows, Suche,
Gelesen, Kategorie einklappen, Aufgabenart ein-/ausschalten und die Checkliste
(uebersprungen, solange die Option im Testsystem aus ist).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
+222 Hinzufügungen 222 Gesamt 1 Dateien
|
-
Cloud: Test-Worker repariert, generierte constants.php zurueckgesetzt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
-12 Löschungen +5 Hinzufügungen 17 Gesamt 2 Dateien
|
-
6.2.34: Cloud-Endpunkte beim API-Dispatcher registriert (Bootstrap-Datei fehlte), Test dazu
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
-7 Löschungen +62 Hinzufügungen 69 Gesamt 7 Dateien
|
-
Labels zuweisen: Gruppe => Label bleibt erhalten, Dialog liest labelIDs
- TActionParameters::toIDs() verwarf die Schluessel; validateAssignLabel
erwartet aber Gruppe => Label und lehnte jede Auswahl mit "labelIDs missing
or invalid" ab. Neu: parameterIDMap() behaelt die Schluessel, TaskAction
nutzt sie fuer assignLabel
- AssignTaskLabelDialogAction liest "labelIDs" wieder von oberster Ebene: die
Label-Felder haben keinen Speicherwert unter "data", sondern legen die
Auswahl ueber einen eigenen Prozessor ab
- DialogActionsTest: Schnelldialog, Zusammenfuehren und Label-Dialog mit einer
Anfrage wie vom Browser
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-3 Löschungen +114 Hinzufügungen 117 Gesamt 4 Dateien
|
-
Cloud: eine Subdomain pro Instanz (baseUrl mit {slug}), nginx-Vorlage, Test, Anleitung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
-7 Löschungen +128 Hinzufügungen 135 Gesamt 4 Dateien
|
-
Dialoge: Feldwerte liegen unter "data", nicht auf oberster Ebene
Psr15DialogForm::getData() liefert die Werte der Felder unter dem Schluessel
"data". Die Dialoge Schnellaufgabe, Zusammenfuehren und Label zuweisen lasen
eine Ebene zu hoch und bekamen keine Werte: der Schnelldialog meldete
"Zutritt verwehrt" (keine Kategorie), das Zusammenfuehren und das Zuweisen von
Labels wurden nie ausgefuehrt. Die Werte werden jetzt ueber
WorkplaceUtil::toRow gelesen. Im Browser getestet: der Schnelldialog legt die
Aufgabe mit Kategorie, Beschreibung und Verantwortlichem an.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-3 Löschungen +4 Hinzufügungen 7 Gesamt 3 Dateien
|
|
|
|
|
-
Cloud: Gesundheitspruefung fuer alle Instanzen (cloud-health.php, Cron-Vorlage, Doku)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
+132 Hinzufügungen 132 Gesamt 3 Dateien
|
-
Liste: eine Ansicht statt Tabs, Zustandsfilter, Schnellfilter in der Werkzeugleiste, Board
- Zustand (Aktiv/Erledigt) ist der Filter "state" im Filter-Dialog, die Tabs
entfallen; ihre Adressen (taskPage=time|lastEditTime|isOpen|undone|isDone|
done) leiten auf die neuen Filter um (WorkplaceTabs::resolveLegacy)
- Schnellfilter (Meine, Unzugewiesen, Frei, Ueberfaellig, Heute, 7 Tage) mit
Zahlen (TaskQuickCounts, jede Aufgabe einmal), sitzen links in der
Werkzeugleiste neben Sortierung und Filter; Chips ohne Treffer werden nicht
angeboten, ein zweiter Klick hebt den Chip auf
- Status-Filter im Dialog nur noch mit Ungelesen, Gelesen, SLA, Deaktiviert,
Gelöscht
- Ansicht Karten/Board (Spalten nach Status), Spalte "Ohne Status"
- Schnelldialog ersetzt die Eingabezeile ueber der Liste (Endpoint
inline-task und InlineAdd entfernt), Karten/Board am Ende der Werkzeugleiste
- Hinweis bei aktiven Standardfiltern, Verantwortliche und Faelligkeit auf den
Karten, "Noch keine Beschreibung", Beschriftung am Auswahlkaestchen,
Touch-Hoehe der Chips
- Tests: Zustand, Tabs-Umleitung, Board, Status-Filter, Leaks (privat,
gelöscht, moderiert) fuer Board, Zahlen, Zustandsfilter und Dialog
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-371 Löschungen +1.004 Hinzufügungen 1.375 Gesamt 26 Dateien
|
-
Schnelldialog: QuickTaskDialogAction mit Faelligkeit und "Mir zuweisen"
- QuickTaskDialogAction: Dialog zum Anlegen mit Titel, Kategorie, Art,
Faelligkeit, "Mir zuweisen", Beschreibung und Link zum vollen Formular
- CreateQuickTask: Faelligkeit (gleiche Rechte und Grenzen wie das Formular)
und Zuweisung an den Ersteller
- QuickTask::getAvailableCategories fuer die Auswahl im Dialog
- QuickAdd.ts oeffnet den Dialog vom Button
- Tests fuer Faelligkeit in der Vergangenheit/Zukunft, Zuweisung, Rechte
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-4 Löschungen +375 Hinzufügungen 379 Gesamt 7 Dateien
|
-
Fixes: Flood-Control mit "unbegrenzt", neue Aufgaben zuerst, Prettier
- TaskDataHandler: das Limit "unbegrenzt" kam im Web als String "-1" und
sperrte jede Aufgabe (Vergleich mit Zahl)
- CreateTask setzt lastEditTime auf die Erstellzeit, neue Aufgaben sanken
sonst ans Ende der nach Aenderung sortierten Listen; Update-Skript
fuellt den Wert fuer bestehende Aufgaben (idempotent)
- Prettier-Verstoesse in FormSections behoben, coverage/ ignoriert
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-9 Löschungen +27 Hinzufügungen 36 Gesamt 7 Dateien
|
-
6.2.33: Cloud-Anmeldung (Anfrage, Freigabe im ACP, Status 'wartet auf Freigabe'), Test ohne HTTP-Login
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
-7 Löschungen +728 Hinzufügungen 735 Gesamt 14 Dateien
|