tb_blog 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +6 -14
  2. data/Readme.markdown +3 -2
  3. data/app/assets/javascripts/admin/blog/application.js +1 -0
  4. data/app/assets/javascripts/{spud/admin → admin/blog}/post_categories.js +0 -3
  5. data/app/assets/javascripts/{spud/admin → admin/blog}/posts.js +0 -6
  6. data/app/controllers/{spud/admin → admin}/news_posts_controller.rb +13 -11
  7. data/app/controllers/{spud/admin → admin}/post_categories_controller.rb +9 -7
  8. data/app/controllers/{spud/admin → admin}/post_comments_controller.rb +6 -7
  9. data/app/controllers/{spud/admin → admin}/posts_controller.rb +14 -11
  10. data/app/controllers/blog/sitemaps_controller.rb +10 -0
  11. data/app/controllers/blog_controller.rb +25 -34
  12. data/app/controllers/news_controller.rb +5 -21
  13. data/app/helpers/admin/news_posts_helper.rb +2 -0
  14. data/app/helpers/admin/post_categories_helper.rb +2 -0
  15. data/app/helpers/admin/post_comments_helper.rb +3 -0
  16. data/app/helpers/{spud/admin → admin}/posts_helper.rb +1 -1
  17. data/app/helpers/blog/sitemaps_helper.rb +2 -0
  18. data/app/helpers/blog_helper.rb +0 -1
  19. data/app/models/spud_post.rb +30 -21
  20. data/app/models/spud_post_categories_post.rb +2 -3
  21. data/app/models/spud_post_category.rb +9 -2
  22. data/app/models/spud_post_comment.rb +1 -3
  23. data/app/models/spud_post_site.rb +0 -1
  24. data/app/views/admin/news_posts/edit.html.erb +3 -0
  25. data/app/views/admin/news_posts/index.html.erb +42 -0
  26. data/app/views/admin/news_posts/new.html.erb +3 -0
  27. data/app/views/{spud/admin → admin}/post_categories/_category.html.erb +2 -2
  28. data/app/views/{spud/admin → admin}/post_categories/_form.html.erb +1 -1
  29. data/app/views/{spud/admin → admin}/post_categories/index.html.erb +1 -1
  30. data/app/views/admin/post_categories/new.html.erb +1 -0
  31. data/app/views/{spud/admin → admin}/post_comments/index.html.erb +3 -3
  32. data/app/views/{spud/admin → admin}/posts/_category.html.erb +1 -1
  33. data/app/views/{spud/admin → admin}/posts/_form.html.erb +3 -3
  34. data/app/views/admin/posts/edit.html.erb +3 -0
  35. data/app/views/admin/posts/index.html.erb +48 -0
  36. data/app/views/admin/posts/new.html.erb +3 -0
  37. data/app/views/blog/_comment.html.erb +6 -4
  38. data/app/views/blog/_comment_form.html.erb +0 -2
  39. data/app/views/blog/index.html.erb +30 -28
  40. data/app/views/blog/show.html.erb +35 -31
  41. data/app/views/news/index.html.erb +26 -24
  42. data/app/views/news/show.html.erb +25 -21
  43. data/config/routes.rb +14 -15
  44. data/lib/spud_blog/configuration.rb +1 -2
  45. data/lib/spud_blog/engine.rb +13 -10
  46. data/lib/spud_blog/version.rb +1 -1
  47. data/lib/tb_blog.rb +1 -1
  48. data/spec/controllers/admin/posts_controller_spec.rb +5 -0
  49. data/spec/dummy/config/application.rb +5 -2
  50. data/spec/dummy/config/environments/production.rb +1 -1
  51. data/spec/dummy/config/environments/test.rb +5 -6
  52. data/spec/dummy/config/initializers/secret_token.rb +1 -0
  53. data/spec/dummy/db/migrate/20140110180411_create_spud_roles.tb_core.rb +11 -0
  54. data/spec/dummy/db/migrate/20140110180412_create_spud_permissions.tb_core.rb +11 -0
  55. data/spec/dummy/db/migrate/20140110180413_create_spud_role_permissions.tb_core.rb +12 -0
  56. data/spec/dummy/db/migrate/20140110180414_drop_spud_admin_permissions.tb_core.rb +16 -0
  57. data/spec/dummy/db/migrate/20140110180415_create_spud_permalinks.tb_permalinks.rb +12 -0
  58. data/spec/dummy/db/migrate/20140110180416_add_site_id_to_spud_permalinks.tb_permalinks.rb +7 -0
  59. data/spec/dummy/db/migrate/20140110180417_modify_site_id_for_spud_permalinks.tb_permalinks.rb +12 -0
  60. data/spec/dummy/db/migrate/20140110180418_create_spud_posts.tb_blog.rb +16 -0
  61. data/spec/dummy/db/migrate/20140110180419_create_spud_post_categories.tb_blog.rb +14 -0
  62. data/spec/dummy/db/migrate/20140110180420_create_spud_post_comments.tb_blog.rb +14 -0
  63. data/spec/dummy/db/migrate/20140110180421_add_url_to_spud_posts.tb_blog.rb +7 -0
  64. data/spec/dummy/db/migrate/20140110180422_add_url_to_spud_post_categories.tb_blog.rb +9 -0
  65. data/spec/dummy/db/migrate/20140110180423_add_is_news_to_spud_posts.tb_blog.rb +7 -0
  66. data/spec/dummy/db/migrate/20140110180424_add_meta_to_posts.tb_blog.rb +7 -0
  67. data/spec/dummy/db/migrate/20140110180425_add_comments_counter_to_spud_posts.tb_blog.rb +13 -0
  68. data/spec/dummy/db/migrate/20140110180426_create_spud_post_sites.tb_blog.rb +12 -0
  69. data/spec/dummy/db/migrate/20140110180427_add_spam_fields_to_spud_post_comments.tb_blog.rb +9 -0
  70. data/spec/dummy/db/migrate/20140110180428_add_permalink_to_spud_post_comments.tb_blog.rb +6 -0
  71. data/spec/dummy/db/migrate/20140110180429_add_nested_set_to_post_categories.tb_blog.rb +22 -0
  72. data/spec/dummy/db/migrate/20140110180430_add_content_format_to_spud_posts.tb_blog.rb +6 -0
  73. data/spec/dummy/db/migrate/20140110180431_add_content_processed_to_spud_post.tb_blog.rb +6 -0
  74. data/spec/dummy/db/migrate/20140113162805_create_tb_liquid_spud_liquid_tags.tb_liquid.rb +13 -0
  75. data/spec/dummy/db/schema.rb +100 -59
  76. metadata +123 -104
  77. data/app/assets/javascripts/spud/blog/sitemaps.js +0 -2
  78. data/app/assets/javascripts/spud/blog.js +0 -41
  79. data/app/assets/stylesheets/news.css +0 -4
  80. data/app/assets/stylesheets/spud/blog/sitemaps.css +0 -4
  81. data/app/assets/stylesheets/spud/blog/validity.css +0 -3
  82. data/app/controllers/spud/blog/sitemaps_controller.rb +0 -9
  83. data/app/helpers/spud/admin/news_posts_helper.rb +0 -2
  84. data/app/helpers/spud/admin/post_categories_helper.rb +0 -2
  85. data/app/helpers/spud/admin/post_comments_helper.rb +0 -3
  86. data/app/helpers/spud/blog/sitemaps_helper.rb +0 -2
  87. data/app/models/spud_post_category_sweeper.rb +0 -41
  88. data/app/models/spud_post_comment_sweeper.rb +0 -33
  89. data/app/models/spud_post_sweeper.rb +0 -47
  90. data/app/views/spud/admin/news_posts/edit.html.erb +0 -3
  91. data/app/views/spud/admin/news_posts/index.html.erb +0 -44
  92. data/app/views/spud/admin/news_posts/new.html.erb +0 -3
  93. data/app/views/spud/admin/post_categories/new.html.erb +0 -1
  94. data/app/views/spud/admin/posts/edit.html.erb +0 -3
  95. data/app/views/spud/admin/posts/index.html.erb +0 -49
  96. data/app/views/spud/admin/posts/new.html.erb +0 -3
  97. data/spec/controllers/spud/admin/posts_controller_spec.rb +0 -5
  98. data/spec/dummy/log/development.log +0 -263
  99. data/spec/dummy/log/test.log +0 -3339
  100. /data/app/assets/javascripts/{spud/admin → admin/blog}/post_comments.js +0 -0
  101. /data/app/assets/stylesheets/{spud/admin/posts.css.scss → admin/blog/application.css.scss} +0 -0
  102. /data/app/views/{spud/admin → admin}/post_categories/edit.html.erb +0 -0
  103. /data/app/views/{spud/blog → blog}/sitemaps/show.xml.builder +0 -0
