diff options
Diffstat (limited to 'app/views/nodes/edit.html.erb')
| -rw-r--r-- | app/views/nodes/edit.html.erb | 144 |
1 files changed, 83 insertions, 61 deletions
diff --git a/app/views/nodes/edit.html.erb b/app/views/nodes/edit.html.erb index 25f15c2..fc1d18f 100644 --- a/app/views/nodes/edit.html.erb +++ b/app/views/nodes/edit.html.erb | |||
| @@ -33,48 +33,17 @@ | |||
| 33 | </div> | 33 | </div> |
| 34 | <% end %> | 34 | <% end %> |
| 35 | 35 | ||
| 36 | <details id="metadata_details"> | 36 | <%= fields_for @page do |d| %> |
| 37 | <summary>Metadata (slug, parent, tags, template, author, images)</summary> | 37 | <div id="edit_grid"> |
| 38 | <div id="metadata"> | ||
| 39 | <div class="node_description">Slug</div> | ||
| 40 | <div class="node_content"> | ||
| 41 | <%= f.text_field( | ||
| 42 | :staged_slug, :value => @node.staged_slug || @node.slug | ||
| 43 | ) | ||
| 44 | %> | ||
| 45 | </div> | ||
| 46 | |||
| 47 | <div class="node_description">parent</div> | ||
| 48 | <div class="node_content"> | ||
| 49 | <%= text_field_tag :move_to_search_term, @node.parent.title rescue "" %> | ||
| 50 | <div id="move_to_search_results" class="search_results"></div> | ||
| 51 | <%= f.hidden_field( | ||
| 52 | :staged_parent_id, | ||
| 53 | :value => @node.staged_parent_id || @node.parent_id | ||
| 54 | ) | ||
| 55 | %> | ||
| 56 | </div> | ||
| 57 | |||
| 58 | <%= fields_for @page do |d| %> | ||
| 59 | <div class="node_description">Tags - comma seperated</div> | ||
| 60 | <div class="node_content"><%= text_field_tag :tag_list, @page.tag_list.join(', ') %></div> | ||
| 61 | |||
| 62 | <div class="node_description">Publish at</div> | ||
| 63 | <div class="node_content"><%= d.datetime_select :published_at, :value => @page.published_at %></div> | ||
| 64 | 38 | ||
| 65 | <div class="node_description">Template</div> | 39 | <div id="main_fields"> |
| 66 | <div class="node_content"> | 40 | <div class="node_description">Title</div> |
| 67 | <%= d.select :template_name, custom_page_templates, {:prompt => 'Select Template'} %> | 41 | <div class="node_content"><%= d.text_field :title %></div> |
| 68 | <span class="field_hint">Set automatically based on how this node was created - change it if needed.</span> | ||
| 69 | </div> | ||
| 70 | 42 | ||
| 71 | <div class="node_description">Author</div> | 43 | <div class="node_description">Abstract</div> |
| 72 | <div class="node_content"> | 44 | <div class="node_content"><%= d.text_area :abstract %></div> |
| 73 | <%= d.select :user_id, user_list, | ||
| 74 | :selected => @page.user_id || @node.draft&.user_id || @node.head&.user_id %> | ||
| 75 | </div> | ||
| 76 | 45 | ||
| 77 | <div class="node_description">Images</div> | 46 | <div class="node_description">Attachments</div> |
| 78 | <div class="node_content"> | 47 | <div class="node_content"> |
| 79 | <div id="related_assets" | 48 | <div id="related_assets" |
| 80 | data-search-url="<%= search_node_related_assets_path(@node) %>" | 49 | data-search-url="<%= search_node_related_assets_path(@node) %>" |
| @@ -82,17 +51,27 @@ | |||
| 82 | <ul id="related_asset_list" class="thumbnail_list"> | 51 | <ul id="related_asset_list" class="thumbnail_list"> |
| 83 | <% @page.related_assets.includes(:asset).each do |related| %> | 52 | <% @page.related_assets.includes(:asset).each do |related| %> |
| 84 | <li data-url="<%= node_related_asset_path(@node, related) %>" | 53 | <li data-url="<%= node_related_asset_path(@node, related) %>" |
| 54 | data-asset-id="<%= related.asset.id %>" | ||
| 85 | data-large-url="<%= related.asset.upload.url(:large) %>" | 55 | data-large-url="<%= related.asset.upload.url(:large) %>" |
| 86 | data-original-url="<%= related.asset.upload.url %>" | 56 | data-original-url="<%= related.asset.upload.url %>" |
| 87 | data-name="<%= related.asset.name %>"> | 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? %>"> | ||
| 88 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> | 61 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> |
| 89 | <%= image_tag related.asset.upload.url(:thumb) %> | 62 | <%= image_tag related.asset.upload.url(:thumb) %> |
| 63 | <button type="button" class="related_asset_set_headline" | ||
| 64 | aria-pressed="<%= related.headline? %>" aria-label="Set as headline image" | ||
| 65 | title="Use this photo as the page's headline image"> | ||
| 66 | <%= icon("star", library: "tabler", "aria-hidden": true) %> | ||
| 67 | </button> | ||
| 90 | <button type="button" class="related_asset_remove" aria-label="Remove image"> | 68 | <button type="button" class="related_asset_remove" aria-label="Remove image"> |
| 91 | <%= icon("x", library: "tabler", "aria-hidden": true) %> | 69 | <%= icon("x", library: "tabler", "aria-hidden": true) %> |
| 92 | </button> | 70 | </button> |
| 93 | </li> | 71 | </li> |
| 94 | <% end %> | 72 | <% end %> |
| 95 | </ul> | 73 | </ul> |
| 74 | <p class="field_hint">The starred image or PDF becomes this page's headline on the public site. If none is starred, visitors get a link to browse all attached images instead.</p> | ||
| 96 | <%= text_field_tag nil, nil, id: "related_asset_search_term", placeholder: "Search images to attach…", autocomplete: "off" %> | 75 | <%= text_field_tag nil, nil, id: "related_asset_search_term", placeholder: "Search images to attach…", autocomplete: "off" %> |
| 97 | <div id="related_asset_search_results" class="search_results"></div> | 76 | <div id="related_asset_search_results" class="search_results"></div> |
| 98 | </div> | 77 | </div> |
| @@ -102,38 +81,81 @@ | |||
| 102 | <li> | 81 | <li> |
| 103 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> | 82 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> |
| 104 | <img src=""> | 83 | <img src=""> |
| 84 | <button type="button" class="related_asset_set_headline" aria-pressed="false" aria-label="Set as headline image"> | ||
| 85 | <%= icon("star", library: "tabler", "aria-hidden": true) %> | ||
| 86 | </button> | ||
| 105 | <button type="button" class="related_asset_remove" aria-label="Remove image"> | 87 | <button type="button" class="related_asset_remove" aria-label="Remove image"> |
| 106 | <%= icon("x", library: "tabler", "aria-hidden": true) %> | 88 | <%= icon("x", library: "tabler", "aria-hidden": true) %> |
| 107 | </button> | 89 | </button> |
| 108 | </li> | 90 | </li> |
| 109 | </template> | 91 | </template> |
| 110 | |||
| 111 | </div> | 92 | </div> |
| 112 | </details> | ||
| 113 | 93 | ||
| 114 | <div id="content"> | 94 | <details id="metadata_details"> |
| 115 | <div class="node_description">Title</div> | 95 | <summary>Metadata (slug, parent, tags, template, author, images)</summary> |
| 116 | <div class="node_content"><%= d.text_field :title %></div> | 96 | <div id="metadata"> |
| 97 | <div class="node_description">Slug</div> | ||
| 98 | <div class="node_content"> | ||
| 99 | <%= f.text_field( | ||
| 100 | :staged_slug, :value => @node.staged_slug || @node.slug | ||
| 101 | ) | ||
| 102 | %> | ||
| 103 | </div> | ||
| 117 | 104 | ||
| 118 | <div class="node_description">Abstract</div> | 105 | <div class="node_description">parent</div> |
| 119 | <div class="node_content"><%= d.text_area :abstract %></div> | 106 | <div class="node_content"> |
| 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> | ||
| 109 | <div id="move_to_search_results" class="search_results"></div> | ||
| 110 | <%= f.hidden_field( | ||
| 111 | :staged_parent_id, | ||
| 112 | :value => @node.staged_parent_id || @node.parent_id | ||
| 113 | ) | ||
| 114 | %> | ||
| 115 | </div> | ||
| 120 | 116 | ||
| 121 | <div class="node_description">Body</div> | 117 | <div class="node_description">Tags</div> |
| 122 | <div class="body_toolbar_row"> | 118 | <div class="node_content"> |
| 123 | <button type="button" id="preview_toggle" class="view_toggle" aria-pressed="false" aria-label="Toggle live preview" title="Toggle live preview"> | 119 | <%= text_field_tag :tag_list, @page.tag_list.join(', ') %> |
| 124 | <%= icon("layout-sidebar-right", library: "tabler", "aria-hidden": true) %> <span>Live preview</span> | 120 | <span class="field_hint">Comma separated.</span> |
| 125 | </button> | 121 | </div> |
| 126 | <button type="button" id="preview_force_render" class="view_toggle" style="display:none" aria-label="Force preview render" title="Force preview render"> | 122 | |
| 127 | <%= icon("refresh", library: "tabler", "aria-hidden": true) %> <span>Force refresh</span> | 123 | <div class="node_description">Publish at</div> |
| 128 | </button> | 124 | <div class="node_content"><%= d.datetime_select :published_at, :value => @page.published_at %></div> |
| 129 | </div> | 125 | |
| 126 | <div class="node_description">Template</div> | ||
| 127 | <div class="node_content"> | ||
| 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> | ||
| 130 | </div> | ||
| 130 | 131 | ||
| 131 | <div id="editor_and_preview"> | 132 | <div class="node_description">Author</div> |
| 132 | <div class="preview_content"> | 133 | <div class="node_content"> |
| 133 | <div class="node_content"><%= d.text_area :body, :class => 'with_editor' %></div> | 134 | <%= d.select :user_id, user_list, |
| 135 | :selected => @page.user_id || @node.draft&.user_id || @node.head&.user_id %> | ||
| 136 | </div> | ||
| 137 | |||
| 138 | </div> | ||
| 139 | </details> | ||
| 140 | |||
| 141 | <div id="content"> | ||
| 142 | <div class="node_description">Body</div> | ||
| 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"> | ||
| 145 | <%= icon("layout-sidebar-right", library: "tabler", "aria-hidden": true) %> <span>Live preview</span> | ||
| 146 | </button> | ||
| 147 | <button type="button" id="preview_force_render" class="view_toggle" style="display:none" aria-label="Force preview render" title="Force preview render"> | ||
| 148 | <%= icon("refresh", library: "tabler", "aria-hidden": true) %> <span>Force refresh</span> | ||
| 149 | </button> | ||
| 134 | </div> | 150 | </div> |
| 135 | <div id="preview_panel" style="display:none"> | 151 | |
| 136 | <iframe id="live_preview_iframe" title="Live preview" data-src="<%= preview_page_path(@page, :locale => I18n.default_locale) %>"></iframe> | 152 | <div id="editor_and_preview"> |
| 153 | <div class="preview_content"> | ||
| 154 | <div class="node_content"><%= d.text_area :body, :class => 'with_editor' %></div> | ||
| 155 | </div> | ||
| 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> | ||
| 158 | </div> | ||
| 137 | </div> | 159 | </div> |
| 138 | </div> | 160 | </div> |
| 139 | </div> | 161 | </div> |
