diff --git a/app/assets/javascripts/columns_selector.js b/app/assets/javascripts/columns_selector.js index b4d95334f..db22bb57d 100644 --- a/app/assets/javascripts/columns_selector.js +++ b/app/assets/javascripts/columns_selector.js @@ -1,7 +1,7 @@ (function() { "use strict"; App.ColumnsSelector = { - initColums: function() { + initColumns: function() { var c_value, columns; App.ColumnsSelector.hideAll(); c_value = App.ColumnsSelector.currentValue(); @@ -71,7 +71,7 @@ }, initialize: function() { App.ColumnsSelector.initChecks(); - App.ColumnsSelector.initColums(); + App.ColumnsSelector.initColumns(); $("#js-columns-selector").on({ click: function(event) { App.ColumnsSelector.toggleOptions(event); @@ -82,6 +82,9 @@ App.ColumnsSelector.toggleColumn(event); } }); + $(".column-selecteable").on("inserted", function() { + App.ColumnsSelector.initColumns(); + }); } }; }).call(this); diff --git a/app/views/admin/budget_investments/toggle_selection.js.erb b/app/views/admin/budget_investments/toggle_selection.js.erb index 6ba72db2a..ecf457e8c 100644 --- a/app/views/admin/budget_investments/toggle_selection.js.erb +++ b/app/views/admin/budget_investments/toggle_selection.js.erb @@ -1 +1 @@ -$("#<%= dom_id(@investment) %>").html("<%= j render("select_investment", investment: @investment) %>"); +$("#<%= dom_id(@investment) %>").html("<%= j render("select_investment", investment: @investment) %>").trigger("inserted"); diff --git a/spec/features/admin/budget_investments_spec.rb b/spec/features/admin/budget_investments_spec.rb index b0686a9d4..51f983939 100644 --- a/spec/features/admin/budget_investments_spec.rb +++ b/spec/features/admin/budget_investments_spec.rb @@ -1585,6 +1585,8 @@ describe "Admin budget investments" do within("#budget_investment_#{selected_bi.id}") do click_link("Selected") + + expect(page).to have_link "Select" end click_link("Next") @@ -1892,6 +1894,21 @@ describe "Admin budget investments" do "visible_to_valuators,selected,incompatible,author") end + + scenario "Select an investment when some columns are not displayed", :js do + investment.update_attribute(:title, "Don't display me, please!") + + visit admin_budget_budget_investments_path(budget) + within("#js-columns-selector") { find("strong", text: "Columns").click } + within("#js-columns-selector-wrapper") { uncheck "Title" } + + within("#budget_investment_#{investment.id}") do + click_link "Selected" + + expect(page).to have_link "Select" + expect(page).not_to have_content "Don't display me, please!" + end + end end end