@@ -0,0 +1,42 @@
1
+ <%= content_for :data_controls do %>
2
+ <%= link_to "Manage Categories", admin_post_categories_path, :class => 'btn spud_blog_manage_categories', :title => 'Manage Categories' %>
3
+ <%= link_to "New Post", new_admin_news_post_path, :class => "btn btn-primary", :title => "New Post" %>
4
+ <% end %>
5
+
6
+ <%=content_for :detail do %>
7
+ <table class="table table-striped">
8
+ <thead>
9
+ <tr>
10
+ <th>Title</th>
11
+ <th>Author</th>
12
+ <th>Published At</th>
13
+ <th>&nbsp;</th>
14
+ </tr>
15
+ </thead>
16
+ <tbody>
17
+ <% @posts.each do |post| %>
18
+ <tr>
19
+ <td>
20
+ <%= link_to post.title, news_post_path(post.url_name), :target => :blank %>
21
+ <% if !post.visible? %>
22
+ <span class="badge">Draft</span>
23
+ <% end %>
24
+ </td>
25
+ <td><%= post.author.full_name %></td>
26
+ <td><%= post.published_at.strftime('%m/%d/%Y') %></td>
27
+ <td class="text-right">
28
+ <%= link_to 'Edit', edit_admin_news_post_path(post), :class => 'btn btn-small' %>
29
+ <%= link_to 'Delete', admin_news_post_path(post), :method => :delete, :data => {:confirm => 'Are you sure you want to delete this post?'}, :class => 'btn btn-small btn-danger' %>
30
+ </td>
31
+ </tr>
32
+ <%end%>
33
+ </tbody>
34
+ </table>
35
+ <div class="spud_admin_pagination">
36
+ <%= will_paginate @posts %>
37
+ </div>
38
+
39
+ <script>
40
+ $(document).ready(spud.admin.post_categories.index);
41
+ </script>
42
+ <%end%>
@@ -0,0 +1,3 @@
1
+ <%= form_for @post, :url => admin_news_posts_path do |f| %>
2
+ <%= render :partial => '/admin/posts/form', :locals => {:f => f} %>
3
+ <% end %>
@@ -3,8 +3,8 @@
3
3
  <%= category.name %>
