Adjustment for admin-disabled plugins in /plugin menu

This commit is contained in:
canvrno-oai
2026-06-08 11:02:29 -07:00
parent 4d32a96c75
commit ddd48cab1b
2 changed files with 8 additions and 3 deletions
+5 -3
View File
@@ -1816,8 +1816,8 @@ impl ChatWidget {
};
let plugin_detail_request = plugin_detail_request_for_entry(marketplace, plugin);
let can_view_details = plugin_detail_request.is_some();
let can_toggle_plugin =
plugin.installed && plugin.availability != PluginAvailability::DisabledByAdmin;
let disabled_by_admin = plugin.availability == PluginAvailability::DisabledByAdmin;
let can_toggle_plugin = plugin.installed && !disabled_by_admin;
let selected_status_label = format!("{status_label:<status_label_width$}");
let selected_description = if can_toggle_plugin {
let toggle_action = if plugin.enabled { "disable" } else { "enable" };
@@ -1832,6 +1832,8 @@ impl ChatWidget {
format!("{selected_status_label} Press Enter to view plugin details.")
} else if plugin.installed {
format!("{selected_status_label} Plugin details are unavailable.")
} else if disabled_by_admin && can_view_details {
format!("{selected_status_label} Press Enter to view plugin details.")
} else if can_view_details {
format!("{selected_status_label} Press Enter to install or view plugin details.")
} else {
@@ -1881,7 +1883,7 @@ impl ChatWidget {
items.push(SelectionItem {
name: display_name,
toggle,
toggle_placeholder: (!plugin.installed).then_some("[-] "),
toggle_placeholder: (!can_toggle_plugin).then_some("[-] "),
description: Some(description),
selected_description: Some(selected_description),
search_value: Some(search_value),
@@ -1046,11 +1046,14 @@ async fn plugins_popup_admin_disabled_installed_plugin_has_no_toggle_hint() {
);
while rx.try_recv().is_ok() {}
let before = render_bottom_popup(&chat, /*width*/ 100);
chat.handle_key_event(KeyEvent::new(KeyCode::Char(' '), KeyModifiers::NONE));
let after = render_bottom_popup(&chat, /*width*/ 100);
assert!(
rx.try_recv().is_err(),
"space should not toggle admin-disabled installed plugins"
);
assert_eq!(after, before);
}
#[tokio::test]