summaryrefslogtreecommitdiff
path: root/app/views/nodes/show.html.erb
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-24 18:04:56 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-24 18:04:56 +0200
commit50ca5e40f461290a2db7452b95f80dd3188dba1d (patch)
tree2d94b44463afa35ef6cab73b8aac70c38c4cc0bf /app/views/nodes/show.html.erb
parentd5883869e97244335370d54e21ef46b3f1885899 (diff)
Rename layout classes to what they actually do
Diffstat (limited to 'app/views/nodes/show.html.erb')
-rw-r--r--app/views/nodes/show.html.erb138
1 files changed, 69 insertions, 69 deletions
diff --git a/app/views/nodes/show.html.erb b/app/views/nodes/show.html.erb
index b3987c6e..e37f5034 100644
--- a/app/views/nodes/show.html.erb
+++ b/app/views/nodes/show.html.erb
@@ -1,27 +1,27 @@
1<% locked_by_other = @node.locked? && @node.lock_owner != current_user %> 1<% locked_by_other = @node.locked? && @node.lock_owner != current_user %>
2<div id="page_editor" class="show_node"> 2<div id="admin_layout" class="show_node">
3 <h1><%= title_for_node(@node) %> <small>(<%= I18n.default_locale.to_s.upcase %>)</small></h1> 3 <h1><%= title_for_node(@node) %> <small>(<%= I18n.default_locale.to_s.upcase %>)</small></h1>
4 <div id="content"> 4 <div id="content">
5 <div class="node_description">Status</div> 5 <div class="layout_row_label">Status</div>
6 <div class="node_content node_info_group node_status"> 6 <div class="layout_row_content info_group node_status">
7 <div class="node_info_group_items"> 7 <div class="info_group_items">
8 <div class="node_info_item"> 8 <div class="info_item">
9 <span class="node_info_label">Head</span> 9 <span class="info_label">Head</span>
10 <%= @node.head ? "#{@node.head.title} (rev #{@node.head.revision}, #{@node.head.updated_at})" : "none — never published" %> 10 <%= @node.head ? "#{@node.head.title} (rev #{@node.head.revision}, #{@node.head.updated_at})" : "none — never published" %>
11 </div> 11 </div>
12 <div class="node_info_item"> 12 <div class="info_item">
13 <span class="node_info_label">Draft</span> 13 <span class="info_label">Draft</span>
14 <%= @node.draft ? "#{@node.draft.title} (rev #{@node.draft.revision}, saved #{@node.draft.updated_at})" : "none" %> 14 <%= @node.draft ? "#{@node.draft.title} (rev #{@node.draft.revision}, saved #{@node.draft.updated_at})" : "none" %>
15 </div> 15 </div>
16 <div class="node_info_item"> 16 <div class="info_item">
17 <span class="node_info_label">Autosave</span> 17 <span class="info_label">Autosave</span>
18 <%= @node.autosave ? "#{@node.autosave.title} (unsaved, #{@node.autosave.updated_at})" : "none" %> 18 <%= @node.autosave ? "#{@node.autosave.title} (unsaved, #{@node.autosave.updated_at})" : "none" %>
19 </div> 19 </div>
20 </div> 20 </div>
21 21
22 <% edit_label = @node.autosave ? "Continue Editing" : (@node.draft ? "Edit Draft" : "Edit") %> 22 <% edit_label = @node.autosave ? "Continue Editing" : (@node.draft ? "Edit Draft" : "Edit") %>
23 <div class="node_info_group_items"> 23 <div class="info_group_items">
24 <div class="node_info_item"> 24 <div class="info_item">
25 <% if locked_by_other %> 25 <% if locked_by_other %>
26 <span class="disabled_action"><%= edit_label %></span> 26 <span class="disabled_action"><%= edit_label %></span>
27 <% else %> 27 <% else %>
@@ -36,7 +36,7 @@
36 </div> 36 </div>
37 37
38 <% @node.available_layer_pairs.each do |pair| %> 38 <% @node.available_layer_pairs.each do |pair| %>
39 <div class="node_info_item"> 39 <div class="info_item">
40 <%= button_to "Diff #{pair.first.to_s.capitalize} vs. #{pair.last.to_s.capitalize}", 40 <%= button_to "Diff #{pair.first.to_s.capitalize} vs. #{pair.last.to_s.capitalize}",
41 diff_node_revisions_path(@node), 41 diff_node_revisions_path(@node),
42 method: :get, 42 method: :get,
@@ -47,13 +47,13 @@
47 47
48 <% unless locked_by_other %> 48 <% unless locked_by_other %>
49 <% if @node.draft && !@node.autosave && !@node.in_trash? && !@node.trash_node? %> 49 <% if @node.draft && !@node.autosave && !@node.in_trash? && !@node.trash_node? %>
50 <div class="node_info_item"> 50 <div class="info_item">
51 <%= button_to 'Publish', publish_node_path(@node), method: :put, 51 <%= button_to 'Publish', publish_node_path(@node), method: :put,
52 form: { data: { confirm: "Publish this draft?" }, class: 'button_to state_changing' } %> 52 form: { data: { confirm: "Publish this draft?" }, class: 'button_to state_changing' } %>
53 </div> 53 </div>
54 <% end %> 54 <% end %>
55 <% if @node.autosave || (@node.draft && @node.head) %> 55 <% if @node.autosave || (@node.draft && @node.head) %>
56 <div class="node_info_item"> 56 <div class="info_item">
57 <%= button_to revert_node_path(@node), method: :put, 57 <%= button_to revert_node_path(@node), method: :put,
58 params: { return_to: request.path }, 58 params: { return_to: request.path },
59 form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } do %> 59 form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } do %>
@@ -63,7 +63,7 @@
63 </div> 63 </div>
64 <% end %> 64 <% end %>
65 <% unless @node.trash_node? || @node.in_trash? || @node.root? %> 65 <% unless @node.trash_node? || @node.in_trash? || @node.root? %>
66 <div class="node_info_item"> 66 <div class="info_item">
67 <%= button_to trash_node_path(@node), method: :put, 67 <%= button_to trash_node_path(@node), method: :put,
68 form: { data: { confirm: "Move this page and everything beneath it to the Trash? All published content in it will go offline." }, class: 'button_to destructive' } do %> 68 form: { data: { confirm: "Move this page and everything beneath it to the Trash? All published content in it will go offline." }, class: 'button_to destructive' } do %>
69 <%= icon("trash", library: "tabler", "aria-hidden": true) %> 69 <%= icon("trash", library: "tabler", "aria-hidden": true) %>
@@ -80,17 +80,17 @@
80 </div> 80 </div>
81 81
82 <% if @node.in_trash? %> 82 <% if @node.in_trash? %>
83 <div class="node_description">Trash</div> 83 <div class="layout_row_label">Trash</div>
84 <div class="node_content node_info_group"> 84 <div class="layout_row_content info_group">
85 <div class="node_info_group_items"> 85 <div class="info_group_items">
86 <% if (entry = @node.last_trash_entry) && entry.metadata.dig("path", "from") %> 86 <% if (entry = @node.last_trash_entry) && entry.metadata.dig("path", "from") %>
87 <div class="node_info_item"> 87 <div class="info_item">
88 <span class="node_info_label">Was at</span> 88 <span class="info_label">Was at</span>
89 <%= entry.metadata.dig("path", "from") %> 89 <%= entry.metadata.dig("path", "from") %>
90 </div> 90 </div>
91 <% end %> 91 <% end %>
92 <div class="node_info_item"> 92 <div class="info_item">
93 <span class="node_info_label">Restore to</span> 93 <span class="info_label">Restore to</span>
94 <% suggestion = @node.suggested_restore_parent %> 94 <% suggestion = @node.suggested_restore_parent %>
95 <%= form_tag restore_from_trash_node_path(@node), :method => :put, :class => "aligned_action_row" do %> 95 <%= form_tag restore_from_trash_node_path(@node), :method => :put, :class => "aligned_action_row" do %>
96 <div class="restore_picker"> 96 <div class="restore_picker">
@@ -105,8 +105,8 @@
105 <span class="field_hint">Restored pages come back unpublished. Republish each page deliberately.</span> 105 <span class="field_hint">Restored pages come back unpublished. Republish each page deliberately.</span>
106 </div> 106 </div>
107 </div> 107 </div>
108 <div class="node_info_group_items"> 108 <div class="info_group_items">
109 <div class="node_info_item"> 109 <div class="info_item">
110 <% doomed_below = @node.descendants.count %> 110 <% doomed_below = @node.descendants.count %>
111 <%= button_to node_path(@node), method: :delete, 111 <%= button_to node_path(@node), method: :delete,
112 form: { data: { confirm: doomed_below > 0 ? 112 form: { data: { confirm: doomed_below > 0 ?
@@ -121,12 +121,12 @@
121 </div> 121 </div>
122 <% end %> 122 <% end %>
123 123
124 <div class="node_description">Translations</div> 124 <div class="layout_row_label">Translations</div>
125 <div class="node_content node_info_group"> 125 <div class="layout_row_content info_group">
126 <div class="node_info_group_items"> 126 <div class="info_group_items">
127 <% @translations.each do |t| %> 127 <% @translations.each do |t| %>
128 <div class="node_info_item"> 128 <div class="info_item">
129 <span class="node_info_label"><%= t[:locale].to_s.upcase %></span> 129 <span class="info_label"><%= t[:locale].to_s.upcase %></span>
130 <div class="aligned_action_row"> 130 <div class="aligned_action_row">
131 <% if t[:exists] %> 131 <% if t[:exists] %>
132 <%= link_to t[:title], node_translation_path(@node, t[:locale]) %> — updated <%= t[:updated_at] %> 132 <%= link_to t[:title], node_translation_path(@node, t[:locale]) %> — updated <%= t[:updated_at] %>
@@ -157,20 +157,20 @@
157 </div> 157 </div>
158 </div> 158 </div>
159 159
160 <div class="node_description">People</div> 160 <div class="layout_row_label">People</div>
161 <div class="node_content node_info_group"> 161 <div class="layout_row_content info_group">
162 <div class="node_info_group_items"> 162 <div class="info_group_items">
163 <div class="node_info_item"> 163 <div class="info_item">
164 <span class="node_info_label">Author</span> 164 <span class="info_label">Author</span>
165 <%= @page.user.try(:login) %> 165 <%= @page.user.try(:login) %>
166 </div> 166 </div>
167 <div class="node_info_item"> 167 <div class="info_item">
168 <span class="node_info_label">Editor</span> 168 <span class="info_label">Editor</span>
169 <%= @page.editor.try(:login) %> 169 <%= @page.editor.try(:login) %>
170 </div> 170 </div>
171 <% if @node.locked? %> 171 <% if @node.locked? %>
172 <div class="node_info_item"> 172 <div class="info_item">
173 <span class="node_info_label">Locked by</span> 173 <span class="info_label">Locked by</span>
174 <span class="warning"><%= @node.lock_owner.login %></span> 174 <span class="warning"><%= @node.lock_owner.login %></span>
175 <%= unlock_link %> 175 <%= unlock_link %>
176 </div> 176 </div>
@@ -178,36 +178,36 @@
178 </div> 178 </div>
179 </div> 179 </div>
180 180
181 <div class="node_description">Dates</div> 181 <div class="layout_row_label">Dates</div>
182 <div class="node_content node_info_group"> 182 <div class="layout_row_content info_group">
183 <div class="node_info_group_items"> 183 <div class="info_group_items">
184 <div class="node_info_item"> 184 <div class="info_item">
185 <span class="node_info_label">Last updated</span> 185 <span class="info_label">Last updated</span>
186 <%= @page.updated_at %> 186 <%= @page.updated_at %>
187 </div> 187 </div>
188 <% if @page.published_at.present? %> 188 <% if @page.published_at.present? %>
189 <div class="node_info_item"> 189 <div class="info_item">
190 <span class="node_info_label"><%= @page.public? ? 'Published at' : 'Will publish at' %></span> 190 <span class="info_label"><%= @page.public? ? 'Published at' : 'Will publish at' %></span>
191 <%= @page.published_at %> 191 <%= @page.published_at %>
192 </div> 192 </div>
193 <% end %> 193 <% end %>
194 </div> 194 </div>
195 </div> 195 </div>
196 196
197 <div class="node_description">Links</div> 197 <div class="layout_row_label">Links</div>
198 <div class="node_content node_info_group"> 198 <div class="layout_row_content info_group">
199 <div class="node_info_group_items"> 199 <div class="info_group_items">
200 <div class="node_info_item"> 200 <div class="info_item">
201 <span class="node_info_label">Public</span> 201 <span class="info_label">Public</span>
202 <%= link_to @page.public_link, content_url(@node.unique_path) %> 202 <%= link_to @page.public_link, content_url(@node.unique_path) %>
203 </div> 203 </div>
204 <% if @node.draft %> 204 <% if @node.draft %>
205 <div class="node_info_item"> 205 <div class="info_item">
206 <span class="node_info_label">Admin Preview</span> 206 <span class="info_label">Admin Preview</span>
207 <%= link_to preview_page_path(@node.draft), preview_page_path(@node.draft) %> 207 <%= link_to preview_page_path(@node.draft), preview_page_path(@node.draft) %>
208 </div> 208 </div>
209 <div class="node_info_item"> 209 <div class="info_item">
210 <span class="node_info_label">Public Preview</span> 210 <span class="info_label">Public Preview</span>
211 <% if @node.draft.preview_token.present? %> 211 <% if @node.draft.preview_token.present? %>
212 <div class="aligned_action_row"> 212 <div class="aligned_action_row">
213 <%= link_to shared_preview_path(token: @node.draft.preview_token), shared_preview_url(token: @node.draft.preview_token), target: "_blank", rel: "noopener" %> 213 <%= link_to shared_preview_path(token: @node.draft.preview_token), shared_preview_url(token: @node.draft.preview_token), target: "_blank", rel: "noopener" %>
@@ -221,8 +221,8 @@
221 </div> 221 </div>
222 </div> 222 </div>
223 223
224 <div class="node_description">History</div> 224 <div class="layout_row_label">History</div>
225 <div class="node_content node_info_group"> 225 <div class="layout_row_content info_group">
226 <details> 226 <details>
227 <summary> 227 <summary>
228 <%= pluralize(@node.pages.count, 'published revision', 'published revisions') %> 228 <%= pluralize(@node.pages.count, 'published revision', 'published revisions') %>
@@ -240,8 +240,8 @@
240 </div> 240 </div>
241 241
242 242
243 <div class="node_description">Tags</div> 243 <div class="layout_row_label">Tags</div>
244 <div class="node_content node_info_group"> 244 <div class="layout_row_content info_group">
245 <% if @page.tag_list.any? %> 245 <% if @page.tag_list.any? %>
246 <ul class="tag_pill_list"> 246 <ul class="tag_pill_list">
247 <% @page.tag_list.sort.each do |tag| %> 247 <% @page.tag_list.sort.each do |tag| %>
@@ -253,8 +253,8 @@
253 <% end %> 253 <% end %>
254 </div> 254 </div>
255 255
256 <div class="node_description">Attachments</div> 256 <div class="layout_row_label">Attachments</div>
257 <div class="node_content node_info_group"> 257 <div class="layout_row_content info_group">
258 <% if @page.assets.any? %> 258 <% if @page.assets.any? %>
259 <% headline_asset_id = @page.headline_asset&.id %> 259 <% headline_asset_id = @page.headline_asset&.id %>
260 <ul class="thumbnail_list"> 260 <ul class="thumbnail_list">
@@ -278,8 +278,8 @@
278 </p> 278 </p>
279 </div> 279 </div>
280 280
281 <div class="node_description">Events</div> 281 <div class="layout_row_label">Events</div>
282 <div class="node_content node_info_group"> 282 <div class="layout_row_content info_group">
283 <ul> 283 <ul>
284 <% @node.events.order(:start_time).each do |event| %> 284 <% @node.events.order(:start_time).each do |event| %>
285 <li> 285 <li>
@@ -299,8 +299,8 @@
299 299
300 <% matches = matching_node_kinds(@node) %> 300 <% matches = matching_node_kinds(@node) %>
301 <% if @node.children.any? || matches.any? %> 301 <% if @node.children.any? || matches.any? %>
302 <div class="node_description">Children</div> 302 <div class="layout_row_label">Children</div>
303 <div class="node_content node_info_group"> 303 <div class="layout_row_content info_group">
304 <% if @node.children.any? %> 304 <% if @node.children.any? %>
305 <details> 305 <details>
306 <summary><%= pluralize(@node.children.count, 'child', 'children') %></summary> 306 <summary><%= pluralize(@node.children.count, 'child', 'children') %></summary>
@@ -325,11 +325,11 @@
325 </div> 325 </div>
326 <% end %> 326 <% end %>
327 327
328 <div class="node_description">Abstract (<%= I18n.default_locale.to_s.upcase %>)</div> 328 <div class="layout_row_label">Abstract (<%= I18n.default_locale.to_s.upcase %>)</div>
329 <div class="node_content"><%= sanitize(@page.abstract) %></div> 329 <div class="layout_row_content"><%= sanitize(@page.abstract) %></div>
330 330
331 <div class="node_description">Body (<%= I18n.default_locale.to_s.upcase %>)</div> 331 <div class="layout_row_label">Body (<%= I18n.default_locale.to_s.upcase %>)</div>
332 <div class="node_content"><%= sanitize(@page.body) %></div> 332 <div class="layout_row_content"><%= sanitize(@page.body) %></div>
333 333
334 </div> 334 </div>
335</div> 335</div>