4
4
  </span>
5
5
  <span class="spud_blog_category_manager_item_actions">
6
- <%= link_to 'Edit', edit_spud_admin_post_category_path(category), :class => 'btn btn-mini spud_blog_category_edit' %>
7
- <%= link_to 'Delete', spud_admin_post_category_path(category), :class => 'btn btn-mini btn-danger spud_blog_category_delete' %>
6
+ <%= link_to 'Edit', edit_admin_post_category_path(category), :class => 'btn btn-mini spud_blog_category_edit' %>
7
+ <%= link_to 'Delete', admin_post_category_path(category), :class => 'btn btn-mini btn-danger spud_blog_category_delete' %>
8
8
  </span>
9
9
  <ul class="spud_blog_category_manager_item_children">
10
10
  <% if @post_categories[category.id] %>
@@ -1,4 +1,4 @@
1
- <%= form_for @post_category, :url => (@post_category.new_record? ? spud_admin_post_categories_path : spud_admin_post_category_path(@post_category)), :html => {:class => 'form-horizontal spud_post_category_form'} do |f| %>
1
+ <%= form_for @post_category, :url => (@post_category.new_record? ? admin_post_categories_path : admin_post_category_path(@post_category)), :html => {:class => 'form-horizontal spud_post_category_form'} do |f| %>
2
2
 
3
3
  <%= error_messages_for(f.object) %>
4
4
 
@@ -1,5 +1,5 @@
1
1
  <div class="spud_blog_category_manager">
2
- <%= link_to "New Post Category", new_spud_admin_post_category_path, :class => "btn btn-small btn-primary spud_blog_category_add_new", :title => "New Post Category" %>
2
+ <%= link_to "New Post Category", new_admin_post_category_path, :class => "btn btn-small btn-primary spud_blog_category_add_new", :title => "New Post Category" %>
3
3
  <ul class="spud_blog_category_manager_list">
4
4
  <% if @post_categories.length == 0 %>
5
5
  <li class="spud_blog_category_manager_empty">You do not have any Post Categories at this time.</li>
@@ -0,0 +1 @@
1
+ <%= render :partial => 'form', :locals => {:path => admin_post_categories_path} %>
@@ -40,12 +40,12 @@
40
40
  </td>
41
41
  <td class="spud-post-comment-actions">
42
42
  <% if !comment.approved %>
43
- <%= link_to 'Approve', approve_spud_admin_post_comment_path(comment), :class => 'btn btn-success btn-small' %>
43
+ <%= link_to 'Approve', approve_admin_post_comment_path(comment), :class => 'btn btn-success btn-small' %>
44
44
  <% end %>
45
45
  <% if !comment.spam %>
