summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/views/assets/edit.html.erb46
-rw-r--r--app/views/assets/new.html.erb40
-rw-r--r--app/views/assets/show.html.erb44
-rw-r--r--app/views/events/edit.html.erb46
-rw-r--r--app/views/events/new.html.erb50
-rw-r--r--app/views/events/show.html.erb50
-rw-r--r--app/views/menu_items/edit.html.erb22
-rw-r--r--app/views/menu_items/new.html.erb18
-rw-r--r--app/views/nodes/edit.html.erb42
-rw-r--r--app/views/nodes/new.html.erb24
-rw-r--r--app/views/nodes/show.html.erb138
-rw-r--r--app/views/otp_challenges/new.html.erb6
-rw-r--r--app/views/otp_enrollments/show.html.erb10
-rw-r--r--app/views/page_translations/edit.html.erb14
-rw-r--r--app/views/page_translations/show.html.erb24
-rw-r--r--app/views/revisions/show.html.erb42
-rw-r--r--app/views/sessions/new.html.erb10
-rw-r--r--app/views/users/edit.html.erb34
-rw-r--r--app/views/users/new.html.erb26
-rw-r--r--app/views/users/show.html.erb22
20 files changed, 354 insertions, 354 deletions
diff --git a/app/views/assets/edit.html.erb b/app/views/assets/edit.html.erb
index d0a39aa3..46f8ed9f 100644
--- a/app/views/assets/edit.html.erb
+++ b/app/views/assets/edit.html.erb
@@ -1,34 +1,34 @@
1<div id="page_editor"> 1<div id="admin_layout">
2 <h1>Editing asset</h1> 2 <h1>Editing asset</h1>
3 3
4 <%= form_for(@asset, html: { multipart: true }) do |f| %> 4 <%= form_for(@asset, html: { multipart: true }) do |f| %>
5 <%= form_error_messages(f) %> 5 <%= form_error_messages(f) %>
6 6
7 <div id="content"> 7 <div id="content">
8 <div class="node_description"><%= f.label :name %></div> 8 <div class="layout_row_label"><%= f.label :name %></div>
9 <div class="node_content"><%= f.text_field :name %></div> 9 <div class="layout_row_content"><%= f.text_field :name %></div>
10 10
11 <% if @asset.upload.present? %> 11 <% if @asset.upload.present? %>
12 <div class="node_description">Current File</div> 12 <div class="layout_row_label">Current File</div>
13 <div class="node_content"><%= @asset.upload.url %> (<%= number_to_human_size(@asset.upload.size) %>)</div> 13 <div class="layout_row_content"><%= @asset.upload.url %> (<%= number_to_human_size(@asset.upload.size) %>)</div>
14 <% end %> 14 <% end %>
15 15
16 <div class="node_description"><%= f.label :upload, "Replace file" %></div> 16 <div class="layout_row_label"><%= f.label :upload, "Replace file" %></div>
17 <div class="node_content"> 17 <div class="layout_row_content">
18 <div id="asset_dropzone"> 18 <div id="asset_dropzone">
19 <%= f.file_field :upload %> 19 <%= f.file_field :upload %>
20 <p class="field_hint">…or drop a file here.</p> 20 <p class="field_hint">…or drop a file here.</p>
21 </div> 21 </div>
22 </div> 22 </div>
23 23
24 <div class="node_description"><%= f.label :creator %></div> 24 <div class="layout_row_label"><%= f.label :creator %></div>
25 <div class="node_content"><%= f.text_field :creator %></div> 25 <div class="layout_row_content"><%= f.text_field :creator %></div>
26 26
27 <div class="node_description"><%= f.label :source_url, "Source URL" %></div> 27 <div class="layout_row_label"><%= f.label :source_url, "Source URL" %></div>
28 <div class="node_content"><%= f.text_field :source_url %></div> 28 <div class="layout_row_content"><%= f.text_field :source_url %></div>
29 29
30 <div class="node_description"><%= f.label :license_key, "License" %></div> 30 <div class="layout_row_label"><%= f.label :license_key, "License" %></div>
31 <div class="node_content"> 31 <div class="layout_row_content">
32 <%= f.select :license_key, 32 <%= f.select :license_key,
33 options_for_select( 33 options_for_select(
34 [["— none —", ""]] + AssetLicense.keys.map { |key| [t("asset_licenses.#{key}"), key] }, 34 [["— none —", ""]] + AssetLicense.keys.map { |key| [t("asset_licenses.#{key}"), key] },
@@ -36,8 +36,8 @@
36 ) %> 36 ) %>
37 </div> 37 </div>
38 38
39 <div class="node_description">attach to page</div> 39 <div class="layout_row_label">attach to page</div>
40 <div class="node_content"> 40 <div class="layout_row_content">
41 <div class="restore_picker"> 41 <div class="restore_picker">
42 <%= text_field_tag :asset_node_search_term, @attach_node&.title, 42 <%= text_field_tag :asset_node_search_term, @attach_node&.title,
43 :placeholder => "Search for a page…", :autocomplete => "off" %> 43 :placeholder => "Search for a page…", :autocomplete => "off" %>
@@ -47,18 +47,18 @@
47 <span class="field_hint">Optional — attaches this asset to that page, all pending versions included.</span> 47 <span class="field_hint">Optional — attaches this asset to that page, all pending versions included.</span>
48 </div> 48 </div>
49 49
50 <div class="node_description"></div> 50 <div class="layout_row_label"></div>
51 <div class="node_content"> 51 <div class="layout_row_content">
52 <label><%= check_box_tag :headline, "1" %> attach as the page's headline</label> 52 <label><%= check_box_tag :headline, "1" %> attach as the page's headline</label>
53 <span class="field_hint">Applies only if the page has no headline yet.</span> 53 <span class="field_hint">Applies only if the page has no headline yet.</span>
54 </div> 54 </div>
55 55
56 <div class="node_description">Actions</div> 56 <div class="layout_row_label">Actions</div>
57 <div class="node_content node_info_group"> 57 <div class="layout_row_content info_group">
58 <div class="node_info_group_items"> 58 <div class="info_group_items">
59 <div class="node_info_item"><%= f.submit 'Update' %></div> 59 <div class="info_item"><%= f.submit 'Update' %></div>
60 <div class="node_info_item"><%= link_to 'Show', @asset %></div> 60 <div class="info_item"><%= link_to 'Show', @asset %></div>
61 <div class="node_info_item"><%= link_to 'Back', assets_path %></div> 61 <div class="info_item"><%= link_to 'Back', assets_path %></div>
62 </div> 62 </div>
63 </div> 63 </div>
64 </div> 64 </div>
diff --git a/app/views/assets/new.html.erb b/app/views/assets/new.html.erb
index 8a7a6094..7bb8a9ce 100644
--- a/app/views/assets/new.html.erb
+++ b/app/views/assets/new.html.erb
@@ -1,29 +1,29 @@
1<div id="page_editor"> 1<div id="admin_layout">
2 <h1>New asset</h1> 2 <h1>New asset</h1>
3 3
4 <%= form_for(@asset, :html => { :multipart => true }) do |f| %> 4 <%= form_for(@asset, :html => { :multipart => true }) do |f| %>
5 <%= form_error_messages(f) %> 5 <%= form_error_messages(f) %>
6 6
7 <div id="content"> 7 <div id="content">
8 <div class="node_description"><%= f.label :name %></div> 8 <div class="layout_row_label"><%= f.label :name %></div>
9 <div class="node_content"><%= f.text_field :name %></div> 9 <div class="layout_row_content"><%= f.text_field :name %></div>
10 10
11 <div class="node_description"><%= f.label :upload, "File" %></div> 11 <div class="layout_row_label"><%= f.label :upload, "File" %></div>
12 <div class="node_content"> 12 <div class="layout_row_content">
13 <div id="asset_dropzone"> 13 <div id="asset_dropzone">
14 <%= f.file_field :upload %> 14 <%= f.file_field :upload %>
15 <p class="field_hint">…or drop a file here.</p> 15 <p class="field_hint">…or drop a file here.</p>
16 </div> 16 </div>
17 </div> 17 </div>
18 18
19 <div class="node_description"><%= f.label :creator %></div> 19 <div class="layout_row_label"><%= f.label :creator %></div>
20 <div class="node_content"><%= f.text_field :creator %></div> 20 <div class="layout_row_content"><%= f.text_field :creator %></div>
21 21
22 <div class="node_description"><%= f.label :source_url, "Source URL" %></div> 22 <div class="layout_row_label"><%= f.label :source_url, "Source URL" %></div>
23 <div class="node_content"><%= f.text_field :source_url %></div> 23 <div class="layout_row_content"><%= f.text_field :source_url %></div>
24 24
25 <div class="node_description"><%= f.label :license_key, "License" %></div> 25 <div class="layout_row_label"><%= f.label :license_key, "License" %></div>
26 <div class="node_content"> 26 <div class="layout_row_content">
27 <%= f.select :license_key, 27 <%= f.select :license_key,
28 options_for_select( 28 options_for_select(
29 [["— none —", ""]] + AssetLicense.keys.map { |key| [t("asset_licenses.#{key}"), key] }, 29 [["— none —", ""]] + AssetLicense.keys.map { |key| [t("asset_licenses.#{key}"), key] },
@@ -31,8 +31,8 @@
31 ) %> 31 ) %>
32 </div> 32 </div>
33 33
34 <div class="node_description">attach to page</div> 34 <div class="layout_row_label">attach to page</div>
35 <div class="node_content"> 35 <div class="layout_row_content">
36 <div class="restore_picker"> 36 <div class="restore_picker">
37 <%= text_field_tag :asset_node_search_term, @attach_node&.title, 37 <%= text_field_tag :asset_node_search_term, @attach_node&.title,
38 :placeholder => "Search for a page…", :autocomplete => "off" %> 38 :placeholder => "Search for a page…", :autocomplete => "off" %>
@@ -42,17 +42,17 @@
42 <span class="field_hint">Optional — attaches this asset to that page, all pending versions included.</span> 42 <span class="field_hint">Optional — attaches this asset to that page, all pending versions included.</span>
43 </div> 43 </div>
44 44
45 <div class="node_description"></div> 45 <div class="layout_row_label"></div>
46 <div class="node_content"> 46 <div class="layout_row_content">
47 <label><%= check_box_tag :headline, "1" %> attach as the page's headline</label> 47 <label><%= check_box_tag :headline, "1" %> attach as the page's headline</label>
48 <span class="field_hint">Applies only if the page has no headline yet.</span> 48 <span class="field_hint">Applies only if the page has no headline yet.</span>
49 </div> 49 </div>
50 50
51 <div class="node_description">Actions</div> 51 <div class="layout_row_label">Actions</div>
52 <div class="node_content node_info_group"> 52 <div class="layout_row_content info_group">
53 <div class="node_info_group_items"> 53 <div class="info_group_items">
54 <div class="node_info_item"><%= f.submit 'Create' %></div> 54 <div class="info_item"><%= f.submit 'Create' %></div>
55 <div class="node_info_item"><%= link_to 'Back', assets_path %></div> 55 <div class="info_item"><%= link_to 'Back', assets_path %></div>
56 </div> 56 </div>
57 </div> 57 </div>
58 </div> 58 </div>
diff --git a/app/views/assets/show.html.erb b/app/views/assets/show.html.erb
index 122b44e4..4ec77dff 100644
--- a/app/views/assets/show.html.erb
+++ b/app/views/assets/show.html.erb
@@ -1,16 +1,16 @@
1<div id="page_editor"> 1<div id="admin_layout">
2 <h1><%= @asset.name %></h1> 2 <h1><%= @asset.name %></h1>
3 3
4 <div id="content"> 4 <div id="content">
5 <div class="node_description">Actions</div> 5 <div class="layout_row_label">Actions</div>
6 <div class="node_content node_info_group"> 6 <div class="layout_row_content info_group">
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 <%= link_to edit_asset_path(@asset), class: 'action_button' do %> 9 <%= link_to edit_asset_path(@asset), class: 'action_button' do %>
10 <%= icon("edit", library: "tabler", "aria-hidden": true) %> Edit 10 <%= icon("edit", library: "tabler", "aria-hidden": true) %> Edit
11 <% end %> 11 <% end %>
12 </div> 12 </div>
13 <div class="node_info_item"> 13 <div class="info_item">
14 <%= link_to 'Back', assets_path %> 14 <%= link_to 'Back', assets_path %>
15 </div> 15 </div>
16 <%= link_to admin_log_path(:asset_id => @asset.id), :class => "action_button" do %> 16 <%= link_to admin_log_path(:asset_id => @asset.id), :class => "action_button" do %>
@@ -20,12 +20,12 @@
20 </div> 20 </div>
21 21
22 <% if @asset.has_variant?(:medium) %> 22 <% if @asset.has_variant?(:medium) %>
23 <div class="node_description">Thumbnail</div> 23 <div class="layout_row_label">Thumbnail</div>
24 <div class="node_content"><%= image_tag @asset.upload.url(:medium), style: "max-width: 300px; max-height: 300px;" %></div> 24 <div class="layout_row_content"><%= image_tag @asset.upload.url(:medium), style: "max-width: 300px; max-height: 300px;" %></div>
25 <% end %> 25 <% end %>
26 26
27 <div class="node_description">Attached to</div> 27 <div class="layout_row_label">Attached to</div>
28 <div class="node_content"> 28 <div class="layout_row_content">
29 <% nodes = @asset.attached_nodes %> 29 <% nodes = @asset.attached_nodes %>
30 <% if nodes.any? %> 30 <% if nodes.any? %>
31 <ul class="search_results_list"> 31 <ul class="search_results_list">
@@ -49,8 +49,8 @@
49 <% end %> 49 <% end %>
50 </div> 50 </div>
51 51
52 <div class="node_description">Public Path</div> 52 <div class="layout_row_label">Public Path</div>
53 <div class="node_content"> 53 <div class="layout_row_content">
54 <% public_path = @asset.upload.url.sub(/\?\d+$/, "") %> 54 <% public_path = @asset.upload.url.sub(/\?\d+$/, "") %>
55 <%= link_to public_path, public_path, target: "_blank", rel: "noopener" %> 55 <%= link_to public_path, public_path, target: "_blank", rel: "noopener" %>
56 <button type="button" class="action_button copy_button" 56 <button type="button" class="action_button copy_button"
@@ -60,11 +60,11 @@
60 </button> 60 </button>
61 </div> 61 </div>
62 62
63 <div class="node_description">Creator</div> 63 <div class="layout_row_label">Creator</div>
64 <div class="node_content"><%= @asset.creator.presence || "—" %></div> 64 <div class="layout_row_content"><%= @asset.creator.presence || "—" %></div>
65 65
66 <div class="node_description">Source</div> 66 <div class="layout_row_label">Source</div>
67 <div class="node_content"> 67 <div class="layout_row_content">
68 <% if @asset.source_url.present? %> 68 <% if @asset.source_url.present? %>
69 <%= link_to @asset.source_url, @asset.source_url %> 69 <%= link_to @asset.source_url, @asset.source_url %>
70 <% else %> 70 <% else %>
@@ -72,8 +72,8 @@
72 <% end %> 72 <% end %>
73 </div> 73 </div>
74 74
75 <div class="node_description">License</div> 75 <div class="layout_row_label">License</div>
76 <div class="node_content"> 76 <div class="layout_row_content">
77 <% if (license = AssetLicense.find(@asset.license_key)) %> 77 <% if (license = AssetLicense.find(@asset.license_key)) %>
78 <%= t("asset_licenses.#{license.key}") %> 78 <%= t("asset_licenses.#{license.key}") %>
79 <% else %> 79 <% else %>
@@ -81,10 +81,10 @@
81 <% end %> 81 <% end %>
82 </div> 82 </div>
83 83
84 <div class="node_description">Content Type</div> 84 <div class="layout_row_label">Content Type</div>
85 <div class="node_content"><%= @asset.upload.content_type %></div> 85 <div class="layout_row_content"><%= @asset.upload.content_type %></div>
86 86
87 <div class="node_description">Size</div> 87 <div class="layout_row_label">Size</div>
88 <div class="node_content"><%= "#{@asset.upload.size/1024} KB" %></div> 88 <div class="layout_row_content"><%= "#{@asset.upload.size/1024} KB" %></div>
89 </div> 89 </div>
90</div> 90</div>
diff --git a/app/views/events/edit.html.erb b/app/views/events/edit.html.erb
index 4532ff29..5d7f613e 100644
--- a/app/views/events/edit.html.erb
+++ b/app/views/events/edit.html.erb
@@ -12,10 +12,10 @@
12 <%= hidden_field_tag :return_to, @return_to %> 12 <%= hidden_field_tag :return_to, @return_to %>
13 <%= form_error_messages(f) %> 13 <%= form_error_messages(f) %>
14 14
15 <div id="page_editor"> 15 <div id="admin_layout">
16 <div id="content"> 16 <div id="content">
17 <div class="node_description">Node</div> 17 <div class="layout_row_label">Node</div>
18 <div class="node_content"> 18 <div class="layout_row_content">
19 <% if @event.node %> 19 <% if @event.node %>
20 <%= link_to @event.node.title, node_path(@event.node) %> 20 <%= link_to @event.node.title, node_path(@event.node) %>
21 <details> 21 <details>
@@ -32,40 +32,40 @@
32 <%= f.hidden_field :node_id %> 32 <%= f.hidden_field :node_id %>
33 </div> 33 </div>
34 34
35 <div class="node_description">Start time</div> 35 <div class="layout_row_label">Start time</div>
36 <div class="node_content"><%= f.datetime_select :start_time %></div> 36 <div class="layout_row_content"><%= f.datetime_select :start_time %></div>
37 37
38 <div class="node_description">End time</div> 38 <div class="layout_row_label">End time</div>
39 <div class="node_content"><%= f.datetime_select :end_time %></div> 39 <div class="layout_row_content"><%= f.datetime_select :end_time %></div>
40 40
41 <div class="node_description">Recurrence</div> 41 <div class="layout_row_label">Recurrence</div>
42 <div class="node_content"> 42 <div class="layout_row_content">
43 <%= render "rrule_builder", f: f %> 43 <%= render "rrule_builder", f: f %>
44 </div> 44 </div>
45 45
46 <div class="node_description">Title</div> 46 <div class="layout_row_label">Title</div>
47 <div class="node_content"> 47 <div class="layout_row_content">
48 <%= f.text_field :title %> 48 <%= f.text_field :title %>
49 <span id="event_title_hint" class="field_hint">Optional — if left blank, the associated node's title is used.</span> 49 <span id="event_title_hint" class="field_hint">Optional — if left blank, the associated node's title is used.</span>
50 </div> 50 </div>
51 51
52 <div class="node_description">Tags</div> 52 <div class="layout_row_label">Tags</div>
53 <div class="node_content"><%= f.text_field :tag_list %></div> 53 <div class="layout_row_content"><%= f.text_field :tag_list %></div>
54 54
55 <div class="node_description">Allday</div> 55 <div class="layout_row_label">Allday</div>
56 <div class="node_content"><%= f.check_box :allday %></div> 56 <div class="layout_row_content"><%= f.check_box :allday %></div>
57 57
58 <div class="node_description">Url</div> 58 <div class="layout_row_label">Url</div>
59 <div class="node_content"><%= f.text_field :url %></div> 59 <div class="layout_row_content"><%= f.text_field :url %></div>
60 60
61 <div class="node_description">Latitude</div> 61 <div class="layout_row_label">Latitude</div>
62 <div class="node_content"><%= f.text_field :latitude %></div> 62 <div class="layout_row_content"><%= f.text_field :latitude %></div>
63 63
64 <div class="node_description">Longitude</div> 64 <div class="layout_row_label">Longitude</div>
65 <div class="node_content"><%= f.text_field :longitude %></div> 65 <div class="layout_row_content"><%= f.text_field :longitude %></div>
66 66
67 <div class="node_description"></div> 67 <div class="layout_row_label"></div>
68 <div class="node_content"><%= f.submit 'Update' %></div> 68 <div class="layout_row_content"><%= f.submit 'Update' %></div>
69 </div> 69 </div>
70 </div> 70 </div>
71<% end %> 71<% end %>
diff --git a/app/views/events/new.html.erb b/app/views/events/new.html.erb
index 028fce73..6472f207 100644
--- a/app/views/events/new.html.erb
+++ b/app/views/events/new.html.erb
@@ -5,51 +5,51 @@
5<%= form_for(@event) do |f| %> 5<%= form_for(@event) do |f| %>
6 <%= form_error_messages(f) %> 6 <%= form_error_messages(f) %>
7 7
8 <div id="page_editor"> 8 <div id="admin_layout">
9 <div id="content"> 9 <div id="content">
10 <div class="node_description">Node</div> 10 <div class="layout_row_label">Node</div>
11 <div class="node_content"> 11 <div class="layout_row_content">
12 <%= text_field_tag :event_node_search_term %> 12 <%= text_field_tag :event_node_search_term %>
13 <div id="event_search_results" class="search_results"></div> 13 <div id="event_search_results" class="search_results"></div>
14 <%= f.hidden_field :node_id %> 14 <%= f.hidden_field :node_id %>
15 <span class="field_hint">Optional — search and pick a node to associate this event with a page.</span> 15 <span class="field_hint">Optional — search and pick a node to associate this event with a page.</span>
16 </div> 16 </div>
17 17
18 <div class="node_description">Start time</div> 18 <div class="layout_row_label">Start time</div>
19 <div class="node_content"><%= f.datetime_select :start_time %></div> 19 <div class="layout_row_content"><%= f.datetime_select :start_time %></div>
20 20
21 <div class="node_description">End time</div> 21 <div class="layout_row_label">End time</div>
22 <div class="node_content"><%= f.datetime_select :end_time %></div> 22 <div class="layout_row_content"><%= f.datetime_select :end_time %></div>
23 23
24 <div class="node_description">Recurrence</div> 24 <div class="layout_row_label">Recurrence</div>
25 <div class="node_content"><%= render "rrule_builder", f: f %></div> 25 <div class="layout_row_content"><%= render "rrule_builder", f: f %></div>
26 26
27 <div class="node_description">Title</div> 27 <div class="layout_row_label">Title</div>
28 <div class="node_content"> 28 <div class="layout_row_content">
29 <%= f.text_field :title %> 29 <%= f.text_field :title %>
30 <span id="event_title_hint" class="field_hint">Optional — if left blank, the associated node's title is used.</span> 30 <span id="event_title_hint" class="field_hint">Optional — if left blank, the associated node's title is used.</span>
31 </div> 31 </div>
32 32
33 <div class="node_description">Tags</div> 33 <div class="layout_row_label">Tags</div>
34 <div class="node_content"><%= f.text_field :tag_list %></div> 34 <div class="layout_row_content"><%= f.text_field :tag_list %></div>
35 35
36 <div class="node_description">Allday</div> 36 <div class="layout_row_label">Allday</div>
37 <div class="node_content"><%= f.check_box :allday %></div> 37 <div class="layout_row_content"><%= f.check_box :allday %></div>
38 38
39 <div class="node_description">Url</div> 39 <div class="layout_row_label">Url</div>
40 <div class="node_content"><%= f.text_field :url %></div> 40 <div class="layout_row_content"><%= f.text_field :url %></div>
41 41
42 <div class="node_description">Latitude</div> 42 <div class="layout_row_label">Latitude</div>
43 <div class="node_content"><%= f.text_field :latitude %></div> 43 <div class="layout_row_content"><%= f.text_field :latitude %></div>
44 44
45 <div class="node_description">Longitude</div> 45 <div class="layout_row_label">Longitude</div>
46 <div class="node_content"><%= f.text_field :longitude %></div> 46 <div class="layout_row_content"><%= f.text_field :longitude %></div>
47 47
48 <div class="node_description"></div> 48 <div class="layout_row_label"></div>
49 <div class="node_content"><%= hidden_field_tag :return_to, params[:return_to] %></div> 49 <div class="layout_row_content"><%= hidden_field_tag :return_to, params[:return_to] %></div>
50 50
51 <div class="node_description"></div> 51 <div class="layout_row_label"></div>
52 <div class="node_content"><%= f.submit 'Create' %></div> 52 <div class="layout_row_content"><%= f.submit 'Create' %></div>
53 </div> 53 </div>
54 </div> 54 </div>
55<% end %> 55<% end %>
diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb
index ac084c92..0bf14e8b 100644
--- a/app/views/events/show.html.erb
+++ b/app/views/events/show.html.erb
@@ -1,21 +1,21 @@
1<div id="page_editor" class="show_node"> 1<div id="admin_layout" class="show_node">
2 <h1><%= @event.node ? "Event for node #{@event.node.unique_name}" : "Event" %></h1> 2 <h1><%= @event.node ? "Event for node #{@event.node.unique_name}" : "Event" %></h1>
3 3
4 <div id="content"> 4 <div id="content">
5 <div class="node_description">Actions</div> 5 <div class="layout_row_label">Actions</div>
6 <div class="node_content node_info_group"> 6 <div class="layout_row_content info_group">
7 <div class="node_info_group_items"> 7 <div class="info_group_items">
8 <% if @event.node %> 8 <% if @event.node %>
9 <div class="node_info_item"> 9 <div class="info_item">
10 <%= link_to 'Node', node_path(@event.node) %> 10 <%= link_to 'Node', node_path(@event.node) %>
11 </div> 11 </div>
12 <% end %> 12 <% end %>
13 <div class="node_info_item"> 13 <div class="info_item">
14 <%= link_to edit_event_path(@event, return_to: request.path), class: 'action_button' do %> 14 <%= link_to edit_event_path(@event, return_to: request.path), class: 'action_button' do %>
15 <%= icon("edit", library: "tabler", "aria-hidden": true) %> Edit 15 <%= icon("edit", library: "tabler", "aria-hidden": true) %> Edit
16 <% end %> 16 <% end %>
17 </div> 17 </div>
18 <div class="node_info_item"> 18 <div class="info_item">
19 <%= button_to event_path(@event), method: :delete, form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } do %> 19 <%= button_to event_path(@event), method: :delete, form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } do %>
20 <%= icon("trash", library: "tabler", "aria-hidden": true) %> Destroy 20 <%= icon("trash", library: "tabler", "aria-hidden": true) %> Destroy
21 <% end %> 21 <% end %>
@@ -23,33 +23,33 @@
23 </div> 23 </div>
24 </div> 24 </div>
25 25
26 <div class="node_description">Start time</div> 26 <div class="layout_row_label">Start time</div>
27 <div class="node_content"><%=h @event.start_time %></div> 27 <div class="layout_row_content"><%=h @event.start_time %></div>
28 28
29 <div class="node_description">End time</div> 29 <div class="layout_row_label">End time</div>
30 <div class="node_content"><%=h @event.end_time %></div> 30 <div class="layout_row_content"><%=h @event.end_time %></div>
31 31
32 <div class="node_description">Rrule</div> 32 <div class="layout_row_label">Rrule</div>
33 <div class="node_content"><%=h @event.rrule %></div> 33 <div class="layout_row_content"><%=h @event.rrule %></div>
34 34
35 <% if (human = @event.humanize_rrule(I18n.locale)) %> 35 <% if (human = @event.humanize_rrule(I18n.locale)) %>
36 <div class="node_description">Recurrence</div> 36 <div class="layout_row_label">Recurrence</div>
37 <div class="node_content"><em><%= human %></em></div> 37 <div class="layout_row_content"><em><%= human %></em></div>
38 <% end %> 38 <% end %>
39 39
40 <div class="node_description">Tags</div> 40 <div class="layout_row_label">Tags</div>
41 <div class="node_content"><%=h @event.tag_list %></div> 41 <div class="layout_row_content"><%=h @event.tag_list %></div>
42 42
43 <div class="node_description">Allday</div> 43 <div class="layout_row_label">Allday</div>
44 <div class="node_content"><%=h @event.allday %></div> 44 <div class="layout_row_content"><%=h @event.allday %></div>
45 45
46 <div class="node_description">Url</div> 46 <div class="layout_row_label">Url</div>
47 <div class="node_content"><%=h @event.url %></div> 47 <div class="layout_row_content"><%=h @event.url %></div>
48 48
49 <div class="node_description">Latitude</div> 49 <div class="layout_row_label">Latitude</div>
50 <div class="node_content"><%=h @event.latitude %></div> 50 <div class="layout_row_content"><%=h @event.latitude %></div>
51 51
52 <div class="node_description">Longitude</div> 52 <div class="layout_row_label">Longitude</div>
53 <div class="node_content"><%=h @event.longitude %></div> 53 <div class="layout_row_content"><%=h @event.longitude %></div>
54 </div> 54 </div>
55</div> 55</div>
diff --git a/app/views/menu_items/edit.html.erb b/app/views/menu_items/edit.html.erb
index 44e5a791..89854c93 100644
--- a/app/views/menu_items/edit.html.erb
+++ b/app/views/menu_items/edit.html.erb
@@ -1,25 +1,25 @@
1<h1>Edit Menu Item</h1> 1<h1>Edit Menu Item</h1>
2 2
3<div id="page_editor"> 3<div id="admin_layout">
4 <%= form_for @menu_item do |f| %> 4 <%= form_for @menu_item do |f| %>
5 <div id="content"> 5 <div id="content">
6 <div class="node_description">Search</div> 6 <div class="layout_row_label">Search</div>
7 <div class="node_content"> 7 <div class="layout_row_content">
8 <%= text_field_tag :menu_search_term %> 8 <%= text_field_tag :menu_search_term %>
9 <div id="menu_item_search_results" class="search_results"></div> 9 <div id="menu_item_search_results" class="search_results"></div>
10 </div> 10 </div>
11 11
12 <div class="node_description">Node Id</div> 12 <div class="layout_row_label">Node Id</div>
13 <div class="node_content"><%= f.text_field :node_id %></div> 13 <div class="layout_row_content"><%= f.text_field :node_id %></div>
14 14
15 <div class="node_description">Path</div> 15 <div class="layout_row_label">Path</div>
16 <div class="node_content"><%= f.text_field :path %></div> 16 <div class="layout_row_content"><%= f.text_field :path %></div>
17 17
18 <div class="node_description">Title</div> 18 <div class="layout_row_label">Title</div>
19 <div class="node_content"><%= f.text_field :title %></div> 19 <div class="layout_row_content"><%= f.text_field :title %></div>
20 20
21 <div class="node_description"></div> 21 <div class="layout_row_label"></div>
22 <div class="node_content"><%= f.submit 'Update' %></div> 22 <div class="layout_row_content"><%= f.submit 'Update' %></div>
23 <% end %> 23 <% end %>
24 </div> 24 </div>
25</div> 25</div>
diff --git a/app/views/menu_items/new.html.erb b/app/views/menu_items/new.html.erb
index 89572939..408ba7bd 100644
--- a/app/views/menu_items/new.html.erb
+++ b/app/views/menu_items/new.html.erb
@@ -1,20 +1,20 @@
1<h1>Add Menu Item</h1> 1<h1>Add Menu Item</h1>
2 2
3<%= form_for @menu_item do |f| %> 3<%= form_for @menu_item do |f| %>
4 <div class="node_description">Search</div> 4 <div class="layout_row_label">Search</div>
5 <div class="node_content"> 5 <div class="layout_row_content">
6 <%= text_field_tag :menu_search_term %> 6 <%= text_field_tag :menu_search_term %>
7 <div id="menu_item_search_results" class="search_results"></div> 7 <div id="menu_item_search_results" class="search_results"></div>
8 </div> 8 </div>
9 9
10 <div class="node_description">Node Id</div> 10 <div class="layout_row_label">Node Id</div>
11 <div class="node_content"><%= f.text_field :node_id %></div> 11 <div class="layout_row_content"><%= f.text_field :node_id %></div>
12 12
13 <div class="node_description">Path</div> 13 <div class="layout_row_label">Path</div>
14 <div class="node_content"><%= f.text_field :path %></div> 14 <div class="layout_row_content"><%= f.text_field :path %></div>
15 15
16 <div class="node_description">Title</div> 16 <div class="layout_row_label">Title</div>
17 <div class="node_content"><%= f.text_field :title %></div> 17 <div class="layout_row_content"><%= f.text_field :title %></div>
18 18
19 <div class="node_content"><%= f.submit 'Create' %></div> 19 <div class="layout_row_content"><%= f.submit 'Create' %></div>
20<% end %> 20<% end %>
diff --git a/app/views/nodes/edit.html.erb b/app/views/nodes/edit.html.erb
index 55397d42..4d58e62c 100644
--- a/app/views/nodes/edit.html.erb
+++ b/app/views/nodes/edit.html.erb
@@ -25,7 +25,7 @@
25 <%= link_to "Preview ↗", preview_page_path(@page), target: "_blank", rel: "noopener", class: "preview_link" %> 25 <%= link_to "Preview ↗", preview_page_path(@page), target: "_blank", rel: "noopener", class: "preview_link" %>
26</div> 26</div>
27 27
28<div id="page_editor"> 28<div id="admin_layout">
29 <%= form_for(@node, html: { data: { autosave_url: autosave_node_path(@node), show_url: node_path(@node) } }) do |f| %> 29 <%= form_for(@node, html: { data: { autosave_url: autosave_node_path(@node), show_url: node_path(@node) } }) do |f| %>
30 <% if @node.errors.any? %> 30 <% if @node.errors.any? %>
31 <div class="error_messages"> 31 <div class="error_messages">
@@ -37,14 +37,14 @@
37 <div id="edit_grid"> 37 <div id="edit_grid">
38 38
39 <div id="main_fields"> 39 <div id="main_fields">
40 <div class="node_description">Title</div> 40 <div class="layout_row_label">Title</div>
41 <div class="node_content"><%= d.text_field :title %></div> 41 <div class="layout_row_content"><%= d.text_field :title %></div>
42 42
43 <div class="node_description">Abstract</div> 43 <div class="layout_row_label">Abstract</div>
44 <div class="node_content"><%= d.text_area :abstract %></div> 44 <div class="layout_row_content"><%= d.text_area :abstract %></div>
45 45
46 <div class="node_description">Attachments</div> 46 <div class="layout_row_label">Attachments</div>
47 <div class="node_content"> 47 <div class="layout_row_content">
48 <div id="related_assets" 48 <div id="related_assets"
49 data-search-url="<%= search_node_related_assets_path(@node) %>" 49 data-search-url="<%= search_node_related_assets_path(@node) %>"
50 data-create-url="<%= node_related_assets_path(@node) %>"> 50 data-create-url="<%= node_related_assets_path(@node) %>">
@@ -94,16 +94,16 @@
94 <details id="metadata_details"> 94 <details id="metadata_details">
95 <summary>Metadata (slug, parent, tags, template, author, images)</summary> 95 <summary>Metadata (slug, parent, tags, template, author, images)</summary>
96 <div id="metadata"> 96 <div id="metadata">
97 <div class="node_description">Slug</div> 97 <div class="layout_row_label">Slug</div>
98 <div class="node_content"> 98 <div class="layout_row_content">
99 <%= f.text_field( 99 <%= f.text_field(
100 :staged_slug, :value => @node.staged_slug || @node.slug 100 :staged_slug, :value => @node.staged_slug || @node.slug
101 ) 101 )
102 %> 102 %>
103 </div> 103 </div>
104 104
105 <div class="node_description">parent</div> 105 <div class="layout_row_label">parent</div>
106 <div class="node_content"> 106 <div class="layout_row_content">
107 <%= text_field_tag :move_to_search_term, @node.parent.title rescue "" %> 107 <%= text_field_tag :move_to_search_term, @node.parent.title rescue "" %>
108 <p class="field_hint">Start typing to find a new parent for this node.</p> 108 <p class="field_hint">Start typing to find a new parent for this node.</p>
109 <div id="move_to_search_results" class="search_results"></div> 109 <div id="move_to_search_results" class="search_results"></div>
@@ -114,23 +114,23 @@
114 %> 114 %>
115 </div> 115 </div>
116 116
117 <div class="node_description">Tags</div> 117 <div class="layout_row_label">Tags</div>
118 <div class="node_content"> 118 <div class="layout_row_content">
119 <%= text_field_tag :tag_list, @page.tag_list.join(', ') %> 119 <%= text_field_tag :tag_list, @page.tag_list.join(', ') %>
120 <span class="field_hint">Comma separated, lowercase.</span> 120 <span class="field_hint">Comma separated, lowercase.</span>
121 </div> 121 </div>
122 122
123 <div class="node_description">Publish at</div> 123 <div class="layout_row_label">Publish at</div>
124 <div class="node_content"><%= d.datetime_select :published_at, :value => @page.published_at %></div> 124 <div class="layout_row_content"><%= d.datetime_select :published_at, :value => @page.published_at %></div>
125 125
126 <div class="node_description">Template</div> 126 <div class="layout_row_label">Template</div>
127 <div class="node_content"> 127 <div class="layout_row_content">
128 <%= d.select :template_name, custom_page_templates, {:prompt => 'Select Template'} %> 128 <%= d.select :template_name, custom_page_templates, {:prompt => 'Select Template'} %>
129 <span class="field_hint">Set automatically based on how this node was created - change it if needed.</span> 129 <span class="field_hint">Set automatically based on how this node was created - change it if needed.</span>
130 </div> 130 </div>
131 131
132 <div class="node_description">Author</div> 132 <div class="layout_row_label">Author</div>
133 <div class="node_content"> 133 <div class="layout_row_content">
134 <%= d.select :user_id, user_list, 134 <%= d.select :user_id, user_list,
135 :selected => @page.user_id || @node.draft&.user_id || @node.head&.user_id %> 135 :selected => @page.user_id || @node.draft&.user_id || @node.head&.user_id %>
136 </div> 136 </div>
@@ -139,7 +139,7 @@
139 </details> 139 </details>
140 140
141 <div id="content"> 141 <div id="content">
142 <div class="node_description">Body</div> 142 <div class="layout_row_label">Body</div>
143 <div class="body_toolbar_row"> 143 <div class="body_toolbar_row">
144 <button type="button" id="preview_toggle" class="view_toggle" aria-pressed="false" aria-label="Toggle live preview" title="Toggle live preview"> 144 <button type="button" id="preview_toggle" class="view_toggle" aria-pressed="false" aria-label="Toggle live preview" title="Toggle live preview">
145 <%= icon("layout-sidebar-right", library: "tabler", "aria-hidden": true) %> <span>Live preview</span> 145 <%= icon("layout-sidebar-right", library: "tabler", "aria-hidden": true) %> <span>Live preview</span>
@@ -151,7 +151,7 @@
151 151
152 <div id="editor_and_preview"> 152 <div id="editor_and_preview">
153 <div class="preview_content"> 153 <div class="preview_content">
154 <div class="node_content"><%= d.text_area :body, :class => 'with_editor' %></div> 154 <div class="layout_row_content"><%= d.text_area :body, :class => 'with_editor' %></div>
155 </div> 155 </div>
156 <div id="preview_panel" style="display:none"> 156 <div id="preview_panel" style="display:none">
157 <iframe id="live_preview_iframe" title="Live preview" data-src="<%= preview_page_path(@page, :locale => I18n.default_locale) %>"></iframe> 157 <iframe id="live_preview_iframe" title="Live preview" data-src="<%= preview_page_path(@page, :locale => I18n.default_locale) %>"></iframe>
diff --git a/app/views/nodes/new.html.erb b/app/views/nodes/new.html.erb
index 1303e9ed..f9efbf50 100644
--- a/app/views/nodes/new.html.erb
+++ b/app/views/nodes/new.html.erb
@@ -9,8 +9,8 @@
9<%= form_tag nodes_path do %> 9<%= form_tag nodes_path do %>
10<div id="new_node"> 10<div id="new_node">
11 11
12 <div class="node_description">Type</div> 12 <div class="layout_row_label">Type</div>
13 <div class="node_content"> 13 <div class="layout_row_content">
14 <% CccConventions::NODE_KINDS.each do |kind, config| %> 14 <% CccConventions::NODE_KINDS.each do |kind, config| %>
15 <p> 15 <p>
16 <%= radio_button_tag :kind, kind, kind == @selected_kind, 16 <%= radio_button_tag :kind, kind, kind == @selected_kind,
@@ -23,23 +23,23 @@
23 <% end %> 23 <% end %>
24 </div> 24 </div>
25 25
26 <div class="node_description">Title</div> 26 <div class="layout_row_label">Title</div>
27 <div class="node_content"> 27 <div class="layout_row_content">
28 <%= text_field_tag :title, nil, required: true %> 28 <%= text_field_tag :title, nil, required: true %>
29 <span class="field_hint">A URL slug will be generated from this automatically. You can review or adjust it afterward under the "metadata" section's Slug field.</span> 29 <span class="field_hint">A URL slug will be generated from this automatically. You can review or adjust it afterward under the "metadata" section's Slug field.</span>
30 </div> 30 </div>
31 31
32 <div id="parent_search_field" style="<%= @selected_kind == "generic" ? "" : "display: none;" %>"> 32 <div id="parent_search_field" style="<%= @selected_kind == "generic" ? "" : "display: none;" %>">
33 <div class="node_description">Parent</div> 33 <div class="layout_row_label">Parent</div>
34 <div class="node_content"> 34 <div class="layout_row_content">
35 <%= text_field_tag :parent_search_term, @parent&.title %> 35 <%= text_field_tag :parent_search_term, @parent&.title %>
36 <%= hidden_field_tag :parent_id, @parent&.id, data: { unique_name: @parent&.computed_unique_name } %> 36 <%= hidden_field_tag :parent_id, @parent&.id, data: { unique_name: @parent&.computed_unique_name } %>
37 <div id="parent_search_results" class="search_results"></div> 37 <div id="parent_search_results" class="search_results"></div>
38 </div> 38 </div>
39 </div> 39 </div>
40 40
41 <div class="node_description">Resulting path</div> 41 <div class="layout_row_label">Resulting path</div>
42 <div class="node_content"> 42 <div class="layout_row_content">
43 <span id="resulting_path">—</span> 43 <span id="resulting_path">—</span>
44 <button type="button" id="copy_resulting_path" class="unselected copy_button" data-copy-target="#resulting_path"> 44 <button type="button" id="copy_resulting_path" class="unselected copy_button" data-copy-target="#resulting_path">
45 <span class="copy_button_label">copy</span> 45 <span class="copy_button_label">copy</span>
@@ -49,8 +49,8 @@
49 </div> 49 </div>
50 50
51 <% if @attach_asset %> 51 <% if @attach_asset %>
52 <div class="node_description">attachment</div> 52 <div class="layout_row_label">attachment</div>
53 <div class="node_content"> 53 <div class="layout_row_content">
54 <ul class="thumbnail_list"> 54 <ul class="thumbnail_list">
55 <li> 55 <li>
56 <% if @attach_asset.has_variant?(:thumb) %> 56 <% if @attach_asset.has_variant?(:thumb) %>
@@ -66,8 +66,8 @@
66 </div> 66 </div>
67 <% end %> 67 <% end %>
68 68
69 <div class="node_description"></div> 69 <div class="layout_row_label"></div>
70 <div class="node_content"><%= submit_tag "Create" %></div> 70 <div class="layout_row_content"><%= submit_tag "Create" %></div>
71 71
72</div> 72</div>
73<% end %> 73<% end %>
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>
diff --git a/app/views/otp_challenges/new.html.erb b/app/views/otp_challenges/new.html.erb
index b0d204fb..d6e18c85 100644
--- a/app/views/otp_challenges/new.html.erb
+++ b/app/views/otp_challenges/new.html.erb
@@ -1,8 +1,8 @@
1<h1>Second factor</h1> 1<h1>Second factor</h1>
2 2
3<div id="page_editor"> 3<div id="admin_layout">
4 <div class="node_description">Code</div> 4 <div class="layout_row_label">Code</div>
5 <div class="node_content"> 5 <div class="layout_row_content">
6 <%= form_tag otp_challenge_path, :method => :post, :class => "otp_form" do %> 6 <%= form_tag otp_challenge_path, :method => :post, :class => "otp_form" do %>
7 <%= text_field_tag :code, nil, :autofocus => true, 7 <%= text_field_tag :code, nil, :autofocus => true,
8 :autocomplete => "one-time-code", :inputmode => "numeric" %> 8 :autocomplete => "one-time-code", :inputmode => "numeric" %>
diff --git a/app/views/otp_enrollments/show.html.erb b/app/views/otp_enrollments/show.html.erb
index 90c42b59..12067ae3 100644
--- a/app/views/otp_enrollments/show.html.erb
+++ b/app/views/otp_enrollments/show.html.erb
@@ -1,8 +1,8 @@
1<h1>Enable second factor</h1> 1<h1>Enable second factor</h1>
2 2
3<div id="page_editor"> 3<div id="admin_layout">
4 <div class="node_description">Scan</div> 4 <div class="layout_row_label">Scan</div>
5 <div class="node_content"> 5 <div class="layout_row_content">
6 <div class="otp_qr"> 6 <div class="otp_qr">
7 <%= raw RQRCode::QRCode.new(current_user.pending_otp_provisioning_uri) 7 <%= raw RQRCode::QRCode.new(current_user.pending_otp_provisioning_uri)
8 .as_svg(:module_size => 4, :viewbox => true, 8 .as_svg(:module_size => 4, :viewbox => true,
@@ -11,8 +11,8 @@
11 <span class="field_hint">Or enter the secret manually: <code><%= current_user.otp_pending_secret %></code></span> 11 <span class="field_hint">Or enter the secret manually: <code><%= current_user.otp_pending_secret %></code></span>
12 </div> 12 </div>
13 13
14 <div class="node_description">Confirm</div> 14 <div class="layout_row_label">Confirm</div>
15 <div class="node_content"> 15 <div class="layout_row_content">
16 <%= form_tag otp_enrollment_path, :method => :put, :class => "otp_form" do %> 16 <%= form_tag otp_enrollment_path, :method => :put, :class => "otp_form" do %>
17 <%= text_field_tag :code, nil, :autofocus => true, 17 <%= text_field_tag :code, nil, :autofocus => true,
18 :autocomplete => "one-time-code", :inputmode => "numeric" %> 18 :autocomplete => "one-time-code", :inputmode => "numeric" %>
diff --git a/app/views/page_translations/edit.html.erb b/app/views/page_translations/edit.html.erb
index 00bf221e..2b2ce137 100644
--- a/app/views/page_translations/edit.html.erb
+++ b/app/views/page_translations/edit.html.erb
@@ -19,7 +19,7 @@
19 <%= link_to "Preview ↗", preview_page_path(@page, :locale => @locale), target: "_blank", rel: "noopener", class: "preview_link" %> 19 <%= link_to "Preview ↗", preview_page_path(@page, :locale => @locale), target: "_blank", rel: "noopener", class: "preview_link" %>
20</div> 20</div>
21 21
22<div id="page_editor"> 22<div id="admin_layout">
23 <ul id="related_asset_list" style="display:none"> 23 <ul id="related_asset_list" style="display:none">
24 <% @page.related_assets.includes(:asset).each do |related| %> 24 <% @page.related_assets.includes(:asset).each do |related| %>
25 <li data-large-url="<%= related.asset.upload.url(:large) %>" 25 <li data-large-url="<%= related.asset.upload.url(:large) %>"
@@ -32,17 +32,17 @@
32 <%= form_with url: node_translation_path(@node, @locale), method: :patch, local: true, id: "translation_edit_form", 32 <%= form_with url: node_translation_path(@node, @locale), method: :patch, local: true, id: "translation_edit_form",
33 data: { autosave_url: autosave_node_translation_path(@node, @locale), show_url: node_path(@node) } do |f| %> 33 data: { autosave_url: autosave_node_translation_path(@node, @locale), show_url: node_path(@node) } do |f| %>
34 <div id="content"> 34 <div id="content">
35 <div class="node_description">Title</div> 35 <div class="layout_row_label">Title</div>
36 <div class="node_content"> 36 <div class="layout_row_content">
37 <%= text_field_tag "page[title]", @translation&.title %> 37 <%= text_field_tag "page[title]", @translation&.title %>
38 </div> 38 </div>
39 39
40 <div class="node_description">Abstract</div> 40 <div class="layout_row_label">Abstract</div>
41 <div class="node_content"> 41 <div class="layout_row_content">
42 <%= text_area_tag "page[abstract]", @translation&.abstract %> 42 <%= text_area_tag "page[abstract]", @translation&.abstract %>
43 </div> 43 </div>
44 44
45 <div class="node_description">Body</div> 45 <div class="layout_row_label">Body</div>
46 <div class="body_toolbar_row"> 46 <div class="body_toolbar_row">
47 <button type="button" id="preview_toggle" class="view_toggle" aria-pressed="false" aria-label="Toggle live preview" title="Toggle live preview"> 47 <button type="button" id="preview_toggle" class="view_toggle" aria-pressed="false" aria-label="Toggle live preview" title="Toggle live preview">
48 <%= icon("layout-sidebar-right", library: "tabler", "aria-hidden": true) %> <span>Live preview</span> 48 <%= icon("layout-sidebar-right", library: "tabler", "aria-hidden": true) %> <span>Live preview</span>
@@ -54,7 +54,7 @@
54 54
55 <div id="editor_and_preview"> 55 <div id="editor_and_preview">
56 <div class="preview_content"> 56 <div class="preview_content">
57 <div class="node_content"> 57 <div class="layout_row_content">
58 <%= text_area_tag "page[body]", @translation&.body, :class => 'with_editor' %> 58 <%= text_area_tag "page[body]", @translation&.body, :class => 'with_editor' %>
59 </div> 59 </div>
60 </div> 60 </div>
diff --git a/app/views/page_translations/show.html.erb b/app/views/page_translations/show.html.erb
index 60eb7cf7..c4091fc3 100644
--- a/app/views/page_translations/show.html.erb
+++ b/app/views/page_translations/show.html.erb
@@ -5,25 +5,25 @@
5<div class="translation_compare"> 5<div class="translation_compare">
6 <div class="translation_compare_column"> 6 <div class="translation_compare_column">
7 <h2><%= @locale.to_s.upcase %></h2> 7 <h2><%= @locale.to_s.upcase %></h2>
8 <div class="node_description">Title</div> 8 <div class="layout_row_label">Title</div>
9 <div class="node_content"><%= @translation&.title %></div> 9 <div class="layout_row_content"><%= @translation&.title %></div>
10 10
11 <div class="node_description">Abstract</div> 11 <div class="layout_row_label">Abstract</div>
12 <div class="node_content"><%= sanitize(@translation&.abstract.to_s) %></div> 12 <div class="layout_row_content"><%= sanitize(@translation&.abstract.to_s) %></div>
13 13
14 <div class="node_description">Body</div> 14 <div class="layout_row_label">Body</div>
15 <div class="node_content"><%= sanitize(@translation&.body.to_s) %></div> 15 <div class="layout_row_content"><%= sanitize(@translation&.body.to_s) %></div>
16 </div> 16 </div>
17 17
18 <div class="translation_compare_column"> 18 <div class="translation_compare_column">
19 <h2><%= I18n.default_locale.to_s.upcase %> (default)</h2> 19 <h2><%= I18n.default_locale.to_s.upcase %> (default)</h2>
20 <div class="node_description">Title</div> 20 <div class="layout_row_label">Title</div>
21 <div class="node_content"><%= @default_translation&.title %></div> 21 <div class="layout_row_content"><%= @default_translation&.title %></div>
22 22
23 <div class="node_description">Abstract</div> 23 <div class="layout_row_label">Abstract</div>
24 <div class="node_content"><%= sanitize(@default_translation&.abstract.to_s) %></div> 24 <div class="layout_row_content"><%= sanitize(@default_translation&.abstract.to_s) %></div>
25 25
26 <div class="node_description">Body</div> 26 <div class="layout_row_label">Body</div>
27 <div class="node_content"><%= sanitize(@default_translation&.body.to_s) %></div> 27 <div class="layout_row_content"><%= sanitize(@default_translation&.body.to_s) %></div>
28 </div> 28 </div>
29</div> 29</div>
diff --git a/app/views/revisions/show.html.erb b/app/views/revisions/show.html.erb
index 74fb51fb..64bc0eea 100644
--- a/app/views/revisions/show.html.erb
+++ b/app/views/revisions/show.html.erb
@@ -1,39 +1,39 @@
1<% translation = @page.translations.find_by(:locale => @locale) %> 1<% translation = @page.translations.find_by(:locale => @locale) %>
2<div id="page_editor" class="show_node"> 2<div id="admin_layout" class="show_node">
3 <h1>Revision <%= @page.revision %>: <%= translation&.title %> <small>(<%= @locale.to_s.upcase %>)</small></h1> 3 <h1>Revision <%= @page.revision %>: <%= translation&.title %> <small>(<%= @locale.to_s.upcase %>)</small></h1>
4 4
5 <div id="content"> 5 <div id="content">
6 <div class="node_description">Actions</div> 6 <div class="layout_row_label">Actions</div>
7 <div class="node_content node_info_group"> 7 <div class="layout_row_content info_group">
8 <div class="node_info_group_items"> 8 <div class="info_group_items">
9 <div class="node_info_item"> 9 <div class="info_item">
10 <%= link_to 'Show all revisions', node_revisions_path(@node, :locale => @locale) %> 10 <%= link_to 'Show all revisions', node_revisions_path(@node, :locale => @locale) %>
11 </div> 11 </div>
12 </div> 12 </div>
13 </div> 13 </div>
14 14
15 <div class="node_description">Path</div> 15 <div class="layout_row_label">Path</div>
16 <div class="node_content"><%= @page.public_link %></div> 16 <div class="layout_row_content"><%= @page.public_link %></div>
17 17
18 <div class="node_description">Author</div> 18 <div class="layout_row_label">Author</div>
19 <div class="node_content"><%= @page.user.try(:login) %></div> 19 <div class="layout_row_content"><%= @page.user.try(:login) %></div>
20 20
21 <div class="node_description">Editor</div> 21 <div class="layout_row_label">Editor</div>
22 <div class="node_content"><%= @page.editor.try(:login) %></div> 22 <div class="layout_row_content"><%= @page.editor.try(:login) %></div>
23 23
24 <div class="node_description">Last updated</div> 24 <div class="layout_row_label">Last updated</div>
25 <div class="node_content"><%= @page.updated_at %></div> 25 <div class="layout_row_content"><%= @page.updated_at %></div>
26 26
27 <div class="node_description">Published at</div> 27 <div class="layout_row_label">Published at</div>
28 <div class="node_content"><%= @page.published_at %></div> 28 <div class="layout_row_content"><%= @page.published_at %></div>
29 29
30 <div class="node_description">Title</div> 30 <div class="layout_row_label">Title</div>
31 <div class="node_content"><%= translation&.title %></div> 31 <div class="layout_row_content"><%= translation&.title %></div>
32 32
33 <div class="node_description">Abstract</div> 33 <div class="layout_row_label">Abstract</div>
34 <div class="node_content"><%= translation&.abstract %></div> 34 <div class="layout_row_content"><%= translation&.abstract %></div>
35 35
36 <div class="node_description">Body</div> 36 <div class="layout_row_label">Body</div>
37 <div class="node_content"><%= raw translation&.body %></div> 37 <div class="layout_row_content"><%= raw translation&.body %></div>
38 </div> 38 </div>
39</div> 39</div>
diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb
index b23f6a0c..1c2c2368 100644
--- a/app/views/sessions/new.html.erb
+++ b/app/views/sessions/new.html.erb
@@ -4,12 +4,12 @@
4 <div class="error_messages"><%= flash[:error] %></div> 4 <div class="error_messages"><%= flash[:error] %></div>
5 <% end %> 5 <% end %>
6 6
7 <div class="node_description">Login</div> 7 <div class="layout_row_label">Login</div>
8 <div class="node_content"><%= text_field_tag 'login', @login, :autocomplete => "username" %></div> 8 <div class="layout_row_content"><%= text_field_tag 'login', @login, :autocomplete => "username" %></div>
9 9
10 <div class="node_description">Password</div> 10 <div class="layout_row_label">Password</div>
11 <div class="node_content"><%= password_field_tag 'password', nil, :autocomplete => "current-password" %></div> 11 <div class="layout_row_content"><%= password_field_tag 'password', nil, :autocomplete => "current-password" %></div>
12 12
13 <div class="node_content"><%= submit_tag 'log in' %></div> 13 <div class="layout_row_content"><%= submit_tag 'log in' %></div>
14 <% end -%> 14 <% end -%>
15</div> 15</div>
diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb
index 8adad789..a8994701 100644
--- a/app/views/users/edit.html.erb
+++ b/app/views/users/edit.html.erb
@@ -6,34 +6,34 @@
6 </div> 6 </div>
7<% end %> 7<% end %>
8 8
9<div id="page_editor"> 9<div id="admin_layout">
10 <%= form_for @user do |f| %> 10 <%= form_for @user do |f| %>
11 <div id="content"> 11 <div id="content">
12 <div class="node_description">Login</div> 12 <div class="layout_row_label">Login</div>
13 <div class="node_content"><%= f.text_field :login, :autocomplete => "username" %></div> 13 <div class="layout_row_content"><%= f.text_field :login, :autocomplete => "username" %></div>
14 14
15 <div class="node_description">E-Mail</div> 15 <div class="layout_row_label">E-Mail</div>
16 <div class="node_content"><%= f.text_field :email %></div> 16 <div class="layout_row_content"><%= f.text_field :email %></div>
17 17
18 <div class="node_description">Password</div> 18 <div class="layout_row_label">Password</div>
19 <div class="node_content"><%= f.password_field :password, :autocomplete => "new-password" %></div> 19 <div class="layout_row_content"><%= f.password_field :password, :autocomplete => "new-password" %></div>
20 20
21 <div class="node_description">Confirm</div> 21 <div class="layout_row_label">Confirm</div>
22 <div class="node_content"><%= f.password_field :password_confirmation, :autocomplete => "new-password" %></div> 22 <div class="layout_row_content"><%= f.password_field :password_confirmation, :autocomplete => "new-password" %></div>
23 23
24 <% if current_user.admin? %> 24 <% if current_user.admin? %>
25 <div class="node_description">Admin?</div> 25 <div class="layout_row_label">Admin?</div>
26 <div class="node_content"><%= f.check_box :admin %></div> 26 <div class="layout_row_content"><%= f.check_box :admin %></div>
27 <% end %> 27 <% end %>
28 28
29 <div class="node_description"></div> 29 <div class="layout_row_label"></div>
30 <div class="node_content"><%= f.submit "Update" %></div> 30 <div class="layout_row_content"><%= f.submit "Update" %></div>
31 <% end %> 31 <% end %>
32 </div> 32 </div>
33 33
34 <% if @user == current_user %> 34 <% if @user == current_user %>
35 <div class="node_description">Second factor</div> 35 <div class="layout_row_label">Second factor</div>
36 <div class="node_content"> 36 <div class="layout_row_content">
37 <% if current_user.otp_enrolled? %> 37 <% if current_user.otp_enrolled? %>
38 <p>Enabled.</p> 38 <p>Enabled.</p>
39 <%= form_tag otp_enrollment_path, :method => :delete, :class => "otp_form" do %> 39 <%= form_tag otp_enrollment_path, :method => :delete, :class => "otp_form" do %>
@@ -57,8 +57,8 @@
57 <% end %> 57 <% end %>
58 </div> 58 </div>
59 <% elsif current_user.admin? && @user.otp_enrolled? %> 59 <% elsif current_user.admin? && @user.otp_enrolled? %>
60 <div class="node_description">Second factor</div> 60 <div class="layout_row_label">Second factor</div>
61 <div class="node_content"> 61 <div class="layout_row_content">
62 Enabled. 62 Enabled.
63 <%= button_to "Reset second factor", reset_otp_user_path(@user), :method => :put, 63 <%= button_to "Reset second factor", reset_otp_user_path(@user), :method => :put,
64 :form_class => "button_to destructive", 64 :form_class => "button_to destructive",
diff --git a/app/views/users/new.html.erb b/app/views/users/new.html.erb
index ce38fdf9..8ae993c5 100644
--- a/app/views/users/new.html.erb
+++ b/app/views/users/new.html.erb
@@ -6,26 +6,26 @@
6 </div> 6 </div>
7<% end %> 7<% end %>
8 8
9<div id="page_editor"> 9<div id="admin_layout">
10 <%= form_for @user do |f| %> 10 <%= form_for @user do |f| %>
11 <div id="content"> 11 <div id="content">
12 <div class="node_description">Login</div> 12 <div class="layout_row_label">Login</div>
13 <div class="node_content"><%= f.text_field :login %></div> 13 <div class="layout_row_content"><%= f.text_field :login %></div>
14 14
15 <div class="node_description">E-Mail</div> 15 <div class="layout_row_label">E-Mail</div>
16 <div class="node_content"><%= f.text_field :email %></div> 16 <div class="layout_row_content"><%= f.text_field :email %></div>
17 17
18 <div class="node_description">Password</div> 18 <div class="layout_row_label">Password</div>
19 <div class="node_content"><%= f.password_field :password %></div> 19 <div class="layout_row_content"><%= f.password_field :password %></div>
20 20
21 <div class="node_description">Confirm</div> 21 <div class="layout_row_label">Confirm</div>
22 <div class="node_content"><%= f.password_field :password_confirmation %></div> 22 <div class="layout_row_content"><%= f.password_field :password_confirmation %></div>
23 23
24 <div class="node_description">Admin?</div> 24 <div class="layout_row_label">Admin?</div>
25 <div class="node_content"><%= f.check_box :admin %></div> 25 <div class="layout_row_content"><%= f.check_box :admin %></div>
26 26
27 <div class="node_description"></div> 27 <div class="layout_row_label"></div>
28 <div class="node_content"><%= f.submit "Create" %></div> 28 <div class="layout_row_content"><%= f.submit "Create" %></div>
29 <% end %> 29 <% end %>
30 </div> 30 </div>
31</div> 31</div>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index 70881dbd..08eb52ec 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -1,11 +1,11 @@
1<div id="page_editor"> 1<div id="admin_layout">
2 <h1><%= @user.login %></h1> 2 <h1><%= @user.login %></h1>
3 3
4 <div id="content"> 4 <div id="content">
5 <div class="node_description">Actions</div> 5 <div class="layout_row_label">Actions</div>
6 <div class="node_content node_info_group"> 6 <div class="layout_row_content info_group">
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 <%= link_to edit_user_path(@user), class: 'action_button' do %> 9 <%= link_to edit_user_path(@user), class: 'action_button' do %>
10 <%= icon("edit", library: "tabler", "aria-hidden": true) %> Edit 10 <%= icon("edit", library: "tabler", "aria-hidden": true) %> Edit
11 <% end %> 11 <% end %>
@@ -13,13 +13,13 @@
13 </div> 13 </div>
14 </div> 14 </div>
15 15
16 <div class="node_description">Login</div> 16 <div class="layout_row_label">Login</div>
17 <div class="node_content"><%= @user.login %></div> 17 <div class="layout_row_content"><%= @user.login %></div>
18 18
19 <div class="node_description">E-Mail</div> 19 <div class="layout_row_label">E-Mail</div>
20 <div class="node_content"><%= @user.email %></div> 20 <div class="layout_row_content"><%= @user.email %></div>
21 21
22 <div class="node_description">Admin?</div> 22 <div class="layout_row_label">Admin?</div>
23 <div class="node_content"><%= @user.admin ? "yes" : "no" %></div> 23 <div class="layout_row_content"><%= @user.admin ? "yes" : "no" %></div>
24 </div> 24 </div>
25</div> 25</div>