Files
webmanager-mvp/project_docs/UI_F1_SETTINGS_AND_F2_PLACEHOLDER_V1.md
2026-03-12 07:55:45 +01:00

7.1 KiB

UI_F1_SETTINGS_AND_F2_PLACEHOLDER_V1

1. Doel

Deze stap voegt een kleine, uitbreidbare UI-structuur toe voor twee functietoets-slots aan de functiebalk onder de panelen:

  • F1 = Settings
  • F2 = placeholder voor latere Rename

Doel:

  • de functiebalk meer laten aansluiten op een klassieke file-manager workflow
  • ruimte reserveren voor toekomstige uitbreiding zonder de huidige dual-pane workflow te verstoren
  • een eerste container bieden voor instellingen en history/logweergave zonder nu al een grote instellingen-UI te ontwerpen

Waarom nu F1 als Settings:

  • F1 is een logische, laag-risico plek voor globale app-functionaliteit
  • het conflicteert niet met bestaande file-acties zoals F3-F8
  • een compacte modal houdt de hoofdworkspace schoon

Waarom F2 nu alvast reserveren:

  • de functiebalk wordt voorbereid op een completere functietoets-reeks
  • latere Rename-invulling kan op een stabiele plek landen
  • het voorkomt dat de functiebalk later opnieuw semantisch moet verschuiven

2. F1 Settings

F1 krijgt in v1 zowel een keyboard shortcut als een knop in de menubalk onder de panelen.

Voorstel:

  • keyboard shortcut: F1
  • knoplabel in functiebalk: Settings
  • positie: links in de functiebalk, vóór de bestaande file-acties
  • actie: opent een compacte modal/popup

Eigenschappen van de modal:

  • compact genoeg om de dual-pane context niet te verdringen
  • groot genoeg voor tabnavigatie en een eenvoudige lijstweergave
  • uitbreidbaar zonder later een totaal andere structuur nodig te hebben

3. Settings Modal Structuur

De modal fungeert in v1 vooral als container.

Vaste structuur:

  • titel: Settings
  • sluiten via X rechtsboven
  • sluiten via Escape
  • tabstrip bovenin of direct onder de titel

Tabs in v1:

  • General
  • Logs

Volgorde:

  • General als eerste tab
  • Logs direct rechts daarvan

Rol van de tabs:

  • General: placeholder voor latere instellingen
  • Logs: eerste echte inhoud, gevoed door de bestaande history API

Belangrijk:

  • de modal is in v1 nog geen volledige instellingenpagina
  • de tabstructuur wordt nu vooral neergezet zodat latere uitbreidingen logisch kunnen landen

4. General Tab

De General-tab is in v1 expliciet een placeholder.

Inhoud in v1:

  • nette sectieheader of korte toelichting
  • compacte placeholdertekst, bijvoorbeeld dat toekomstige instellingen hier komen
  • geen echte form controls vereist in deze fase

Doel:

  • semantische en visuele voorbereiding op latere app-instellingen
  • voorkomen dat de modal nu al volledig op Logs leunt en later opnieuw ontworpen moet worden

Niet in scope:

  • root-configuratie
  • theme-instellingen
  • polling- of taskinstellingen
  • bookmarkinstellingen
  • geavanceerde preferences

5. Logs Tab

De Logs-tab gebruikt de bestaande GET /api/history API.

Doel in v1:

  • een compacte lijst van recente acties tonen zonder de hoofdworkspace te verstoren
  • dezelfde informatie tonen die voor gebruikers praktisch nuttig is na mkdir, rename, delete, copy en move

Aanbevolen zichtbare velden in v1:

  • operation
  • status
  • hoofdpad of source -> destination
  • tijdstip (created_at of compacte datum/tijd)
  • foutmelding alleen wanneer status = failed

Weergavevoorstel:

  • compacte lijstregels
  • recentste bovenaan
  • status visueel herkenbaar:
    • queued
    • completed
    • failed
  • foutgevallen mogen een tweede compacte regel of muted subregel tonen

Belangrijk:

  • Logs vervangt geen tasklijst of taskdetail
  • het is een compacte history-weergave in modalvorm
  • de dual-pane workspace blijft onaangetast zolang de modal dicht is