46
- <%= link_to 'Spam', spam_spud_admin_post_comment_path(comment), :class => 'btn btn-warning btn-small' %>
46
+ <%= link_to 'Spam', spam_admin_post_comment_path(comment), :class => 'btn btn-warning btn-small' %>
47
47
  <% end %>
48
- <%= link_to 'Delete', spud_admin_post_comment_path(comment), :method => :delete, :confirm => 'Are you sure you want to delete this comment?', :class => 'btn btn-danger btn-small' %>
48
+ <%= link_to 'Delete', admin_post_comment_path(comment), :method => :delete, :data => {:confirm => 'Are you sure you want to delete this comment?'}, :class => 'btn btn-danger btn-small' %>
49
49
  </td>
50
50
  </tr>
51
51
  <%end%>
@@ -3,7 +3,7 @@
3
3
  <%= label_tag "spud_post_category_#{category.id}", category.name %>
4
4
  <ul>
5
5
  <% if @categories[category.id] %>
6
- <%= render :partial => '/spud/admin/posts/category', :collection => @categories[category.id] %>
6
+ <%= render :partial => '/admin/posts/category', :collection => @categories[category.id] %>
7
7
  <% end %>
8
8
  </ul>
9
9
  <% end %>
@@ -20,7 +20,7 @@
20
20
  <% if Spud::Blog.config.has_custom_fields %>
21
21
  <fieldset>
22
22
  <legend>Custom Fields</legend>
23
- <%= render :partial => '/spud/admin/posts/custom_fields', :locals => {:f => f} %>
23
+ <%= render :partial => '/admin/posts/custom_fields', :locals => {:f => f} %>
24
24
  </fieldset>
25
25
  <% end %>
26
26
 
@@ -98,10 +98,10 @@
98
98
 
99
99
  <div class="spud_post_form_col">
100
100
  <h4>Categories</h4>
101
- <%= link_to 'Add Category', new_spud_admin_post_category_path, :class => 'btn btn-mini spud_post_add_category' %>
101
+ <%= link_to 'Add Category', new_admin_post_category_path, :class => 'btn btn-mini spud_post_add_category' %>
102
102
  <input type="hidden" name="spud_post[category_ids][]" value="" />
103
103
  <ul class="spud_post_categories_form">
104
- <%= render :partial => '/spud/admin/posts/category', :collection => @categories[nil] %>
104
+ <%= render :partial => '/admin/posts/category', :collection => @categories[nil] %>
105
105
  </ul>
106
106
  </div>
107
107
 
@@ -0,0 +1,3 @@
1
+ <%= form_for @post, :url => admin_post_path(@post), :html => {:class => 'form-horizontal'} do |f| %>
2
+ <%= render :partial => 'form', :locals => {:f => f} %>
3
+ <% end %>
@@ -0,0 +1,48 @@
1
+ <%= content_for :data_controls do %>
2
+ <%= link_to "Manage Categories", admin_post_categories_path, :class => 'btn spud_blog_manage_categories', :title => 'Manage Categories' %>
3
+ <%= link_to "Manage Comments", admin_post_comments_path, :class => 'btn', :title => 'Manage Comments' %>
4
+ <%= link_to "New Post", new_admin_post_path, :class => "btn btn-primary", :title => "New Post" %>
5
+ <% end %>
6
+
7
+ <%=content_for :detail do %>
8
+ <table class="table table-striped">
9
+ <thead>
10
+ <tr>
11
+ <th>Title</th>
12
+ <th>Author</th>
13
+ <th>Published At</th>
14
+ <th>Comments Pending</th>
15
+ <th>&nbsp;</th>
16
+ </tr>
17
+ </thead>
18
+ <tbody>
19
+ <% @posts.each do |post| %>
20
+ <tr>
21
+ <td>
22
+ <%= link_to post.title, blog_post_path(post.url_name), :target => :blank %>
23
+ <% if !post.visible? %>
24
+ <span class="badge">Draft</span>
25
+ <% end %>
26
+ </td>
27
+ <td><%= post.author.full_name %></td>
28
+ <td><%= post.published_at.strftime('%m/%d/%Y') %></td>
29
+ <td>
30
+ <%= post.pending_comments.length %>
31
+ <%= link_to "Manage", admin_post_post_comments_path(:post_id => post.id), :class => 'spud-post-comments-manage' %>
32
+ </td>
33
+ <td class="text-right">
34
+ <%= link_to 'Edit', edit_admin_post_path(post), :class => 'btn btn-small' %>
35
+ <%= link_to 'Delete', admin_post_path(post), :method => :delete, :data => {:confirm => 'Are you sure you want to delete this post?'}, :class => 'btn btn-small btn-danger' %>
36
+ </td>
37
+ </tr>
38
+ <%end%>
39
+ </tbody>
40
+ </table>
41
+ <div class="spud_admin_pagination">
42
+ <%= will_paginate @posts %>
43
+ </div>
44
+
45
+ <script>
46
+ $(document).ready(spud.admin.post_categories.index);
47
+ </script>
48
+ <%end%>
@@ -0,0 +1,3 @@
1
+ <%= form_for @post, :url => admin_posts_path do |f| %>
2
+ <%= render :partial => 'form', :locals => {:f => f} %>
3
+ <% end %>
@@ -1,4 +1,6 @@
1
- <li>
2
- <h6>Posted by: <%= comment.author %></h6>
3
- <p><%= comment.content %></p>
4
- </li>
1
+ <% cache(@comment) do %>
2
+ <li>
3
+ <h6>Posted by: <%= comment.author %></h6>
4
+ <p><%= comment.content %></p>
5
+ </li>
6
+ <% end %>
@@ -28,5 +28,3 @@
28
28
  </div>
