feat(FR-2696): create project admin data page#6962
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has required the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
Coverage report for
|
St.❔ |
Category | Percentage | Covered / Total |
|---|---|---|---|
| 🟢 | Statements | 81.87% | 429/524 |
| 🟡 | Branches | 70.43% | 362/514 |
| 🟡 | Functions | 76.86% | 93/121 |
| 🟢 | Lines | 83.19% | 391/470 |
Test suite run success
319 tests passing in 13 suites.
Report generated by 🧪jest coverage report action from fd60446
Coverage report for
|
St.❔ |
Category | Percentage | Covered / Total |
|---|---|---|---|
| 🔴 | Statements | 8.79% (-0.05% 🔻) |
1857/21120 |
| 🔴 | Branches | 8% (-0.03% 🔻) |
1187/14830 |
| 🔴 | Functions | 5.15% (-0.03% 🔻) |
295/5730 |
| 🔴 | Lines | 8.53% (-0.05% 🔻) |
1749/20495 |
Show new covered files 🐣
St.❔ |
File | Statements | Branches | Functions | Lines |
|---|---|---|---|---|---|
| 🔴 | ... / ProjectAdminDataPage.tsx |
0% | 0% | 0% | 0% |
| 🔴 | ... / SharedFolderPermissionInfoModalV2.tsx |
0% | 0% | 0% | 0% |
| 🔴 | ... / VFolderNodeIdenticonV2.tsx |
0% | 100% | 0% | 0% |
| 🔴 | ... / VFolderPermissionCellV2.tsx |
0% | 0% | 0% | 0% |
Test suite run success
865 tests passing in 40 suites.
Report generated by 🧪jest coverage report action from fd60446
agatha197
left a comment
There was a problem hiding this comment.
please update pr description
There was a problem hiding this comment.
Pull request overview
Introduces a new Project Admin Data page/route in the WebUI to manage project-owned virtual folders, alongside ongoing VFolder “V2” (Strawberry) integration work (new fragments/components and a new project-scoped creation mutation).
Changes:
- Added
/project-dataroute + menu entry, and implementedProjectAdminDataPage(V2-backed vfolder listing/actions + project-folder creation flow). - Updated VFolder listing pages to use the non-V2 components/modals (and adjusted fragment spreads accordingly).
- Extended GraphQL schema/client to support creating project-owned vfolders via a new
createVFolderInProjectmutation and supporting input type; added supporting V2 UI fragments/components.
Reviewed changes
Copilot reviewed 37 out of 37 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| resources/i18n/de.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/el.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/en.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/es.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/fi.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/fr.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/id.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/it.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/ja.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/ko.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/mn.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/ms.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/pl.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/pt-BR.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/pt.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/ru.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/th.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/tr.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/vi.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/zh-CN.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| resources/i18n/zh-TW.json | Adds localized alert message for the Project Admin Data page folder-create modal. |
| react/src/routes.tsx | Registers new lazy-loaded ProjectAdminDataPage route at /project-data. |
| react/src/pages/VFolderNodeListPage.tsx | Switches back to non-V2 vfolder nodes/modals and adjusts fragment spreads/UI actions accordingly. |
| react/src/pages/AdminVFolderNodeListPage.tsx | Switches back to non-V2 vfolder nodes/modals and adjusts fragment spreads/UI actions accordingly. |
| react/src/pages/ProjectAdminDataPage.tsx | New page: V2 project vfolder listing with filters, actions, and project-folder creation modal with alert banner. |
| react/src/hooks/useWebUIMenuItems.tsx | Adds “project-data” to menu key sets and injects /project-data menu item under admin operations. |
| react/src/components/VFolderNodesV2.tsx | Migrates VFolderNodesV2 fragment/columns to V2 VFolder shape and adds new V2 helper components/modals. |
| react/src/components/VFolderPermissionCellV2.tsx | New V2 mount-permission cell based on VFolder.accessControl.permission. |
| react/src/components/VFolderNodeIdenticonV2.tsx | New V2 identicon renderer for VFolder IDs. |
| react/src/components/SharedFolderPermissionInfoModalV2.tsx | New V2 shared-folder permission info modal for VFolder. |
| react/src/components/RestoreVFolderModalV2.tsx | Updates fragment fields from legacy name to V2 metadata.name. |
| react/src/components/FolderCreateModalV2.tsx | Adds project-scoped creation flow + folderType="project" variant + alert banner support. |
| react/src/components/DeleteVFolderModalV2.tsx | Updates fragment fields from legacy name to V2 metadata.name and removes legacy permission filtering. |
| react/src/components/DeleteForeverVFolderModalV2.tsx | Updates fragment fields from legacy name to V2 metadata.name. |
| packages/backend.ai-ui/src/components/fragments/index.ts | Re-exports new BAIVFolderDeleteButtonV2. |
| packages/backend.ai-ui/src/components/fragments/BAIVFolderDeleteButtonV2.tsx | New delete button fragment/component for V2 VFolder. |
| data/schema.graphql | Adds CreateVFolderInScopeInput and createVFolderInProject mutation; adds RBAC enum value. |
5ac60d3 to
f6610e9
Compare
bcfe011 to
84a12e2
Compare
f6610e9 to
824d4b3
Compare
0c2b58e to
b7d1711
Compare
824d4b3 to
058f802
Compare
b7d1711 to
a0d3a93
Compare
058f802 to
9c45759
Compare
87a3ba7 to
19f1bad
Compare
0f3fbf4 to
c84cd7c
Compare
b9895f4 to
c06993e
Compare
91a0feb to
025ecbb
Compare
c06993e to
0162303
Compare
025ecbb to
dabf732
Compare
0162303 to
0381546
Compare
dabf732 to
7a91a43
Compare
0381546 to
2ab8da8
Compare
Introduce the component-level V2 foundation for the upcoming project admin data page — a V2-backed VFolder list view. Migrates VFolderNodesV2 and its inner components from the legacy VirtualFolderNode fragment to the Strawberry V2 VFolder fragment. V1 VFolderNodes remains untouched for 26.4.x backward compatibility. Components migrated to V2: - react/src/components/VFolderNodesV2.tsx (fragment: VFolder) - react/src/components/DeleteVFolderModalV2.tsx - react/src/components/DeleteForeverVFolderModalV2.tsx - react/src/components/RestoreVFolderModalV2.tsx New sub-components on the V2 fragment: - react/src/components/VFolderNodeIdenticonV2.tsx - react/src/components/VFolderPermissionCellV2.tsx - react/src/components/SharedFolderPermissionInfoModalV2.tsx - packages/backend.ai-ui/src/components/fragments/BAIVFolderDeleteButtonV2.tsx Pages (VFolderNodeListPage, AdminVFolderNodeListPage) are temporarily switched back to V1 VFolderNodes / DeleteVFolderModal / RestoreVFolderModal to keep the V1 query path compatible with this PR's isolated compile. The page migration to V2 queries (myVfolders / adminVfoldersV2) is handled in the follow-up FR-2573 on top of this PR.
2ab8da8 to
fd60446
Compare
7a91a43 to
2af4049
Compare

