summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-10 03:40:48 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-10 03:40:48 +0200
commitcf730b751b590ca80695492f5d62c4fb43efb4d3 (patch)
tree61d1172b925f4a55d072b01a0d41c2db5f14f74f
parent80e23e2629a37d8ccaa6798a8b5e29b49a3a7268 (diff)
Ensure that comparison view toggle is there for all diff modes
-rw-r--r--app/views/revisions/diff.html.erb17
-rw-r--r--public/stylesheets/admin.css1
-rw-r--r--test/controllers/revisions_controller_test.rb9
3 files changed, 26 insertions, 1 deletions
diff --git a/app/views/revisions/diff.html.erb b/app/views/revisions/diff.html.erb
index 490cf17..d70503c 100644
--- a/app/views/revisions/diff.html.erb
+++ b/app/views/revisions/diff.html.erb
@@ -9,13 +9,28 @@
9 against <strong><%= describe_page_reference(params[:end_revision]) %></strong> 9 against <strong><%= describe_page_reference(params[:end_revision]) %></strong>
10</p> 10</p>
11 11
12<p class="diff_view_toggle">
13 View:
14 <% if @diff_view == :inline %>
15 <strong>Inline</strong>
16 <% else %>
17 <%= link_to 'Inline', diff_node_revisions_path(@node, start_revision: params[:start_revision], end_revision: params[:end_revision], view: 'inline') %>
18 <% end %>
19 &middot;
20 <% if @diff_view == :side_by_side %>
21 <strong>Side by side</strong>
22 <% else %>
23 <%= link_to 'Side by side', diff_node_revisions_path(@node, start_revision: params[:start_revision], end_revision: params[:end_revision], view: 'side_by_side') %>
24 <% end %>
25</p>
26
12<% numeric_comparison = params[:start_revision].to_s =~ /\A\d+\z/ && params[:end_revision].to_s =~ /\A\d+\z/ %> 27<% numeric_comparison = params[:start_revision].to_s =~ /\A\d+\z/ && params[:end_revision].to_s =~ /\A\d+\z/ %>
13 28
14<% if numeric_comparison %> 29<% if numeric_comparison %>
15 <%= form_tag diff_node_revisions_path do %> 30 <%= form_tag diff_node_revisions_path do %>
16 <%= select_tag :start_revision, options_for_select(@node.pages.map{|x| x.revision}, params[:start_revision].to_i) %> 31 <%= select_tag :start_revision, options_for_select(@node.pages.map{|x| x.revision}, params[:start_revision].to_i) %>
17 <%= select_tag :end_revision, options_for_select(@node.pages.map{|x| x.revision}, params[:end_revision].to_i) %> 32 <%= select_tag :end_revision, options_for_select(@node.pages.map{|x| x.revision}, params[:end_revision].to_i) %>
18 <%= select_tag :view, options_for_select([['Inline', 'inline'], ['Side by side', 'side_by_side']], @diff_view) %> 33 <%= hidden_field_tag :view, @diff_view %>
19 <%= submit_tag 'Diff' %> 34 <%= submit_tag 'Diff' %>
20 <% end %> 35 <% end %>
21<% else %> 36<% else %>
diff --git a/public/stylesheets/admin.css b/public/stylesheets/admin.css
index 56470bc..510e3cc 100644
--- a/public/stylesheets/admin.css
+++ b/public/stylesheets/admin.css
@@ -32,6 +32,7 @@ table.user_table a,
32table.revisions_table a, 32table.revisions_table a,
33.add_child_links a, 33.add_child_links a,
34.standalone_action_bar a, 34.standalone_action_bar a,
35.diff_view_toggle a,
35div#draft_list table td.actions a { 36div#draft_list table td.actions a {
36 text-decoration: underline; 37 text-decoration: underline;
37 -webkit-text-decoration-style: wavy; 38 -webkit-text-decoration-style: wavy;
diff --git a/test/controllers/revisions_controller_test.rb b/test/controllers/revisions_controller_test.rb
index 162e6f1..bf92c5b 100644
--- a/test/controllers/revisions_controller_test.rb
+++ b/test/controllers/revisions_controller_test.rb
@@ -139,4 +139,13 @@ class RevisionsControllerTest < ActionController::TestCase
139 assert_select "form.computation input[type=hidden][name=start_revision]" 139 assert_select "form.computation input[type=hidden][name=start_revision]"
140 assert_select "form.computation input[type=hidden][name=end_revision]" 140 assert_select "form.computation input[type=hidden][name=end_revision]"
141 end 141 end
142
143 test "the view toggle is available even when comparing named layers" do
144 login_as :quentin
145 @node.find_or_create_draft(@user)
146
147 post(:diff, params: { :node_id => @node.id, :start_revision => "head", :end_revision => "draft" })
148 assert_response :success
149 assert_select "a", "Side by side"
150 end
142end 151end