29
29
 
30
30
  <% end %>
31
- <%= stylesheet_link_tag "spud/blog/validity.css", :media => "all" %>
32
-
@@ -1,35 +1,37 @@
1
- <% content_for :title do %>
2
- Blog | <%=current_site_name%>
3
- <% end %>
1
+ <% @page_title = 'Blog' %>
4
2
 
5
3
  <% content_for :head do %>
6
- <%= spud_blog_rss_link %>
4
+ <%= spud_blog_rss_link %>
7
5
  <% end %>
8
6
 
9
- <div id="spud_blog_filters">
10
- <%= form_tag blog_path, :class => 'spud_blog_filter_form' do %>
11
- <label>Category:</label>
12
- <%= spud_post_category_select %>
13
- <label>Month:</label>
14
- <%= spud_post_archive_select %>
15
- <input type="submit" value="Submit" />
16
- <% end %>
17
- </div>
7
+ <% cache(cache_key_for_spud_collection(@posts, :cache_params => [:category_url_name, :archive_date, :page], :for_user => true)) do %>
8
+ <div id="spud_blog_filters">
9
+ <%= form_tag blog_path, :class => 'spud_blog_filter_form' do %>
10
+ <label>Category:</label>
11
+ <%= spud_post_category_select %>
12
+ <label>Month:</label>
13
+ <%= spud_post_archive_select %>
14
+ <input type="submit" value="Submit" />
15
+ <% end %>
16
+ </div>
18
17
 
19
- <div id="spud_blog_posts">
20
- <% if @posts.length > 0 %>
21
- <% @posts.each do |post| %>
22
- <div class="spud_blog_post">
23
- <h3><%= link_to post.title, blog_post_path(post.url_name) %></h3>
24
- <h4>Posted by <%= post.author.full_name %> on <%= post.display_date %></h4>
25
- <div class="spud_blog_post_content">
26
- <%= truncate_html post.content_processed.html_safe, :length => 250 %>
27
- </div>
28
- </div>
29
- <% end %>
30
- <% else %>
31
- <p>No posts were found in this category</p>
32
- <% end %>
33
- </div>
18
+ <div id="spud_blog_posts">
19
+ <% if @posts.length > 0 %>
20
+ <% @posts.includes(:categories, :author).each do |post| %>
21
+ <% cache(post) do %>
22
+ <div class="spud_blog_post">
23
+ <h3><%= link_to post.title, blog_post_path(post.url_name) %></h3>
24
+ <h4>Posted by <%= post.author.full_name %> on <%= post.display_date %></h4>
25
+ <div class="spud_blog_post_content">
26
+ <%= truncate_html post.content_processed.html_safe, :length => 250 %>
27
+ </div>
28
+ </div>
29
+ <% end %>
30
+ <% end %>
31
+ <% else %>
32
+ <p>No posts were found in this category</p>
33
+ <% end %>
34
+ </div>
35
+ <% end %>
34
36
 
35
37
  <%= will_paginate @posts %>
@@ -1,37 +1,41 @@
1
- <% content_for :title do %>
2
- <%= @post.title %> | <%=current_site_name%>
3
- <% end %>
1
+ <% @page_title = @post.title %>
4
2
 
5
3
  <% content_for :head do %>