6. F2 Placeholder

F2 wordt in deze stap expliciet gereserveerd voor latere Rename.

V1-uitwerking:

  • keyboard shortcut: F2
  • knop in functiebalk met label passend bij de toekomstige rol, bijvoorbeeld Rename
  • nog geen functionele rename-actie via F2

Twee opties:

Optie A:

  • knop disabled
  • F2 doet niets

Optie B:

  • knop klikbaar
  • F2 en knop tonen compacte melding: Not implemented yet

Aanbeveling voor v1:

  • gebruik een klikbare placeholder met compacte melding Not implemented yet

Motivatie:

  • maakt zichtbaar dat de plek bewust gereserveerd is
  • voorkomt verwarring waarom F2 volledig ontbreekt
  • blijft lichtgewicht zonder nu al rename-semantiek te verschuiven

Belangrijk:

  • deze placeholder mag niets veranderen aan de bestaande rename-flow
  • bestaande Rename-knop en bestaande file-manager interacties blijven leidend

7. Relatie Met Bestaande Shortcuts

F1 Settings:

  • mag geen bestaande paneel- of file-actieflow breken
  • werkt alleen als focus niet in een control zit, volgens bestaande shortcutguards
  • terwijl de modal open is, mogen paneelshortcuts eronder niet doorwerken

F2 Placeholder:

  • mag geen bestaande flow beïnvloeden
  • mag vooral F6 Move niet raken
  • is semantisch gereserveerd, maar nog niet gekoppeld aan echte rename-logica

Bestaande shortcuts blijven intact:

  • F3 = View
  • F4 = Edit
  • F5 = Copy
  • F6 = Move
  • F7 = MKdir
  • F8 = Delete

8. UI-impact

Waarschijnlijk te wijzigen frontendbestanden:

  • webui/html/index.html
  • webui/html/app.js
  • webui/html/style.css
  • webui/backend/tests/golden/test_ui_smoke_golden.py

Verwachte impact:

  • index.html: extra modalcontainer en functiebalkknoppen voor F1 en F2
  • app.js: shortcutbinding voor F1, placeholderbinding voor F2, tabs en history-fetch in settingsmodal
  • style.css: compacte modal- en tabstyling die past bij de bestaande UI

Backend:

  • geen nieuwe backendwijzigingen nodig in deze stap
  • Logs gebruikt de reeds bestaande history API

9. Regressierisico

Belangrijkste risico's:

  • keyboard conflicts met bestaande shortcutlaag
  • te volle functiebalk onder de panelen
  • modal focusregels die bestaande paneelnavigatie per ongeluk laten doorwerken
  • te grote settingsmodal die de workspace te zwaar onderbreekt

Mitigatie:

  • hergebruik bestaande modal- en focusguards
  • houd Settings compact en centraal
  • laat F1 en F2 exact via dezelfde centrale shortcut-dispatch lopen als andere functiebalkacties
  • laat F2 bewust geen echte file-actie starten in deze fase

10. Teststrategie

UI smoke/regressietests:

  • controleer dat de functiebalk Settings bevat
  • controleer dat een F2-placeholderknop aanwezig is
  • controleer dat de settingsmodalcontainer in de HTML aanwezig is
  • controleer dat de General- en Logs-tabs aanwezig zijn

Handmatige validatie:

  • F1 opent en sluit correct via Escape en X
  • F1 blokkeert paneelkeyboardnavigatie terwijl de modal open is
  • Logs laadt recente items via /api/history
  • F2 toont alleen de placeholderreactie en verandert geen file-flow
  • bestaande F6 Move en overige functiebalkacties blijven intact

Aanbevolen v1-richting

Aanbevolen implementatierichting met laag regressierisico:

  • voeg Settings toe als compacte modal met tabstructuur
  • maak General een nette placeholder
  • gebruik Logs als eerste echte inhoud via de bestaande history API
  • reserveer F2 zichtbaar als placeholder met compacte Not implemented yet reactie

Waarom dit de veiligste richting is:

  • minimale verstoring van de bestaande dual-pane workflow
  • geen backenduitbreiding nodig
  • future-proof structuur voor settings en historyweergave
  • F2 krijgt een zichtbare, maar nog niet semantisch gevaarlijke plek