upload volledige repo
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
# UI_VISION_MC.md
|
||||
|
||||
## Doel
|
||||
|
||||
De webapp moet geleidelijk evolueren naar een web-based bestandsbeheerder
|
||||
met een workflow die geïnspireerd is op Midnight Commander.
|
||||
|
||||
Het doel is **niet** om Midnight Commander exact te klonen,
|
||||
maar om de belangrijkste werkprincipes over te nemen:
|
||||
|
||||
- twee panelen naast elkaar
|
||||
- snel wisselen tussen panelen
|
||||
- actief paneel en inactief paneel
|
||||
- copy/move van actief paneel naar ander paneel
|
||||
- keyboard-efficiënte bediening
|
||||
- focus op snelheid en weinig muisafhankelijkheid
|
||||
|
||||
---
|
||||
|
||||
## Ontwerpprincipes
|
||||
|
||||
- web-native uitvoering, geen letterlijke terminal-clone
|
||||
- behoud van bestaande backend API-contracten
|
||||
- incrementele UI-ontwikkeling in kleine stappen
|
||||
- veiligheid en voorspelbaarheid blijven leidend
|
||||
- bestaande werkende functionaliteit mag niet regressief kapot gaan
|
||||
|
||||
---
|
||||
|
||||
## Doelbeeld
|
||||
|
||||
De UI moet uiteindelijk bestaan uit:
|
||||
|
||||
### 1. Dubbel paneel
|
||||
- een linker paneel
|
||||
- een rechter paneel
|
||||
- elk paneel heeft een eigen current path
|
||||
- elk paneel toont directories en files
|
||||
- elk paneel heeft een eigen selectie
|
||||
|
||||
### 2. Actief paneel
|
||||
- één paneel is actief
|
||||
- acties worden gestart vanuit het actieve paneel
|
||||
- het andere paneel is standaard de doelcontext voor copy/move
|
||||
|
||||
### 3. Navigatie
|
||||
- pad boven elk paneel zichtbaar
|
||||
- directorynavigatie per paneel
|
||||
- later uitbreidbaar met keyboard shortcuts
|
||||
|
||||
### 4. Bestandsacties
|
||||
- rename
|
||||
- mkdir
|
||||
- delete
|
||||
- copy
|
||||
- move
|
||||
|
||||
### 5. Taken
|
||||
- tasklijst zichtbaar
|
||||
- status polling blijft mogelijk
|
||||
- copy/move blijven task-based
|
||||
|
||||
---
|
||||
|
||||
## Buiten scope voor de eerstvolgende UI-stap
|
||||
|
||||
Deze dingen worden nu nog niet gebouwd:
|
||||
|
||||
- multi-select
|
||||
- Insert-achtige selectie
|
||||
- viewer
|
||||
- editor
|
||||
- menubalk zoals F9
|
||||
- chmod/chown/symlink tools
|
||||
- zoeken
|
||||
- directory compare
|
||||
- volledige keyboard mapping
|
||||
|
||||
---
|
||||
|
||||
## Eerstvolgende UI-doel
|
||||
|
||||
De eerstvolgende UI-stap is:
|
||||
|
||||
### Dual-pane UI v2
|
||||
|
||||
Deze stap bevat alleen:
|
||||
|
||||
- links en rechts paneel
|
||||
- per paneel eigen current path
|
||||
- actief paneel
|
||||
- visuele actieve paneel-indicatie
|
||||
- copy/move gebruiken standaard het andere paneel als destination context
|
||||
- bestaande backend-endpoints blijven ongewijzigd
|
||||
|
||||
Nog niet in deze stap:
|
||||
|
||||
- multi-select
|
||||
- uitgebreide keyboard controls
|
||||
- viewer/editor
|
||||
- history UI
|
||||
- nieuwe backend features
|
||||
|
||||
---
|
||||
|
||||
## Verwachte impact
|
||||
|
||||
Waarschijnlijk vooral wijziging in:
|
||||
|
||||
- `webui/html/index.html`
|
||||
- `webui/html/app.js`
|
||||
- `webui/html/style.css`
|
||||
|
||||
Backend hergebruik:
|
||||
|
||||
- `GET /api/browse`
|
||||
- `POST /api/files/mkdir`
|
||||
- `POST /api/files/rename`
|
||||
- `POST /api/files/delete`
|
||||
- `POST /api/files/copy`
|
||||
- `POST /api/files/move`
|
||||
- `GET /api/tasks`
|
||||
- `GET /api/tasks/{task_id}`
|
||||
- `GET /api/bookmarks`
|
||||
- `POST /api/bookmarks`
|
||||
- `DELETE /api/bookmarks/{bookmark_id}`
|
||||
|
||||
---
|
||||
|
||||
## Acceptatiecriteria voor de volgende UI-stap
|
||||
|
||||
De dual-pane stap is pas klaar als:
|
||||
|
||||
- beide panelen onafhankelijk kunnen browsen
|
||||
- elk paneel een eigen path toont
|
||||
- één paneel actief is
|
||||
- actief paneel visueel herkenbaar is
|
||||
- copy/move logisch vanuit actief naar ander paneel werken
|
||||
- bestaande functionaliteit niet stuk gaat
|
||||
- bestaande tests blijven slagen
|
||||
- UI smoke tests waar nodig zijn bijgewerkt
|
||||
Reference in New Issue
Block a user