diff --git a/app/controllers/admin/blog/settings_controller.rb b/app/controllers/admin/blog/settings_controller.rb index 7d0c230..5f2b3be 100644 --- a/app/controllers/admin/blog/settings_controller.rb +++ b/app/controllers/admin/blog/settings_controller.rb @@ -37,6 +37,16 @@ module Admin :layout => false end end + + def teasers + enabled = BlogPost.teaser_enabled_toggle! + unless request.xhr? + redirect_back_or_default(admin_blog_posts_path) + else + render :json => {:enabled => enabled}, + :layout => false + end + end end end diff --git a/app/helpers/blog_posts_helper.rb b/app/helpers/blog_posts_helper.rb index a15de1d..0848632 100644 --- a/app/helpers/blog_posts_helper.rb +++ b/app/helpers/blog_posts_helper.rb @@ -42,6 +42,10 @@ module BlogPostsHelper post.next.present? or post.prev.present? end + def blog_post_teaser_enabled? + BlogPost.teasers_enabled? + end + def blog_post_teaser(post) if post.respond_to?(:custom_teaser) && post.custom_teaser.present? post.custom_teaser.html_safe diff --git a/app/models/blog_post.rb b/app/models/blog_post.rb index ef88f1e..738d25c 100644 --- a/app/models/blog_post.rb +++ b/app/models/blog_post.rb @@ -75,6 +75,19 @@ class BlogPost < ActiveRecord::Base :scoping => 'blog' }) end + + def teasers_enabled? + RefinerySetting.find_or_set(:teasers_enabled, true, { + :scoping => 'blog' + }) + end + + def teaser_enabled_toggle! + currently = RefinerySetting.find_or_set(:teasers_enabled, true, { + :scoping => 'blog' + }) + RefinerySetting.set(:teasers_enabled, {:value => !currently, :scoping => 'blog'}) + end def uncategorized BlogPost.live.reject { |p| p.categories.any? } diff --git a/app/views/admin/blog/_submenu.html.erb b/app/views/admin/blog/_submenu.html.erb index 9d06898..25f437b 100644 --- a/app/views/admin/blog/_submenu.html.erb +++ b/app/views/admin/blog/_submenu.html.erb @@ -85,6 +85,10 @@ notification_recipients_admin_blog_settings_url(:dialog => true, :height => 400), :class => 'user_comment_icon' %> +
  • + <%= link_to t('.settings.teasers'), + teasers_admin_blog_settings_url, :class => "#{BlogPost.teasers_enabled? ? 'success' : 'failure'}_icon" %> +
  • diff --git a/app/views/blog/shared/_post.html.erb b/app/views/blog/shared/_post.html.erb index 0f65e1d..6cda22d 100644 --- a/app/views/blog/shared/_post.html.erb +++ b/app/views/blog/shared/_post.html.erb @@ -22,11 +22,15 @@
    - <%= blog_post_teaser(post) %> + <% if blog_post_teaser_enabled? %> + <%= blog_post_teaser(post) %> + <% else %> + <%= post.body.html_safe %> + <% end %>