Resolves #6956 (FR-2696)
Summary
Adds a new Project Admin Data page at
/project-datafor project admins to manage project-owned virtual folders, and lays down the V2 (StrawberryVFolder) component foundation required for the follow-up page migrations in FR-2573.Changes
New page —
/project-dataProjectAdminDataPage.tsx— V2-backed listing using the newprojectVfoldersStrawberry query, with search/filter/sort, active/trash tabs with live counts, and a project-scoped creation flow.useWebUIMenuItems+routes.tsx— registers theproject-datamenu item (admin scope) and a lazy-loaded route.Project-scoped folder creation
FolderCreateModalV2— addsfolderType='project'variant, shared-banner support, and a new project-only mutation path (createVFolderInProject) that maps form values to theVFolderUsageMode/VFolderMountPermissionenums.schema.graphql— addsCreateVFolderInScopeInputinput andcreateVFolderInProjectmutation.data.folders.ProjectFolderAlertMessagei18n key for the modal's warning banner (22 locales).V2 fragment foundation (for FR-2573 follow-ups)
VFolderfragment:VFolderNodesV2,DeleteVFolderModalV2,DeleteForeverVFolderModalV2,RestoreVFolderModalV2— swapped legacyname/permissionpaths tometadata.name/accessControl.permission.VFolderNodeIdenticonV2,VFolderPermissionCellV2,SharedFolderPermissionInfoModalV2,BAIVFolderDeleteButtonV2.Temporary V1 compatibility
VFolderNodeListPageandAdminVFolderNodeListPageare temporarily switched back to the non-V2VFolderNodes/ modals so this PR stays compile-isolated. The page-level V2 migration (myVfolders/adminVfoldersV2) lands in the FR-2573 follow-up stacked on top of this PR.Checklist
projectVfolders+createVFolderInProject(RBACVFOLDER_ADMIN)/project-datamenu/project-data