AddOn
Issue Tracker für REDAXO Projekte
Beschreibung
Issue Tracker für REDAXO ProjekteEin vollständiger Issue-Tracker für REDAXO CMS, der es Redakteuren ermöglicht, Wünsche zu äußern, Probleme zu melden und Vorschläge zu machen. Mit integriertem Projektmanagement und privatem Nachrichtensystem.
Kernfunktionen
- ✅ Issue-Verwaltung: Erstellen, Bearbeiten, Löschen und Kommentieren von Issues
- ✅ Dashboard: Übersicht über den aktuellen Status aller Issues mit Statistiken und Widgets
- ✅ Status-Tracking: Offen, In Arbeit, Geplant, Abgelehnt, Erledigt
- ✅ Prioritäten: Niedrig, Normal, Hoch, Dringend
- ✅ Kategorien: Frei konfigurierbare Kategorien in den Einstellungen
- ✅ Tags: Flexible Tag-Verwaltung mit Farbcodierung und Zufallsfarben für neue Tags
- ✅ Private Issues: Issues können als privat markiert werden (nur für Ersteller und Admins sichtbar)
- ✅ Kommentare: Diskussion und Feedback zu jedem Issue mit Thread-System
- ✅ Interne Kommentare: Kommentare können als intern markiert werden (nur für Admins sichtbar)
- ✅ Zuweisungen: Issues können Benutzern und AddOns zugeordnet werden
- ✅ Versionsverwaltung: Issues können einer Version zugeordnet werden
- ✅ Fälligkeitsdatum: Issues können mit Deadlines versehen werden, überfällige Issues werden markiert
- ✅ Aktivitätsverlauf: Vollständiges Tracking aller Änderungen an Issues
- ✅ Dateianhänge: Upload von Bildern, Dokumenten und anderen Dateien zu Issues
- ✅ Gespeicherte Filter: Häufig verwendete Filtereinstellungen speichern und als Standard festlegen
- ✅ Session-Filter: Filter bleiben während der Sitzung erhalten
- ✅ Erweiterte Filter: Nach Status, Kategorie, Tags, Ersteller und Text durchsuchbar (inkl. "Alle Issues" und "Nur Geschlossene")
- ✅ Sortierbare Listen: Alle Spalten können aufsteigend/absteigend sortiert werden
- ✅ Automatisches closed_at: Beim Schließen eines Issues wird das Datum automatisch gesetzt
github.com/FriendsOfREDAXO/issue_tracker/
Umsetzung
Versionen
1.7.1
1.7.1] – 2026-08-08
Bugfixes
- Leere Einträge bei „Zugewiesener User“ behoben: In der Create/Edit-Maske wurden Benutzer bisher ausschließlich über das Feld
nameangezeigt. Leere oder whitespace-only Namen führten zu unsichtbaren Optionen im Select-Dropdown. Die Anzeige verwendet jetzt eine robuste Fallback-Kette (name→login→User #ID) und trimmt Eingabewerte vor der Ausgabe. - @mention-Namensanzeige stabilisiert: Dieselbe Fallback-Logik wird nun auch für die übergebenen Mention-Userdaten verwendet, damit Erwähnungslisten keine leeren Namen enthalten.
- Benutzerliste bei Zuweisung auf Berechtigte eingeschränkt: In der Maske
issue_tracker/issues/createwerden im Feld „Zugewiesener User“ jetzt nur noch aktive Benutzer mit Issue-Tracker-Zugriff angezeigt (Admin,issue_tracker[],issue_tracker[issuer],issue_tracker[issue_manager]). - Neue Option „Alle (gemeinsame Zuständigkeit)“: Issues können nun ohne feste Einzelzuweisung mit gemeinsamer Zuständigkeit gespeichert werden. Die Option ist im Assignee-Select verfügbar und wird in Liste/Detailansicht entsprechend angezeigt.
- Benachrichtigungen bei gemeinsamer Zuständigkeit: Bei „Alle (gemeinsame Zuständigkeit)“ werden beim Erstellen eines neuen Issues alle berechtigten Issue-Tracker-Benutzer benachrichtigt, sofern deren Einstellung „Neue Issues per E-Mail“ aktiv ist. Der Ersteller selbst wird dabei weiterhin nicht benachrichtigt.
1.7.0
1.7.0] – 2026-03-29
Neue Funktionen
Neue Funktionen
-
@mention-System: User können in Kommentaren per
@loginerwähnt werden- Autocomplete-Dropdown direkt im CodeMirror/EasyMDE-Editor (erscheint nach
@-Eingabe, Navigation mit Pfeiltasten) - Erwähnungen werden in der neuen Tabelle
issue_tracker_mentionsgespeichert - Erwähnte User erhalten eine E-Mail-Benachrichtigung (individual abschaltbar über Präferenzen)
- Neue Option in den Benachrichtigungs-Präferenzen: „Bei Erwähnungen"
- Autocomplete-Dropdown direkt im CodeMirror/EasyMDE-Editor (erscheint nach
-
Issue per Kommentar schließen (GitHub-Stil): Checkbox „Schließen & kommentieren" im Kommentarformular
- Schließt das Issue und speichert den Kommentar in einem Schritt
- Sendet eine kombinierte E-Mail statt zwei separater Benachrichtigungen
- Kommentar wird nur angezeigt, wenn das Issue noch nicht geschlossen/abgelehnt ist
-
Tags direkt in der Issue-Ansicht bearbeiten: Tags können in der Sidebar der Detailansicht ohne den Edit-Modus verwaltet werden
- Bestehende Tags zeigen ein ×-Symbol zum Entfernen (nur für berechtigte User)
- Kleines Dropdown zum Hinzufügen weiterer Tags (zeigt nur noch nicht vergebene Tags)
-
Standard-Tags bei Installation/Update: Die Tags Bug, Feature, Docs und Good Idea werden beim Installieren und Updaten automatisch angelegt (falls noch nicht vorhanden)
-
Interaktive Checklisten: Aufgabenlisten in Beschreibungen und Kommentaren können per Klick direkt abgehakt werden
- Markdown-Syntax:
- [ ] Offene Aufgabeund- [x] Erledigte Aufgabe - Fortschrittsbalken mit Zähler (
x/y Aufgaben erledigt) in der Detailansicht - Kompakter Fortschrittsbalken (4px) in der Issue-Liste wenn Checklisten vorhanden sind
- Klick auf Checkbox speichert sofort via Server-Request, kein Seitenneulade
- Markdown-Syntax:
-
Zeiterfassung: Zeit kann über den
/spent-Befehl in Kommentaren erfasst werden- Unterstützte Formate:
2h,30m,1h 30m,90min /spentwird im angezeigten Kommentar ausgeblendet- Gesamtzeit aller Einträge im Details-Panel der Detailansicht sichtbar
- Zeiteinträge werden im Aktivitätsprotokoll festgehalten
- Neue Datenbank-Tabelle
rex_issue_tracker_time_entries(id, issue_id, comment_id, user_id, minutes, note, created_at)
- Unterstützte Formate:
-
#Issue-Referenzen: Verweise auf andere Issues in Kommentaren werden automatisch verlinkt
#42wird zu einem klickbaren Backend-Link auf Issue #42 – Syntax: Leerzeichen oder Satzzeichen vor/nach#, nicht direkt an Wortzeichen (foo#42wird nicht ersetzt)- Das referenzierte Issue erhält einen Cross-Reference-Eintrag im Aktivitätsverlauf
- Referenzen innerhalb von Code-Blöcken werden nicht ersetzt
Bugfixes
- Doppeltes HTML-Encoding in Links:
rex_url::backendPage()liefert bereits HTML-kodierte URLs (&) – wird jetzt mitfalseals drittem Parameter aufgerufen um eine rohe URL (&) zu erhalten, die dann korrekt einmalig durchrex_escape()im HTML-Attribut kodiert wird. Betrifft Checklisten-Formular-Action und#Issue-Referenz-Links. - #Issue-Referenz-Regex zu weit: Regex
/#(\d+)/durch/(?<!\w)#(\d+)(?!\w)/ersetzt um Treffer wiefoo#42oder#42pxzu vermeiden.
Neue Klasse
FriendsOfREDAXO\IssueTracker\ContentRenderer: Zentrale Render-Klasse für Beschreibungen und Kommentarerender(): Markdown-Rendering mit Checklisten, #Issue-Links und/spent-FilterunggetChecklistProgress(): Zählt offene/erledigte Checklisten-Items im RohtexttoggleChecklistItem(): Togglet ein einzelnes Checklisten-Item per IndexextractSpentMinutes()/stripSpentCommand(): Parst und entfernt/spent-BefehleformatMinutes(): Formatiert Minuten als lesbare Zeitangabe (1h 30m,45m)
Neue Sprachschlüssel
issue_tracker_checklist_items– „Aufgaben erledigt" / „tasks done"issue_tracker_time_spent– „Aufgewendete Zeit" / „Time spent"issue_tracker_time_logged– „Zeit erfasst" / „Time logged"issue_tracker_referenced_in– „In Issue erwähnt" / „Referenced in issue"
Neue Datenbank-Tabelle
rex_issue_tracker_time_entries: Speichert Zeiteinträge mitissue_id,comment_id(nullable),user_id,minutes,note,created_at
1.6.0] – 2026-03-28
Neue Funktionen
- @mention-System: User können in Kommentaren per
@loginerwähnt werden- Autocomplete-Dropdown direkt im CodeMirror/EasyMDE-Editor (erscheint nach
@-Eingabe, Navigation mit Pfeiltasten) - Erwähnungen werden in der neuen Tabelle
issue_tracker_mentionsgespeichert - Erwähnte User erhalten eine E-Mail-Benachrichtigung (individual abschaltbar über Präferenzen)
- Neue Option in den Benachrichtigungs-Präferenzen: „Bei Erwähnungen"
- Autocomplete-Dropdown direkt im CodeMirror/EasyMDE-Editor (erscheint nach
- Issue per Kommentar schließen (GitHub-Stil): Checkbox „Schließen & kommentieren" im Kommentarformular
- Schließt das Issue und speichert den Kommentar in einem Schritt
- Sendet eine kombinierte E-Mail statt zwei separater Benachrichtigungen
- Kommentar wird nur angezeigt, wenn das Issue noch nicht geschlossen/abgelehnt ist
- Tags direkt in der Issue-Ansicht bearbeiten: Tags können in der Sidebar der Detailansicht ohne den Edit-Modus verwaltet werden
- Bestehende Tags zeigen ein ×-Symbol zum Entfernen (nur für berechtigte User)
- Kleines Dropdown zum Hinzufügen weiterer Tags (zeigt nur noch nicht vergebene Tags)
- Standard-Tags bei Installation/Update: Die Tags Bug, Feature, Docs und Good Idea werden beim Installieren und Updaten automatisch angelegt (falls noch nicht vorhanden)
Verbesserungen
- Einheitliche Status-Label-Farben: Liste und Detailansicht verwenden jetzt durchgehend dieselben Farben
open → rot (danger),in_progress → orange (warning),planned → blau (info),closed → grün (success),rejected → grau (default),info → dunkelblau (primary)
- Prioritäts-Label übersetzt: Priorität wird jetzt als übersetztes Label angezeigt statt als roher DB-Schlüssel
- Kombinierte Benachrichtigung:
NotificationService::notifyCommentWithClose()sendet eine E-Mail an alle Beteiligten wenn ein Issue via Kommentar geschlossen wird - Effizientere User-Abfrage: Alle berechtigten User werden einmalig geladen und für Watcher-Panel wie @mention-Autocomplete genutzt
Neue Datenbank-Tabelle
rex_issue_tracker_mentions: Speichert @mention-Einträge mitissue_id,comment_id,mentioned_user_id,created_by,created_at
Neue Datenbankspalte
rex_issue_tracker_notifications.email_on_mention(tinyint, Standard: 1): Steuert @mention-E-Mail-Benachrichtigung pro User
1.4.1
Bugfixes
- E-Mail-Benachrichtigungen nur für Admins: Nicht-Admin-Benutzer erhielten keine E-Mails, da die Berechtigungsprüfung per LIKE auf der role-Spalte nach Permission-Strings suchte statt nach Rollen-IDs. Berechtigungen werden jetzt korrekt über rex_user::hasPerm() geprüft.
- issue_tracker[issue_manager] wird jetzt bei Benachrichtigungen berücksichtigt (fehlte vorher)
- Deaktivierte Benutzer werden bei Benachrichtigungen korrekt ausgeschlossen (status = 1)
- SQL-Injection-Schutz: Whitelist-Validierung für Notification-Typ hinzugefügt
Vollständiger Changelog: https://github.com/FriendsOfREDAXO/issue_tracker/blob/main/CHANGELOG.md
1.4.0
1.4.0] – 2026-02-11
Neue Funktionen
- Erinnerungs-Funktion: Zugewiesene Benutzer können per Klick an offene Issues erinnert werden
- Konfigurierbarer Cooldown (Standard: 24 Stunden) zwischen Erinnerungen pro Issue
- Erinnerungs-Button in der Issue-Detailansicht (rot hervorgehoben)
- Reminder-Tracking in eigener Datenbank-Tabelle mit History-Eintrag
- Anpassbare Erinnerungs-Templates: Reminder E-Mail-Vorlage ist über die Einstellungen anpassbar (DE + EN)
- Sichere Markdown-Formatierung in E-Mails: Beschreibungen und Kommentare in E-Mail-Templates unterstützen jetzt:
**fett**und*kursiv*[Linktext](URL)für Links- Automatische Verlinkung von URLs und E-Mail-Adressen
- Zeilenumbrüche werden zu
<br>konvertiert
- Neue Platzhalter:
{{sent_by_name}},{{issue_status}},{{due_date}}für E-Mail-Templates - Konfigurierbare Absender-Adresse: Eigene E-Mail-Absenderadresse in den Einstellungen, mit PHPMailer-Konfiguration als Fallback
Verbesserungen
- Tabellendefinitionen zentralisiert: Alle 14 DB-Tabellen in gemeinsame
table_setup.phpausgelagert (voninstall.phpundupdate.phpgenutzt) - Update-sicheres Template-Management: Fehlende E-Mail-Templates werden bei Updates automatisch nachgerüstet, ohne bestehende zu überschreiben
- E-Mail-Darstellung:
white-space: pre-wrapdurchnl2br()ersetzt für saubere Zeilenumbrüche - Reminder Cooldown: Einstellbar über Einstellungen → E-Mail mit Minimum 1 und Maximum 720 Stunden
1.3.0
Neu in 1.3.0
- Lightbox für Attachments
- Neuer Status Info
1.2.0
Neu in: 1.2.0
- Verwandte Issues können verknüpft werden
- Schönere Issue Mails
- E-Mail-Vorlagen können zurückgesetzt werden
- E-Mail-Versandt-Testing
1.1.0
- CSV '/ PDF Export
- Fehlende Übersetzungen ergänzt
- Filter in Overview
- Rechte verbessert
1.0.1
- Fehlende Übersetzungen ergänzt
- Email-Templates um Info zum Einmal-Link ergänzt
- Fixed: Problem bei der AddOn-Auswahl Array vs String
- Benachrichtigungs-Email-Adresse kann direkt in den Einstellungen gesetzt werden, wenn im Profil nicht hinterlegt
1.0.0
Initial release