Revisions#diff

<%= link_to 'Revisions', node_revisions_path(@node) %>

Comparing <%= describe_page_reference(params[:start_revision]) %> against <%= describe_page_reference(params[:end_revision]) %> — showing the <%= @locale.to_s.upcase %> translation

<% if @locale_summary.size > 1 %>

Locale: <% @locale_summary.each_with_index do |s, i| %> <%= " · ".html_safe if i > 0 %> <% label = "#{s[:locale].to_s.upcase}#{' *' if s[:changed]}" %> <% if s[:locale] == @locale %> <%= label %> <% else %> <%= link_to label, diff_node_revisions_path(@node, start_revision: params[:start_revision], end_revision: params[:end_revision], view: @diff_view, locale: s[:locale]) %> <% end %> <% end %>

* has a difference between these two versions.

<% end %>

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', locale: @locale) %> <% 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', locale: @locale) %> <% 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 %> <%= hidden_field_tag :locale, @locale %> <%= 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, locale: @locale }, 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 %> <% 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 %> <% end %>