diff options
Diffstat (limited to 'app/controllers/related_assets_controller.rb')
| -rw-r--r-- | app/controllers/related_assets_controller.rb | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/app/controllers/related_assets_controller.rb b/app/controllers/related_assets_controller.rb index 5af73fc..ca894f2 100644 --- a/app/controllers/related_assets_controller.rb +++ b/app/controllers/related_assets_controller.rb | |||
| @@ -5,10 +5,10 @@ class RelatedAssetsController < ApplicationController | |||
| 5 | def search | 5 | def search |
| 6 | term = params[:search_term].to_s.strip | 6 | term = params[:search_term].to_s.strip |
| 7 | attached_ids = @node.editable_page.related_assets.pluck(:asset_id) | 7 | attached_ids = @node.editable_page.related_assets.pluck(:asset_id) |
| 8 | scope = Asset.images.where.not(id: attached_ids) | 8 | scope = Asset.headline_eligible.where.not(id: attached_ids) |
| 9 | 9 | ||
| 10 | results = if term.present? | 10 | results = if term.present? |
| 11 | scope.where("name ILIKE ?", "%#{term}%").limit(10) | 11 | scope.where("name ILIKE :term OR upload_file_name ILIKE :term", term: "%#{term}%").limit(10) |
| 12 | else | 12 | else |
| 13 | scope.order(created_at: :desc).limit(5) | 13 | scope.order(created_at: :desc).limit(5) |
| 14 | end | 14 | end |
| @@ -26,6 +26,7 @@ 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 | has_credit: asset.show_credit?, | ||
| 29 | thumb_url: asset.upload.url(:thumb), | 30 | thumb_url: asset.upload.url(:thumb), |
| 30 | large_url: asset.upload.url(:large), | 31 | large_url: asset.upload.url(:large), |
| 31 | original_url: asset.upload.url, | 32 | original_url: asset.upload.url, |
| @@ -39,7 +40,17 @@ class RelatedAssetsController < ApplicationController | |||
| 39 | end | 40 | end |
| 40 | 41 | ||
| 41 | def update | 42 | def update |
| 42 | @node.editable_page.related_assets.find(params[:id]).insert_at(params[:position].to_i) | 43 | related = @node.editable_page.related_assets.find(params[:id]) |
| 44 | |||
| 45 | if params.key?(:headline) | ||
| 46 | RelatedAsset.transaction do | ||
| 47 | @node.editable_page.related_assets.update_all(headline: false) | ||
| 48 | related.update!(headline: true) if params[:headline] == "true" | ||
| 49 | end | ||
| 50 | else | ||
| 51 | related.insert_at(params[:position].to_i) | ||
| 52 | end | ||
| 53 | |||
| 43 | head :ok | 54 | head :ok |
| 44 | end | 55 | end |
| 45 | 56 | ||
