Settings: retention editor + auto-purge controls (#82) #83
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/settings-ui"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #82
Closes #79
Completes the last part of #79 and fixes the v0.3.19 gap.
Auto-purge is now reachable. A checkbox plus a "keep trashed files for" select (30/90/180 days, 1 year) in Settings, bound to
trashAutoPurgeandtrashAutoPurgeAfter. The backend has been there since v0.3.19; until now the only way to enable it was editing settings JSON by hand. The hint text states the guard rails on screen — retention and holds always win, and every automatic deletion is audited — because a destructive setting should explain itself where it's toggled, not only in a changelog.Retention editor.
path = durationtextarea bound toretentionPeriods, parsed on the first=so paths containing=survive round-tripping. Reuses the i18n keys added in #79 that were until now unused.Wired in all three places the settings form requires — markup,
openSettings()population, and thePUT /api/v1/settingspayload. SincePUTreplaces the whole settings object, the payload always sends both new keys; omitting them would silently clear existing retention rules.Process note. This run started by dumping the actual settings form and handlers instead of guessing at anchors, which is how it landed first try after four failures on the previous issue. The relevant detail that guessing would have missed:
openSettings()binds the fetched settings tost, and the load and save sites are ~1300 lines apart. The job also asserts each of the nine expected strings is present after splicing, so a partially-applied patch fails loudly instead of shipping a half-wired form — the exact failure mode that produced #82.