diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-24 18:04:56 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-24 18:04:56 +0200 |
| commit | 50ca5e40f461290a2db7452b95f80dd3188dba1d (patch) | |
| tree | 2d94b44463afa35ef6cab73b8aac70c38c4cc0bf /app/views/nodes/show.html.erb | |
| parent | d5883869e97244335370d54e21ef46b3f1885899 (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.erb | 138 |
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> |
