Edouard Vanbelle
ea83891a61
feat(trash): move trash API to normalized version (with cursor, orderBy) + normalize Trash section to existing components
...
normalize also component to format badges (expiry, role, etc)
2026-05-30 00:49:32 +02:00
Edouard Vanbelle
6e5c5edd85
chore(ui): apply biome formatter
2026-05-29 13:15:31 +02:00
Edouard Vanbelle
ae4fb7603a
refactor(front): remove dead code (old Shared section)
2026-05-29 13:13:23 +02:00
Edouard Vanbelle
63722c868e
feat(myshares): new version of myshares sections, supporting grants Users + Tokens
2026-05-29 13:12:59 +02:00
Edouard Vanbelle
8800353900
refactor(share,grants): migrate expiration from legacy share into grants, simplify legacy share, normalize shareModal for better UX
2026-05-28 20:00:06 +02:00
Edouard Vanbelle
29d8aab9c0
feat(resourceList): keep consistence in groupby options order accross sectons + add userVignette on owner's swimlane
2026-05-28 12:12:22 +02:00
Edouard Vanbelle
80c9ace108
chore(i18n): add missing translations
2026-05-28 12:12:22 +02:00
Edouard Vanbelle
7f4b329718
feat(itemToolltip): fusion pathTooltip + ownerTooltip into itemToolltip, move it in the header for more visibility
2026-05-28 12:12:22 +02:00
Edouard Vanbelle
5790a1459f
feat(folders): add curser and the normalized way to get foler's item list. add reverse order
2026-05-28 12:12:22 +02:00
Edouard Vanbelle
5afb30ebfd
feat(swimlane): add swimlane engine with first version on SharedWithMe section
...
added group by:
- None (= ordered by folders/file name)
- Type (Folder first, then Image, Vidao, Audio, Document, etc...)
- Owner
- Size (With logarithmic groups))
- Shared date (with groups: today, last 7 days, last 30 days, then year)
2026-05-28 00:15:05 +02:00
Edouard Vanbelle
6ac4e6177c
refactor(js): move multiSelect into batchToolbar + move residual method into relevant components
2026-05-28 00:15:05 +02:00
Edouard Vanbelle
1cd934d594
refactor(resourceList): move grid/list view into a resourceList component, purpose normalize on all sections views
2026-05-28 00:15:04 +02:00
Edouard Vanbelle
b0c5e7827e
feat(user-avatar): users can now edit there image (image is taken from OIDC picture)
2026-05-27 11:29:33 +02:00
Edouard Vanbelle
8365608bd5
feat(list view): show the owner of the File or Folder in list view
2026-05-25 22:48:59 +02:00
Edouard Vanbelle
79c1a37931
feat(ui): 1 modal to manage shares (users & public share)
...
fix(share): ensure Authz parent is created/updated on publicShare create/update
fix(ShareModal): do not show Token (public) grants in People section
2026-05-25 22:47:36 +02:00
Edouard Vanbelle
60d53ea779
feat(ui): add section 'Shared with me'
2026-05-25 22:47:32 +02:00
Edouard Vanbelle
191f725199
feat(ui/trash): show original file path in tooltip on mouse over + display thumbnails
...
* fix: permission also check elements trashed elements
* tested manually
* all automated tests ok
2026-05-22 02:26:11 +02:00
Edouard Vanbelle
3c3be9b930
feat(share): permit scrolldown+ keep header sticky on the top
...
this solve issue raised on #253
2026-05-19 22:52:46 +02:00
Edouard Vanbelle
3557bc596a
fix(front:pathTooltip): correct importation of pathTooltip.css
2026-05-19 14:55:37 +02:00
Kamil Alekberov
fe0a8c7f72
feat(ui): improve mobile search and consolidate language selector
...
- On mobile (≤768px), replace the full search bar in the topbar with a
search icon button; tapping it expands a full-width search overlay
with a back arrow to collapse (Google Drive-style pattern)
- Escape key also collapses the mobile search overlay
- Hide the redundant inline search icon when the mobile search bar is
active (submit button already has one)
- Move the language selector from the topbar into the user menu for all
screen sizes, reducing topbar clutter; it renders as an accordion row
matching other menu items
- Fix user menu positioning in RTL layouts (Arabic/Persian): anchor to
left:0 instead of right:0 so the panel opens inward rather than
off-screen
2026-05-17 18:41:34 +05:00
Dionisio Pozo
412e31388d
Merge pull request #347 from abnvle/feat/share-folder-browsing
2026-05-14 00:07:45 +02:00
abnvle
e8399443e9
Merge remote-tracking branch 'origin/main' into feat/share-folder-browsing
...
# Conflicts:
# static/js/views/public/publicShare.js
2026-05-10 20:46:29 +02:00
Edouard Vanbelle
7697f3d35b
feat(ui): handle errors on folder creation or folder/file renaming
...
- protect file_management_service::rename_file with validate_storage_name
- remove specific rename modal and use the generic modal class (less duplicate)
- handle errors on modal action: do not close the modal on error and display this error
- hide "Go to parent folder" contextMenu if section is files and folder is the same as current one
2026-05-09 00:06:36 +02:00
Edouard Vanbelle
8e1e9fe201
show item path on Recent + Favorites, add go to parent folder, fix Folder browsing in Favorites
2026-05-06 23:36:05 +02:00
abnvle
cb454d8aa2
feat(share-public): folder gallery UI in share.html
...
Replaces the placeholder with a gallery rendered by publicShare.js
against the new public endpoints.
- Grid / list view toggle (localStorage)
- Image thumbs and lazy-loaded video posters
- Click-to-open lightbox with Esc / arrow nav
- ZIP download for the current folder
- Subfolder navigation via URL hash, History API for back
Adds five overlay-related tokens to base/variables.css for the
lightbox surface (on-overlay text, translucent button, drop shadow).
share.html itself only adds an icons.js module import and empties
#share-folder for JS to populate.
2026-05-06 00:01:08 +02:00
abnvle
8527765bf2
style(share-dialog): give share button breathing room
...
The Share button moved into .share-options in bdb5a6c sat flush
against the section bottom border. Adds 20px bottom padding plus
margin-top:16px and margin-left:auto on the button so it aligns
right with the Close button below.
2026-05-05 21:57:15 +02:00
Edouard Vanbelle
f6cd18e5e9
feat: generate thumbnail from client is not found on server
...
- supported thumbnail filetype: image, pdf, video
- add play character if video's thumbnail is loaded
2026-05-04 21:04:15 +02:00
Edouard Vanbelle
f5dade1551
refactor(ui): css: use of variables colors only
2026-04-26 01:16:40 +02:00
Edouard Vanbelle
e148a92f5d
refactor(ui): use hidden class for upload + menu
2026-04-25 21:10:04 +02:00
Edouard Vanbelle
35fc9a0619
improve(ui): share-dialog: click outside of dialog closes the window
2026-04-25 21:10:04 +02:00
Edouard Vanbelle
fc8e529e7d
refactor(ui): modal: use hidden class
2026-04-25 21:10:04 +02:00
Edouard Vanbelle
a38bcc01de
refactor(ui): normalize about modal with hidden class
2026-04-25 21:09:55 +02:00
Edouard Vanbelle
832c9ab577
improve(ui): dialog: add escape key on shared dialog + perfer hidden class
2026-04-25 21:09:41 +02:00
Edouard Vanbelle
ceff552736
feat(shared): show in classic view if an item is shared
2026-04-16 23:13:08 +02:00
Edouard Vanbelle
c8dbcd2409
fix(multi-select/action bar): keep large bar
2026-04-16 00:58:11 +02:00
Edouard Vanbelle
33165c6d5a
feat(frontand/buttons): move multiselect into buttons = keep visible card/list selector
2026-04-15 23:49:20 +02:00
Edouard Vanbelle
6e3d87c27e
style(front): correct format
2026-04-15 00:15:53 +02:00
Diocrafts
cd3733b459
feat: pluggable storage backends (S3, Azure, local) with admin UI
...
Implement 4-phase external storage backends architecture:
Phase 1 - Foundation:
- BlobStorageBackend trait (application/ports/blob_storage_ports.rs)
- LocalBlobBackend: extracted all tokio::fs ops from DedupService
- S3BlobBackend: AWS SDK with custom endpoint support (MinIO, R2, B2)
- DedupService refactored to use Arc<dyn BlobStorageBackend>
Phase 2 - Admin Panel:
- StorageSettingsService with DB persistence + env override
- Storage tab in admin panel (backend selector, S3 form, provider presets)
- GET/PUT/POST endpoints for storage settings + connection test
- i18n keys (en/es) and BEM CSS
Phase 3 - Migration:
- MigrationBlobBackend decorator (dual-read: target-first + source fallback)
- Background migration job with parallel transfers + progress tracking
- Migration UI (progress bar, ETA, pause/resume/verify/complete)
- 6 admin API endpoints for migration lifecycle
Phase 4 - Enterprise Extras:
- CachedBlobBackend: LRU disk cache for remote backends
- EncryptedBlobBackend: AES-256-GCM at-rest encryption
- AzureBlobBackend: Azure Blob Storage support
- RetryBlobBackend: exponential backoff for transient errors
- Decorator composition in DI: retry → encryption → cache
All 223 tests passing, clippy clean, fmt verified.
2026-04-14 21:33:38 +02:00
Edouard Vanbelle
2061f8808b
style(front): apply biome recos
2026-04-14 13:33:55 +02:00
Edouard Vanbelle
d01b2c6ec4
refactor(css): use variable rather direct color
2026-04-14 13:33:51 +02:00
Edouard Vanbelle
2733542bce
refactor(css): dark theme: remove and merge specific cases
2026-04-13 13:26:38 +02:00
Edouard Vanbelle
e6a815a03c
refactor(css): dark theme: merge photos
2026-04-13 13:26:38 +02:00
Edouard Vanbelle
f7c7136149
refactor(css): dark theme: merge notfication + dropzone
2026-04-13 13:26:38 +02:00
Edouard Vanbelle
260eb4d4c8
refactor(css): merge context menu for dark theme
2026-04-13 13:26:38 +02:00
Edouard Vanbelle
4dff552299
refactor(css): use 1 global declaration for scrollbar
2026-04-13 13:26:38 +02:00
Edouard Vanbelle
ce207ebad1
refactor(css): merge profile + admin dark style
2026-04-13 13:26:38 +02:00
Edouard Vanbelle
413832d1a2
refactor(css): remove use generic colors for language-selector + correct item selection color
2026-04-13 13:26:38 +02:00
Edouard Vanbelle
54c736a8b1
refactor(css): removed unnecessary dark theme override
2026-04-12 02:58:24 +02:00
Edouard Vanbelle
4862c17e11
refactor(css): change css grouping fileType & filesView
...
- fileType.css for filetype to icons representation
- filesViews.css for grid and list view (merge of previous cards.css & fileList.css)
2026-04-12 02:53:35 +02:00
Edouard Vanbelle
b95cf8dee9
refactor(css/icons): centralize icon folder to card.css
2026-04-12 02:22:57 +02:00