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 = SettingsF2 = 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:
F1is 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
Xrechtsboven - sluiten via
Escape - tabstrip bovenin of direct onder de titel
Tabs in v1:
GeneralLogs
Volgorde:
Generalals eerste tabLogsdirect rechts daarvan
Rol van de tabs:
General: placeholder voor latere instellingenLogs: 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
Logsleunt 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,copyenmove
Aanbevolen zichtbare velden in v1:
operationstatus- hoofdpad of
source -> destination - tijdstip (
created_atof compacte datum/tijd) - foutmelding alleen wanneer
status = failed
Weergavevoorstel:
- compacte lijstregels
- recentste bovenaan
- status visueel herkenbaar:
queuedcompletedfailed
- foutgevallen mogen een tweede compacte regel of muted subregel tonen
Belangrijk:
Logsvervangt 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
F2doet niets
Optie B:
- knop klikbaar
F2en 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
F2volledig 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 Moveniet raken - is semantisch gereserveerd, maar nog niet gekoppeld aan echte rename-logica
Bestaande shortcuts blijven intact:
F3 = ViewF4 = EditF5 = CopyF6 = MoveF7 = MKdirF8 = Delete
8. UI-impact
Waarschijnlijk te wijzigen frontendbestanden:
webui/html/index.htmlwebui/html/app.jswebui/html/style.csswebui/backend/tests/golden/test_ui_smoke_golden.py
Verwachte impact:
index.html: extra modalcontainer en functiebalkknoppen voorF1enF2app.js: shortcutbinding voorF1, placeholderbinding voorF2, tabs en history-fetch in settingsmodalstyle.css: compacte modal- en tabstyling die past bij de bestaande UI
Backend:
- geen nieuwe backendwijzigingen nodig in deze stap
Logsgebruikt 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
Settingscompact en centraal - laat
F1enF2exact via dezelfde centrale shortcut-dispatch lopen als andere functiebalkacties - laat
F2bewust geen echte file-actie starten in deze fase
10. Teststrategie
UI smoke/regressietests:
- controleer dat de functiebalk
Settingsbevat - controleer dat een
F2-placeholderknop aanwezig is - controleer dat de settingsmodalcontainer in de HTML aanwezig is
- controleer dat de
General- enLogs-tabs aanwezig zijn
Handmatige validatie:
F1opent en sluit correct viaEscapeenXF1blokkeert paneelkeyboardnavigatie terwijl de modal open isLogslaadt recente items via/api/historyF2toont alleen de placeholderreactie en verandert geen file-flow- bestaande
F6 Moveen overige functiebalkacties blijven intact
Aanbevolen v1-richting
Aanbevolen implementatierichting met laag regressierisico:
- voeg
Settingstoe als compacte modal met tabstructuur - maak
Generaleen nette placeholder - gebruik
Logsals eerste echte inhoud via de bestaande history API - reserveer
F2zichtbaar als placeholder met compacteNot implemented yetreactie
Waarom dit de veiligste richting is:
- minimale verstoring van de bestaande dual-pane workflow
- geen backenduitbreiding nodig
- future-proof structuur voor settings en historyweergave
F2krijgt een zichtbare, maar nog niet semantisch gevaarlijke plek