feat(ui): relocate plugin web pages from sidebar to dedicated dashboard panel - #9823
feat(ui): relocate plugin web pages from sidebar to dedicated dashboard panel#9823XTsat wants to merge 7 commits into
Conversation
There was a problem hiding this comment.
Hey - I've found 2 issues
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location path="dashboard/src/router/MainRoutes.ts" line_range="93-97" />
<code_context>
props: { initialTab: 'market' },
meta: { extensionTab: 'installed', pluginView: 'market' }
},
+ {
+ name: 'ExtensionPluginPages',
+ path: 'pages/:pluginName?/:pageName?',
+ component: () => import('@/views/ExtensionPage.vue'),
+ props: { initialTab: 'installed' },
+ meta: { extensionTab: 'pluginPages', pluginView: 'pluginPages' }
+ },
{
name: 'ExtensionMcp',
</code_context>
<issue_to_address>
**issue (broader_impact):** Existing bookmarks, external links, or plugin-generated links to `/plugin-page/:pluginName/:pageName` now resolve to a 404 because the old route is deleted and no redirect to `ExtensionPluginPages` is registered.
**Triggers:** When a user opens a previously generated or bookmarked standalone plugin-page URL.
**Suggested fix:** Keep a compatibility redirect for `/plugin-page/:pluginName/:pageName` to `ExtensionPluginPages` with the corresponding parameters.
</issue_to_address>
### Comment 2
<location path="dashboard/src/views/ExtensionPage.vue" line_range="192-194" />
<code_context>
+// All installed plugins that ship web pages, listed in the page switcher row.
+const pluginsWithPages = computed(() =>
+ filteredExtensions.value.filter(
+ (plugin) => Array.isArray(plugin?.pages) && plugin.pages.length > 0,
+ ),
+);
+
+const openPluginPage = (plugin) => {
</code_context>
<issue_to_address>
**issue (bug_risk):** The plugin-page switcher includes installed plugins with pages regardless of `plugin.activated`; selecting a disabled plugin navigates to its page and `PluginPagePage` then displays a disabled-plugin error instead of excluding it from the switcher.
**Triggers:** When an installed plugin exposes pages but is disabled.
**Suggested fix:** Filter the switcher list to activated plugins, or disable the corresponding switcher buttons and prevent navigation.
```suggestion
filteredExtensions.value.filter(
(plugin) =>
plugin?.activated &&
Array.isArray(plugin?.pages) &&
plugin.pages.length > 0,
),
```
</issue_to_address>Sourcery assessment
Approval pending. 2 findings to address first.
Blocking findings: dashboard/src/router/MainRoutes.ts:97, dashboard/src/views/ExtensionPage.vue:194
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
|
针对插件页面的修改已经完成了,可以审阅了 |
|
有一些建议可以和您说一下:
上述均为个人观点,您可以尝试上述提供的方法进行适当修改,或者参考 贡献指南 。 当前 AstrBot 项目最近在进行 总之,我也只是普通的贡献者,对于您的改动我能理解。但是我没有相关权限,所以请您耐心等候。感谢您对 AstrBot 的支持! |
mantoujun12
left a comment
There was a problem hiding this comment.
帮您稍微看了一下您的改动,个人认为还不错。给一些文件和代码添加了评论。
您可以随时回复我的审阅并把我的子评论标记为“已解决”。
看了一下还完善了 i18n 支持,说明确实用心,可以。
不过正如我之前所说,最近维护者的其它 PR 对 Web UI 进行了重构,您的 PR 可能会因为这个原因会暂缓,或者直接关闭。这都是很正常的,不用太担心。
虽然作为贡献者可以同意您的修改,不过为了社区公平性,我不会进行 Approve ,即使同意了也需要等待维护者审查您的 PR 并考虑是否需要合并。
目前的情况,您只需要耐心等待即可。
There was a problem hiding this comment.
此文件作用:为 Dashboard 中的“插件页面”提供一个水平可滚动/可展开的切换器,方便在有 Web 页面界面的已激活插件之间快速切换。
这应该是本 PR 中的主要文件
There was a problem hiding this comment.
因为有了 PluginPagesSwitcher.vue 承担插件面板的显示,所以就不需要这个文件了
There was a problem hiding this comment.
将插件的 Web Pages 从侧边栏动态条目搬到独立的“插件页面”面板,UI/导航更集中清晰
但是风险有点大,可能会影响原有用户的操作
| { | ||
| name: 'ExtensionPluginPages', | ||
| path: 'pages/:pluginName?/:pageName?', | ||
| component: () => import('@/views/ExtensionPage.vue'), | ||
| props: { initialTab: 'installed' }, | ||
| meta: { extensionTab: 'pluginPages', pluginView: 'pluginPages' } | ||
| }, |
There was a problem hiding this comment.
这个route应该是导向已安装的插件的 web ui
| name: "PluginPage", | ||
| name: "ExtensionPluginPages", |
There was a problem hiding this comment.
将 PluginPage 改为 ExtensionPluginPages ,以对应 MainRoutes.ts 中 R59-R65 的 ExtensionPluginPages
让插件UI页面更符合面板使用 #9816
Modifications / 改动点
将 Astrbot 的插件 Web 面板从侧边栏中独立出来,新建一个“插件页面”页面
Screenshots or Test Results / 运行截图或测试结果
PixPin_2026-08-26_18-52-30.mp4
Checklist / 检查清单
😊 If there are new features added in the PR, I have discussed it with the authors through issues/emails, etc.
/ 如果 PR 中有新加入的功能,已经通过 Issue / 邮件等方式和作者讨论过。
👀 My changes have been well-tested, and "Verification Steps" and "Screenshots" have been provided above.
/ 我的更改经过了良好的测试,并已在上方提供了“验证步骤”和“运行截图”。
🤓 I have ensured that no new dependencies are introduced, OR if new dependencies are introduced, they have been added to the appropriate locations in
requirements.txtandpyproject.toml./ 我确保没有引入新依赖库,或者引入了新依赖库的同时将其添加到
requirements.txt和pyproject.toml文件相应位置。😮 My changes do not introduce malicious code.
/ 我的更改没有引入恶意代码。
Summary by Sourcery
Move plugin web interfaces into a dedicated, integrated dashboard page with improved navigation and plugin management.
New Features:
Bug Fixes:
Enhancements:
Chores: