Skip to content

fix(FR-2825): standardize activate/deactivate confirmations to Popconfirm#7371

Merged
graphite-app[bot] merged 1 commit into
mainfrom
fix/FR-2825-popconfirm-activate-deactivate
May 18, 2026
Merged

fix(FR-2825): standardize activate/deactivate confirmations to Popconfirm#7371
graphite-app[bot] merged 1 commit into
mainfrom
fix/FR-2825-popconfirm-activate-deactivate

Conversation

@ironAiken2
Copy link
Copy Markdown
Contributor

@ironAiken2 ironAiken2 commented May 12, 2026

Resolves #7371 (FR-2825)

Summary

Standardize reversible activate/deactivate (soft-delete/restore) confirmations to use Popconfirm across the app, per .claude/rules/destructive-confirmation.md. BAIConfirmModalWithInput is reserved for irreversible hard-delete in FR-2819; this PR is the reversible-action counterpart.

Popconfirm copy convention applied here

  • Title clearly states the action: e.g. 자격증명 비활성화, 프로젝트 비활성화, 역할 활성화, 사용자 비활성화.
  • Body shows only the target identifier (resource name, email, access key, revision number) — no verbose "정말로 X를 비활성화 시키겠습니까?" sentence.

Changes

BAINameActionCell actions migrated to popConfirm

  • react/src/components/UserCredentialList.tsx — keypair Activate / Deactivate (record.user_id as body).
  • react/src/components/UserManagement.tsx — user Activate / Deactivate (record.email as body).
  • react/src/components/ResourceGroupList.tsx — resource group Activate / Deactivate (record.name as body).
  • react/src/pages/RBACManagementPage.tsx — role Activate / Deactivate (role.name as body).
  • react/src/components/DeploymentRevisionHistoryTab.tsx — revision Deploy in table row (#${revisionNumber} as body).

<Popconfirm> JSX wrappers tightened

  • react/src/components/DeploymentRevisionHistoryTab.tsx (drawer Deploy button) — body simplified to #${revisionNumber}.
  • packages/backend.ai-ui/src/components/fragments/BAIProjectTable.tsx — body simplified from "정말로 {{projectName}} 프로젝트를 비활성화 시키겠습니까?"value?.name.

i18n cleanup

  • Removed unused comp:BAIProjectTable.AreYouSureToDeactivateProject (22 locales).
  • Removed unused deployment.DeployConfirm (22 locales).

Test plan

  • Open Users → row action menu → Deactivate / Activate. Popconfirm title shows the action and body shows the email. Confirming flips the status.
  • Open Credentials (Active/Inactive tabs) → row action menu → Deactivate / Activate. Popconfirm title shows the action and body shows the user_id.
  • Open Resource Groups → row action menu → Deactivate / Activate. Popconfirm title shows the action and body shows the resource group name.
  • Open Projects (BAIProjectTable consumers, e.g. admin Project page) → row Deactivate button. Popconfirm title shows the action and body shows just the project name.
  • Open RBAC (/rbac) → role row action menu → Deactivate / Activate. Popconfirm title shows the action and body shows the role name.
  • Open a Deployment detail → Revisions tab → row action menu → Deploy. Popconfirm shows #<revisionNumber> as body. Same flow via the drawer Deploy button.
  • bash scripts/verify.sh — Relay / Lint / Format / TypeScript pass for the modified files.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings May 12, 2026 07:18
@github-actions github-actions Bot added the size:L 100~500 LoC label May 12, 2026
@cla-assistant
Copy link
Copy Markdown

cla-assistant Bot commented May 12, 2026

CLA assistant check
All committers have signed the CLA.

Copy link
Copy Markdown
Contributor Author

ironAiken2 commented May 12, 2026


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent changes, fast-track this PR to the front of 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.

@cla-assistant
Copy link
Copy Markdown

cla-assistant Bot commented May 12, 2026

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 12, 2026

Coverage Report for react-coverage (./react)

Status Category Percentage Covered / Total
🔵 Lines 6.45% 1783 / 27612
🔵 Statements 5.31% 1978 / 37223
🔵 Functions 5.18% 296 / 5710
🔵 Branches 3.71% 1293 / 34823
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
react/src/components/DeploymentRevisionHistoryTab.tsx 0% 0% 0% 0% 64-690
react/src/components/ResourceGroupList.tsx 0% 0% 0% 0% 57-378
react/src/components/UserCredentialList.tsx 0% 0% 0% 0% 54-602
react/src/components/UserManagement.tsx 0% 0% 0% 0% 58-594
react/src/pages/RBACManagementPage.tsx 0% 0% 0% 0% 50-214
Generated in workflow #719 for commit f38d7f8 by the Vitest Coverage Report Action

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Standardizes several “activate/deactivate (and deploy)” confirmation flows in the React WebUI by replacing App.useApp().modal.confirm() usage with Popconfirm-based confirmations, aligning behavior with BAINameActionCell’s popConfirm support.

Changes:

  • Replaced keypair activate/deactivate confirmations in UserCredentialList with popConfirm actions.
  • Replaced resource group activate/deactivate confirmation in ResourceGroupList with popConfirm, removing the now-unused modal dependency.
  • Moved deployment revision rollback confirmation from modal.confirm to Popconfirm (row action + drawer action) in DeploymentRevisionHistoryTab.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
react/src/components/UserCredentialList.tsx Converts activate/deactivate action confirmations to popConfirm for consistent Popconfirm UX.
react/src/components/ResourceGroupList.tsx Switches activate/deactivate confirmation to popConfirm and removes unused modal from App.useApp().
react/src/components/DeploymentRevisionHistoryTab.tsx Replaces modal-based rollback confirmation with Popconfirm in both table actions and drawer action area.

Comment thread react/src/components/DeploymentRevisionHistoryTab.tsx
@ironAiken2 ironAiken2 changed the base branch from main to graphite-base/7371 May 14, 2026 04:33
@ironAiken2 ironAiken2 force-pushed the fix/FR-2825-popconfirm-activate-deactivate branch from 532f50d to 854ea39 Compare May 14, 2026 04:33
@ironAiken2 ironAiken2 changed the base branch from graphite-base/7371 to fix/FR-2819-use-bai-confirm-modal May 14, 2026 04:33
@github-actions github-actions Bot added area:ux UI / UX issue. area:i18n Localization size:XL 500~ LoC and removed size:L 100~500 LoC labels May 14, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 14, 2026

Coverage Report for backend-ai-ui-coverage (./packages/backend.ai-ui)

Status Category Percentage Covered / Total
🔵 Lines 8.03% 362 / 4506
🔵 Statements 7.17% 411 / 5728
🔵 Functions 8.93% 94 / 1052
🔵 Branches 6.36% 362 / 5688
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
packages/backend.ai-ui/src/components/fragments/BAIProjectTable.tsx 0% 0% 0% 0% 26-405
Generated in workflow #817 for commit 1902adc by the Vitest Coverage Report Action

@ironAiken2 ironAiken2 force-pushed the fix/FR-2825-popconfirm-activate-deactivate branch from 624b2cd to 1a0fd87 Compare May 14, 2026 08:03
@ironAiken2 ironAiken2 force-pushed the fix/FR-2819-use-bai-confirm-modal branch from 72c5872 to f942af5 Compare May 14, 2026 08:53
@ironAiken2 ironAiken2 force-pushed the fix/FR-2825-popconfirm-activate-deactivate branch from 1a0fd87 to f38d7f8 Compare May 14, 2026 08:53
Copy link
Copy Markdown
Contributor

@nowgnuesLee nowgnuesLee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ironAiken2 ironAiken2 force-pushed the fix/FR-2825-popconfirm-activate-deactivate branch from f38d7f8 to 1584638 Compare May 18, 2026 01:07
@ironAiken2 ironAiken2 force-pushed the fix/FR-2819-use-bai-confirm-modal branch from f942af5 to 1839b25 Compare May 18, 2026 01:07
@graphite-app
Copy link
Copy Markdown

graphite-app Bot commented May 18, 2026

Merge activity

…firm (#7371)

Resolves #7371 (FR-2825)

## Summary

Standardize **reversible** activate/deactivate (soft-delete/restore) confirmations to use `Popconfirm` across the app, per `.claude/rules/destructive-confirmation.md`. `BAIConfirmModalWithInput` is reserved for irreversible hard-delete in FR-2819; this PR is the reversible-action counterpart.

## Popconfirm copy convention applied here

- **Title** clearly states the action: e.g. `자격증명 비활성화`, `프로젝트 비활성화`, `역할 활성화`, `사용자 비활성화`.
- **Body** shows only the target identifier (resource name, email, access key, revision number) — no verbose `"정말로 X를 비활성화 시키겠습니까?"` sentence.

## Changes

### `BAINameActionCell` actions migrated to `popConfirm`

- `react/src/components/UserCredentialList.tsx` — keypair Activate / Deactivate (`record.user_id` as body).
- `react/src/components/UserManagement.tsx` — user Activate / Deactivate (`record.email` as body).
- `react/src/components/ResourceGroupList.tsx` — resource group Activate / Deactivate (`record.name` as body).
- `react/src/pages/RBACManagementPage.tsx` — role Activate / Deactivate (`role.name` as body).
- `react/src/components/DeploymentRevisionHistoryTab.tsx` — revision Deploy in table row (`#${revisionNumber}` as body).

### `<Popconfirm>` JSX wrappers tightened

- `react/src/components/DeploymentRevisionHistoryTab.tsx` (drawer Deploy button) — body simplified to `#${revisionNumber}`.
- `packages/backend.ai-ui/src/components/fragments/BAIProjectTable.tsx` — body simplified from `"정말로 {{projectName}} 프로젝트를 비활성화 시키겠습니까?"` → `value?.name`.

### i18n cleanup

- Removed unused `comp:BAIProjectTable.AreYouSureToDeactivateProject` (22 locales).
- Removed unused `deployment.DeployConfirm` (22 locales).

## Test plan

- [ ] Open **Users** → row action menu → Deactivate / Activate. Popconfirm title shows the action and body shows the email. Confirming flips the status.
- [ ] Open **Credentials** (Active/Inactive tabs) → row action menu → Deactivate / Activate. Popconfirm title shows the action and body shows the user_id.
- [ ] Open **Resource Groups** → row action menu → Deactivate / Activate. Popconfirm title shows the action and body shows the resource group name.
- [ ] Open **Projects** (BAIProjectTable consumers, e.g. admin Project page) → row Deactivate button. Popconfirm title shows the action and body shows just the project name.
- [ ] Open **RBAC** (`/rbac`) → role row action menu → Deactivate / Activate. Popconfirm title shows the action and body shows the role name.
- [ ] Open a **Deployment** detail → Revisions tab → row action menu → Deploy. Popconfirm shows `#<revisionNumber>` as body. Same flow via the drawer Deploy button.
- [ ] `bash scripts/verify.sh` — Relay / Lint / Format / TypeScript pass for the modified files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@graphite-app graphite-app Bot force-pushed the fix/FR-2819-use-bai-confirm-modal branch from 1839b25 to 0ca1f8b Compare May 18, 2026 04:06
@graphite-app graphite-app Bot force-pushed the fix/FR-2825-popconfirm-activate-deactivate branch from 1584638 to 1902adc Compare May 18, 2026 04:07
Base automatically changed from fix/FR-2819-use-bai-confirm-modal to main May 18, 2026 04:08
@graphite-app graphite-app Bot merged commit 1902adc into main May 18, 2026
7 of 8 checks passed
@graphite-app graphite-app Bot deleted the fix/FR-2825-popconfirm-activate-deactivate branch May 18, 2026 04:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:i18n Localization area:ux UI / UX issue. size:XL 500~ LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants