FriendsOfREDAXO / FriendsOfREDAXO/issue_tracker
Feature: Kanban-Board als Projektansicht
- Dominant language
- PHP
- Stars
- 7
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## Feature Request: Kanban-Board für Projekte
### Beschreibung
Benutzer wünschen sich eine Kanban-Board-Ansicht, um Issues visuell nach Status zu organisieren und per Drag & Drop zwischen Spalten zu verschieben.
### Empfehlung: Projektbezogenes Kanban
Das Board sollte **projektbezogen** implementiert werden (nicht global), weil:
- Ein globales Board mit 50-200+ Issues über 6 Spalten schnell unübersichtlich wird
- Kanban lebt von Fokus und überschaubarem Scope (typisch 10-30 Issues pro Projekt)
- Projekte liefern den perfekten Rahmen: klarer Scope, zugewiesene Team-Mitglieder, gemeinsamer Kontext
- Projektfortschritt wird visuell sofort greifbar
### Einordnung in die Seitenstruktur
Als **Tab in der Projekt-Detailansicht** neben der bestehenden Issue-Liste:
```
projects/view
[Tab] Liste <-- bestehende Tabellen-Ansicht (bleibt)
[Tab] Board <-- NEU: Kanban-Board
```
Beide Ansichten nutzen dieselben Daten (`Issue::getByProject()`), nur die Darstellung ändert sich.
### Board-Layout
Spalten = konfigurierte Status (Offen, In Arbeit, Geplant, Info, Abgelehnt, Erledigt).
Jede Spalte zeigt die Issues des jeweiligen Status als Karten.
Drag & Drop zwischen Spalten ändert den Status.
### Karten-Inhalt
Jede Karte zeigt kompakt:
- Issue-ID + Titel
- Priorität (Farbcodierung)
- Zugewiesener Benutzer (Name/Avatar)
- Tags (farbige Badges)
- Fälligkeitsdatum (rot wenn überfällig)
- Kategorie
Klick auf Karte öffnet die Issue-Detailansicht.
### Technische Umsetzung
| Baustein | Beschreibung |
|----------|-------------|
| `sort_order` Spalte | Neues `int`-Feld in `issue_tracker_issues` für Reihenfolge innerhalb einer Kanban-Spalte |
| `rex_api_function` | API-Endpoint für Drag & Drop (Status + Position per AJAX updaten) |
| Kanban-Fragment | `issue_tracker_board.php` - Flexbox/Grid-Layout mit Spalten pro Status |
| Drag & Drop JS | SortableJS (~8 KB gzip, MIT) - spaltenübergreifend, Touch-fähig |
| Board-CSS | Dark Mode kompatibel, responsive |
### Voraussetzungen
- Bestehende Datenstruktur passt: 6 konfigurierbare Status, `project_id` auf Issues, `Issue::getByProject()` existiert
- Kein `sort_order`-Feld vorhanden - muss in `table_setup.php` ergänzt werden
- Kein Drag & Drop JS vorhanden - SortableJS als Asset hinzufügen
### Issues ohne Projekt
Issues ohne Projekt-Zuordnung (`project_id = NULL`) erhalten kein Kanban-Board. Wer Kanban nutzen will, ordnet Issues einem Projekt zu. Optional für später: persönliches "Meine Issues"-Mini-Board auf dem Dashboard.
### Geschätzter Aufwand
- **Minimal-Version** (Board + Drag & Drop Status-Wechsel): ~3-4h
- **Vollversion** (mit sort_order, Filter, Touch, Animation): ~6-8h
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.