summaryrefslogtreecommitdiff
path: root/app/views/page_translations
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-13 23:33:11 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-13 23:33:11 +0200
commit8eab68f2c5a3c126e2fec2ecdfa7ace87ce0937b (patch)
treef446ebc26a7707c7b64a937aa51a155df146c80a /app/views/page_translations
parent42714c697273a7117c6b355fab26c8c35e336ad1 (diff)
parentcdf5d9941ca866d437612d2f863eac6eb0b3db12 (diff)
Merge branch 'erdgeist-revive-events'
Diffstat (limited to 'app/views/page_translations')
-rw-r--r--app/views/page_translations/edit.html.erb40
-rw-r--r--app/views/page_translations/index.html.erb19
-rw-r--r--app/views/page_translations/show.html.erb27
3 files changed, 86 insertions, 0 deletions
diff --git a/app/views/page_translations/edit.html.erb b/app/views/page_translations/edit.html.erb
new file mode 100644
index 00000000..89b594e8
--- /dev/null
+++ b/app/views/page_translations/edit.html.erb
@@ -0,0 +1,40 @@
1<div class="translation_banner">
2 Editing the <strong><%= @locale.to_s.upcase %></strong> translation of <strong><%= title_for_node(@node) %></strong>.
3</div>
4
5<p class="field_hint">
6 Metadata such as images, tags, template, and author belong to the page
7 as a whole, not to a single translation — change those from the
8 <%= link_to 'default-locale editor', edit_node_path(@node) %>.
9</p>
10
11<div class="node_action_bar">
12 <%= button_to 'Unlock + Back', unlock_node_path(@node), method: :put,
13 form: { class: 'button_to state_changing' },
14 disabled: @node.autosave.present? %>
15 <%= submit_tag "Save #{@locale.to_s.upcase} translation", form: "translation_edit_form" %>
16 <%= submit_tag "Save + Unlock + Exit", form: "translation_edit_form" %>
17 <%= link_to "Preview ↗", preview_page_path(@page, :locale => @locale), target: "_blank", rel: "noopener", class: "preview_link" %>
18</div>
19
20<div id="page_editor">
21 <%= form_with url: node_translation_path(@node, @locale), method: :patch, local: true, id: "translation_edit_form",
22 data: { autosave_url: autosave_node_translation_path(@node, @locale), show_url: node_path(@node) } do |f| %>
23 <div id="content">
24 <div class="node_description">Title</div>
25 <div class="node_content">
26 <%= text_field_tag "page[title]", @translation&.title %>
27 </div>
28
29 <div class="node_description">Abstract</div>
30 <div class="node_content">
31 <%= text_area_tag "page[abstract]", @translation&.abstract %>
32 </div>
33
34 <div class="node_description">Body</div>
35 <div class="node_content">
36 <%= text_area_tag "page[body]", @translation&.body, :class => 'with_editor' %>
37 </div>
38 </div>
39 <% end %>
40</div>
diff --git a/app/views/page_translations/index.html.erb b/app/views/page_translations/index.html.erb
new file mode 100644
index 00000000..a8c4f5dc
--- /dev/null
+++ b/app/views/page_translations/index.html.erb
@@ -0,0 +1,19 @@
1<h1>Translations — <%= title_for_node(@node) %></h1>
2
3<div class="node_content node_info_group">
4 <div class="node_info_group_items">
5 <% @translations.each do |t| %>
6 <div class="node_info_item">
7 <span class="node_info_label"><%= t[:locale].to_s.upcase %></span>
8 <% if t[:exists] %>
9 <%= t[:title] %> — updated <%= t[:updated_at] %>
10 <% if t[:outdated] %><span class="warning">may be outdated</span><% end %>
11 <%= link_to 'Edit', edit_node_translation_path(@node, t[:locale]) %>
12 <% else %>
13 <span class="field_hint">Not yet translated.</span>
14 <%= link_to 'Add', edit_node_translation_path(@node, t[:locale]) %>
15 <% end %>
16 </div>
17 <% end %>
18 </div>
19</div>
diff --git a/app/views/page_translations/show.html.erb b/app/views/page_translations/show.html.erb
new file mode 100644
index 00000000..c5bd151f
--- /dev/null
+++ b/app/views/page_translations/show.html.erb
@@ -0,0 +1,27 @@
1<h1>Compare — <%= title_for_node(@node) %></h1>
2
3<div class="translation_compare">
4 <div class="translation_compare_column">
5 <h2><%= @locale.to_s.upcase %></h2>
6 <div class="node_description">Title</div>
7 <div class="node_content"><%= @translation&.title %></div>
8
9 <div class="node_description">Abstract</div>
10 <div class="node_content"><%= sanitize(@translation&.abstract.to_s) %></div>
11
12 <div class="node_description">Body</div>
13 <div class="node_content"><%= sanitize(@translation&.body.to_s) %></div>
14 </div>
15
16 <div class="translation_compare_column">
17 <h2><%= I18n.default_locale.to_s.upcase %> (default)</h2>
18 <div class="node_description">Title</div>
19 <div class="node_content"><%= @default_translation&.title %></div>
20
21 <div class="node_description">Abstract</div>
22 <div class="node_content"><%= sanitize(@default_translation&.abstract.to_s) %></div>
23
24 <div class="node_description">Body</div>
25 <div class="node_content"><%= sanitize(@default_translation&.body.to_s) %></div>
26 </div>
27</div>