Skip to content

feat: add interactive selection dialog to batch installer#60

Merged
Fu-Jie merged 11 commits into
mainfrom
codex/batch-install-plugins-v1.1.0
Mar 16, 2026
Merged

feat: add interactive selection dialog to batch installer#60
Fu-Jie merged 11 commits into
mainfrom
codex/batch-install-plugins-v1.1.0

Conversation

@Fu-Jie
Copy link
Copy Markdown
Owner

@Fu-Jie Fu-Jie commented Mar 16, 2026

Changes

  • replace the old confirmation event with an execute-based plugin selection dialog
  • install only the checked plugin subset instead of all filtered candidates
  • bump Batch Install Plugins from GitHub to v1.1.0 and sync README, docs mirrors, announcements, and release notes
  • update docs/tools index entries so the new version and interaction model are visible

Validation

  • python -m py_compile plugins/tools/batch-install-plugins/batch_install_plugins.py

Scope

  • only batch-install-plugins release files are included in this PR

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 16, 2026

✅ Plugin Version Check / 插件版本检查

版本更新检测通过!PR 包含版本变化和更新说明。

Version check passed! PR contains version changes and update description.


版本变化 / Version Changes

Plugin Updates

  • Batch Install Plugins from GitHub: v1.0.0 → v1.1.0 | 📖 README

This comment was generated automatically. / 此评论由自动生成。

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the user experience for the Batch Install Plugins tool by introducing an interactive selection dialog. Instead of a simple confirmation, users can now review a filtered list of plugins in a browser-based dialog, selectively check which ones they wish to install, and proceed with only their chosen subset. This change provides greater control and flexibility during the batch installation process, making plugin management more intuitive and less "all-or-nothing."

Highlights

  • Interactive Plugin Selection Dialog: The previous confirmation event has been replaced with an interactive, execute-based plugin selection dialog, allowing users to review and select plugins before installation.
  • Selective Installation: The batch installer now installs only the subset of plugins explicitly checked by the user in the new dialog, rather than all filtered candidates.
  • Version Bump and Documentation Sync: The Batch Install Plugins from GitHub tool has been updated to v1.1.0, with corresponding updates to READMEs, documentation mirrors, announcements, and release notes in both English and Chinese.
  • Enhanced User Control: Users gain greater control over the installation process, enabling them to easily deselect unwanted plugins without modifying the initial request.
