From c3c51b0fbf86016e8e7a5c09af779a743fc0a56b Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Tue, 18 Nov 2025 17:00:05 +0800
Subject: [PATCH] perf: Add "Select All" checkbox to Plugin and MCP Server
selection dialogs (#1790)
* Initial plan
* Add "Select All" checkbox to Plugin and MCP Server selection dialogs
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com>
* Make "Select All" text clickable by adding onClick handler to container
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: RockChinQ <45992437+RockChinQ@users.noreply.github.com>
---
.../pipeline-extensions/PipelineExtension.tsx | 54 +++++++++++++++++++
web/src/i18n/locales/en-US.ts | 1 +
web/src/i18n/locales/ja-JP.ts | 1 +
web/src/i18n/locales/zh-Hans.ts | 1 +
web/src/i18n/locales/zh-Hant.ts | 1 +
5 files changed, 58 insertions(+)
diff --git a/web/src/app/home/pipelines/components/pipeline-extensions/PipelineExtension.tsx b/web/src/app/home/pipelines/components/pipeline-extensions/PipelineExtension.tsx
index 06e059f0..5408b9c7 100644
--- a/web/src/app/home/pipelines/components/pipeline-extensions/PipelineExtension.tsx
+++ b/web/src/app/home/pipelines/components/pipeline-extensions/PipelineExtension.tsx
@@ -146,6 +146,26 @@ export default function PipelineExtension({
);
};
+ const handleToggleAllPlugins = () => {
+ if (tempSelectedPluginIds.length === allPlugins.length) {
+ // Deselect all
+ setTempSelectedPluginIds([]);
+ } else {
+ // Select all
+ setTempSelectedPluginIds(allPlugins.map((p) => getPluginId(p)));
+ }
+ };
+
+ const handleToggleAllMCPServers = () => {
+ if (tempSelectedMCPIds.length === allMCPServers.length) {
+ // Deselect all
+ setTempSelectedMCPIds([]);
+ } else {
+ // Select all
+ setTempSelectedMCPIds(allMCPServers.map((s) => s.uuid || ''));
+ }
+ };
+
const handleConfirmPluginSelection = async () => {
const newSelected = allPlugins.filter((p) =>
tempSelectedPluginIds.includes(getPluginId(p)),
@@ -330,6 +350,23 @@ export default function PipelineExtension({