<%= t(".title") %>

<%= link_to t(".revisions_link"), node_revisions_path(@node) %>

<% numeric_comparison = params[:start_revision].to_s =~ /\A\d+\z/ && params[:end_revision].to_s =~ /\A\d+\z/ %> <% start_control = numeric_comparison ? select_tag(:start_revision, options_for_select(@node.pages.map(&:revision), params[:start_revision].to_i)) : content_tag(:strong, describe_page_reference(params[:start_revision])) + hidden_field_tag(:start_revision, params[:start_revision]) %> <% end_control = numeric_comparison ? select_tag(:end_revision, options_for_select(@node.pages.map(&:revision), params[:end_revision].to_i)) : content_tag(:strong, describe_page_reference(params[:end_revision])) + hidden_field_tag(:end_revision, params[:end_revision]) %> <% locale_control = select_tag(:translation_locale, options_for_select( @locale_summary.map { |s| [s[:changed] ? t("revisions.locale_changed", :lang => s[:locale].to_s.upcase) : s[:locale].to_s.upcase, s[:locale]] }, @translation_locale)) %> <% view_control = select_tag(:view, options_for_select( [[t("revisions.inline"), "inline"], [t("revisions.side_by_side"), "side_by_side"]], @diff_view.to_s)) %> <% earlier, later = neighbour_revision_pairs(@node, params[:start_revision], params[:end_revision]) %> <%= form_tag diff_node_revisions_path(@node), :method => :get, :class => "diff_controls" do %>

<%= t(".comparing_html", :start => start_control, :end => end_control, :lang => locale_control, :view => view_control) %>

<% if earlier %> <%= link_to t(".pair_link", :from => earlier.first, :to => earlier.last), diff_node_revisions_path(@node, start_revision: earlier.first, end_revision: earlier.last, view: @diff_view, translation_locale: @translation_locale) %> <% else %> <% end %> <%= submit_tag t(".diff_button") %> <% if later %> <%= link_to t(".pair_link", :from => later.first, :to => later.last), diff_node_revisions_path(@node, start_revision: later.first, end_revision: later.last, view: @diff_view, translation_locale: @translation_locale) %> <% else %> <% end %>

<% end %> <% unless numeric_comparison %>

<%= link_to t(".compare_numbered"), 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 t("nodes.show.diff_layers", :from => t("nodes.show.layer_#{pair.first}"), :to => t("nodes.show.layer_#{pair.last}")), diff_node_revisions_path(@node), method: :get, params: { start_revision: pair.first, end_revision: pair.last, view: @diff_view, translation_locale: @translation_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: t("admin.common.confirm_irreversible") }, class: 'button_to destructive' } do %> <%= icon("trash", library: "tabler", "aria-hidden": true) %> <%= @node.draft && !@node.autosave ? t("nodes.show.destroy_draft") : t("nodes.show.discard_autosave") %> <% end %> <% end %>
<% end %>
<% meta_changed = @diff[:address][:changed] || @diff[:external_url][:changed] || @diff[:template_name][:changed] || @diff[:published_at][:changed] || @diff[:user][:changed] || @diff[:tags][:added].any? || @diff[:tags][:removed].any? || @diff[:assets][:added].any? || @diff[:assets][:removed].any? || @diff[:redirect][:changed] || @diff[:redirect_node][:changed] %>
<% unless meta_changed %>

<%= t(".no_metadata_change") %>

<% end %> <% if @diff[:address][:changed] %>

<%= t(".address") %>

<%= @diff[:address][:from] || t(".none_marker") %> <%= @diff[:address][:to] || t(".none_marker") %>

<% end %> <% if @diff[:external_url][:changed] %>

<%= Page.human_attribute_name(:external_url) %>

<%= @diff[:external_url][:from].presence || t(".none_marker") %> <%= @diff[:external_url][:to].presence || t(".none_marker") %>

<% end %> <% if @diff[:redirect][:changed] %>