6
- <%= spud_blog_rss_link %>
7
- <meta name="description" content="<%= @post.meta_description %>" />
8
- <% if @post.meta_keywords.blank? %>
9
- <meta name="keywords" content="<%= @post.categories.collect{ |c| c.name }.join(',') %>" />
10
- <% else %>
11
- <meta name="keywords" content="<%= @post.meta_keywords %>" />
12
- <% end %>
4
+ <% cache([@post, 'head']) do %>
5
+ <%= spud_blog_rss_link %>
6
+ <meta name="description" content="<%= @post.meta_description %>" />
7
+ <% if @post.meta_keywords.blank? %>
8
+ <meta name="keywords" content="<%= @post.categories.collect{ |c| c.name }.join(',') %>" />
9
+ <% else %>
10
+ <meta name="keywords" content="<%= @post.meta_keywords %>" />
11
+ <% end %>
12
+ <% end %>
13
13
  <% end %>
14
14
 
15
- <div class="spud_blog_post">
16
- <h3><%= @post.title %></h3>
17
- <h4>Posted by <%= @post.author.full_name %> on <%= @post.display_date %></h4>
18
- <% if @post.categories.any? %>
19
- <p id="spud_blog_post_categories">
20
- Filed under
21
- <%= raw(@post.categories.collect{ |c| link_to c.name, blog_category_path(c.url_name) }.join(', ')) %>
22
- </p>
23
- <% end %>
24
- <div id="spud_blog_post_content">
25
- <%= raw @post.content_processed %>
26
- </div>
27
- </div>
15
+ <% cache(@post) do %>
16
+ <div class="spud_blog_post">
17
+ <h3><%= @post.title %></h3>
18
+ <h4>Posted by <%= @post.author.full_name %> on <%= @post.display_date %></h4>
19
+ <% if @post.categories.any? %>
20
+ <p id="spud_blog_post_categories">
21
+ Filed under
22
+ <%= raw(@post.categories.collect{ |c| link_to c.name, blog_category_path(c.url_name) }.join(', ')) %>
23
+ </p>
24
+ <% end %>
25
+ <div id="spud_blog_post_content">
26
+ <%= raw @post.content_processed %>
27
+ </div>
28
+ </div>
28
29
 
29
- <% if @post.comments_enabled %>
30
- <div class="spud_blog_post_comment">
31
- <h5>Post a Comment:</h5>
32
- <%= render 'comment_form' %>
33
- </div>
34
- <ul id="spud_blog_post_comments">
35
- <%= render :partial => 'comment', :collection => @post.visible_comments %>
36
- </ul>
30
+ <% if @post.comments_enabled %>
31
+ <div class="spud_blog_post_comment">
32
+ <h5>Post a Comment:</h5>
33
+ <%= render 'comment_form' %>
34
+ </div>
35
+ <% cache(cache_key_for_spud_collection(@post.visible_comments, key:'comments')) do %>
36
+ <ul id="spud_blog_post_comments">
37
+ <%= render :partial => 'comment', :collection => @post.visible_comments %>
38
+ </ul>
39
+ <% end %>
40
+ <% end %>
37
41
  <% end %>
@@ -1,35 +1,37 @@
1
- <% content_for :title do %>
2
- News | <%=current_site_name%>
3
- <% end %>
1
+ <% @page_title = 'News' %>
4
2
 
5
3
  <% content_for :head do %>
6
- <%= spud_news_rss_link %>
4
+ <%= spud_news_rss_link %>
7
5
  <% end %>
8
6
 
7
+ <% cache(cache_key_for_spud_collection(@posts, :cache_params => [:category_url_name, :archive_date, :page], :for_user => true)) do %>
9
8
  <div id="spud_news_filters">
10
- <%= form_tag news_path, :class => 'spud_blog_filter_form' do %>
11
- <label>Category:</label>
12
- <%= spud_post_category_select %>
13
- <label>Month:</label>
14
- <%= spud_post_archive_select %>
15
- <input type="submit" value="Submit" />
16
- <% end %>
9
+ <%= form_tag news_path, :class => 'spud_blog_filter_form' do %>
10
+ <label>Category:</label>
11
+ <%= spud_post_category_select %>
12
+ <label>Month:</label>
13
+ <%= spud_post_archive_select %>
14
+ <input type="submit" value="Submit" />
15
+ <% end %>
17
16
  </div>
18
17
 
19
18
  <div id="spud_news_posts">
