fix(FR-2820): add Active/Inactive tabs and consolidate controls in Project page#7372
fix(FR-2820): add Active/Inactive tabs and consolidate controls in Project page#7372ironAiken2 wants to merge 1 commit into
Conversation
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. |
|
|
1 similar comment
|
|
Coverage Report for backend-ai-ui-coverage (./packages/backend.ai-ui)
File Coverage
|
||||||||||||||||||||||||||||||||||||||
Coverage Report for react-coverage (./react)
File Coverage
|
||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Pull request overview
This PR updates the Project page UX by introducing Active/Inactive tabs (implemented as a status query param + server-side is_active filter) and consolidates per-project actions into the name column using BAINameActionCell, including a new Restore action for inactive projects.
Changes:
- Add Active/Inactive tabs on
ProjectPageand enforce tab-dependentis_activefiltering viamergeFilterValues(). - Refactor
BAIProjectTableactions into the name cell; add “Restore project” flow for inactive tab and a typed-confirm purge modal. - Update
backend.ai-uilocale keys for the new/changed actions/messages.
Reviewed changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 23 comments.
Show a summary per file
| File | Description |
|---|---|
| react/src/pages/ProjectPage.tsx | Adds Active/Inactive tabs via query params and applies tab-dependent is_active filter when querying projects. |
| packages/backend.ai-ui/src/components/fragments/BAIProjectTable.tsx | Consolidates action controls into BAINameActionCell, adds restore action and typed purge confirmation modal. |
| packages/backend.ai-ui/src/locale/en.json | Adds/updates English strings for restore/edit actions and purge/restored messages. |
| packages/backend.ai-ui/src/locale/de.json | Adds new project table strings (restore/edit/etc.) for German locale. |
| packages/backend.ai-ui/src/locale/el.json | Adds new project table strings (restore/edit/etc.) for Greek locale. |
| packages/backend.ai-ui/src/locale/es.json | Adds new project table strings (restore/edit/etc.) for Spanish locale. |
| packages/backend.ai-ui/src/locale/fi.json | Adds new project table strings (restore/edit/etc.) for Finnish locale. |
| packages/backend.ai-ui/src/locale/fr.json | Adds new project table strings (restore/edit/etc.) for French locale. |
| packages/backend.ai-ui/src/locale/id.json | Adds new project table strings (restore/edit/etc.) for Indonesian locale. |
| packages/backend.ai-ui/src/locale/it.json | Adds new project table strings (restore/edit/etc.) for Italian locale. |
| packages/backend.ai-ui/src/locale/ja.json | Adds new project table strings (restore/edit/etc.) for Japanese locale. |
| packages/backend.ai-ui/src/locale/ko.json | Adds new project table strings (restore/edit/etc.) for Korean locale. |
| packages/backend.ai-ui/src/locale/mn.json | Adds new project table strings (restore/edit/etc.) for Mongolian locale. |
| packages/backend.ai-ui/src/locale/ms.json | Adds new project table strings (restore/edit/etc.) for Malay locale. |
| packages/backend.ai-ui/src/locale/pl.json | Adds new project table strings (restore/edit/etc.) for Polish locale. |
| packages/backend.ai-ui/src/locale/pt.json | Adds new project table strings (restore/edit/etc.) for Portuguese locale. |
| packages/backend.ai-ui/src/locale/pt-BR.json | Adds new project table strings (restore/edit/etc.) for Brazilian Portuguese locale. |
| packages/backend.ai-ui/src/locale/ru.json | Adds new project table strings (restore/edit/etc.) for Russian locale. |
| packages/backend.ai-ui/src/locale/th.json | Adds new project table strings (restore/edit/etc.) for Thai locale. |
| packages/backend.ai-ui/src/locale/tr.json | Adds new project table strings (restore/edit/etc.) for Turkish locale. |
| packages/backend.ai-ui/src/locale/vi.json | Adds new project table strings (restore/edit/etc.) for Vietnamese locale. |
| packages/backend.ai-ui/src/locale/zh-CN.json | Adds new project table strings (restore/edit/etc.) for Simplified Chinese locale. |
| packages/backend.ai-ui/src/locale/zh-TW.json | Adds new project table strings (restore/edit/etc.) for Traditional Chinese locale. |
…oject page Resolves #7254(FR-2820) ## Summary - Add Active/Inactive tab split to the Project page BAICard, replacing the single "Project" tab. The active tab drives an `is_active` filter merged into the GraphQL query, and the redundant `is_active` BAIPropertyFilter entry is removed. - Consolidate per-row actions (edit, deactivate/restore, purge) from the standalone `controls` column into the `name` column using `BAINameActionCell`, matching the convention on other listing pages. - Add a Restore action (via Popconfirm, since restore is reversible) that calls `modify_group` with `is_active: true` for inactive projects. - Switch the purge confirmation from `modal.confirm` to `BAIConfirmModalWithInput` with the project name as the typed confirmation string, per the destructive-confirmation rule. - Remove the `is_active` and `Controls` columns from the table since tabs and BAINameActionCell handle those respectively. - Add i18n keys for Restore, RestoreProject, EditProject, etc. across all 21 locale files.
fe198e6 to
17449a5
Compare

Resolves #7254(FR-2820)
Summary
is_activefilter merged into the GraphQL query, and the redundantis_activeBAIPropertyFilter entry is removed.controlscolumn into thenamecolumn usingBAINameActionCell, matching the convention on other listing pages.modify_groupwithis_active: truefor inactive projects.modal.confirmtoBAIConfirmModalWithInputwith the project name as the typed confirmation string, per the destructive-confirmation rule.is_activeandControlscolumns from the table since tabs and BAINameActionCell handle those respectively.Verification