Upgrade Turbolinks to version 5.2.1

We didn't upgrade Turbolinks when we upgraded to Rails 5 so we didn't
upgrade too many things at the same time, and postponed it... until now
:).

Note upgrading Turbolinks fixes an issue with foundation's sticky when
using the browser's back and forward buttons. We're adding tests for
these scenarios.

Co-authored-by: Senén Rodero Rodríguez <senenrodero@gmail.com>
This commit is contained in:
Javi Martín
2019-09-13 02:22:10 +02:00
parent a8f261ed95
commit 7b96180a76
16 changed files with 54 additions and 25 deletions

View File

@@ -53,7 +53,7 @@ gem "sitemap_generator", "~> 6.0.2"
gem "social-share-button", "~> 1.1"
gem "sprockets", "~> 3.7.2"
gem "translator-text", "~> 0.1.0"
gem "turbolinks", "~> 2.5.3"
gem "turbolinks", "~> 5.2.1"
gem "turnout", "~> 2.4.0"
gem "uglifier", "~> 4.1.2"
gem "whenever", "~> 0.10.0", require: false

View File

@@ -563,8 +563,9 @@ GEM
translator-text (0.1.0)
dry-struct (~> 0.5.0)
httparty (~> 0.15)
turbolinks (2.5.4)
coffee-rails
turbolinks (5.2.1)
turbolinks-source (~> 5.2)
turbolinks-source (5.2.0)
turnout (2.4.1)
i18n (~> 0.7)
rack (>= 1.3, < 3)
@@ -690,7 +691,7 @@ DEPENDENCIES
spring-commands-rspec (~> 1.0.4)
sprockets (~> 3.7.2)
translator-text (~> 0.1.0)
turbolinks (~> 2.5.3)
turbolinks (~> 5.2.1)
turnout (~> 2.4.0)
uglifier (~> 4.1.2)
web-console (~> 3.3.0)

View File

@@ -166,10 +166,4 @@ var initialize_modules = function() {
App.BudgetEditAssociations.initialize();
};
$(function() {
"use strict";
Turbolinks.enableProgressBar();
});
$(document).ready(initialize_modules);
$(document).on("page:load", initialize_modules);
$(document).on("turbolinks:load", initialize_modules);

View File

@@ -17,6 +17,5 @@
}
};
$(document).on("page:before-unload", App.HTMLEditor.destroy);
$(document).on("page:restore", App.HTMLEditor.initialize);
$(document).on("turbolinks:before-cache", App.HTMLEditor.destroy);
}).call(this);

View File

@@ -9,6 +9,5 @@ var initialize_stats_modules = function() {
App.Stats.initialize();
};
$(document).ready(initialize_stats_modules);
$(document).on("page:load", initialize_stats_modules);
$(document).on("turbolinks:load", initialize_stats_modules);
$(document).on("ajax:complete", initialize_stats_modules);

View File

@@ -23,7 +23,7 @@
if (App.WatchFormChanges.forms().length === 0 || App.WatchFormChanges.msg() === undefined) {
return;
}
$(document).off("page:before-change").on("page:before-change", App.WatchFormChanges.checkChanges);
$(document).off("turbolinks:before-visit").on("turbolinks:before-visit", App.WatchFormChanges.checkChanges);
App.WatchFormChanges.forms().each(function() {
$(this).data("watchChanges", $(this).serialize());
});

View File

@@ -1,5 +1,5 @@
<%= link_to admin_budget_budget_investments_path(Budget::Investment.filter_params(params).to_h),
class: "back", data: { no_turbolink: true } do %>
class: "back", data: { turbolinks: false } do %>
<span class="icon-angle-left"></span><%= t("shared.back") %>
<% end %>

View File

@@ -1,5 +1,5 @@
<% content_for :head do %>
<%= javascript_include_tag "stat_graphs", "data-turbolinks-track" => true %>
<%= javascript_include_tag "stat_graphs", "data-turbolinks-track" => "reload" %>
<% end %>
<%= back_link_to budgets_admin_stats_path %>

View File

@@ -1,5 +1,5 @@
<% content_for :head do %>
<%= javascript_include_tag "stat_graphs", "data-turbolinks-track" => true %>
<%= javascript_include_tag "stat_graphs", "data-turbolinks-track" => "reload" %>
<% end %>
<%= render "graph", name: @name, event: @event, count: @count %>

View File

@@ -36,7 +36,7 @@
<%= link_to heading.name,
budget_investments_path(heading_id: heading.id,
filter: @current_filter),
data: { no_turbolink: true } %><br>
data: { turbolinks: false } %><br>
</span>
<% end %>
</div>

View File

@@ -64,7 +64,7 @@
budget_investments_path(@budget,
heading_id: group.headings.first.id,
filter: @current_filter),
data: { no_turbolink: true } %>
data: { turbolinks: false } %>
<% else %>
<%= link_to group.name,
budget_group_path(@budget, group,

View File

@@ -29,7 +29,7 @@
class="c3 proposal-graph"></div>
</div>
<%= javascript_include_tag "dashboard_graphs", "data-turbolinks-track" => true %>
<%= javascript_include_tag "dashboard_graphs", "data-turbolinks-track" => "reload" %>
<% end %>
<%= render "next_goal" %>

View File

@@ -3,7 +3,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title><%= content_for?(:title) ? yield(:title) : default_title %></title>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => "reload" %>
<%= csrf_meta_tags %>
<%= favicon_link_tag "favicon.ico" %>
<%= render "layouts/disable_animations_in_tests" if Rails.env.test? %>

View File

@@ -9,7 +9,7 @@
<title><%= content_for?(:title) ? yield(:title) : setting["org_name"] %></title>
<%= content_for :canonical %>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => "reload" %>
<%= csrf_meta_tags %>
<%= favicon_link_tag "favicon.ico" %>
<%= favicon_link_tag image_path_for("apple-touch-icon-200.png"),

View File

@@ -9,7 +9,7 @@
<title><%= content_for?(:title) ? yield(:title) : setting["org_name"] %></title>
<%= content_for :canonical %>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => "reload" %>
<%= csrf_meta_tags %>
<%= favicon_link_tag "favicon.ico" %>
<%= favicon_link_tag image_path_for("apple-touch-icon-200.png"),

View File

@@ -233,6 +233,42 @@ describe "Proposals" do
expect(page).not_to have_css(".is-anchored")
end
end
scenario "After using the browser's back button" do
proposal = create(:proposal)
visit proposal_path(proposal)
click_link "Go back"
expect(page).to have_link proposal.title
go_back
within("#proposal_sticky") do
expect(page).to have_css(".is-stuck")
expect(page).not_to have_css(".is-anchored")
end
end
scenario "After using the browser's forward button" do
proposal = create(:proposal)
visit proposals_path
click_link proposal.title
expect(page).not_to have_link proposal.title
go_back
expect(page).to have_link proposal.title
go_forward
within("#proposal_sticky") do
expect(page).to have_css(".is-stuck")
expect(page).not_to have_css(".is-anchored")
end
end
end
context "Embedded video" do