20
- <% if @posts.any? %>
21
- <% @posts.each do |post| %>
22
- <div class="spud_news_post">
23
- <h3><%= link_to post.title, news_post_path(post.url_name) %></h3>
24
- <h4>Posted by <%= post.author.full_name %> on <%= post.display_date %></h4>
25
- <div class="spud_news_post_content">
26
- <%= truncate_html post.content.html_safe, :length => 250 %>
27
- </div>
28
- </div>
29
- <% end %>
30
- <% else %>
31
- <p>No posts were found in this category</p>
32
- <% end %>
19
+ <% if @posts.length > 0 %>
20
+ <% @posts.includes(:categories, :author).each do |post| %>
21
+ <% cache(post) do %>
22
+ <div class="spud_news_post">
23
+ <h3><%= link_to post.title, news_post_path(post.url_name) %></h3>
24
+ <h4>Posted by <%= post.author.full_name %> on <%= post.display_date %></h4>
25
+ <div class="spud_news_post_content">
26
+ <%= truncate_html post.content_processed.html_safe, :length => 250 %>
27
+ </div>
28
+ </div>
29
+ <% end %>
30
+ <% end %>
31
+ <% else %>
32
+ <p>No posts were found in this category</p>
33
+ <% end %>
33
34
  </div>
35
+ <% end %>
34
36
 
35
37
  <%= will_paginate @posts %>
@@ -1,27 +1,31 @@
1
1
  <% content_for :title do %>
2
- <%= @post.title %> | <%=current_site_name%>
2
+ <%= @post.title %> | <%=current_site_name%>
3
3
  <% end %>
4
4
 
5
5
  <% content_for :head do %>
6
- <%= spud_news_rss_link %>
7
- <meta name="description" content="<%= @post.meta_description %>" />
8
- <% if @post.meta_keywords.blank? %>
9
- <meta name="keywords" content="<%= @post.categories.collect{ |c| c.name }.join(',') %>" />
10
- <% else %>
11
- <meta name="keywords" content="<%= @post.meta_keywords %>" />
12
- <% end %>
6
+ <% cache([@post, 'head']) do %>
7
+ <%= spud_news_rss_link %>
8
+ <meta name="description" content="<%= @post.meta_description %>" />
9
+ <% if @post.meta_keywords.blank? %>
10
+ <meta name="keywords" content="<%= @post.categories.collect{ |c| c.name }.join(',') %>" />
11
+ <% else %>
12
+ <meta name="keywords" content="<%= @post.meta_keywords %>" />
13
+ <% end %>
14
+ <% end %>
13
15
  <% end %>
14
16
 
15
- <div class="spud_news_post">
16
- <h3><%= @post.title %></h3>
17
- <h4>Posted by <%= @post.author.full_name %> on <%= @post.display_date %></h4>
18
- <% if @post.categories.any? %>
19
- <p id="spud_news_post_categories">
20
- Filed under
21
- <%= raw(@post.categories.collect{ |c| link_to c.name, news_category_path(c.url_name) }.join(', ')) %>
22
- </p>
23
- <% end %>
24
- <div id="spud_news_post_content">
25
- <%= raw @post.content %>
26
- </div>
27
- </div>
17
+ <% cache(@post) do %>
18
+ <div class="spud_news_post">
19
+ <h3><%= @post.title %></h3>
20
+ <h4>Posted by <%= @post.author.full_name %> on <%= @post.display_date %></h4>
21
+ <% if @post.categories.any? %>
22
+ <p id="spud_news_post_categories">
23
+ Filed under
24
+ <%= raw(@post.categories.collect{ |c| link_to c.name, news_category_path(c.url_name) }.join(', ')) %>
25
+ </p>
26
+ <% end %>
27
+ <div id="spud_news_post_content">
28
+ <%= raw @post.content_processed %>
29
+ </div>
30
+ </div>
31
+ <% end %>
data/config/routes.rb CHANGED
@@ -1,22 +1,21 @@
1
1
  Rails.application.routes.draw do
2
2
 
3
- namespace :spud, :path => '/' do
4
- namespace :admin do
5
- resources :posts do
6
- resources :post_comments, :path => 'comments', :only => :index
7
- end
8
- resources :news_posts
9
- resources :post_comments, :except => [:new, :create, :edit, :update] do
10
- member do
11
- get 'approve'
12
- get 'spam'
13
- end
14
- end
15
- resources :post_categories
3
+ namespace :admin do
4
+ resources :posts do
5
+ resources :post_comments, :path => 'comments', :only => :index
16
6
  end
17
- namespace :blog do
18
- resource :sitemap,:only => "show"
7
+ resources :news_posts
8
+ resources :post_comments, :except => [:new, :create, :edit, :update] do
9
+ member do
10
+ get 'approve'
11
+ get 'spam'
12
+ end
19
13
  end
14
+ resources :post_categories
15
+ end
16
+
17
+ namespace :blog do
18
+ resource :sitemap, :only => "show"
20
19
  end
21
20
 
22
21
  if Spud::Blog.config.blog_enabled
@@ -5,7 +5,7 @@ module Spud
5
5
  :base_layout, :news_layout, :blog_enabled,
