diff --git a/app/models/campaign.rb b/app/models/campaign.rb index e9c3e13b..72b2ebf1 100644 --- a/app/models/campaign.rb +++ b/app/models/campaign.rb @@ -15,19 +15,21 @@ class Campaign < ActiveRecord::Base :stats_number_of_contributions, :stats_raised_amount, :stats_tilt_percent, :stats_unique_contributors, :published_flag, :collect_shipping_flag, :production_flag, :include_rewards, :reward_reference, :collect_additional_info, :additional_info_label, - :include_comments, :comments_shortname, :include_rewards_claimed + :include_comments, :comments_shortname, :include_rewards_claimed, :favicon, :favicon_delete - attr_accessor :main_image_delete, :video_placeholder_delete, :facebook_image_delete + attr_accessor :main_image_delete, :video_placeholder_delete, :facebook_image_delete, :favicon_delete validates :name, :expiration_date, presence: true validates :min_payment_amount, numericality: { greater_than_or_equal_to: 1.0 } validates :fixed_payment_amount, numericality: { greater_than_or_equal_to: 1.0 } validate :expiration_date_cannot_be_in_the_past, :payments_can_be_activated + before_validation { facebook_image.clear if favicon_delete == '1' } before_validation { main_image.clear if main_image_delete == '1' } before_validation { video_placeholder.clear if video_placeholder_delete == '1' } before_validation { facebook_image.clear if facebook_image_delete == '1' } + has_attached_file :favicon #, :url => "/:basename.:extension", :path => ":rails_root/public/:basename.:extension" has_attached_file :main_image, styles: { main: "512x385!", medium: "640x360!", small: "190x143!", thumb: "100x100#" } diff --git a/app/serializers/campaign_serializer.rb b/app/serializers/campaign_serializer.rb index e4dff711..100e9204 100644 --- a/app/serializers/campaign_serializer.rb +++ b/app/serializers/campaign_serializer.rb @@ -11,7 +11,7 @@ class CampaignSerializer < ActiveModel::Serializer :stats_number_of_contributions, :stats_raised_amount, :stats_tilt_percent, :stats_unique_contributors, :published_flag, :collect_shipping_flag, :production_flag, :include_rewards, :reward_reference, :collect_additional_info, :additional_info_label, :url, :payments_uri, - :include_comments, :comments_shortname + :include_comments, :comments_shortname, :favicon, :favicon_delete def url campaign_home_url(object) diff --git a/app/views/admin/campaigns/_form.html.erb b/app/views/admin/campaigns/_form.html.erb index e46517a4..4d9dbd96 100644 --- a/app/views/admin/campaigns/_form.html.erb +++ b/app/views/admin/campaigns/_form.html.erb @@ -200,7 +200,21 @@ <% end %> - + +
+

This'll be the favorite icon placed in the browser window

+ +
+ <% if @campaign.favicon.file? %> + <%= image_tag @campaign.favicon.url %>
+ <%= f.file_field :favicon %>
+ <%= f.check_box :favicon_delete %>Delete current image + <% else %> + <%= f.file_field :favicon %> + <% end %> +
+
+

This text is displayed on the primary call to action button. Common choices include 'Pay', 'Contribute', 'Back this Project', 'Reserve for $199', etc.

diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 52dd19a1..3c0893eb 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -10,6 +10,10 @@ <%= render 'layouts/mobile_bookmark_metas' %> <%= csrf_meta_tags %> <%= stylesheet_link_tag "application" %> + + <% if !@campaign.nil? && @campaign.favicon.file? %> + + <% end %> <%= javascript_include_tag "application" %> diff --git a/config/application.rb b/config/application.rb index b4fe031c..0164a709 100644 --- a/config/application.rb +++ b/config/application.rb @@ -41,6 +41,7 @@ class Application < Rails::Application config.assets.initialize_on_precompile = false #Paperclip default options + if ENV['ENABLE_ASSET_SYNC'] == 'true' config.paperclip_defaults = { storage: :s3, s3_credentials: { @@ -52,6 +53,13 @@ class Application < Rails::Application s3_protocol: 'https', default_url: '/images/missing_:style.jpg' } + else + config.paperclip_defaults = { + path: ":rails_root/public/assets/:id_partition/:basename.:extension", + url: "/assets/:id_partition/:basename.:extension", + default_url: '/images/missing_:style.jpg' + } + end #Mailgun options config.action_mailer.smtp_settings = { diff --git a/db/migrate/20140120234217_add_attachment_favicon_to_campaigns.rb b/db/migrate/20140120234217_add_attachment_favicon_to_campaigns.rb new file mode 100644 index 00000000..695ca34d --- /dev/null +++ b/db/migrate/20140120234217_add_attachment_favicon_to_campaigns.rb @@ -0,0 +1,11 @@ +class AddAttachmentFaviconToCampaigns < ActiveRecord::Migration + def self.up + change_table :campaigns do |t| + t.attachment :favicon + end + end + + def self.down + drop_attached_file :campaigns, :favicon + end +end diff --git a/db/schema.rb b/db/schema.rb index 464da1fc..25017643 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20140116122844) do +ActiveRecord::Schema.define(:version => 20140120234217) do create_table "campaigns", :force => true do |t| t.string "name" @@ -71,6 +71,13 @@ t.boolean "include_comments", :default => false, :null => false t.string "comments_shortname" t.boolean "include_rewards_claimed" + t.boolean "accept_closed_project_payment" + t.string "comment_type" + t.string "comment_facebook_url" + t.string "favicon_file_name" + t.string "favicon_content_type" + t.integer "favicon_file_size" + t.datetime "favicon_updated_at" end add_index "campaigns", ["slug"], :name => "index_campaigns_on_slug", :unique => true diff --git a/public/assets/000/000/003/mnatiq.ico b/public/assets/000/000/003/mnatiq.ico new file mode 100644 index 00000000..c9020c0e Binary files /dev/null and b/public/assets/000/000/003/mnatiq.ico differ