mirror of
https://github.com/openai/codex.git
synced 2026-10-23 18:08:45 +00:00
Adjustment for admin-disabled plugins in /plugin menu
This commit is contained in:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user