Skip to content

feat(admin): user select modal for bulk transfer + author updated on transfer - #6

Open
debba wants to merge 2 commits into
mainfrom
feat/transfer-user-select
Open

feat(admin): user select modal for bulk transfer + author updated on transfer#6
debba wants to merge 2 commits into
mainfrom
feat/transfer-user-select

Conversation

@debba

@debba debba commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

What

Follow-ups to the bulk ownership transfer released in v0.13.5.

User select instead of a raw ID prompt

The Transfer bulk action asked for the new owner's user ID via window.prompt. It now opens a modal where the new owner is picked from a select listing all users (display name, email, admin marker), loaded once from GET /api/admin/users and sorted by name. The confirm button is disabled until a user is chosen, and the modal closes only when the transfer succeeds.

This adds a generic Modal component (bits-ui Dialog) alongside the existing ConfirmDialog, which is specialized for destructive type-to-confirm flows.

Author line updated on ownership transfer

The author column is written once at submit time (provider username + repo URL) and nothing ever touched it again, so after a transfer the catalog cards and the plugin detail page kept crediting the previous owner.

All three transfer paths — admin bulk transfer, admin single-plugin PATCH, and the recipient accepting a consensual transfer — now rewrite author to <new owner display name> <repoUrl>, the same shape the OAuth submit flow produces. The bulk path updates per plugin since the string embeds each plugin's repo URL. No frontend or schema changes needed.

New messages (admin_plugins_bulk_transfer_title/description/owner_label/placeholder) are translated in all six locales; the old admin_plugins_bulk_transfer_prompt key is removed.

Replace the window.prompt asking for a raw user ID with a proper
modal: the new owner is picked from a select listing all users
(display name, email, admin marker), loaded once from the admin users
endpoint and sorted by name. The confirm button stays disabled until
a user is chosen and the modal only closes when the transfer
succeeds.

Adds a generic Modal component (bits-ui Dialog) alongside the
destructive-only ConfirmDialog, for dialogs that carry a form instead
of a typed confirmation word.
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated (UTC)
tabularium-docs Skipped Skipped Aug 8, 2026 6:19am
tabularium-website Skipped Skipped Aug 8, 2026 6:19am

Request Review

@vercel
vercel Bot temporarily deployed to Preview – tabularium-website August 8, 2026 06:15 Inactive
@vercel
vercel Bot temporarily deployed to Preview – tabularium-docs August 8, 2026 06:15 Inactive
The author column is written once at submit time (provider username +
repo URL) and nothing ever touched it again, so after any ownership
transfer the catalog and detail pages kept crediting the previous
owner.

All three transfer paths — admin bulk transfer, admin single-plugin
PATCH, and the recipient accepting a consensual transfer — now rewrite
author to '<new owner display name> <repoUrl>', the same shape the
OAuth submit flow produces. The bulk path updates per plugin since the
string embeds each plugin's repo URL.
@debba
debba force-pushed the feat/transfer-user-select branch from 7b3fe09 to 123cf1b Compare August 8, 2026 06:19
@vercel
vercel Bot temporarily deployed to Preview – tabularium-website August 8, 2026 06:19 Inactive
@vercel
vercel Bot temporarily deployed to Preview – tabularium-docs August 8, 2026 06:19 Inactive
@debba debba changed the title feat(admin): user select modal for bulk transfer + show current owner feat(admin): user select modal for bulk transfer + author updated on transfer Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant