From dcb4a375852a9091588e49c917721748f110e94f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasia=20Jarmo=C5=82kowicz?= Date: Wed, 30 May 2018 16:49:18 +0200 Subject: [PATCH] Add banner to campaigns --- app/models/campaign.rb | 6 +-- .../campaign_banner_image_uploader.rb | 16 ++++++++ .../campaign_custom_banner_uploader.rb | 39 ------------------- app/views/campaigns/_settings_modal.html.erb | 27 +++++++------ .../components/_upload_banner_image.html.erb | 31 +++++++++++++++ .../safety_around_water.html.erb | 9 ++++- ...202124322_add_banner_image_to_campaigns.rb | 5 +++ db/structure.sql | 5 ++- 8 files changed, 82 insertions(+), 56 deletions(-) create mode 100644 app/uploaders/campaign_banner_image_uploader.rb delete mode 100644 app/uploaders/campaign_custom_banner_uploader.rb create mode 100644 app/views/components/_upload_banner_image.html.erb create mode 100644 db/migrate/201810202124322_add_banner_image_to_campaigns.rb diff --git a/app/models/campaign.rb b/app/models/campaign.rb index 9570760e..3185816e 100644 --- a/app/models/campaign.rb +++ b/app/models/campaign.rb @@ -13,8 +13,8 @@ class Campaign < ActiveRecord::Base :remove_main_image, # for carrierwave :background_image, :remove_background_image, #bool carrierwave - :custom_banner, - :remove_custom_banner, + :banner_image, + :remove_banner_image, :published, :video_url, #str :vimeo_video_id, @@ -52,7 +52,7 @@ class Campaign < ActiveRecord::Base mount_uploader :main_image, CampaignMainImageUploader mount_uploader :background_image, CampaignBackgroundImageUploader - mount_uploader :custom_banner, CampaignCustomBannerUploader + mount_uploader :banner_image, CampaignBannerImageUploader has_many :donations has_many :charges, through: :donations diff --git a/app/uploaders/campaign_banner_image_uploader.rb b/app/uploaders/campaign_banner_image_uploader.rb new file mode 100644 index 00000000..1c4010d7 --- /dev/null +++ b/app/uploaders/campaign_banner_image_uploader.rb @@ -0,0 +1,16 @@ +# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later +class CampaignBannerImageUploader < CarrierWave::Uploader::Base + include CarrierWave::MiniMagick + + def store_dir + "uploads/campaigns/#{mounted_as}/#{model.id}" + end + + def extension_white_list + %w(jpg jpeg png) + end + + def cache_dir + "#{Rails.root}/tmp/uploads" + end +end diff --git a/app/uploaders/campaign_custom_banner_uploader.rb b/app/uploaders/campaign_custom_banner_uploader.rb deleted file mode 100644 index bfc2d652..00000000 --- a/app/uploaders/campaign_custom_banner_uploader.rb +++ /dev/null @@ -1,39 +0,0 @@ -class CampaignCustomBannerUploader < CarrierWave::Uploader::Base - - # Include RMagick or MiniMagick support: - # include CarrierWave::RMagick - include CarrierWave::MiniMagick - - # Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility: - # include Sprockets::Helpers::RailsHelper - # include Sprockets::Helpers::IsolatedHelper - - # Override the directory where uploaded files will be stored. - # This is a sensible default for uploaders that are meant to be mounted: - def store_dir - "uploads/campaigns/#{mounted_as}/#{model.id}" - end - - # Process files as they are uploaded: - # process :scale => [200, 300] - # - # def scale(width, height) - # # do something - # end - - # Add a white list of extensions which are allowed to be uploaded. - # For images you might use something like this: - def extension_white_list - %w(jpg jpeg png) - end - - # Override the filename of the uploaded files: - # Avoid using model.id or version_name here, see uploader/store.rb for details. - # def filename - # "something.jpg" if original_filename - # end - - def cache_dir - "#{Rails.root}/tmp/uploads" - end -end diff --git a/app/views/campaigns/_settings_modal.html.erb b/app/views/campaigns/_settings_modal.html.erb index 199fb825..a9e6dca3 100644 --- a/app/views/campaigns/_settings_modal.html.erb +++ b/app/views/campaigns/_settings_modal.html.erb @@ -92,20 +92,25 @@ - <% if @nonprofit.custom_layout %> -
- -
+
+
+ <% if @nonprofit.custom_layout %>
- +

Custom image at the very top of the campaign page

-
- Edit - -
+ <% if @campaign.banner_image_url.present? %> +
+ + Edit +
+ <% else %> + + + Add Image + + <% end %>
-
- <% end %> + <% end %>
diff --git a/app/views/components/_upload_banner_image.html.erb b/app/views/components/_upload_banner_image.html.erb new file mode 100644 index 00000000..39eeec10 --- /dev/null +++ b/app/views/components/_upload_banner_image.html.erb @@ -0,0 +1,31 @@ +<%- # License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later -%> + diff --git a/app/views/nonprofits/custom_campaign_layouts/safety_around_water.html.erb b/app/views/nonprofits/custom_campaign_layouts/safety_around_water.html.erb index 52e080c1..f0e5319e 100644 --- a/app/views/nonprofits/custom_campaign_layouts/safety_around_water.html.erb +++ b/app/views/nonprofits/custom_campaign_layouts/safety_around_water.html.erb @@ -63,9 +63,10 @@ <% hide_title = @campaign.hide_title && @campaign_background_image ? true : false %> <% css_style = current_campaign_editor? ? "style='margin-top: 0'" : '' %> -
-
+
+ +
<%= render 'components/fundraising_pages/header', image_url: @campaign_background_image, @@ -167,6 +168,10 @@ end_point: "/nonprofits/#{@nonprofit.id}/campaigns/#{@campaign.id}", image_url: @campaign_background_image, input_name: 'campaign[background_image]' %> + <%= render 'components/upload_banner_image', + end_point: "/nonprofits/#{@nonprofit.id}/campaigns/#{@campaign.id}", + image_url: @campaign.banner_image.url, + input_name: 'campaign[banner_image]' %> <%= render 'components/custom_receipt_modal', title: 'Campaign Receipt Message', type: 'campaign', diff --git a/db/migrate/201810202124322_add_banner_image_to_campaigns.rb b/db/migrate/201810202124322_add_banner_image_to_campaigns.rb new file mode 100644 index 00000000..8be6b2a9 --- /dev/null +++ b/db/migrate/201810202124322_add_banner_image_to_campaigns.rb @@ -0,0 +1,5 @@ +class AddBannerImageToCampaigns < ActiveRecord::Migration + def change + add_column :campaigns, :banner_image, :string + end +end diff --git a/db/structure.sql b/db/structure.sql index 5c08fffa..10aa0424 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -449,7 +449,8 @@ CREATE TABLE campaigns ( campaign_template_id integer, parent_campaign_id integer, reason_for_supporting text, - default_reason_for_supporting text + default_reason_for_supporting text, + banner_image character varying(255) ); @@ -4427,3 +4428,5 @@ INSERT INTO schema_migrations (version) VALUES ('201810202124320'); INSERT INTO schema_migrations (version) VALUES ('201810202124321'); +INSERT INTO schema_migrations (version) VALUES ('201810202124322'); +