FriendsOfREDAXO / FriendsOfREDAXO/issue_tracker

Feature: Kanban-Board als Projektansicht

Open
#5 0 comments 1 reaction 3 assignees Claimed by @skerbis View on GitHub
enhancement
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.