Revisions#diff
<%= link_to 'Revisions', node_revisions_path(@node) %>
Comparing <%= describe_page_reference(params[:start_revision]) %>
against <%= describe_page_reference(params[:end_revision]) %>
View:
<% if @diff_view == :inline %>
Inline
<% else %>
<%= link_to 'Inline', diff_node_revisions_path(@node, start_revision: params[:start_revision], end_revision: params[:end_revision], view: 'inline') %>
<% end %>
·
<% if @diff_view == :side_by_side %>
Side by side
<% else %>
<%= link_to 'Side by side', diff_node_revisions_path(@node, start_revision: params[:start_revision], end_revision: params[:end_revision], view: 'side_by_side') %>
<% end %>
<% numeric_comparison = params[:start_revision].to_s =~ /\A\d+\z/ && params[:end_revision].to_s =~ /\A\d+\z/ %>
<% if numeric_comparison %>
<%= form_tag diff_node_revisions_path do %>
<%= select_tag :start_revision, options_for_select(@node.pages.map{|x| x.revision}, params[:start_revision].to_i) %>
<%= select_tag :end_revision, options_for_select(@node.pages.map{|x| x.revision}, params[:end_revision].to_i) %>
<%= hidden_field_tag :view, @diff_view %>
<%= submit_tag 'Diff' %>
<% end %>
<% else %>
<%= link_to 'Compare two numbered revisions instead', node_revisions_path(@node) %>
<% end %>
<% if @available_layer_pairs.present? %>
<% @available_layer_pairs.each do |pair| %>
<% next if [params[:start_revision].to_s, params[:end_revision].to_s].sort == pair.map(&:to_s).sort %>
<%= button_to "Diff #{pair.first.to_s.capitalize} vs. #{pair.last.to_s.capitalize}",
diff_node_revisions_path(@node),
method: :get,
params: { start_revision: pair.first, end_revision: pair.last, view: @diff_view },
form: { class: 'button_to computation' } %>
<% end %>
<% if !@locked_by_other && (@node.autosave || @node.draft) %>
<%= button_to revert_node_path(@node), method: :put,
params: { return_to: request.fullpath },
form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } do %>
<%= icon("trash", library: "tabler", "aria-hidden": true) %>
<%= @node.draft && !@node.autosave ? "Destroy Draft" : "Discard Autosave" %>
<% end %>
<% end %>
<% end %>
<% if @diff_view == :side_by_side %>
Title
<%= raw @diff[:title][0] %>
Abstract
<%= raw @diff[:abstract][0] %>
Body
<%= raw @diff[:body][0] %>
Title
<%= raw @diff[:title][1] %>
Abstract
<%= raw @diff[:abstract][1] %>
Body
<%= raw @diff[:body][1] %>
<% else %>
Title
<%= raw @diff[:title] %>
Abstract
<%= raw @diff[:abstract] %>
Body
<%= raw @diff[:body] %>
<% end %>
Tags
<% if @diff[:tags][:added].empty? && @diff[:tags][:removed].empty? %>
No change.
<% else %>
<% @diff[:tags][:added].each do |tag| %>- <%= tag %>
<% end %>
<% @diff[:tags][:removed].each do |tag| %><%= tag %> <% end %>
<% end %>
Template
<% if @diff[:template_name][:changed] %>
<%= @diff[:template_name][:from] || '(none)' %> <%= @diff[:template_name][:to] || '(none)' %>
<% else %>
No change.
<% end %>
Assets
<% if @diff[:assets][:added].empty? && @diff[:assets][:removed].empty? %>
No change.
<% else %>
<% @diff[:assets][:added].each do |asset| %>- <%= asset.upload_file_name %>
<% end %>
<% @diff[:assets][:removed].each do |asset| %><%= asset.upload_file_name %> <% end %>
<% end %>