Reset columns_selector before caching the page
This will allow to initialize this module again without duplicating columns checkboxes and without breaking the page.
This commit is contained in:
@@ -170,6 +170,7 @@ var initialize_modules = function() {
|
||||
var destroy_non_idempotent_modules = function() {
|
||||
"use strict";
|
||||
|
||||
App.ColumnsSelector.destroy();
|
||||
App.Datepicker.destroy();
|
||||
App.HTMLEditor.destroy();
|
||||
App.LegislationAnnotatable.destroy();
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
$(".column-selectable").on("inserted", function() {
|
||||
App.ColumnsSelector.initColumns();
|
||||
});
|
||||
},
|
||||
destroy: function() {
|
||||
$("#js-columns-selector-wrapper").children(":not(#column_selector_item_template)").remove();
|
||||
}
|
||||
};
|
||||
}).call(this);
|
||||
|
||||
@@ -1877,5 +1877,27 @@ describe "Admin budget investments" do
|
||||
expect(page).not_to have_content "Don't display me, please!"
|
||||
end
|
||||
end
|
||||
|
||||
scenario "When restoring the page from browser history renders columns selectors only once", :js do
|
||||
visit admin_budget_budget_investments_path(budget)
|
||||
|
||||
click_link "Proposals"
|
||||
|
||||
expect(page).to have_content("There are no proposals.")
|
||||
|
||||
go_back
|
||||
|
||||
within("#js-columns-selector") do
|
||||
find("strong", text: "Columns").click
|
||||
end
|
||||
|
||||
within("#js-columns-selector-wrapper") do
|
||||
selectable_columns.each do |column|
|
||||
check_text = I18n.t("admin.budget_investments.index.list.#{column}")
|
||||
|
||||
expect(page).to have_content(check_text, count: 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user