diff --git a/app/assets/javascripts/admin/users/directives/user_select.js.coffee b/app/assets/javascripts/admin/users/directives/user_select.js.coffee index 94df1894d9..bde54fd6d0 100644 --- a/app/assets/javascripts/admin/users/directives/user_select.js.coffee +++ b/app/assets/javascripts/admin/users/directives/user_select.js.coffee @@ -2,12 +2,12 @@ angular.module("admin.users").directive "userSelect", -> scope: user: '&userSelect' model: '=ngModel' - link: (scope,element,attrs) -> + link: (scope, element, attrs) -> setTimeout -> element.select2 multiple: false initSelection: (element, callback) -> - callback {id: scope.user().id, email: scope.user().email} + callback {id: scope.user()?.id, email: scope.user()?.email} ajax: url: '/admin/search/known_users' datatype: 'json' diff --git a/app/views/admin/variant_overrides/_filters.html.haml b/app/views/admin/variant_overrides/_filters.html.haml index 9dc90d7ad3..d5f8bb9714 100644 --- a/app/views/admin/variant_overrides/_filters.html.haml +++ b/app/views/admin/variant_overrides/_filters.html.haml @@ -11,7 +11,7 @@ .filter_select.four.columns %label{ :for => 'producer_filter', ng: {class: '{disabled: !hub.id}'} }Producer %br - %input.ofn-select2.fullwidth{ :id => 'producer_filter', type: 'number', style: 'display:none', data: 'producers', blank: "{id: 0, name: 'All'}", ng: { model: 'producerFilter', disabled: '!hub.id' } } + %input.ofn-select2.fullwidth{ :id => 'producer_filter', type: 'number', data: 'producers', blank: "{id: 0, name: 'All'}", ng: { model: 'producerFilter', disabled: '!hub.id' } } -# .filter_select{ :class => "three columns" } -# %label{ :for => 'distributor_filter' }Hub -# %br diff --git a/spec/features/admin/bulk_order_management_spec.rb b/spec/features/admin/bulk_order_management_spec.rb index 1e011b5939..d28a20d6f9 100644 --- a/spec/features/admin/bulk_order_management_spec.rb +++ b/spec/features/admin/bulk_order_management_spec.rb @@ -236,9 +236,9 @@ feature %q{ it "displays a select box for producers, which filters line items by the selected supplier" do supplier_names = ["All"] Enterprise.is_primary_producer.each{ |e| supplier_names << e.name } - find("div.select2-container#s2id_supplier_filter").click + open_select2 "div.select2-container#s2id_supplier_filter" supplier_names.each { |sn| expect(page).to have_selector "div.select2-drop-active ul.select2-results li", text: sn } - find("div.select2-container#s2id_supplier_filter").click + close_select2 "div.select2-container#s2id_supplier_filter" expect(page).to have_selector "tr#li_#{li1.id}", visible: true expect(page).to have_selector "tr#li_#{li2.id}", visible: true select2_select s1.name, from: "supplier_filter" @@ -271,9 +271,9 @@ feature %q{ it "displays a select box for distributors, which filters line items by the selected distributor" do distributor_names = ["All"] Enterprise.is_distributor.each{ |e| distributor_names << e.name } - find("div.select2-container#s2id_distributor_filter").click + open_select2 "div.select2-container#s2id_distributor_filter" distributor_names.each { |dn| expect(page).to have_selector "div.select2-drop-active ul.select2-results li", text: dn } - find("div.select2-container#s2id_distributor_filter").click + close_select2 "div.select2-container#s2id_distributor_filter" expect(page).to have_selector "tr#li_#{li1.id}", visible: true expect(page).to have_selector "tr#li_#{li2.id}", visible: true select2_select d1.name, from: "distributor_filter" diff --git a/spec/support/matchers/select2_matchers.rb b/spec/support/matchers/select2_matchers.rb index e1f821753d..6ab4fd5788 100644 --- a/spec/support/matchers/select2_matchers.rb +++ b/spec/support/matchers/select2_matchers.rb @@ -103,9 +103,9 @@ RSpec::Matchers.define :have_select2 do |id, options={}| end def with_select2_open(from) - find(from).click + open_select2 from r = yield - find(from).click + close_select2 from r end end diff --git a/spec/support/request/web_helper.rb b/spec/support/request/web_helper.rb index 1dd5adc7a3..30ce677c6c 100644 --- a/spec/support/request/web_helper.rb +++ b/spec/support/request/web_helper.rb @@ -144,6 +144,13 @@ module WebHelper have_selector "div.select2-result-label", text: value end + def open_select2(selector) + page.evaluate_script "jQuery('#{selector}').select2('open');" + end + + def close_select2(selector) + page.evaluate_script "jQuery('#{selector}').select2('close');" + end private def wait_for_ajax