diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/related_assets_controller.rb | 3 | ||||
| -rw-r--r-- | app/models/node.rb | 1 | ||||
| -rw-r--r-- | app/views/layouts/admin.html.erb | 1 | ||||
| -rw-r--r-- | app/views/nodes/edit.html.erb | 39 | ||||
| -rw-r--r-- | app/views/nodes/show.html.erb | 11 |
5 files changed, 40 insertions, 15 deletions
diff --git a/app/controllers/related_assets_controller.rb b/app/controllers/related_assets_controller.rb index ae37d2f..479ebec 100644 --- a/app/controllers/related_assets_controller.rb +++ b/app/controllers/related_assets_controller.rb | |||
| @@ -26,7 +26,8 @@ class RelatedAssetsController < ApplicationController | |||
| 26 | id: related.id, | 26 | id: related.id, |
| 27 | asset_id: asset.id, | 27 | asset_id: asset.id, |
| 28 | name: asset.name, | 28 | name: asset.name, |
| 29 | thumb_url: asset.upload.url(:thumb) | 29 | thumb_url: asset.upload.url(:thumb), |
| 30 | url: node_related_asset_path(@node, related) | ||
| 30 | } | 31 | } |
| 31 | end | 32 | end |
| 32 | 33 | ||
diff --git a/app/models/node.rb b/app/models/node.rb index 0361c1e..6f435ee 100644 --- a/app/models/node.rb +++ b/app/models/node.rb | |||
| @@ -80,6 +80,7 @@ class Node < ApplicationRecord | |||
| 80 | 80 | ||
| 81 | unless self.autosave | 81 | unless self.autosave |
| 82 | self.autosave = Page.create!(:editor => current_user) | 82 | self.autosave = Page.create!(:editor => current_user) |
| 83 | self.autosave.assets = (self.draft || self.head).assets if self.draft || self.head | ||
| 83 | self.save! | 84 | self.save! |
| 84 | end | 85 | end |
| 85 | self.autosave.assign_attributes(attributes) | 86 | self.autosave.assign_attributes(attributes) |
diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb index 5ae363f..8bbc0d5 100644 --- a/app/views/layouts/admin.html.erb +++ b/app/views/layouts/admin.html.erb | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | <link rel="stylesheet" href="/stylesheets/admin.css"> | 13 | <link rel="stylesheet" href="/stylesheets/admin.css"> |
| 14 | <script src="/javascripts/admin_search.js"></script> | 14 | <script src="/javascripts/admin_search.js"></script> |
| 15 | <script src="/javascripts/admin_interface.js"></script> | 15 | <script src="/javascripts/admin_interface.js"></script> |
| 16 | <script src="/javascripts/related_assets.js"></script> | ||
| 16 | <script> | 17 | <script> |
| 17 | var ADMIN_SEARCH_URL = "<%= admin_search_path %>"; | 18 | var ADMIN_SEARCH_URL = "<%= admin_search_path %>"; |
| 18 | var ADMIN_MENU_SEARCH_URL = "<%= admin_menu_search_path %>"; | 19 | var ADMIN_MENU_SEARCH_URL = "<%= admin_menu_search_path %>"; |
diff --git a/app/views/nodes/edit.html.erb b/app/views/nodes/edit.html.erb index 1ac05e0..e0e51d8 100644 --- a/app/views/nodes/edit.html.erb +++ b/app/views/nodes/edit.html.erb | |||
| @@ -76,24 +76,35 @@ | |||
| 76 | 76 | ||
| 77 | <div class="node_description">Images</div> | 77 | <div class="node_description">Images</div> |
| 78 | <div class="node_content"> | 78 | <div class="node_content"> |
| 79 | <ul id="image_box" rel="<%= @page.id %>"> | 79 | <div id="related_assets" |
| 80 | <% @page.assets.images.each do |image| %> | 80 | data-search-url="<%= search_node_related_assets_path(@node) %>" |
| 81 | <li rel="images_<%= image.id %>"> | 81 | data-create-url="<%= node_related_assets_path(@node) %>"> |
| 82 | <%= image_tag(image.upload.url(:thumb)) %> | 82 | <ul id="related_asset_list" class="thumbnail_list"> |
| 83 | </li> | 83 | <% @page.related_assets.includes(:asset).each do |related| %> |
| 84 | <% end %> | 84 | <li data-url="<%= node_related_asset_path(@node, related) %>"> |
| 85 | </ul> | 85 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> |
| 86 | <div class="clear_left right"> | 86 | <%= image_tag related.asset.upload.url(:thumb) %> |
| 87 | <a id="image_browser_toggle" class="unselected" href="#">image browser</a> | 87 | <button type="button" class="related_asset_remove" aria-label="Remove image"> |
| 88 | </div> | 88 | <%= icon("x", library: "tabler", "aria-hidden": true) %> |
| 89 | <div id="image_browser"> | 89 | </button> |
| 90 | <ul> | 90 | </li> |
| 91 | <% Asset.images.each do |image| %> | ||
| 92 | <li rel="images_<%= image.id %>"><%= image_tag(image.upload.url(:thumb)) %></li> | ||
| 93 | <% end %> | 91 | <% end %> |
| 94 | </ul> | 92 | </ul> |
| 93 | <%= text_field_tag nil, nil, id: "related_asset_search_term", placeholder: "Search images to attach…", autocomplete: "off" %> | ||
| 94 | <div id="related_asset_search_results" class="search_results"></div> | ||
| 95 | </div> | 95 | </div> |
| 96 | </div> | 96 | </div> |
| 97 | |||
| 98 | <template id="related_asset_template"> | ||
| 99 | <li> | ||
| 100 | <span class="related_asset_handle"><%= icon("grip-vertical", library: "tabler", "aria-hidden": true) %></span> | ||
| 101 | <img src=""> | ||
| 102 | <button type="button" class="related_asset_remove" aria-label="Remove image"> | ||
| 103 | <%= icon("x", library: "tabler", "aria-hidden": true) %> | ||
| 104 | </button> | ||
| 105 | </li> | ||
| 106 | </template> | ||
| 107 | |||
| 97 | </div> | 108 | </div> |
| 98 | </details> | 109 | </details> |
| 99 | 110 | ||
diff --git a/app/views/nodes/show.html.erb b/app/views/nodes/show.html.erb index 280e492..8ea03cd 100644 --- a/app/views/nodes/show.html.erb +++ b/app/views/nodes/show.html.erb | |||
| @@ -152,6 +152,17 @@ | |||
| 152 | <div class="node_description">Tags</div> | 152 | <div class="node_description">Tags</div> |
| 153 | <div class="node_content node_info_group"><%= @page.tag_list %></div> | 153 | <div class="node_content node_info_group"><%= @page.tag_list %></div> |
| 154 | 154 | ||
| 155 | <% if @page.assets.images.any? %> | ||
| 156 | <div class="node_description">Images</div> | ||
| 157 | <div class="node_content node_info_group"> | ||
| 158 | <ul class="thumbnail_list"> | ||
| 159 | <% @page.assets.images.each do |asset| %> | ||
| 160 | <li><%= link_to image_tag(asset.upload.url(:thumb)), asset_path(asset) %></li> | ||
| 161 | <% end %> | ||
| 162 | </ul> | ||
| 163 | </div> | ||
| 164 | <% end %> | ||
| 165 | |||
| 155 | <div class="node_description">Events</div> | 166 | <div class="node_description">Events</div> |
| 156 | <div class="node_content node_info_group"> | 167 | <div class="node_content node_info_group"> |
| 157 | <ul> | 168 | <ul> |
