diff options
Diffstat (limited to 'app/views/nodes')
| -rw-r--r-- | app/views/nodes/edit.html.erb | 317 | ||||
| -rw-r--r-- | app/views/nodes/new.html.erb | 109 | ||||
| -rw-r--r-- | app/views/nodes/show.html.erb | 39 |
3 files changed, 261 insertions, 204 deletions
diff --git a/app/views/nodes/edit.html.erb b/app/views/nodes/edit.html.erb index 6b5a1234..d19fdd95 100644 --- a/app/views/nodes/edit.html.erb +++ b/app/views/nodes/edit.html.erb | |||
| @@ -1,174 +1,197 @@ | |||
| 1 | <h1><%= title_for_node(@node) %></h1> | 1 | <h1><%= title_for_node(@node) %></h1> |
| 2 | 2 | ||
| 3 | <div class="node_action_bar"> | 3 | <div id="admin_layout"> |
| 4 | <%= button_to t(".unlock_back"), unlock_node_path(@node), method: :put, | 4 | <div class="node_action_bar"> |
| 5 | form: { class: 'button_to state_changing' }, | 5 | <%= button_to t(".unlock_back"), unlock_node_path(@node), method: :put, |
| 6 | disabled: @node.autosave.present? %> | 6 | form: { class: 'button_to state_changing' }, |
| 7 | disabled: @node.autosave.present? %> | ||
| 7 | 8 | ||
| 8 | <% if @node.autosave || (@node.draft && @node.head) %> | 9 | <% if @node.autosave || (@node.draft && @node.head) %> |
| 9 | <%= button_to revert_node_path(@node), method: :put, | 10 | <%= button_to revert_node_path(@node), method: :put, |
| 10 | form: { data: { confirm: t(".confirm_discard") }, class: 'button_to destructive' } do %> | 11 | form: { data: { confirm: t(".confirm_discard") }, class: 'button_to destructive' } do %> |
| 11 | <%= icon("trash", library: "tabler", "aria-hidden": true) %> | 12 | <%= icon("trash", library: "tabler", "aria-hidden": true) %> |
| 12 | <%= @node.draft && !@node.autosave ? t(".destroy_draft") : t(".discard_autosave") %> | 13 | <%= @node.draft && !@node.autosave ? t(".destroy_draft") : t(".discard_autosave") %> |
| 13 | <% end %> | 14 | <% end %> |
| 14 | <% if pair = @node.available_layer_pairs.find { |p| p.include?(:autosave) } %> | 15 | <% if pair = @node.available_layer_pairs.find { |p| p.include?(:autosave) } %> |
| 15 | <%= button_to t(".what_changed"), | 16 | <%= button_to t(".what_changed"), |
| 16 | diff_node_revisions_path(@node), | 17 | diff_node_revisions_path(@node), |
| 17 | method: :get, | 18 | method: :get, |
| 18 | params: { start_revision: pair.first, end_revision: pair.last }, | 19 | params: { start_revision: pair.first, end_revision: pair.last }, |
| 19 | form: { class: 'button_to computation' } %> | 20 | form: { class: 'button_to computation' } %> |
| 21 | <% end %> | ||
| 20 | <% end %> | 22 | <% end %> |
| 21 | <% end %> | ||
| 22 | 23 | ||
| 23 | <%= submit_tag t(".save_draft"), form: dom_id(@node, :edit) %> | 24 | <%= submit_tag t(".save_draft"), form: dom_id(@node, :edit) %> |
| 24 | <%= submit_tag t(".save_unlock_exit"), name: "unlock_exit", form: dom_id(@node, :edit) %> | 25 | <%= submit_tag t(".save_unlock_exit"), name: "unlock_exit", form: dom_id(@node, :edit) %> |
| 25 | <%= link_to t(".preview"), preview_page_path(@page), target: "_blank", rel: "noopener", class: "preview_link" %> | 26 | <%= link_to t(".preview"), preview_page_path(@page), target: "_blank", rel: "noopener", class: "preview_link" %> |
| 26 | </div> | 27 | </div> |
| 27 | 28 | ||
| 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"> |
| 32 | <ul><% @node.errors.full_messages.each do |msg| %><li><%= msg %></li><% end %></ul> | 32 | <ul><% @node.errors.full_messages.each do |msg| %><li><%= msg %></li><% end %></ul> |
| 33 | </div> | 33 | </div> |
| 34 | <% end %> | 34 | <% end %> |
| 35 | |||
| 36 | <%= fields_for @page do |d| %> | ||
| 37 | <div id="edit_grid"> | ||
| 38 | 35 | ||
| 39 | <div id="main_fields"> | 36 | <%= fields_for @page do |d| %> |
| 40 | <div class="layout_row_label"><%= t("admin.columns.title") %></div> | 37 | <div id="edit_grid"> |
| 41 | <div class="layout_row_content"><%= d.text_field :title %></div> | ||
| 42 | 38 | ||
| 43 | <div class="layout_row_label"><%= t(".abstract") %></div> | 39 | <div id="main_fields"> |
| 44 | <div class="layout_row_content"><%= d.text_area :abstract %></div> | 40 | <div class="layout_row"> |
| 41 | <div class="layout_row_label"><%= t("admin.columns.title") %></div> | ||
| 42 | <div class="layout_row_content"><%= d.text_field :title %></div> | ||
| 43 | </div> | ||
| 45 | 44 | ||
| 46 | <div class="layout_row_label"><%= t(".attachments") %></div> | 45 | <div class="layout_row"> |
| 47 | <div class="layout_row_content"> | 46 | <div class="layout_row_label"><%= t(".abstract") %></div> |
| 48 | <div id="related_assets" | 47 | <div class="layout_row_content"><%= d.text_area :abstract %></div> |
| 49 | data-search-url="<%= search_node_related_assets_path(@node) %>" | 48 | </div> |
| 50 | data-create-url="<%= node_related_assets_path(@node) %>"> | ||
| 51 | <ul id="related_asset_list" class="thumbnail_list"> | ||
| 52 | <% @page.related_assets.includes(:asset).each do |related| %> | ||
| 53 | <li data-url="<%= node_related_asset_path(@node, related) %>" | ||
| 54 | data-asset-id="<%= related.asset.id %>" | ||
| 55 | data-large-url="<%= related.asset.upload.url(:large) %>" | ||
| 56 | data-original-url="<%= related.asset.upload.url %>" | ||
| 57 | data-name="<%= related.asset.name %>" | ||
| 58 | data-has-credit="<%= related.asset.show_credit? %>" | ||
| 59 | data-headline="<%= related.headline? %>" | ||
| 60 | class="<%= "is_headline" if related.headline? %>"> | ||
| 61 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> | ||
| 62 | <%= image_tag related.asset.upload.url(:thumb) %> | ||
| 63 | <button type="button" class="related_asset_set_headline" | ||
| 64 | aria-pressed="<%= related.headline? %>" aria-label="<%= t('.set_headline_label') %>" | ||
| 65 | title="<%= t(".set_headline_title") %>"> | ||
| 66 | <%= icon("star", library: "tabler", "aria-hidden": true) %> | ||
| 67 | </button> | ||
| 68 | <button type="button" class="related_asset_remove" aria-label="<%= t('.remove_image_label') %>"> | ||
| 69 | <%= icon("x", library: "tabler", "aria-hidden": true) %> | ||
| 70 | </button> | ||
| 71 | </li> | ||
| 72 | <% end %> | ||
| 73 | </ul> | ||
| 74 | <p class="field_hint"><%= t(".headline_hint") %></p> | ||
| 75 | <%= text_field_tag nil, nil, id: "related_asset_search_term", placeholder: t(".attach_search_placeholder"), autocomplete: "off" %> | ||
| 76 | <div id="related_asset_search_results" class="search_results"></div> | ||
| 77 | </div> | ||
| 78 | </div> | ||
| 79 | 49 | ||
| 80 | <template id="related_asset_template"> | 50 | <div class="layout_row"> |
| 81 | <li> | 51 | <div class="layout_row_label"><%= t(".attachments") %></div> |
| 82 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> | 52 | <div class="layout_row_content"> |
| 83 | <img src=""> | 53 | <div id="related_assets" |
| 84 | <button type="button" class="related_asset_set_headline" aria-pressed="false" aria-label="<%= t('.set_headline_label') %>"> | 54 | data-search-url="<%= search_node_related_assets_path(@node) %>" |
| 85 | <%= icon("star", library: "tabler", "aria-hidden": true) %> | 55 | data-create-url="<%= node_related_assets_path(@node) %>"> |
| 86 | </button> | 56 | <ul id="related_asset_list" class="thumbnail_list"> |
| 87 | <button type="button" class="related_asset_remove" aria-label="<%= t('.remove_image_label') %>"> | 57 | <% @page.related_assets.includes(:asset).each do |related| %> |
| 88 | <%= icon("x", library: "tabler", "aria-hidden": true) %> | 58 | <li data-url="<%= node_related_asset_path(@node, related) %>" |
| 89 | </button> | 59 | data-asset-id="<%= related.asset.id %>" |
| 90 | </li> | 60 | data-large-url="<%= related.asset.upload.url(:large) %>" |
| 91 | </template> | 61 | data-original-url="<%= related.asset.upload.url %>" |
| 92 | </div> | 62 | data-name="<%= related.asset.name %>" |
| 63 | data-has-credit="<%= related.asset.show_credit? %>" | ||
| 64 | data-headline="<%= related.headline? %>" | ||
| 65 | class="<%= "is_headline" if related.headline? %>"> | ||
| 66 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> | ||
| 67 | <%= image_tag related.asset.upload.url(:thumb) %> | ||
| 68 | <button type="button" class="related_asset_set_headline" | ||
| 69 | aria-pressed="<%= related.headline? %>" aria-label="<%= t('.set_headline_label') %>" | ||
| 70 | title="<%= t(".set_headline_title") %>"> | ||
| 71 | <%= icon("star", library: "tabler", "aria-hidden": true) %> | ||
| 72 | </button> | ||
| 73 | <button type="button" class="related_asset_remove" aria-label="<%= t('.remove_image_label') %>"> | ||
| 74 | <%= icon("x", library: "tabler", "aria-hidden": true) %> | ||
| 75 | </button> | ||
| 76 | </li> | ||
| 77 | <% end %> | ||
| 78 | </ul> | ||
| 79 | <p class="field_hint"><%= t(".headline_hint") %></p> | ||
| 80 | <%= text_field_tag nil, nil, id: "related_asset_search_term", placeholder: t(".attach_search_placeholder"), autocomplete: "off" %> | ||
| 81 | <div id="related_asset_search_results" class="search_results"></div> | ||
| 82 | </div> | ||
| 83 | </div> | ||
| 84 | </div> | ||
| 93 | 85 | ||
| 94 | <details id="metadata_details"> | 86 | <template id="related_asset_template"> |
| 95 | <summary><%= t(".metadata_summary") %></summary> | 87 | <li> |
| 96 | <div id="metadata"> | 88 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> |
| 97 | <div class="layout_row_label"><%= t(".slug") %></div> | 89 | <img src=""> |
| 98 | <div class="layout_row_content"> | 90 | <button type="button" class="related_asset_set_headline" aria-pressed="false" aria-label="<%= t('.set_headline_label') %>"> |
| 99 | <%= d.text_field( | 91 | <%= icon("star", library: "tabler", "aria-hidden": true) %> |
| 100 | :slug, :value => @page.slug || @node.slug | 92 | </button> |
| 101 | ) | 93 | <button type="button" class="related_asset_remove" aria-label="<%= t('.remove_image_label') %>"> |
| 102 | %> | 94 | <%= icon("x", library: "tabler", "aria-hidden": true) %> |
| 95 | </button> | ||
| 96 | </li> | ||
| 97 | </template> | ||
| 103 | </div> | 98 | </div> |
| 104 | 99 | ||
| 105 | <div class="layout_row_label"><%= t(".parent") %></div> | 100 | <details id="metadata_details"> |
| 106 | <div class="layout_row_content"> | 101 | <summary><%= t(".metadata_summary") %></summary> |
| 107 | <%= text_field_tag :move_to_search_term, (Node.find_by(:id => @page.parent_node_id) || @node.parent)&.title %> | 102 | <div id="metadata"> |
| 108 | <p class="field_hint"><%= t(".parent_hint") %></p> | 103 | <div class="layout_row"> |
| 109 | <div id="move_to_search_results" class="search_results"></div> | 104 | <div class="layout_row_label"><%= t(".slug") %></div> |
| 110 | <%= d.hidden_field( | 105 | <div class="layout_row_content"> |
| 111 | :parent_node_id, | 106 | <%= d.text_field( |
| 112 | :value => @page.parent_node_id || @node.parent_id | 107 | :slug, :value => @page.slug || @node.slug |
| 113 | ) | 108 | ) |
| 114 | %> | 109 | %> |
| 115 | </div> | 110 | </div> |
| 111 | </div> | ||
| 116 | 112 | ||
| 117 | <div class="layout_row_label"><%= t(".external_url") %></div> | 113 | <div class="layout_row"> |
| 118 | <div class="layout_row_content"> | 114 | <div class="layout_row_label"><%= t(".parent") %></div> |
| 119 | <%= d.text_field :external_url %> | 115 | <div class="layout_row_content"> |
| 120 | </div> | 116 | <%= text_field_tag :move_to_search_term, (Node.find_by(:id => @page.parent_node_id) || @node.parent)&.title %> |
| 117 | <p class="field_hint"><%= t(".parent_hint") %></p> | ||
| 118 | <div id="move_to_search_results" class="search_results"></div> | ||
| 119 | <%= d.hidden_field( | ||
| 120 | :parent_node_id, | ||
| 121 | :value => @page.parent_node_id || @node.parent_id | ||
| 122 | ) | ||
| 123 | %> | ||
| 124 | </div> | ||
| 125 | </div> | ||
| 121 | 126 | ||
| 122 | <div class="layout_row_label"><%= t(".tags") %></div> | 127 | <div class="layout_row"> |
| 123 | <div class="layout_row_content"> | 128 | <div class="layout_row_label"><%= t(".external_url") %></div> |
| 124 | <%= text_field_tag :tag_list, @page.tag_list.join(', ') %> | 129 | <div class="layout_row_content"> |
| 125 | <span class="field_hint"><%= t(".tags_hint") %></span> | 130 | <%= d.text_field :external_url %> |
| 126 | </div> | 131 | </div> |
| 132 | </div> | ||
| 127 | 133 | ||
| 128 | <div class="layout_row_label"><%= t(".publish_at") %></div> | 134 | <div class="layout_row"> |
| 129 | <div class="layout_row_content"><%= d.datetime_select :published_at, :value => @page.published_at %></div> | 135 | <div class="layout_row_label"><%= t(".tags") %></div> |
| 136 | <div class="layout_row_content"> | ||
| 137 | <%= text_field_tag :tag_list, @page.tag_list.join(', ') %> | ||
| 138 | <span class="field_hint"><%= t(".tags_hint") %></span> | ||
| 139 | </div> | ||
| 140 | </div> | ||
| 130 | 141 | ||
| 131 | <div class="layout_row_label"><%= t(".template") %></div> | 142 | <div class="layout_row"> |
| 132 | <div class="layout_row_content"> | 143 | <div class="layout_row_label"><%= t(".publish_at") %></div> |
| 133 | <%= d.select :template_name, custom_page_templates, {:prompt => 'Select Template'} %> | 144 | <div class="layout_row_content"><%= d.datetime_select :published_at, :value => @page.published_at %></div> |
| 134 | <span class="field_hint"><%= t(".template_hint") %></span> | 145 | </div> |
| 135 | </div> | ||
| 136 | 146 | ||
| 137 | <div class="layout_row_label"><%= t(".author") %></div> | 147 | <div class="layout_row"> |
| 138 | <div class="layout_row_content"> | 148 | <div class="layout_row_label"><%= t(".template") %></div> |
| 139 | <%= d.select :user_id, user_list, | 149 | <div class="layout_row_content"> |
| 140 | :selected => @page.user_id || @node.draft&.user_id || @node.head&.user_id %> | 150 | <%= d.select :template_name, custom_page_templates, {:prompt => 'Select Template'} %> |
| 141 | </div> | 151 | <span class="field_hint"><%= t(".template_hint") %></span> |
| 152 | </div> | ||
| 153 | </div> | ||
| 142 | 154 | ||
| 143 | </div> | 155 | <div class="layout_row"> |
| 144 | </details> | 156 | <div class="layout_row_label"><%= t(".author") %></div> |
| 157 | <div class="layout_row_content"> | ||
| 158 | <%= d.select :user_id, user_list, | ||
| 159 | :selected => @page.user_id || @node.draft&.user_id || @node.head&.user_id %> | ||
| 160 | </div> | ||
| 161 | </div> | ||
| 162 | </div> | ||
| 163 | </details> | ||
| 145 | 164 | ||
| 146 | <div id="content"> | 165 | <div id="body_field"> |
| 147 | <div class="layout_row_label"><%= t(".body") %></div> | 166 | <div class="layout_row"> |
| 148 | <div class="body_toolbar_row"> | 167 | <div class="layout_row_label"><%= t(".body") %></div> |
| 149 | <button type="button" id="preview_toggle" class="view_toggle" aria-pressed="false" aria-label="<%= t('admin.common.toggle_preview') %>" title="<%= t('admin.common.toggle_preview') %>"> | 168 | <div class="layout_row_content"> |
| 150 | <%= icon("layout-sidebar-right", library: "tabler", "aria-hidden": true) %> <span><%= t(".live_preview") %></span> | 169 | <div class="body_toolbar_row"> |
| 151 | </button> | 170 | <button type="button" id="preview_toggle" class="view_toggle" aria-pressed="false" aria-label="<%= t('admin.common.toggle_preview') %>" title="<%= t('admin.common.toggle_preview') %>"> |
| 152 | <button type="button" id="preview_force_render" class="view_toggle" style="display:none" aria-label="<%= t('admin.common.force_render') %>" title="<%= t('admin.common.force_render') %>"> | 171 | <%= icon("layout-sidebar-right", library: "tabler", "aria-hidden": true) %> <span><%= t(".live_preview") %></span> |
| 153 | <%= icon("refresh", library: "tabler", "aria-hidden": true) %> <span><%= t(".force_refresh") %></span> | 172 | </button> |
| 154 | </button> | 173 | <button type="button" id="preview_force_render" class="view_toggle" style="display:none" aria-label="<%= t('admin.common.force_render') %>" title="<%= t('admin.common.force_render') %>"> |
| 155 | </div> | 174 | <%= icon("refresh", library: "tabler", "aria-hidden": true) %> <span><%= t(".force_refresh") %></span> |
| 175 | </button> | ||
| 176 | </div> | ||
| 156 | 177 | ||
| 157 | <div id="editor_and_preview"> | 178 | <div id="editor_and_preview"> |
| 158 | <div class="preview_content"> | 179 | <div class="preview_content"> |
| 159 | <div class="layout_row_content"><%= d.text_area :body, :class => 'with_editor' %></div> | 180 | <%= d.text_area :body, :class => 'with_editor' %> |
| 160 | </div> | 181 | </div> |
| 161 | <div id="preview_panel" style="display:none"> | 182 | <div id="preview_panel" style="display:none"> |
| 162 | <iframe id="live_preview_iframe" title="<%= t('.live_preview') %>" data-src="<%= preview_page_path(@page, :locale => I18n.default_locale) %>"></iframe> | 183 | <iframe id="live_preview_iframe" title="<%= t('.live_preview') %>" data-src="<%= preview_page_path(@page, :locale => I18n.default_locale) %>"></iframe> |
| 184 | </div> | ||
| 185 | </div> | ||
| 186 | </div> | ||
| 187 | </div> | ||
| 163 | </div> | 188 | </div> |
| 164 | </div> | 189 | </div> |
| 165 | </div> | 190 | <% end %> |
| 166 | </div> | ||
| 167 | <% end %> | ||
| 168 | 191 | ||
| 169 | <div class="node_action_bar"> | 192 | <div class="node_action_bar"> |
| 170 | <%= f.submit t(".save_draft") %> | 193 | <%= f.submit t(".save_draft") %> |
| 171 | <%= f.submit t(".save_unlock_exit"), name: "unlock_exit"%> | 194 | <%= f.submit t(".save_unlock_exit"), name: "unlock_exit"%> |
| 172 | </div> | 195 | </div> |
| 173 | <% end %> | 196 | <% end %> |
| 174 | </div> | 197 | </div> |
diff --git a/app/views/nodes/new.html.erb b/app/views/nodes/new.html.erb index 883909a6..dd7a6051 100644 --- a/app/views/nodes/new.html.erb +++ b/app/views/nodes/new.html.erb | |||
| @@ -9,69 +9,80 @@ | |||
| 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="layout_row_label"><%= t(".type") %></div> | 12 | <div class="layout_row"> |
| 13 | <div class="layout_row_content"> | 13 | <div class="layout_row_label"><%= t(".type") %></div> |
| 14 | <% CccConventions::NODE_KINDS.each do |kind, config| %> | 14 | <div class="layout_row_content"> |
| 15 | <% prefix = resolve_kind_text(config[:path_prefix]) %> | 15 | <% CccConventions::NODE_KINDS.each do |kind, config| %> |
| 16 | <p> | 16 | <% prefix = resolve_kind_text(config[:path_prefix]) %> |
| 17 | <%= radio_button_tag :kind, kind, kind == @selected_kind, | 17 | <p> |
| 18 | data: { path_prefix: prefix } %> | 18 | <%= radio_button_tag :kind, kind, kind == @selected_kind, |
| 19 | <%= resolve_kind_text(config[:label]) %> | 19 | data: { path_prefix: prefix } %> |
| 20 | <% if config[:hint] %> | 20 | <%= resolve_kind_text(config[:label]) %> |
| 21 | <span class="field_hint"><%= resolve_kind_text(config[:hint]) %></span> | 21 | <% if config[:hint] %> |
| 22 | <% end %> | 22 | <span class="field_hint"><%= resolve_kind_text(config[:hint]) %></span> |
| 23 | <% unless current_user.may_change_live_at?(prefix) %> | 23 | <% end %> |
| 24 | <span class="field_hint restricted_kind_hint"><%= t(".restricted_kind") %></span> | 24 | <% unless current_user.may_change_live_at?(prefix) %> |
| 25 | <% end %> | 25 | <span class="field_hint restricted_kind_hint"><%= t(".restricted_kind") %></span> |
| 26 | </p> | 26 | <% end %> |
| 27 | <% end %> | 27 | </p> |
| 28 | <% end %> | ||
| 29 | </div> | ||
| 28 | </div> | 30 | </div> |
| 29 | 31 | ||
| 30 | <div class="layout_row_label"><%= t("admin.columns.title") %></div> | 32 | <div class="layout_row"> |
| 31 | <div class="layout_row_content"> | 33 | <div class="layout_row_label"><%= t("admin.columns.title") %></div> |
| 32 | <%= text_field_tag :title, nil, required: true %> | 34 | <div class="layout_row_content"> |
| 33 | <span class="field_hint"><%= t(".slug_hint") %></span> | 35 | <%= text_field_tag :title, nil, required: true %> |
| 36 | <span class="field_hint"><%= t(".slug_hint") %></span> | ||
| 37 | </div> | ||
| 34 | </div> | 38 | </div> |
| 35 | 39 | ||
| 36 | <div id="parent_search_field" style="<%= @selected_kind == "generic" ? "" : "display: none;" %>"> | 40 | <div id="parent_search_field" style="<%= @selected_kind == "generic" ? "" : "display: none;" %>"> |
| 37 | <div class="layout_row_label"><%= t(".parent") %></div> | 41 | <div class="layout_row"> |
| 38 | <div class="layout_row_content"> | 42 | <div class="layout_row_label"><%= t(".parent") %></div> |
| 39 | <%= text_field_tag :parent_search_term, @parent&.title %> | 43 | <div class="layout_row_content"> |
| 40 | <%= hidden_field_tag :parent_id, @parent&.id, data: { unique_name: @parent&.computed_unique_name } %> | 44 | <%= text_field_tag :parent_search_term, @parent&.title %> |
| 41 | <div id="parent_search_results" class="search_results"></div> | 45 | <%= hidden_field_tag :parent_id, @parent&.id, data: { unique_name: @parent&.computed_unique_name } %> |
| 46 | <div id="parent_search_results" class="search_results"></div> | ||
| 47 | </div> | ||
| 42 | </div> | 48 | </div> |
| 43 | </div> | 49 | </div> |
| 44 | 50 | ||
| 45 | <div class="layout_row_label"><%= t(".resulting_path") %></div> | 51 | <div class="layout_row"> |
| 46 | <div class="layout_row_content"> | 52 | <div class="layout_row_label"><%= t(".resulting_path") %></div> |
| 47 | <span id="resulting_path">—</span> | 53 | <div class="layout_row_content"> |
| 48 | <button type="button" id="copy_resulting_path" class="unselected copy_button" data-copy-target="#resulting_path"> | 54 | <span id="resulting_path">—</span> |
| 49 | <span class="copy_button_label"><%= t(".copy") %></span> | 55 | <button type="button" id="copy_resulting_path" class="unselected copy_button" data-copy-target="#resulting_path"> |
| 50 | </button> | 56 | <span class="copy_button_label"><%= t(".copy") %></span> |
| 57 | </button> | ||
| 51 | 58 | ||
| 52 | <span class="field_hint"><%= t(".path_hint") %></span> | 59 | <span class="field_hint"><%= t(".path_hint") %></span> |
| 60 | </div> | ||
| 53 | </div> | 61 | </div> |
| 54 | 62 | ||
| 55 | <% if @attach_asset %> | 63 | <% if @attach_asset %> |
| 56 | <div class="layout_row_label"><%= t(".attachment") %></div> | 64 | <div class="layout_row"> |
| 57 | <div class="layout_row_content"> | 65 | <div class="layout_row_label"><%= t(".attachment") %></div> |
| 58 | <ul class="thumbnail_list"> | 66 | <div class="layout_row_content"> |
| 59 | <li> | 67 | <ul class="thumbnail_list"> |
| 60 | <% if @attach_asset.has_variant?(:thumb) %> | 68 | <li> |
| 61 | <%= image_tag @attach_asset.upload.url(:thumb) %> | 69 | <% if @attach_asset.has_variant?(:thumb) %> |
| 62 | <% end %> | 70 | <%= image_tag @attach_asset.upload.url(:thumb) %> |
| 63 | <%= link_to @attach_asset.name, asset_path(@attach_asset), | 71 | <% end %> |
| 64 | :target => "_blank", :rel => "noopener" %> | 72 | <%= link_to @attach_asset.name, asset_path(@attach_asset), |
| 65 | </li> | 73 | :target => "_blank", :rel => "noopener" %> |
| 66 | </ul> | 74 | </li> |
| 67 | <span class="field_hint"><%= t(".attach_hint") %></span> | 75 | </ul> |
| 68 | <label><%= check_box_tag :asset_headline, "1" %> <%= t(".as_headline") %></label> | 76 | <span class="field_hint"><%= t(".attach_hint") %></span> |
| 69 | <%= hidden_field_tag :asset_id, @attach_asset.id %> | 77 | <label><%= check_box_tag :asset_headline, "1" %> <%= t(".as_headline") %></label> |
| 78 | <%= hidden_field_tag :asset_id, @attach_asset.id %> | ||
| 79 | </div> | ||
| 70 | </div> | 80 | </div> |
| 71 | <% end %> | 81 | <% end %> |
| 72 | 82 | ||
| 73 | <div class="layout_row_label"></div> | 83 | <div class="layout_row"> |
| 74 | <div class="layout_row_content"><%= submit_tag t("admin.common.create") %></div> | 84 | <div class="layout_row_label"></div> |
| 75 | 85 | <div class="layout_row_content"><%= submit_tag t("admin.common.create") %></div> | |
| 86 | </div> | ||
| 76 | </div> | 87 | </div> |
| 77 | <% end %> | 88 | <% end %> |
diff --git a/app/views/nodes/show.html.erb b/app/views/nodes/show.html.erb index a826be37..c9558ed0 100644 --- a/app/views/nodes/show.html.erb +++ b/app/views/nodes/show.html.erb | |||
| @@ -2,7 +2,8 @@ | |||
| 2 | <% may_change_live = current_user.may_change_live?(@node) %> | 2 | <% may_change_live = current_user.may_change_live?(@node) %> |
| 3 | <div id="admin_layout" class="show_node"> | 3 | <div id="admin_layout" class="show_node"> |
| 4 | <h1><%= title_for_node(@node) %> <small>(<%= I18n.default_locale.to_s.upcase %>)</small></h1> | 4 | <h1><%= title_for_node(@node) %> <small>(<%= I18n.default_locale.to_s.upcase %>)</small></h1> |
| 5 | <div id="content"> | 5 | |
| 6 | <div class="layout_row"> | ||
| 6 | <div class="layout_row_label"><%= t(".status") %></div> | 7 | <div class="layout_row_label"><%= t(".status") %></div> |
| 7 | <div class="layout_row_content info_group node_status"> | 8 | <div class="layout_row_content info_group node_status"> |
| 8 | <div class="info_group_items"> | 9 | <div class="info_group_items"> |
| @@ -97,8 +98,10 @@ | |||
| 97 | <span class="field_hint"><%= t(".restricted_hint") %></span> | 98 | <span class="field_hint"><%= t(".restricted_hint") %></span> |
| 98 | <% end %> | 99 | <% end %> |
| 99 | </div> | 100 | </div> |
| 101 | </div> | ||
| 100 | 102 | ||
| 101 | <% if @node.in_trash? %> | 103 | <% if @node.in_trash? %> |
| 104 | <div class="layout_row"> | ||
| 102 | <div class="layout_row_label"><%= t(".trash") %></div> | 105 | <div class="layout_row_label"><%= t(".trash") %></div> |
| 103 | <div class="layout_row_content info_group"> | 106 | <div class="layout_row_content info_group"> |
| 104 | <div class="info_group_items"> | 107 | <div class="info_group_items"> |
| @@ -136,8 +139,10 @@ | |||
| 136 | </div> | 139 | </div> |
| 137 | </div> | 140 | </div> |
| 138 | </div> | 141 | </div> |
| 139 | <% end %> | 142 | </div> |
| 143 | <% end %> | ||
| 140 | 144 | ||
| 145 | <div class="layout_row"> | ||
| 141 | <div class="layout_row_label"><%= t(".translations") %></div> | 146 | <div class="layout_row_label"><%= t(".translations") %></div> |
| 142 | <div class="layout_row_content info_group"> | 147 | <div class="layout_row_content info_group"> |
| 143 | <div class="info_group_items"> | 148 | <div class="info_group_items"> |
| @@ -173,7 +178,9 @@ | |||
| 173 | <% end %> | 178 | <% end %> |
| 174 | </div> | 179 | </div> |
| 175 | </div> | 180 | </div> |
| 181 | </div> | ||
| 176 | 182 | ||
| 183 | <div class="layout_row"> | ||
| 177 | <div class="layout_row_label"><%= t(".people") %></div> | 184 | <div class="layout_row_label"><%= t(".people") %></div> |
| 178 | <div class="layout_row_content info_group"> | 185 | <div class="layout_row_content info_group"> |
| 179 | <div class="info_group_items"> | 186 | <div class="info_group_items"> |
| @@ -194,7 +201,9 @@ | |||
| 194 | <% end %> | 201 | <% end %> |
| 195 | </div> | 202 | </div> |
| 196 | </div> | 203 | </div> |
| 204 | </div> | ||
| 197 | 205 | ||
| 206 | <div class="layout_row"> | ||
| 198 | <div class="layout_row_label"><%= t(".dates") %></div> | 207 | <div class="layout_row_label"><%= t(".dates") %></div> |
| 199 | <div class="layout_row_content info_group"> | 208 | <div class="layout_row_content info_group"> |
| 200 | <div class="info_group_items"> | 209 | <div class="info_group_items"> |
| @@ -210,7 +219,9 @@ | |||
| 210 | <% end %> | 219 | <% end %> |
| 211 | </div> | 220 | </div> |
| 212 | </div> | 221 | </div> |
| 222 | </div> | ||
| 213 | 223 | ||
| 224 | <div class="layout_row"> | ||
| 214 | <div class="layout_row_label"><%= t(".links") %></div> | 225 | <div class="layout_row_label"><%= t(".links") %></div> |
| 215 | <div class="layout_row_content info_group"> | 226 | <div class="layout_row_content info_group"> |
| 216 | <% | 227 | <% |
| @@ -325,7 +336,9 @@ | |||
| 325 | <% end %> | 336 | <% end %> |
| 326 | </div> | 337 | </div> |
| 327 | </div> | 338 | </div> |
| 339 | </div> | ||
| 328 | 340 | ||
| 341 | <div class="layout_row"> | ||
| 329 | <div class="layout_row_label"><%= t(".history") %></div> | 342 | <div class="layout_row_label"><%= t(".history") %></div> |
| 330 | <div class="layout_row_content info_group"> | 343 | <div class="layout_row_content info_group"> |
| 331 | <details> | 344 | <details> |
| @@ -343,8 +356,9 @@ | |||
| 343 | </details> | 356 | </details> |
| 344 | <p class="revisions_full_history_link"><%= link_to t(".revision_history"), node_revisions_path(@node) %> | <%= link_to t("node_actions.heading"), admin_log_path(:node_id => @node.id) %></p> | 357 | <p class="revisions_full_history_link"><%= link_to t(".revision_history"), node_revisions_path(@node) %> | <%= link_to t("node_actions.heading"), admin_log_path(:node_id => @node.id) %></p> |
| 345 | </div> | 358 | </div> |
| 359 | </div> | ||
| 346 | 360 | ||
| 347 | 361 | <div class="layout_row"> | |
| 348 | <div class="layout_row_label"><%= t(".tags") %></div> | 362 | <div class="layout_row_label"><%= t(".tags") %></div> |
| 349 | <div class="layout_row_content info_group"> | 363 | <div class="layout_row_content info_group"> |
| 350 | <% if @page.tag_list.any? %> | 364 | <% if @page.tag_list.any? %> |
| @@ -357,7 +371,9 @@ | |||
| 357 | <span class="field_hint"><%= t(".no_tags") %></span> | 371 | <span class="field_hint"><%= t(".no_tags") %></span> |
| 358 | <% end %> | 372 | <% end %> |
| 359 | </div> | 373 | </div> |
| 374 | </div> | ||
| 360 | 375 | ||
| 376 | <div class="layout_row"> | ||
| 361 | <div class="layout_row_label"><%= t(".attachments") %></div> | 377 | <div class="layout_row_label"><%= t(".attachments") %></div> |
| 362 | <div class="layout_row_content info_group"> | 378 | <div class="layout_row_content info_group"> |
| 363 | <% if @page.assets.any? %> | 379 | <% if @page.assets.any? %> |
| @@ -382,7 +398,9 @@ | |||
| 382 | <span class="field_hint"><%= t(".attachments_hint") %></span> | 398 | <span class="field_hint"><%= t(".attachments_hint") %></span> |
| 383 | </p> | 399 | </p> |
| 384 | </div> | 400 | </div> |
| 401 | </div> | ||
| 385 | 402 | ||
| 403 | <div class="layout_row"> | ||
| 386 | <div class="layout_row_label"><%= t(".events") %></div> | 404 | <div class="layout_row_label"><%= t(".events") %></div> |
| 387 | <div class="layout_row_content info_group"> | 405 | <div class="layout_row_content info_group"> |
| 388 | <ul> | 406 | <ul> |
| @@ -401,9 +419,11 @@ | |||
| 401 | <% end %> | 419 | <% end %> |
| 402 | </p> | 420 | </p> |
| 403 | </div> | 421 | </div> |
| 422 | </div> | ||
| 404 | 423 | ||
| 405 | <% matches = matching_node_kinds(@node) %> | 424 | <% matches = matching_node_kinds(@node) %> |
| 406 | <% if @node.children.any? || matches.any? %> | 425 | <% if @node.children.any? || matches.any? %> |
| 426 | <div class="layout_row"> | ||
| 407 | <div class="layout_row_label"><%= t(".children") %></div> | 427 | <div class="layout_row_label"><%= t(".children") %></div> |
| 408 | <div class="layout_row_content info_group"> | 428 | <div class="layout_row_content info_group"> |
| 409 | <% if @node.children.any? %> | 429 | <% if @node.children.any? %> |
| @@ -428,13 +448,16 @@ | |||
| 428 | </p> | 448 | </p> |
| 429 | <% end %> | 449 | <% end %> |
| 430 | </div> | 450 | </div> |
| 431 | <% end %> | 451 | </div> |
| 452 | <% end %> | ||
| 432 | 453 | ||
| 454 | <div class="layout_row"> | ||
| 433 | <div class="layout_row_label"><%= t(".abstract_locale", :lang => I18n.default_locale.to_s.upcase) %></div> | 455 | <div class="layout_row_label"><%= t(".abstract_locale", :lang => I18n.default_locale.to_s.upcase) %></div> |
| 434 | <div class="layout_row_content"><%= sanitize(@page.abstract) %></div> | 456 | <div class="layout_row_content"><%= sanitize(@page.abstract) %></div> |
| 457 | </div> | ||
| 435 | 458 | ||
| 459 | <div class="layout_row"> | ||
| 436 | <div class="layout_row_label"><%= t(".body_locale", :lang => I18n.default_locale.to_s.upcase) %></div> | 460 | <div class="layout_row_label"><%= t(".body_locale", :lang => I18n.default_locale.to_s.upcase) %></div> |
| 437 | <div class="layout_row_content"><%= sanitize(@page.body) %></div> | 461 | <div class="layout_row_content"><%= sanitize(@page.body) %></div> |
| 438 | |||
| 439 | </div> | 462 | </div> |
| 440 | </div> | 463 | </div> |
