Commit Graph

368 Commits

Author SHA1 Message Date
Edouard Vanbelle 540c947e61 fix(ui): better handling of new folder creation
issue: on folder creation view was wiped and displaying only the new folder
    fix: add a "new" swimlane if in group mode and scroll up to the new created folder
2026-06-05 11:25:09 +02:00
Edouard Vanbelle ca0f5b3fc5 fix(ui): ensure usermenu always in viewport
- ensure also use of only one method to position different contextmenus
2026-06-05 11:25:09 +02:00
Edouard Vanbelle ba9922bcb8 i18n: add missing translatiions 2026-06-05 11:25:09 +02:00
Edouard Vanbelle 3eb74f83b0 feat(userVignette): show by preference givenname/familyname 2026-06-05 11:25:09 +02:00
Edouard Vanbelle 8cc21f17c5 feat(notify): add notif to internal users when granted
- add coalesced protection to avoid mail bombing if an invited goes many grant in a short period
    - add resentd method in share menu item (work for both internal and external users)
    - user can disable email notification via his properties
    - add env variable from admin to disable notifications
2026-06-05 11:25:06 +02:00
Edouard Vanbelle 20e187f26d i18n: translate server.* keys 2026-06-03 15:11:57 +02:00
Edouard Vanbelle 7db27af7a6 feat(user.prefered_locale): save user's locale + invited have same locale as inviters
- OIDC JIT define the locale only at user creation, user can so change his preference later
    - invited users will inherit inviter's locale
    - email will use prefered_locale
    - login to a new browser will use prefered_locale
2026-06-03 14:37:22 +02:00
Edouard Vanbelle 044bd76738 feat(i18n): add i18n on server side
- remove the hardcoded list of locales in favor of a discovry on start time
    - server will stop on badly formatted locale .json
    - add server.* entries for serer side translation

    server side translation will be used for templating and email
    note: no json in some embded html (like in /magic), amount of work was similar
2026-06-03 13:27:12 +02:00
Edouard Vanbelle e0f59aa942 fix(ui): use email as fallback when username is not defined 2026-06-03 11:39:10 +02:00
Edouard Vanbelle 91f81027e4 fix(front:auth): fix issue with username that can now be empty 2026-06-03 11:39:10 +02:00
Edouard Vanbelle cea315fcfd feat(ui:profile): permit change of username, givenname, familyname
usernam: can be set once, after Nextcloud gateway depends on it
2026-06-03 09:35:48 +02:00
Edouard Vanbelle ac24a0eda1 feat(username|email): pass2: accept login via email orusername
- login via (username or email) + password
    - hurl test to cover the feature
2026-06-03 00:35:25 +02:00
Edouard Vanbelle f4362a4832 test(end to end): update tests (login page has now login via email) 2026-06-03 00:32:00 +02:00
Edouard Vanbelle 1e13570d02 i18n(magicLink): cover all languages 2026-06-03 00:32:00 +02:00
Edouard Vanbelle 64d081ad0b feat(external): permit login via email (magic link) 2026-06-03 00:31:59 +02:00
Edouard Vanbelle 074ca33e1d feat(userVignette): add external badge when needed 2026-06-03 00:31:59 +02:00
Edouard Vanbelle cdd62c29b5 feat(ui): use infinite scrolling on all sections (no need anymore to to click on "load more") 2026-06-03 00:31:59 +02:00
Edouard Vanbelle 9fac34f91e feat(ui): add share modal and users
- fix(external users): fix app starting for external users
2026-06-03 00:31:59 +02:00
Edouard Vanbelle d03b9474c6 feat(smtp): add a precious SMTP test for admin only 2026-06-03 00:31:59 +02:00
Edouard Vanbelle de1574f583 fix(SharedWithMe): remove group by size, not relevant and not implemented on server side 2026-06-01 09:00:50 +02:00
Edouard Vanbelle 64fe8aa3dc fix(GroupModal): fix the display of a child group (show it's name rather it's UUID) 2026-05-31 23:53:44 +02:00
Edouard Vanbelle 274cf9da11 fix(ShareModal): ensure correct order of roles (Most powerfull first) 2026-05-31 23:05:05 +02:00
Edouard Vanbelle c7e950a707 fix(myshares): update view on expiration date changed 2026-05-31 22:53:29 +02:00
Edouard Vanbelle e169f53218 test(integration): add integration test on subject group 2026-05-31 22:45:09 +02:00
Edouard Vanbelle 09985f8a95 feat(group): 1st implementation of Groups
this implements first version (manageable only by admin right now)

    routes:

        GET /api/groups
        List subject groups (paginated). Admin-only.

        POST /api/groups
        Create a new ReBAC subject group. Admin-only. The name must match the RFC 5321 local-part shape and be globally unique (case-insensitive).

        GET /api/groups/search
        Search non-virtual groups by name substring. Authenticated only (no admin role required) — backs the share-dialog recipient autocomplete.

        GET /api/groups/{id}
        Fetch a single group's details. Admin-only.

        DELETE /api/groups/{id}
        Delete a group. Cascades to `subject_group_members` (FK) and to `access_grants` rows referencing this group as a subject. Admin-only.

        PATCH /api/groups/{id}
        Update a group's metadata. Admin-only. v1 only persists name renames.

        GET /api/groups/{id}/effective-members
        List every user transitively reached through this group (members of members of members, etc.). Used by admin / audit tooling. Admin-only.

        GET /api/groups/{id}/members
        List the *direct* members of a group (one level only). Admin-only.

        POST /api/groups/{id}/members
        Add a member to a group. Exactly one of `user_id` / `group_id` must be provided. Adding a group-member runs a write-time cycle check and a nesting-depth check (max 8). Admin-only.

        DELETE /api/groups/{id}/members/group/{gid}
        Remove a nested group-member from a group. Admin-only.

        DELETE /api/groups/{id}/members/user/{uid}
        Remove a user-member from a group. Admin-only.

fix hurl

groups

round

groups
2026-05-31 20:57:45 +02:00
Edouard Vanbelle 19e8af84b7 feat(ui): improve groupby / sortby user experience + fix confusion in trash section 2026-05-30 11:15:46 +02:00
Edouard Vanbelle ae82f4b664 fix(MyShares): show tooltip when mouse over an item + fix the path 2026-05-30 10:41:16 +02:00
Edouard Vanbelle 3bcb3a5b3f ux(tooltip): fix(tooltip): move tooltip into top-bar, that fix issue with RTE languages 2026-05-30 10:38:43 +02:00
Edouard Vanbelle fe9cc10648 i18n: add missing translations 2026-05-30 09:51:47 +02:00
Edouard Vanbelle ca1a2bb649 feat(light-dark): normalize light/dark/like-os mode
permits user to define light, dark or like the desktop
2026-05-30 09:36:15 +02:00
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 615657a7be fix(shares): fix outgoing shares when browsing in files, fix shareBadge action to open shareDialog 2026-05-29 14:08:41 +02:00
Edouard Vanbelle eef67973b3 fix(myshares): reload on any change from ShareModal 2026-05-29 13:48:25 +02:00
Edouard Vanbelle 6e5c5edd85 chore(ui): apply biome formatter 2026-05-29 13:15:31 +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 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 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 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 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