Edouard Vanbelle
3f70c7e20a
refactor(server): remove sort by size in pg_acl_engine.rs (dead code)
2026-05-29 13:14:16 +02:00
Edouard Vanbelle
b782a59766
refactor(ui): move deprecated to call /api/folders/id/content to the cursor version /api/folders/id/resources
2026-05-29 13:13:23 +02:00
Edouard Vanbelle
5a43b14e29
test(api): move deprecated call to new one
2026-05-29 13:13:23 +02:00
Edouard Vanbelle
ae4fb7603a
refactor(front): remove dead code (old Shared section)
2026-05-29 13:13:23 +02:00
Edouard Vanbelle
6e30353c4b
chore(deprecated api): log a warning on serverside if a deprecated route is still used
2026-05-29 13:13:23 +02:00
Edouard Vanbelle
d88b3a313f
fix(recent): prevent recent API having non UUID entries + correct any invalid entry in recent database
...
note: issue may have been on my side during test implementation, in any case the protection is required
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
Dionisio Pozo
1deb8b2d80
Update README.md
2026-05-28 22:44:49 +02:00
Dionisio Pozo
7df5d20061
Update README.md
2026-05-28 22:42:47 +02:00
Dionisio Pozo
663500754d
Add files via upload
2026-05-28 22:37:31 +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
Dionisio Pozo
84d57dd2ae
Merge pull request #399 from EdouardVanbelle/feat/implement-cursor-on-main-lists
2026-05-28 17:29:48 +02:00
Dionisio Pozo
553779a8f9
Merge pull request #400 from EdouardVanbelle/feat/server-no-reuse-port-by-default
2026-05-28 17:29:27 +02:00
Edouard Vanbelle
99da124388
fix(ui/thumbnail): fix thumbnail generation in release
...
- reference to /vendors/ must be absolute path (the bundle isn't the same path as the current library doing the lazy loading)
2026-05-28 14:22:57 +02:00
Edouard Vanbelle
636f0b87bd
fix(builder): add OXC semantic to deconflic JS modules using the same global variables/functions
...
- this solve issues like: Uncaught SyntaxError: Identifier 'GROUP_BY_DEFS' has already been declared (at app.XXXX.js)
- add a protection on build: test to reload bundled app, on failure exit immediately (prevent the build or a broken bundle)
- add final check during CI: node --check on the bundle to brevent going to production too if any failure
example of a bundle:
```
warning: oxicloud@0.6.0: bundle: 50 files in dependency order:
warning: oxicloud@0.6.0: bundle: deconflicting 2 name(s): GROUP_BY_DEFS, LOAD_MORE_ID
warning: oxicloud@0.6.0: bundle: [29] GROUP_BY_DEFS -> GROUP_BY_DEFS_29 (favoritesView.js)
warning: oxicloud@0.6.0: bundle: [29] LOAD_MORE_ID -> LOAD_MORE_ID_29 (favoritesView.js)
warning: oxicloud@0.6.0: bundle: [31] GROUP_BY_DEFS -> GROUP_BY_DEFS_31 (recentView.js)
warning: oxicloud@0.6.0: bundle: [31] LOAD_MORE_ID -> LOAD_MORE_ID_31 (recentView.js)
warning: oxicloud@0.6.0: bundle: [34] GROUP_BY_DEFS -> GROUP_BY_DEFS_34 (sharedWithMeView.js)
warning: oxicloud@0.6.0: bundle: [34] LOAD_MORE_ID -> LOAD_MORE_ID_34 (sharedWithMeView.js)
warning: oxicloud@0.6.0: bundle: [44] GROUP_BY_DEFS -> GROUP_BY_DEFS_44 (filesView.js)
warning: oxicloud@0.6.0: bundle: [44] LOAD_MORE_ID -> LOAD_MORE_ID_44 (filesView.js)
```
2026-05-28 14:22:53 +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
73e78904e7
feat(recent): add cursor + groupby support
2026-05-28 12:12:22 +02:00
Edouard Vanbelle
bd474aa67e
feat(viewPref): keep record of user view preferences per section (groupBy, order, list or grid)
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
607ae5e6df
feat(resources): add cursor, group by on /api/favorites/resources
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
d273146138
feat(server): add OXICLOUD_REUSE_PORT env parameter (false by default)
...
initially server was accepting multiple instances on same port (Linux and MacOS only)
this can create issues during development (if a dev forget another running instance...)
Add OXICLOUD_REUSE_PORT variable to activate it, so only admins knowing this feature can activate itt
(permits multiple instance + let the OS schedduler to decide which process will handle a request)
if not enabled, other instance will receive exit with a:
`Error: Os { code: 48, kind: AddrInUse, message: "Address already in use" }`
2026-05-28 12:10:01 +02:00
Dionisio Pozo
1523702ca6
Merge pull request #396 from EdouardVanbelle/feat/itemview-and-swimlane
2026-05-28 02:31:56 +02:00
Edouard Vanbelle
ec43c4f9c9
fix(playwright): raise any pageerror, purpose is to stops immediatly on a bundle issue
2026-05-28 01:54:48 +02:00
Edouard Vanbelle
42cb3627a8
fix(buid): fix JS bundler on import with alias already declared
2026-05-28 01:29:10 +02:00
Dionisio Pozo
aa8e616747
Merge pull request #398 from EdouardVanbelle/feat/openapi-auth
2026-05-28 01:15:28 +02:00
Edouard Vanbelle
dfb21b746d
feat(openapi): show explicitly path requiring bearerAuth
2026-05-28 00:48:20 +02:00
Edouard Vanbelle
de1645b6c3
feat(openapi): add /api/auth to openapi declaration
2026-05-28 00:20:21 +02:00
Edouard Vanbelle
859f9b5f86
refactor: separate roles between ui, fileView, resourceList
2026-05-28 00:15:05 +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
2020e4374e
fix action bar
2026-05-28 00:15:05 +02:00
Edouard Vanbelle
720bf11168
use of resourceList
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
c65f2b5385
feat(api): cursor listing contract — PageCursor trait + resource field
...
- Add src/application/dtos/cursor.rs with three shared types:
· PageCursor trait — default base64url+JSON encode/decode; one bare
impl line per cursor struct
· CursorQuery struct — standard limit/cursor/sort_by query params with
limit_clamped() and decode_cursor<C>() helpers; compose via flatten
· CursorListResponse<T> — standard {items, next_cursor?} envelope with
from_oversized() and with_cursor() builders
- Migrate GrantCursor to impl PageCursor (remove duplicate encode/decode)
- Update GET /api/grants/incoming/resources:
· SharedWithMeQuery now embeds CursorQuery via #[serde(flatten)]
· Replace file/folder nullable pair with ResourceContentDto (untagged
enum) under a single always-present 'resource' field
· SharedWithMeDto is now a type alias for CursorListResponse<SharedWithMeItemDto>
· Handler uses q.paging.limit_clamped() and decode_cursor<GrantCursor>()
- Add docs/architecture/resource-listing.md — authoritative contract for
all listing endpoints (cursor design, SQL keyset WHERE, sort_by naming,
Rust + JS skeletons, compliance table, migration guide)
- Register doc in VitePress sidebar and architecture index
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 00:15:04 +02:00
Dionisio Pozo
9a2782b67e
Merge pull request #394 from EdouardVanbelle/feat/user-image-avatar
2026-05-27 21:33:45 +02:00
Edouard Vanbelle
7a849be3d8
chore(playwright): upgrade to version 1.60.0
2026-05-27 11:50:02 +02:00
EdouardVanbelle
2dc2b0876d
test(e2e): update playwright linux snapshots
2026-05-27 09:48:25 +00:00
Edouard Vanbelle
7ddbbc94cc
test(e2e): update all images and grow snapshot comparaison sensitivity
2026-05-27 11:35:42 +02:00
Edouard Vanbelle
891ff89a5d
test(playwright): add playwright report to track changes + correct playwright parameters
...
ci: fix actions/checkout@v6 → @v4 (v6 does not exist)
GitHub started rejecting invalid action versions at parse time,
causing every CI run to fail with 0s / 'workflow file issue'
before any jobs could start.
* test(e2e): only no retry
* test(e2e): use static name in tests to facilitate screenshot comparaison
* test(e2e): update linux screenshots
* test(e2e): adapt test due to user-vignette generation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 11:29:58 +02:00
Edouard Vanbelle
4a5e9a67ca
permits img-src from external website, other solution is to store base64 image of user in DB
...
note: if we need to keep this security, we need to store all user's images (blob_storage can be a good candidate)
2026-05-27 11:29:33 +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
Dionisio Pozo
8b6c8e345b
Merge pull request #390 from EdouardVanbelle/feat/shared-with-me
2026-05-26 00:00:37 +02:00
Edouard Vanbelle
3e786daea5
fix(grants): correct the removal of a users from a grant
2026-05-25 23:24:04 +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
a88e4c2733
refactor: move modal into components (prepare a mode autonomous components)
2026-05-25 22:47:36 +02:00
Edouard Vanbelle
12466d4b83
feat(roles): simplify roles to only Viewer, Editor, Admin
...
┌────────┬──────┬─────────┬────────┬────────┬───────┬────────┐
│ Role │ read │ comment │ create │ update │ share │ delete │
├────────┼──────┼─────────┼────────┼────────┼───────┼────────┤
│ viewer │ ✓ │ │ │ │ │ │
├────────┼──────┼─────────┼────────┼────────┼───────┼────────┤
│ editor │ ✓ │ ✓ │ ✓ │ ✓ │ │ │
├────────┼──────┼─────────┼────────┼────────┼───────┼────────┤
│ admin │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │
└────────┴──────┴─────────┴────────┴────────┴───────┴────────┘
2026-05-25 22:47:36 +02:00
Edouard Vanbelle
d64beb43a7
feat(ui): add addressBook and systemUsers model + show person who shared an item with me in tooltip
2026-05-25 22:47:36 +02:00