From 9d6ed7a0855f1d51935a07d544e1d6c9ef6caeba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Fri, 12 Jul 2019 00:40:15 +0200 Subject: [PATCH] Show only defined columns on inserted rows When we were inserting a row or replacing an existing one (just like we do when we click the link to select an investment), we were entering a row containing all columns, and all of them were displayed even if they had been excluded using the column selector. This caused the table to move in a strange way, which sometimes made the investment selection tests fail. --- app/assets/javascripts/columns_selector.js | 3 +++ .../budget_investments/toggle_selection.js.erb | 2 +- spec/features/admin/budget_investments_spec.rb | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/columns_selector.js b/app/assets/javascripts/columns_selector.js index 13219831e..db22bb57d 100644 --- a/app/assets/javascripts/columns_selector.js +++ b/app/assets/javascripts/columns_selector.js @@ -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..a1c79fa33 100644 --- a/spec/features/admin/budget_investments_spec.rb +++ b/spec/features/admin/budget_investments_spec.rb @@ -1892,6 +1892,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