Changelog
  • docs/plugins/tools/batch-install-plugins-tool.md
    • Updated the tool version from 1.0.0 to 1.1.0.
    • Changed the 'Confirmation' feature description to 'Interactive Selection Dialog'.
    • Modified the flow diagram text from 'Show Confirmation Dialog' to 'Show Selection Dialog'.
    • Added a new paragraph explaining the use of the execute event for the selection dialog.
    • Renamed the 'Confirmation Timeout' section to 'Selection Dialog Timeout' and updated its description.
  • docs/plugins/tools/batch-install-plugins-tool.zh.md
    • 将工具版本从 1.0.0 更新到 1.1.0。
    • 将“安装确认”功能描述更改为“交互式选择对话框”。
    • 将流程图文本从“显示确认对话框”修改为“显示选择对话框”。
    • 新增段落解释 execute 事件用于选择对话框。
    • 将“确认超时时间”部分重命名为“选择对话框超时时间”并更新描述。
  • docs/plugins/tools/batch-install-plugins.md
    • Updated the tool version from 1.0.0 to 1.1.0.
    • Changed the 'Confirmation' feature description to 'Interactive Selection Dialog'.
    • Modified the flow diagram text from 'Show Confirmation Dialog' to 'Show Selection Dialog'.
    • Added a new paragraph explaining the use of the execute event for the selection dialog.
    • Renamed the 'Confirmation Timeout' section to 'Selection Dialog Timeout' and updated its description.
  • docs/plugins/tools/batch-install-plugins.zh.md
    • 将工具版本从 1.0.0 更新到 1.1.0。
    • 将“安装确认”功能描述更改为“交互式选择对话框”。
    • 将流程图文本从“显示确认对话框”修改为“显示选择对话框”。
    • 新增段落解释 execute 事件用于选择对话框。
    • 将“确认超时时间”部分重命名为“选择对话框超时时间”并更新描述。
  • docs/plugins/tools/index.md
    • Updated the version of 'Batch Install Plugins from GitHub' to v1.1.0.
    • Modified the description to mention an 'interactive selection dialog' instead of 'confirmation'.
  • docs/plugins/tools/index.zh.md
    • 更新了“Batch Install Plugins from GitHub”的版本到 v1.1.0。
    • 更新了描述,提及“交互式选择对话框”而非“确认”。
  • plugins/tools/batch-install-plugins/ANNOUNCEMENT.md
    • Updated the announcement title to v1.1.0.
    • Revised the headline and introduction to reflect the new interactive selection capability.
    • Replaced 'One-Click Bulk Installation' highlights with 'Interactive Plugin Selection' details.
    • Updated 'Smart Safety Features' to describe the richer selective install flow.
    • Updated the release notes link to point to v1.1.0.md.
    • Modified 'Comprehensive Tests' to 'Selective Install Flow' and 'Full Event Support' to specifically mention execute event handling.
  • plugins/tools/batch-install-plugins/ANNOUNCEMENT_CN.md
    • 更新了公告标题到 v1.1.0。
    • 修订了标题和引言以反映新的交互式选择功能。
    • 将“一键批量安装”亮点替换为“交互式插件选择”的详细信息。
    • 更新了“智能安全保障”以描述更丰富的选择性安装流程。
    • 更新了发布说明链接到 v1.1.0_CN.md。
    • 将“完整测试”更新为“选择性安装流程”,并将“完整事件支持”更新为明确提及 execute 事件处理。
  • plugins/tools/batch-install-plugins/README.md
    • Updated the tool version from 1.0.0 to 1.1.0.
    • Changed the 'Confirmation' feature description to 'Interactive Selection Dialog'.
    • Modified the flow diagram text from 'Show Confirmation Dialog' to 'Show Selection Dialog'.
    • Added a new paragraph explaining the use of the execute event for the selection dialog.
    • Renamed the 'Confirmation Timeout' section to 'Selection Dialog Timeout' and updated its description.
  • plugins/tools/batch-install-plugins/README_CN.md
    • 将工具版本从 1.0.0 更新到 1.1.0。
    • 将“安装确认”功能描述更改为“交互式选择对话框”。
    • 将流程图文本从“显示确认对话框”修改为“显示选择对话框”。
    • 新增段落解释 execute 事件用于选择对话框。
    • 将“确认超时时间”部分重命名为“选择对话框超时时间”并更新描述。
  • plugins/tools/batch-install-plugins/batch_install_plugins.py
    • Bumped the plugin version to 1.1.0 and added a unique openwebui_id.
    • Introduced SELECTION_DIALOG_TEXTS for multi-language UI texts used in the new interactive dialog.
    • Added the _selection_t helper function for localized text retrieval specific to the selection dialog.
    • Implemented _build_selection_dialog_js to dynamically generate JavaScript for the interactive browser dialog.
    • Replaced the _request_confirmation function with _request_plugin_selection to handle the new interactive dialog via the execute event.
    • Modified the install_all_plugins function to utilize the selected_candidates from the new dialog for installation, rather than all initially filtered candidates.
  • plugins/tools/batch-install-plugins/v1.1.0.md
    • Added a new release notes file detailing changes for version 1.1.0, including highlights, technical notes, validation, and upgrade instructions.
  • plugins/tools/batch-install-plugins/v1.1.0_CN.md
    • 新增了版本 1.1.0 的中文发布说明文件,详细介绍了亮点、技术说明、验证和升级说明。
Activity
  • The pull request introduces a new interactive plugin selection dialog.
  • The batch installer logic has been updated to process only user-selected plugins.
  • Documentation and release notes have been updated across multiple languages to reflect these changes.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a significant improvement to the 'Batch Install Plugins' tool by replacing the simple confirmation dialog with a fully interactive selection dialog. This allows users to choose exactly which plugins to install from a discovered list. The implementation involves generating and executing a substantial JavaScript payload to render the UI. The version is bumped to 1.1.0, and all related documentation, including READMEs, release notes, and docs pages, have been updated accordingly in both English and Chinese. The core logic change is well-implemented, and error handling seems robust. My main feedback is on improving the maintainability of the embedded JavaScript code.

Comment on lines +868 to +871
def _build_selection_dialog_js(
options: List[Dict[str, str]],
ui_text: Dict[str, str],
) -> str:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

This function generates a large block of JavaScript with extensive inline CSS, which can be difficult to read and maintain. For better readability and separation of concerns, consider defining the CSS in a separate <style> block. You can create a <style> element dynamically in JavaScript, append it to the document's <head>, and then use CSS classes in your HTML template string. This would make the HTML structure much cleaner and the styles easier to manage.

@Fu-Jie Fu-Jie merged commit 8573a0d into main Mar 16, 2026
1 check passed
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