6
6
  :news_enabled, :posts_per_page, :blog_path,
7
7
  :news_path, :enable_sitemap, :has_custom_fields,
8
- :cache_mode, :action_caching_duration,
8
+ :cache_mode,
9
9
  :enable_rakismet, :enable_markdown, :default_comment_approval
10
10
  )
11
11
  self.base_layout = 'application'
@@ -18,7 +18,6 @@ module Spud
18
18
  self.enable_sitemap = true
19
19
  self.has_custom_fields = false
20
20
  self.cache_mode = nil #options :full_page, :action
21
- self.action_caching_duration = 3600
22
21
  self.enable_rakismet = false
23
22
  self.enable_markdown = false
24
23
  self.default_comment_approval = true
@@ -1,8 +1,8 @@
1
1
  require 'tb_core'
2
2
  require 'tb_permalinks'
3
+ require 'tb_liquid'
3
4
  require 'awesome_nested_set'
4
5
  require 'truncate_html'
5
- require 'liquid'
6
6
 
7
7
  module Spud
8
8
  module Blog
@@ -17,9 +17,10 @@ module Spud
17
17
  end
18
18
 
19
19
  engine_name :tb_blog
20
+
20
21
  initializer :admin do
21
22
  if Spud::Blog.enable_sitemap == true
22
- Spud::Core.config.sitemap_urls += [:spud_blog_sitemap_url]
23
+ Spud::Core.config.sitemap_urls += [:blog_sitemap_url]
23
24
  end
24
25
  if Spud::Blog.config.blog_enabled
25
26
  Spud::Core.config.admin_applications += [{
@@ -39,15 +40,17 @@ module Spud
39
40
  end
40
41
  end
41
42
  initializer :assets do
42
- Rails.application.config.assets.precompile += ['spud/admin/posts.*','spud/blog/validity.css']
43
- Spud::Core.append_admin_javascripts('spud/admin/posts')
44
- Spud::Core.append_admin_stylesheets('spud/admin/posts')
45
- end
46
- initializer :associations do
47
- SpudUser.class_eval do
48
- has_many :posts, :class_name => 'SpudPost'
49
- end
43
+ Spud::Core.append_admin_javascripts('admin/blog/application')
44
+ Spud::Core.append_admin_stylesheets('admin/blog/application')
50
45
  end
46
+
47
+ # Triggers a I18n.enforce_available_locales deprecation warning. Why?
48
+ # initializer 'tb_blog.user_association', :after => 'tb_core.model_overrides' do
49
+ # SpudUser.class_eval do
50
+ # has_many :posts, :class_name => 'SpudPost'
51
+ # end
52
+ # end
53
+
51
54
  initializer :news_layout do
52
55
  if Spud::Core.config.news_layout.nil?
53
56
  Spud::Core.config.news_layout = Spud::Core.config.base_layout
@@ -1,5 +1,5 @@
1
1
  module Spud
2
2
  module Blog
3
- VERSION = "1.0.4"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
data/lib/tb_blog.rb CHANGED
@@ -3,4 +3,4 @@ module Spud
3
3
  require 'spud_blog/configuration'
4
4
  require 'spud_blog/engine' if defined?(Rails)
5
5
  end
6
- end
6
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Admin::PostsController do
4
+
5
+ end
@@ -28,6 +28,7 @@ module Dummy
28
28
  # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
29
29
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
30
30
  # config.i18n.default_locale = :de
31
+ config.i18n.enforce_available_locales = true
31
32
 
32
33
  # Configure the default encoding used in templates for Ruby 1.9.
33
34
  config.encoding = "utf-8"
@@ -46,12 +47,14 @@ module Dummy
46
47
  # parameters by using an attr_accessible or attr_protected declaration.
47
48
  # config.active_record.whitelist_attributes = true
48
49
 
49
- # Enable the asset pipeline
50
- config.assets.enabled = true
51
50
  config.generators do |g|
52
51
  g.test_framework :rspec
53
52
  g.integration_tool :rspec
54
53
  end
54
+
55
+ # Enable the asset pipeline
56
+ config.assets.enabled = true
57
+
55
58
  # Version of your assets, change this if you want to expire all your assets
56
59
  config.assets.version = '1.0'
57
60
  end
@@ -56,7 +56,7 @@ Dummy::Application.configure do
56
56
 
57
57
  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
58
58
  # the I18n.default_locale when a translation can not be found)
59
- config.i18n.fallbacks = true
59
+ # config.i18n.fallbacks = true
60
60
 
61
61
  # Send deprecation notices to registered listeners
62
62
  config.active_support.deprecation = :notify