From dab53a1ef28ecc281d574b50d3433e806db375cd Mon Sep 17 00:00:00 2001
From: erdgeist
- <%= t(".comparing") %> <%= describe_page_reference(params[:start_revision]) %> - <%= t(".against") %> <%= describe_page_reference(params[:end_revision]) %> - <%= t(".showing_prefix") %> <%= @locale.to_s.upcase %> <%= t(".translation_suffix") %> -
+<% 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]) %> -<% if @locale_summary.size > 1 %> -- <%= t("revisions.locale_label") %> - <% @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 %> +<%= 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) %> +
+ -<%= t(".changed_hint") %>
<% end %> -- <%= t(".view_label") %> - <% if @diff_view == :inline %> - <%= t("revisions.inline") %> - <% else %> - <%= link_to t("revisions.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 %> - <%= t("revisions.side_by_side") %> - <% else %> - <%= link_to t("revisions.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 t(".diff_button") %> - <% end %> -<% else %> - +<% unless numeric_comparison %> + <% end %> + <% if @available_layer_pairs.present? %>