diff options
24 files changed, 397 insertions, 397 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> |
diff --git a/public/javascripts/admin_interface.js b/public/javascripts/admin_interface.js index 7ff10ade..984eec05 100644 --- a/public/javascripts/admin_interface.js +++ b/public/javascripts/admin_interface.js | |||
| @@ -211,7 +211,7 @@ cccms = { | |||
| 211 | error: function(xhr) { | 211 | error: function(xhr) { |
| 212 | if (xhr.status === 423) { | 212 | if (xhr.status === 423) { |
| 213 | clearInterval(cccms.autosave_timer); | 213 | clearInterval(cccms.autosave_timer); |
| 214 | cccms.report_lock_lost($("#page_editor > form").attr("data-show-url")); | 214 | cccms.report_lock_lost($("#admin_layout > form").attr("data-show-url")); |
| 215 | } | 215 | } |
| 216 | // any other failure: quietly retried on the next tick | 216 | // any other failure: quietly retried on the next tick |
| 217 | } | 217 | } |
| @@ -221,7 +221,7 @@ cccms = { | |||
| 221 | }; | 221 | }; |
| 222 | 222 | ||
| 223 | cccms.autosave_timer = setInterval(function() { | 223 | cccms.autosave_timer = setInterval(function() { |
| 224 | $("#page_editor > form").submitWithAjax(); | 224 | $("#admin_layout > form").submitWithAjax(); |
| 225 | }, 7000); | 225 | }, 7000); |
| 226 | }, | 226 | }, |
| 227 | 227 | ||
| @@ -257,7 +257,7 @@ cccms = { | |||
| 257 | }); | 257 | }); |
| 258 | 258 | ||
| 259 | $force.on('click', function() { | 259 | $force.on('click', function() { |
| 260 | $("#page_editor > form").submitWithAjax({ force: true }); | 260 | $("#admin_layout > form").submitWithAjax({ force: true }); |
| 261 | }); | 261 | }); |
| 262 | }, | 262 | }, |
| 263 | 263 | ||
| @@ -309,7 +309,7 @@ cccms = { | |||
| 309 | cccms.inline_images.ensure_overlay(); | 309 | cccms.inline_images.ensure_overlay(); |
| 310 | cccms.inline_images.editor = editor; | 310 | cccms.inline_images.editor = editor; |
| 311 | 311 | ||
| 312 | var showUrl = $("#page_editor > form").attr("data-show-url") || ""; | 312 | var showUrl = $("#admin_layout > form").attr("data-show-url") || ""; |
| 313 | var match = showUrl.match(/(\d+)$/); | 313 | var match = showUrl.match(/(\d+)$/); |
| 314 | cccms.inline_images.node_id = match ? match[1] : ""; | 314 | cccms.inline_images.node_id = match ? match[1] : ""; |
| 315 | 315 | ||
diff --git a/public/stylesheets/admin.css b/public/stylesheets/admin.css index 23a9a581..2d2873ad 100644 --- a/public/stylesheets/admin.css +++ b/public/stylesheets/admin.css | |||
| @@ -672,7 +672,7 @@ table.user_table td.user_login { | |||
| 672 | ============================================================ */ | 672 | ============================================================ */ |
| 673 | 673 | ||
| 674 | @media(min-width:1016px) { | 674 | @media(min-width:1016px) { |
| 675 | div.node_description { | 675 | div.layout_row_label { |
| 676 | float: left; | 676 | float: left; |
| 677 | width: 110px; | 677 | width: 110px; |
| 678 | min-height: 2rem; | 678 | min-height: 2rem; |
| @@ -681,7 +681,7 @@ table.user_table td.user_login { | |||
| 681 | vertical-align: top; | 681 | vertical-align: top; |
| 682 | } | 682 | } |
| 683 | 683 | ||
| 684 | div.node_content { | 684 | div.layout_row_content { |
| 685 | margin-left: 120px; | 685 | margin-left: 120px; |
| 686 | min-height: 2rem; | 686 | min-height: 2rem; |
| 687 | display: block; | 687 | display: block; |
| @@ -693,26 +693,26 @@ table.user_table td.user_login { | |||
| 693 | } | 693 | } |
| 694 | } | 694 | } |
| 695 | @media(max-width:1015px) { | 695 | @media(max-width:1015px) { |
| 696 | div.node_description { | 696 | div.layout_row_label { |
| 697 | min-height: 2rem; | 697 | min-height: 2rem; |
| 698 | width: 30em; | 698 | width: 30em; |
| 699 | text-transform: lowercase; | 699 | text-transform: lowercase; |
| 700 | vertical-align: top; | 700 | vertical-align: top; |
| 701 | } | 701 | } |
| 702 | 702 | ||
| 703 | div.node_content { | 703 | div.layout_row_content { |
| 704 | min-height: 2rem; | 704 | min-height: 2rem; |
| 705 | margin-bottom: 1rem; | 705 | margin-bottom: 1rem; |
| 706 | } | 706 | } |
| 707 | } | 707 | } |
| 708 | 708 | ||
| 709 | .node_content.node_info_group { | 709 | .layout_row_content.info_group { |
| 710 | border: 1px solid #e8e8e8; | 710 | border: 1px solid #e8e8e8; |
| 711 | border-radius: 6px; | 711 | border-radius: 6px; |
| 712 | padding: 0.5rem 0.75rem; | 712 | padding: 0.5rem 0.75rem; |
| 713 | } | 713 | } |
| 714 | 714 | ||
| 715 | .node_info_group .disabled_action { | 715 | .info_group .disabled_action { |
| 716 | display: inline-block; | 716 | display: inline-block; |
| 717 | border: 1px solid #c0c0c0; | 717 | border: 1px solid #c0c0c0; |
| 718 | border-radius: 2px; | 718 | border-radius: 2px; |
| @@ -722,17 +722,17 @@ table.user_table td.user_login { | |||
| 722 | cursor: not-allowed; | 722 | cursor: not-allowed; |
| 723 | } | 723 | } |
| 724 | 724 | ||
| 725 | .node_info_group_items { | 725 | .info_group_items { |
| 726 | display: flex; | 726 | display: flex; |
| 727 | flex-wrap: wrap; | 727 | flex-wrap: wrap; |
| 728 | gap: 0.5rem 2rem; | 728 | gap: 0.5rem 2rem; |
| 729 | } | 729 | } |
| 730 | 730 | ||
| 731 | .node_info_item { | 731 | .info_item { |
| 732 | min-width: 140px; | 732 | min-width: 140px; |
| 733 | } | 733 | } |
| 734 | 734 | ||
| 735 | .node_info_label { | 735 | .info_label { |
| 736 | display: block; | 736 | display: block; |
| 737 | font-weight: normal; | 737 | font-weight: normal; |
| 738 | color: #969696; | 738 | color: #969696; |
| @@ -740,25 +740,25 @@ table.user_table td.user_login { | |||
| 740 | text-transform: lowercase; | 740 | text-transform: lowercase; |
| 741 | } | 741 | } |
| 742 | 742 | ||
| 743 | .node_info_group ul { | 743 | .info_group ul { |
| 744 | margin: 0; | 744 | margin: 0; |
| 745 | padding-left: 1.25rem; | 745 | padding-left: 1.25rem; |
| 746 | } | 746 | } |
| 747 | 747 | ||
| 748 | .node_info_group li { | 748 | .info_group li { |
| 749 | margin-bottom: 0.25rem; | 749 | margin-bottom: 0.25rem; |
| 750 | } | 750 | } |
| 751 | 751 | ||
| 752 | .node_content.node_status { | 752 | .layout_row_content.node_status { |
| 753 | border: 2px solid #000000; | 753 | border: 2px solid #000000; |
| 754 | background-color: #fafafa; | 754 | background-color: #fafafa; |
| 755 | } | 755 | } |
| 756 | 756 | ||
| 757 | .node_status .node_info_group_items:first-child { | 757 | .node_status .info_group_items:first-child { |
| 758 | margin-bottom: 0.75rem; | 758 | margin-bottom: 0.75rem; |
| 759 | } | 759 | } |
| 760 | 760 | ||
| 761 | .node_status .node_info_group_items + .node_info_group_items { | 761 | .node_status .info_group_items + .info_group_items { |
| 762 | margin-top: 0.5rem; | 762 | margin-top: 0.5rem; |
| 763 | margin-bottom: 0.5rem; | 763 | margin-bottom: 0.5rem; |
| 764 | } | 764 | } |
| @@ -768,8 +768,8 @@ table.user_table td.user_login { | |||
| 768 | display: block; | 768 | display: block; |
| 769 | } | 769 | } |
| 770 | 770 | ||
| 771 | .node_content .inline-image--full, | 771 | .layout_row_content .inline-image--full, |
| 772 | .node_content .inline-image--half { | 772 | .layout_row_content .inline-image--half { |
| 773 | max-width: 300px; | 773 | max-width: 300px; |
| 774 | width: auto; | 774 | width: auto; |
| 775 | float: none; | 775 | float: none; |
| @@ -905,7 +905,7 @@ form.button_to button[type="submit"] { | |||
| 905 | } | 905 | } |
| 906 | #main_fields { grid-area: main; } | 906 | #main_fields { grid-area: main; } |
| 907 | #metadata_details { grid-area: meta; } | 907 | #metadata_details { grid-area: meta; } |
| 908 | #page_editor #content { grid-area: body; } | 908 | #admin_layout #content { grid-area: body; } |
| 909 | 909 | ||
| 910 | /* Details is force-opened by JS on desktop; hide the summary only | 910 | /* Details is force-opened by JS on desktop; hide the summary only |
| 911 | once open, so a JS failure still leaves a working toggle. */ | 911 | once open, so a JS failure still leaves a working toggle. */ |
| @@ -930,12 +930,12 @@ input#move_to_search_term { | |||
| 930 | padding: 5px; | 930 | padding: 5px; |
| 931 | } | 931 | } |
| 932 | 932 | ||
| 933 | div#page_editor { | 933 | div#admin_layout { |
| 934 | margin-top: 0px; | 934 | margin-top: 0px; |
| 935 | margin-left: 10px; | 935 | margin-left: 10px; |
| 936 | } | 936 | } |
| 937 | 937 | ||
| 938 | #page_editor a.action_button, | 938 | #admin_layout a.action_button, |
| 939 | .action_button { | 939 | .action_button { |
| 940 | display: inline-flex; | 940 | display: inline-flex; |
| 941 | align-items: center; | 941 | align-items: center; |
| @@ -954,15 +954,15 @@ div#page_editor { | |||
| 954 | font: inherit; | 954 | font: inherit; |
| 955 | } | 955 | } |
| 956 | 956 | ||
| 957 | #page_editor a.action_button:hover, | 957 | #admin_layout a.action_button:hover, |
| 958 | .action_button:hover { | 958 | .action_button:hover { |
| 959 | color: #ffffff; | 959 | color: #ffffff; |
| 960 | background-color: #000000; | 960 | background-color: #000000; |
| 961 | } | 961 | } |
| 962 | 962 | ||
| 963 | #page_editor input[type=text], | 963 | #admin_layout input[type=text], |
| 964 | #page_editor input[type=password], | 964 | #admin_layout input[type=password], |
| 965 | #page_editor textarea { | 965 | #admin_layout textarea { |
| 966 | padding: 5px; | 966 | padding: 5px; |
| 967 | } | 967 | } |
| 968 | 968 | ||
| @@ -996,7 +996,7 @@ input#tag_list { | |||
| 996 | padding: 5px; | 996 | padding: 5px; |
| 997 | } | 997 | } |
| 998 | 998 | ||
| 999 | #page_editor textarea#page_body { | 999 | #admin_layout textarea#page_body { |
| 1000 | width: 100%; | 1000 | width: 100%; |
| 1001 | box-sizing: border-box; | 1001 | box-sizing: border-box; |
| 1002 | height: 600px; | 1002 | height: 600px; |
| @@ -1006,9 +1006,9 @@ input#tag_list { | |||
| 1006 | margin-left: -125px; | 1006 | margin-left: -125px; |
| 1007 | } | 1007 | } |
| 1008 | 1008 | ||
| 1009 | #page_editor input[type=text], | 1009 | #admin_layout input[type=text], |
| 1010 | #page_editor input[type=password], | 1010 | #admin_layout input[type=password], |
| 1011 | #page_editor textarea { | 1011 | #admin_layout textarea { |
| 1012 | width: 100%; | 1012 | width: 100%; |
| 1013 | box-sizing: border-box; | 1013 | box-sizing: border-box; |
| 1014 | } | 1014 | } |
| @@ -1022,19 +1022,19 @@ input#tag_list { | |||
| 1022 | width: 100%; | 1022 | width: 100%; |
| 1023 | } | 1023 | } |
| 1024 | 1024 | ||
| 1025 | #page_editor #content, | 1025 | #admin_layout #content, |
| 1026 | #page_editor #metadata, | 1026 | #admin_layout #metadata, |
| 1027 | #page_editor #main_fields { | 1027 | #admin_layout #main_fields { |
| 1028 | padding-right: 5px; | 1028 | padding-right: 5px; |
| 1029 | } | 1029 | } |
| 1030 | 1030 | ||
| 1031 | #page_editor textarea#page_body { | 1031 | #admin_layout textarea#page_body { |
| 1032 | box-sizing: border-box; | 1032 | box-sizing: border-box; |
| 1033 | width: 100%; | 1033 | width: 100%; |
| 1034 | height: 50rem; | 1034 | height: 50rem; |
| 1035 | } | 1035 | } |
| 1036 | 1036 | ||
| 1037 | #page_editor textarea#page_abstract { | 1037 | #admin_layout textarea#page_abstract { |
| 1038 | box-sizing: border-box; | 1038 | box-sizing: border-box; |
| 1039 | height: 8rem; | 1039 | height: 8rem; |
| 1040 | width: 100%; | 1040 | width: 100%; |
| @@ -1050,9 +1050,9 @@ input#tag_list { | |||
| 1050 | font-weight: bold; | 1050 | font-weight: bold; |
| 1051 | } | 1051 | } |
| 1052 | 1052 | ||
| 1053 | #page_editor input[type=text], | 1053 | #admin_layout input[type=text], |
| 1054 | #page_editor input[type=password], | 1054 | #admin_layout input[type=password], |
| 1055 | #page_editor textarea { | 1055 | #admin_layout textarea { |
| 1056 | box-sizing: border-box; | 1056 | box-sizing: border-box; |
| 1057 | width: 100%; | 1057 | width: 100%; |
| 1058 | } | 1058 | } |
diff --git a/test/controllers/nodes_controller_test.rb b/test/controllers/nodes_controller_test.rb index d7771081..de536278 100644 --- a/test/controllers/nodes_controller_test.rb +++ b/test/controllers/nodes_controller_test.rb | |||
| @@ -261,7 +261,7 @@ class NodesControllerTest < ActionController::TestCase | |||
| 261 | node = create_node_with_published_page | 261 | node = create_node_with_published_page |
| 262 | get :show, params: { :id => node.id } | 262 | get :show, params: { :id => node.id } |
| 263 | assert_response :success | 263 | assert_response :success |
| 264 | assert_select "div.node_content", :text => "Test", :count => 2 | 264 | assert_select "div.layout_row_content", :text => "Test", :count => 2 |
| 265 | end | 265 | end |
| 266 | 266 | ||
| 267 | test "unlocking a locked node" do | 267 | test "unlocking a locked node" do |
diff --git a/test/controllers/revisions_controller_test.rb b/test/controllers/revisions_controller_test.rb index 96c6d6cf..bb21ea68 100644 --- a/test/controllers/revisions_controller_test.rb +++ b/test/controllers/revisions_controller_test.rb | |||
| @@ -33,8 +33,8 @@ class RevisionsControllerTest < ActionController::TestCase | |||
| 33 | login_as :quentin | 33 | login_as :quentin |
| 34 | get :show, params: { :node_id => @node.id, :id => @node.pages.last.id } | 34 | get :show, params: { :node_id => @node.id, :id => @node.pages.last.id } |
| 35 | assert_response :success | 35 | assert_response :success |
| 36 | assert_select ".node_description", "Body" | 36 | assert_select ".layout_row_label", "Body" |
| 37 | assert_select ".node_content", {:count => 1, :text => "second"} | 37 | assert_select ".layout_row_content", {:count => 1, :text => "second"} |
| 38 | end | 38 | end |
| 39 | 39 | ||
| 40 | test "showing a revision renders real markup in the body, not escaped entities" do | 40 | test "showing a revision renders real markup in the body, not escaped entities" do |
| @@ -46,7 +46,7 @@ class RevisionsControllerTest < ActionController::TestCase | |||
| 46 | 46 | ||
| 47 | get :show, params: { :node_id => node.id, :id => node.head.id } | 47 | get :show, params: { :node_id => node.id, :id => node.head.id } |
| 48 | assert_response :success | 48 | assert_response :success |
| 49 | assert_select ".node_content h3", "Hello" | 49 | assert_select ".layout_row_content h3", "Hello" |
| 50 | end | 50 | end |
| 51 | 51 | ||
| 52 | test "diffing two revisions" do | 52 | test "diffing two revisions" do |
