From c9d19a66d8f4f50f0f582dde874c0d1c6db1ccde Mon Sep 17 00:00:00 2001 From: Tankut Date: Wed, 10 Jun 2026 16:59:36 +0300 Subject: [PATCH 1/2] Fix selectable options for client search --- app/views/advanced_select/_select.html.erb | 2 +- lib/advanced_select/helper.rb | 6 ++++-- test/helpers/advanced_select/helper_test.rb | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/views/advanced_select/_select.html.erb b/app/views/advanced_select/_select.html.erb index 783fbbe..10349ad 100644 --- a/app/views/advanced_select/_select.html.erb +++ b/app/views/advanced_select/_select.html.erb @@ -95,7 +95,7 @@ <%= render partial: "advanced_select/options", locals: { target_id: target_id, selected_options: selected_options, - options: advanced_select_options_for_render(options, selected_options, searchable), + options: advanced_select_options_for_render(options, selected_options, searchable, options_url), multiple: multiple, add_mode: add_mode, query: nil, diff --git a/lib/advanced_select/helper.rb b/lib/advanced_select/helper.rb index 13630e0..57ec7d8 100644 --- a/lib/advanced_select/helper.rb +++ b/lib/advanced_select/helper.rb @@ -116,8 +116,10 @@ def advanced_select_default_option_content_tag(option, class_map) tag.span(safe_join(content), class: advanced_select_class(class_map, :option_content)) end - def advanced_select_options_for_render(options, selected_options, searchable) - searchable ? selected_options.presence || options : options + def advanced_select_options_for_render(options, selected_options, searchable, options_url) + return options unless searchable + + options_url.present? ? selected_options.presence || options : options end def advanced_select_add_option?(options, selected_options, add_mode, query) diff --git a/test/helpers/advanced_select/helper_test.rb b/test/helpers/advanced_select/helper_test.rb index 6a7964a..6d6f075 100644 --- a/test/helpers/advanced_select/helper_test.rb +++ b/test/helpers/advanced_select/helper_test.rb @@ -114,6 +114,25 @@ class AdvancedSelectHelperTest < ActionView::TestCase assert_selector fragment, "#report_local_item_options button[data-advanced-select-value-param='item-1']", text: "Item one" end + test "renders all local searchable options when one is selected" do + fragment = html_fragment( + advanced_select_tag( + "report[item]", + id: "report_local_selected_item", + selected: { id: "item-2", label: "Item two" }, + options: [ + { id: "item-1", label: "Item one" }, + { id: "item-2", label: "Item two" } + ], + placeholder: "Select" + ) + ) + + assert_equal 2, fragment.css("#report_local_selected_item_options button").size + assert_selector fragment, "#report_local_selected_item_options button[data-advanced-select-value-param='item-1']", text: "Item one" + assert_selector fragment, "#report_local_selected_item_options button[data-advanced-select-value-param='item-2'][aria-selected='true']", text: "Item two" + end + test "enables auto select single by default and allows disabling it" do enabled = html_fragment( advanced_select_tag( From d16b6c6ab629d04206c2db158ac5e0084f6f0baa Mon Sep 17 00:00:00 2001 From: Tankut Date: Wed, 10 Jun 2026 17:02:47 +0300 Subject: [PATCH 2/2] bump version to 0.1.8 --- Gemfile.lock | 2 +- lib/advanced_select/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9456364..2efaecd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - advanced_select (0.1.7) + advanced_select (0.1.8) actionview (>= 7.1) railties (>= 7.1) stimulus-rails (>= 1.3) diff --git a/lib/advanced_select/version.rb b/lib/advanced_select/version.rb index e1ea74b..41ba1b5 100644 --- a/lib/advanced_select/version.rb +++ b/lib/advanced_select/version.rb @@ -1,3 +1,3 @@ module AdvancedSelect - VERSION = "0.1.7" + VERSION = "0.1.8" end