1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
<h1><%= t(".title") %></h1>
<p class="node_action_bar standalone_action_bar">
<%= link_to t(".revisions_link"), node_revisions_path(@node) %>
</p>
<p class="diff_comparison_label">
<%= t(".comparing") %> <strong><%= describe_page_reference(params[:start_revision]) %></strong>
<%= t(".against") %> <strong><%= describe_page_reference(params[:end_revision]) %></strong>
<%= t(".showing_prefix") %> <strong><%= @locale.to_s.upcase %></strong> <%= t(".translation_suffix") %>
</p>
<% if @locale_summary.size > 1 %>
<p class="diff_locale_toggle">
<%= 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 %>
<strong><%= label %></strong>
<% 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 %>
</p>
<p class="field_hint"><%= t(".changed_hint") %></p>
<% end %>
<p class="diff_view_toggle">
<%= t(".view_label") %>
<% if @diff_view == :inline %>
<strong><%= t("revisions.inline") %></strong>
<% 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 %>
<strong><%= t("revisions.side_by_side") %></strong>
<% 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 %>
</p>
<% 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 %>
<p class="node_action_bar standalone_action_bar"><%= link_to t(".compare_numbered"), node_revisions_path(@node) %></p>
<% end %>
<% if @available_layer_pairs.present? %>
<div class="node_action_bar standalone_action_bar">
<% @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, 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: 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 %>
</div>
<% end %>
<div id="diffview">
<% if @diff_view == :side_by_side %>
<div class="diff_side_by_side">
<div class="diff_column">
<h3><%= Page.human_attribute_name(:title) %></h3>
<p><%= raw @diff[:title][0] %></p>
<h3><%= Page.human_attribute_name(:abstract) %></h3>
<p><%= raw @diff[:abstract][0] %></p>
<h3><%= Page.human_attribute_name(:body) %></h3>
<%= raw @diff[:body][0] %>
</div>
<div class="diff_column">
<h3><%= Page.human_attribute_name(:title) %></h3>
<p><%= raw @diff[:title][1] %></p>
<h3><%= Page.human_attribute_name(:abstract) %></h3>
<p><%= raw @diff[:abstract][1] %></p>
<h3><%= Page.human_attribute_name(:body) %></h3>
<%= raw @diff[:body][1] %>
</div>
</div>
<% else %>
<h3><%= Page.human_attribute_name(:title) %></h3>
<p><%= raw @diff[:title] %></p>
<h3><%= Page.human_attribute_name(:abstract) %></h3>
<p><%= raw @diff[:abstract] %></p>
<h3><%= Page.human_attribute_name(:body) %></h3>
<%= raw @diff[:body] %>
<% end %>
<h3><%= Page.human_attribute_name(:tag_list) %></h3>
<% if @diff[:tags][:added].empty? && @diff[:tags][:removed].empty? %>
<p class="diff_unchanged"><%= t(".no_change") %></p>
<% else %>
<ul class="diff_set_list">
<% @diff[:tags][:added].each do |tag| %><li><ins><%= tag %></ins></li><% end %>
<% @diff[:tags][:removed].each do |tag| %><li><del><%= tag %></del></li><% end %>
</ul>
<% end %>
<h3><%= Page.human_attribute_name(:template_name) %></h3>
<% if @diff[:template_name][:changed] %>
<p><del><%= @diff[:template_name][:from] || t(".none_marker") %></del> <ins><%= @diff[:template_name][:to] || t(".none_marker") %></ins></p>
<% else %>
<p class="diff_unchanged"><%= t(".no_change") %></p>
<% end %>
<h3><%= Page.human_attribute_name(:assets) %></h3>
<% if @diff[:assets][:added].empty? && @diff[:assets][:removed].empty? %>
<p class="diff_unchanged"><%= t(".no_change") %></p>
<% else %>
<ul class="diff_set_list">
<% @diff[:assets][:added].each do |asset| %><li><ins><%= asset.upload_file_name %></ins></li><% end %>
<% @diff[:assets][:removed].each do |asset| %><li><del><%= asset.upload_file_name %></del></li><% end %>
</ul>
<% end %>
</div>
|