<%= Page.human_attribute_name(:redirect) %>

<%= @diff[:redirect][:from] ? t("nodes.edit.redirect_mode_#{@diff[:redirect][:from]}") : t(".none_marker") %> <%= @diff[:redirect][:to] ? t("nodes.edit.redirect_mode_#{@diff[:redirect][:to]}") : t(".none_marker") %>

<% end %> <% if @diff[:redirect_node][:changed] %>

<%= Page.human_attribute_name(:redirect_node) %>

<%= @diff[:redirect_node][:from]&.unique_name || t(".none_marker") %> <%= @diff[:redirect_node][:to]&.unique_name || t(".none_marker") %>

<% end %> <% if @diff[:published_at][:changed] %>

<%= Page.human_attribute_name(:published_at) %>

<%= @diff[:published_at][:from] ? admin_datetime(@diff[:published_at][:from]) : t(".none_marker") %> <%= @diff[:published_at][:to] ? admin_datetime(@diff[:published_at][:to]) : t(".none_marker") %>

<% end %> <% if @diff[:user][:changed] %>

<%= Page.human_attribute_name(:user) %>

<%= @diff[:user][:from]&.login || t(".none_marker") %> <%= @diff[:user][:to]&.login || t(".none_marker") %>

<% end %> <% if @diff[:tags][:added].any? || @diff[:tags][:removed].any? %>

<%= Page.human_attribute_name(:tag_list) %>

    <% @diff[:tags][:added].each do |tag| %>
  • <%= tag %>
  • <% end %> <% @diff[:tags][:removed].each do |tag| %>
  • <%= tag %>
  • <% end %>
<% end %> <% if @diff[:template_name][:changed] %>

<%= Page.human_attribute_name(:template_name) %>

<%= @diff[:template_name][:from] || t(".none_marker") %> <%= @diff[:template_name][:to] || t(".none_marker") %>

<% end %> <% if @diff[:assets][:added].any? || @diff[:assets][:removed].any? %>

<%= Page.human_attribute_name(:assets) %>

    <% @diff[:assets][:added].each do |asset| %>
  • <%= asset.upload_file_name %>
  • <% end %> <% @diff[:assets][:removed].each do |asset| %>
  • <%= asset.upload_file_name %>
  • <% end %>
<% end %>
<% current_summary = @locale_summary.find { |s| s[:locale] == @translation_locale } %> <% if current_summary && !current_summary[:changed] %> <% elsewhere = @locale_summary.select { |s| s[:changed] }.map { |s| link_to s[:locale].to_s.upcase, diff_node_revisions_path(@node, start_revision: params[:start_revision], end_revision: params[:end_revision], view: @diff_view, translation_locale: s[:locale]) } %>

<% if elsewhere.any? %> <%= t(".unchanged_here_html", :lang => @translation_locale.to_s.upcase, :others => safe_join(elsewhere, ", ")) %> <% else %> <%= t(".unchanged_anywhere") %> <% end %>

<% end %>
<% if @diff_view == :side_by_side %>

<%= Page.human_attribute_name(:title) %>

<%= raw @diff[:title][0] %>

<%= Page.human_attribute_name(:abstract) %>

<%= raw @diff[:abstract][0] %>

<%= Page.human_attribute_name(:body) %>

<%= raw @diff[:body][0] %>

<%= Page.human_attribute_name(:title) %>

<%= raw @diff[:title][1] %>

<%= Page.human_attribute_name(:abstract) %>

<%= raw @diff[:abstract][1] %>

<%= Page.human_attribute_name(:body) %>

<%= raw @diff[:body][1] %>
<% else %>

<%= Page.human_attribute_name(:title) %>

<%= raw @diff[:title] %>

<%= Page.human_attribute_name(:abstract) %>

<%= raw @diff[:abstract] %>

<%= Page.human_attribute_name(:body) %>

<%= raw @diff[:body] %> <% end %>