perf(web): streamline table actions and destructive dialogs (#5645)

* perf(data-table): autosize action columns

- exclude actions columns from shared table width calculations so action cells size to their content.
- remove fixed size and w-* width overrides from feature action columns to preserve content-based layout.

* perf(data-table): streamline row action controls

- expose common edit and status actions directly while moving secondary actions into overflow menus.
- add shared row action menu helpers so static and table rows use consistent action controls.
- let action columns size to their content instead of relying on fixed widths.

* fix(web): localize destructive dialog copy

- route delete, reset, and batch update confirmation text through i18n.
- add locale entries for affected channel, model, system settings, and user dialogs.

* perf(web): unify destructive dialog actions

- align delete and cleanup confirmation buttons with the shared destructive variant.
- replace custom destructive color overrides with semantic button variants.
- clean up lint errors in touched dialog files before committing.

* fix(web): add user action success translations

- add localized success messages for user delete, status, and role changes.
- keep user management toast copy available across all frontend locales.

* fix(data-table): prevent mobile badge clipping

- expose badge cell slots so mobile card styles can target nested badge wrappers.
- reset badge margins in card rows to keep provider icons fully visible on small screens.
This commit is contained in:
QuentinHsu
2026-06-25 13:13:41 +08:00
committed by GitHub
parent b191f47375
commit 9ba251ce5f
61 changed files with 1340 additions and 1131 deletions
+24
View File
@@ -24,6 +24,8 @@
"{\"original-model\": \"replacement-model\"}": "{\"original-model\": \"replacement-model\"}",
"{{category}} Models": "{{category}} Models",
"{{completed}}/{{total}} completed": "{{completed}}/{{total}} completed",
"{{count}} announcements will be removed from the list.": "{{count}} announcements will be removed from the list.",
"{{count}} API shortcuts will be removed from the list.": "{{count}} API shortcuts will be removed from the list.",
"{{count}} channel(s) deleted": "{{count}} channel(s) deleted",
"{{count}} channel(s) disabled": "{{count}} channel(s) disabled",
"{{count}} channel(s) enabled": "{{count}} channel(s) enabled",
@@ -32,6 +34,7 @@
"{{count}} days ago": "{{count}} days ago",
"{{count}} days remaining": "{{count}} days remaining",
"{{count}} disabled channel(s) deleted": "{{count}} disabled channel(s) deleted",
"{{count}} FAQ entries will be removed from the list.": "{{count}} FAQ entries will be removed from the list.",
"{{count}} hours ago": "{{count}} hours ago",
"{{count}} incidents": "{{count}} incidents",
"{{count}} incidents in the last 24 hours": "{{count}} incidents in the last 24 hours",
@@ -44,6 +47,7 @@
"{{count}} override": "{{count}} override",
"{{count}} selected targets available for bulk copy.": "{{count}} selected targets available for bulk copy.",
"{{count}} tiers": "{{count}} tiers",
"{{count}} Uptime Kuma groups will be removed from the list.": "{{count}} Uptime Kuma groups will be removed from the list.",
"{{count}} vendors": "{{count}} vendors",
"{{count}} weeks ago": "{{count}} weeks ago",
"{{field}} updated to {{value}}": "{{field}} updated to {{value}}",
@@ -414,7 +418,10 @@
"Are you sure you want to delete": "Are you sure you want to delete",
"Are you sure you want to delete {{count}} model(s)? This action cannot be undone.": "Are you sure you want to delete {{count}} model(s)? This action cannot be undone.",
"Are you sure you want to delete all auto-disabled keys? This action cannot be undone.": "Are you sure you want to delete all auto-disabled keys? This action cannot be undone.",
"Are you sure you want to delete channel \"{{name}}\"? This action cannot be undone.": "Are you sure you want to delete channel \"{{name}}\"? This action cannot be undone.",
"Are you sure you want to delete deployment \"{{name}}\"? This action cannot be undone.": "Are you sure you want to delete deployment \"{{name}}\"? This action cannot be undone.",
"Are you sure you want to delete group \"{{name}}\"? This action cannot be undone.": "Are you sure you want to delete group \"{{name}}\"? This action cannot be undone.",
"Are you sure you want to delete model \"{{name}}\"? This action cannot be undone.": "Are you sure you want to delete model \"{{name}}\"? This action cannot be undone.",
"Are you sure you want to delete this key? This action cannot be undone.": "Are you sure you want to delete this key? This action cannot be undone.",
"Are you sure you want to disable all enabled keys?": "Are you sure you want to disable all enabled keys?",
"Are you sure you want to enable all keys?": "Are you sure you want to enable all keys?",
@@ -1237,6 +1244,7 @@
"Delete selected channels": "Delete selected channels",
"Delete selected models": "Delete selected models",
"Deleted": "Deleted",
"Deleted \"{{name}}\"": "Deleted \"{{name}}\"",
"Deleted ({{id}})": "Deleted ({{id}})",
"Deleted {{count}} failed models": "Deleted {{count}} failed models",
"Deleted a custom OAuth provider": "Deleted a custom OAuth provider",
@@ -1443,6 +1451,7 @@
"Edit chat preset": "Edit chat preset",
"Edit discount tier": "Edit discount tier",
"Edit FAQ": "Edit FAQ",
"Edit group": "Edit group",
"Edit group rate limit": "Edit group rate limit",
"Edit JSON object directly. Suitable for simple parameter overrides.": "Edit JSON object directly. Suitable for simple parameter overrides.",
"Edit JSON text directly. Format will be validated on save.": "Edit JSON text directly. Format will be validated on save.",
@@ -1718,6 +1727,7 @@
"Failed to delete channel": "Failed to delete channel",
"Failed to delete disabled channels": "Failed to delete disabled channels",
"Failed to delete failed models": "Failed to delete failed models",
"Failed to delete group": "Failed to delete group",
"Failed to delete invalid redemption codes": "Failed to delete invalid redemption codes",
"Failed to delete model": "Failed to delete model",
"Failed to delete provider": "Failed to delete provider",
@@ -3595,6 +3605,7 @@
"Resend ({{seconds}}s)": "Resend ({{seconds}}s)",
"Reset": "Reset",
"Reset 2FA": "Reset 2FA",
"Reset 2FA for {{username}}? The user must set up 2FA again to continue using it.": "Reset 2FA for {{username}}? The user must set up 2FA again to continue using it.",
"Reset all model prices?": "Reset all model prices?",
"Reset all model ratios?": "Reset all model ratios?",
"Reset all settings to default values": "Reset all settings to default values",
@@ -3610,6 +3621,7 @@
"Reset failed": "Reset failed",
"Reset model ratios": "Reset model ratios",
"Reset Passkey": "Reset Passkey",
"Reset Passkey for {{username}}? The user will need to register a new Passkey before using passwordless login.": "Reset Passkey for {{username}}? The user will need to register a new Passkey before using passwordless login.",
"Reset password": "Reset password",
"Reset Period": "Reset Period",
"Reset prices": "Reset prices",
@@ -4259,6 +4271,8 @@
"This action cannot be undone.": "This action cannot be undone.",
"This action cannot be undone. This will permanently delete your account and remove all your data from our servers.": "This action cannot be undone. This will permanently delete your account and remove all your data from our servers.",
"This action will permanently remove 2FA protection from your account.": "This action will permanently remove 2FA protection from your account.",
"This announcement will be removed from the list.": "This announcement will be removed from the list.",
"This API shortcut will be removed from the list.": "This API shortcut will be removed from the list.",
"This channel has no configured models.": "This channel has no configured models.",
"This channel is not an Ollama channel.": "This channel is not an Ollama channel.",
"This channel type does not support fetching models": "This channel type does not support fetching models",
@@ -4269,6 +4283,7 @@
"This device does not support Passkey": "This device does not support Passkey",
"This device does not support Passkey verification.": "This device does not support Passkey verification.",
"This expression is too complex for the visual editor. Please switch to expression mode to edit.": "This expression is too complex for the visual editor. Please switch to expression mode to edit.",
"This FAQ entry will be removed from the list.": "This FAQ entry will be removed from the list.",
"This feature is experimental. Configuration format and behavior may change.": "This feature is experimental. Configuration format and behavior may change.",
"This feature requires server-side WeChat configuration": "This feature requires server-side WeChat configuration",
"This identifier is sent to the payment backend when creating an order. Use alipay for Alipay, wxpay for WeChat Pay, stripe for Stripe. Custom values must be supported by your payment provider.": "This identifier is sent to the payment backend when creating an order. Use alipay for Alipay, wxpay for WeChat Pay, stripe for Stripe. Custom values must be supported by your payment provider.",
@@ -4288,6 +4303,7 @@
"This site currently has {{count}} models enabled": "This site currently has {{count}} models enabled",
"This tier catches any request that did not match earlier tiers.": "This tier catches any request that did not match earlier tiers.",
"this token group": "this token group",
"This Uptime Kuma group will be removed from the list.": "This Uptime Kuma group will be removed from the list.",
"this user group": "this user group",
"This user has no bindings": "This user has no bindings",
"This week": "This week",
@@ -4297,11 +4313,14 @@
"This will delete all channel affinity cache entries still in memory.": "This will delete all channel affinity cache entries still in memory.",
"This will delete temporary cache files that have not been used for more than 10 minutes": "This will delete temporary cache files that have not been used for more than 10 minutes",
"This will extend the deployment by the specified hours.": "This will extend the deployment by the specified hours.",
"This will permanently delete all manually and automatically disabled channels. This action cannot be undone.": "This will permanently delete all manually and automatically disabled channels. This action cannot be undone.",
"This will permanently delete API key": "This will permanently delete API key",
"This will permanently delete redemption code": "This will permanently delete redemption code",
"This will permanently delete user": "This will permanently delete user",
"This will permanently remove all log entries created before {{date}}.": "This will permanently remove all log entries created before {{date}}.",
"This will permanently remove log entries before the selected timestamp.": "This will permanently remove log entries before the selected timestamp.",
"This will update the priority to {{value}} for all {{count}} channel(s) with tag \"{{tag}}\". Continue?": "This will update the priority to {{value}} for all {{count}} channel(s) with tag \"{{tag}}\". Continue?",
"This will update the weight to {{value}} for all {{count}} channel(s) with tag \"{{tag}}\". Continue?": "This will update the weight to {{value}} for all {{count}} channel(s) with tag \"{{tag}}\". Continue?",
"This year": "This year",
"Three steps to get started": "Three steps to get started",
"Throughput": "Throughput",
@@ -4638,6 +4657,10 @@
"User Consumption Trend": "User Consumption Trend",
"User created successfully": "User created successfully",
"User dashboard and quota controls.": "User dashboard and quota controls.",
"User deleted successfully": "User deleted successfully",
"User demoted to regular user successfully": "User demoted to regular user successfully",
"User disabled successfully": "User disabled successfully",
"User enabled successfully": "User enabled successfully",
"User Exclusive Ratio": "User Exclusive Ratio",
"User group": "User group",
"User Group": "User Group",
@@ -4653,6 +4676,7 @@
"User Information": "User Information",
"User Menu": "User Menu",
"User personal functions": "User personal functions",
"User promoted to admin successfully": "User promoted to admin successfully",
"User selectable": "User selectable",
"User Subscription Management": "User Subscription Management",
"User updated successfully": "User updated successfully",