Changes 11/14/2025 (v1.9.6)
release(v1.9.6): hardened resumable uploads, menu/tag UI polish and hidden temp folders (closes #67)
-
Resumable uploads
- Normalize resumable GET “test chunk” handling in
UploadModelusingresumableChunkNumber+resumableIdentifier, returning explicitstatus: "found"|"not found". - Skip CSRF checks for resumable GET tests in
UploadController, but keep strict CSRF validation for real POST uploads with soft-failcsrf_expiredresponses. - Refactor
UploadModel::handleUpload()for chunked uploads: strict filename validation, safe folder normalization, reliable temp chunk directory creation, and robust merge with clear errors if any chunk is missing. - Add
UploadModel::removeChunks()+ internalrrmdir()to safely clean upresumable_…temp folders via a dedicated controller endpoint.
- Normalize resumable GET “test chunk” handling in
-
Frontend resumable UX & persistence
- Enable
testChunks: truefor Resumable.js and wire GET checks to the new backend status logic. - Track in-progress resumable files per user in
localStorage(identifier, filename, folder, size, lastPercent, updatedAt) and show a resumable hint banner inside the Upload card with a dismiss button that clears the hints for that folder. - Clamp client-side progress to max
99%until the server confirms success, so aborted tabs still show resumable state instead of “100% done”. - Improve progress UI: show upload speed, spinner while finalizing, and ensure progress elements exist even for non-standard flows (e.g., submit without prior list build).
- On complete success, clear the progress UI, reset the file input, cancel Resumable’s internal queue, clear draft records for the folder, and re-show the resumable banner only when appropriate.
- Enable
-
Hiding resumable temp folders
- Hide
resumable_…folders alongsidetrashandprofile_picsin:- Folder tree BFS traversal (child discovery / recursion).
listChildren.phpresults and child-cache hydration.- The inline folder strip above the file list (also filtered in
fileListView.js).
- Hide
-
Folder manager context menu upgrade
- Replace the old ad-hoc folder context menu with a unified
filr-menuimplementation that mirrors the file context menu styling. - Add Material icon mapping per action (
create_folder,move_folder,rename_folder,color_folder,folder_share,delete_folder) and clamp the menu to viewport with escape/outside-click close behavior. - Wire the new menu from both tree nodes and breadcrumb links, respecting locked folders and current folder capabilities.
- Replace the old ad-hoc folder context menu with a unified
-
File context menu & selection logic
- Define a semantic file context menu in
index.html(#fileContextMenuwith.filr-menubuttons, icons,data-action, anddata-whenvisibility flags). - Rebuild
fileMenu.jsto:- Derive the current selection from file checkboxes and map back to real
fileDataentries, handling the encoded row IDs. - Toggle menu items based on selection state (
any,one,many,zip,can-edit) and hide redundant separators. - Position the menu within the viewport, add ESC/outside-click dismissal, and delegate click handling to call the existing file actions (preview, edit, rename, copy/move/delete/download/extract, tag single/multiple).
- Derive the current selection from file checkboxes and map back to real
- Define a semantic file context menu in
-
Tagging system robustness
- Refactor
fileTags.jsto enforce single-instance modals for both single-file and multi-file tagging, preventing duplicate DOM nodes and double bindings. - Centralize global tag storage (
window.globalTags+localStorage) with shared dropdowns for both modals, including “×” removal for global tags that syncs back to the server. - Make the tag modals safer and more idempotent (re-usable DOM, Esc and backdrop-to-close, defensive checks on elements) while keeping the existing file row badge rendering and tag-based filtering behavior.
- Localize various tag-related strings where possible and ensure gallery + table views stay in sync after tag changes.
- Refactor
-
Visual polish & theming
- Introduce a shared
--menu-radiustoken and apply it across login form, file list container, restore modal, preview modals, OnlyOffice modal, user dropdown menus, and the Upload / Folder Management cards for consistent rounded corners. - Update header button hover to use the same soft blue hover as other interactive elements and tune card shadows for light vs dark mode.
- Adjust media preview modal background to a darker neutral and tweak
filePreviewpanel background fallback (--panel-bg/--bg-color) for better dark mode contrast. - Style
.filr-menufor both file + folder menus with max-height, scrolling, proper separators, and Material icons inheriting text color in light and dark themes. - Align the user dropdown menu hover/active styles with the new menu hover tokens (
--filr-row-hover-bg,--filr-row-outline-hover) for a consistent interaction feel.
- Introduce a shared
v1.9.6
Full Changelog
SHA-256 (zip)
a37af57dbc7e7266c4630609be4bda399362e30e927eaee326d0582678244abb FileRise-v1.9.6.zip