spud_blog 0.9.9 → 0.9.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -104,4 +104,10 @@
104
104
  }
105
105
  .spud_blog_manage_categories_save, .spud_blog_manage_categories_back{
106
106
  display: none;
107
- }
107
+ }
108
+
109
+ /*Comment Manager*/
110
+ .submitted-on {
111
+ display:block;
112
+ color:#555;
113
+ }
@@ -1,14 +1,21 @@
1
1
  class Spud::Admin::PostCommentsController < Spud::Admin::ApplicationController
2
2
 
3
3
  respond_to :html, :xml, :json
4
- before_filter :find_comment, :only => [:show, :edit, :update, :destroy]
4
+ layout 'spud/admin/detail'
5
+ belongs_to_spud_app :blog_posts
6
+ before_filter :find_comment, :only => [:show, :edit, :update, :destroy, :approve, :spam]
7
+ add_breadcrumb 'Blog Posts', :spud_admin_posts_path
8
+ add_breadcrumb 'Comments', :spud_admin_post_comments_path
9
+
5
10
 
6
11
  def index
12
+ @page_name = "Comments"
7
13
  if params[:post_id]
8
14
  @post_comments = SpudPost.find(params[:post_id]).comments
9
15
  else
10
- @post_comments = SpudPost.all
16
+ @post_comments = SpudPostComment
11
17
  end
18
+ @post_comments = @post_comments.paginate :page => params[:page]
12
19
  respond_with @post_comments
13
20
  end
14
21
 
@@ -21,15 +28,35 @@ class Spud::Admin::PostCommentsController < Spud::Admin::ApplicationController
21
28
  end
22
29
 
23
30
  def update
24
-
31
+
25
32
  end
26
33
 
27
34
  def create
28
35
 
29
36
  end
30
37
 
31
- def destroy
38
+ def approve
39
+
40
+ if Spud::Blog.enable_rakismet && @post_comment.spam
41
+ @post_comment.ham!
42
+ end
43
+ @post_comment.update_attributes(:spam => false)
44
+ redirect_to request.referer || spud_admin_post_comments_path
45
+ end
32
46
 
47
+ def spam
48
+ if Spud::Blog.enable_rakismet && !@post_comment.spam
49
+ @post_comment.spam!
50
+ end
51
+ @post_comment.update_attributes(:spam => true)
52
+ redirect_to request.referer || spud_admin_post_comments_path
53
+ end
54
+
55
+ def destroy
56
+ if !@post_comment.destroy
57
+ flash[:error] = "Whoops! Something odd happened while trying to delete that comment. Thats not fun. please try again."
58
+ end
59
+ respond_with @post_comment, :location => request.referer || spud_admin_post_comments_path
33
60
  end
34
61
 
35
62
  private
@@ -38,4 +65,4 @@ class Spud::Admin::PostCommentsController < Spud::Admin::ApplicationController
38
65
  @post_comment = SpudPostComment.find(params[:id])
39
66
  end
40
67
 
41
- end
68
+ end
@@ -8,7 +8,7 @@ class Spud::Admin::PostsController < Spud::Admin::ApplicationController
8
8
  cache_sweeper :spud_post_sweeper, :only => [:create, :update, :destroy]
9
9
 
10
10
  def index
11
- @posts = SpudPost.where(:is_news => false).order('published_at desc').includes(:comments, :author).paginate(:page => params[:page], :per_page => 15)
11
+ @posts = SpudPost.where(:is_news => false).order('published_at desc').includes(:visible_comments, :spam_comments, :author).paginate(:page => params[:page], :per_page => 15)
12
12
  respond_with @posts
13
13
  end
14
14
 
@@ -8,6 +8,7 @@ class SpudPost < ActiveRecord::Base
8
8
  belongs_to :author, :class_name => 'SpudUser', :foreign_key => 'spud_user_id'
9
9
  has_many :comments, :class_name => 'SpudPostComment'
10
10
  has_many :visible_comments, :class_name => 'SpudPostComment',:conditions => {:spam => [nil,false]}
11
+ has_many :spam_comments, :class_name => "SpudPostComment", :conditions => {:spam => true}
11
12
  has_many :spud_permalinks,:as => :attachment
12
13
  has_many :spud_post_sites, :dependent => :destroy
13
14
 
@@ -77,6 +78,7 @@ class SpudPost < ActiveRecord::Base
77
78
  return records.collect{ |r| Date.new(r[:published_year].to_i, r[:published_month].to_i) }
78
79
  rescue Exception => e
79
80
  logger.fatal "Exception occurred while fetching post archive dates:\n #{e.to_s}"
81
+ return []
80
82
  end
81
83
  end
82
84
 
@@ -0,0 +1,47 @@
1
+ <%= content_for :data_controls do %>
2
+
3
+ <% end %>
4
+
5
+ <%=content_for :detail do %>
6
+ <table class="admin-table">
7
+ <thead>
8
+ <tr>
9
+
10
+ <th>Author</th>
11
+ <th>Comment</th>
12
+ <th>Attached To</th>
13
+ <th>Status</th>
14
+ <th>&nbsp;</th>
15
+ </tr>
16
+ </thead>
17
+ <tbody>
18
+ <% @post_comments.each do |comment| %>
19
+ <tr>
20
+ <td><%= comment.author %></td>
21
+ <td>
22
+ <span class='submitted-on'>Submitted: <%=timestamp(comment.created_at)%></span>
23
+ <%= comment.content %>
24
+ </td>
25
+ <td><%= link_to comment.post.title, blog_post_path(comment.post.url_name)%></td>
26
+ <td>
27
+ <% if comment.spam %>
28
+ Spam
29
+ <% else %>
30
+ Approved
31
+ <% end %>
32
+ </td>
33
+ <td align="right">
34
+ <%= link_to 'Approve', approve_spud_admin_post_comment_path(comment), :class => 'btn btn-success btn-small' %>
35
+ <%= link_to 'Spam', spam_spud_admin_post_comment_path(comment), :class => 'btn btn-warning btn-small' %>
36
+ <%= 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' %>
37
+ </td>
38
+ </tr>
39
+ <%end%>
40
+ </tbody>
41
+ </table>
42
+ <div class="spud_admin_pagination">
43
+ <%= will_paginate @post_comments%>
44
+ </div>
45
+
46
+
47
+ <%end%>
@@ -1,5 +1,6 @@
1
1
  <%= content_for :data_controls do %>
2
2
  <%= link_to "Manage Categories", spud_admin_post_categories_path, :class => 'btn spud_blog_manage_categories', :title => 'Manage Categories' %>
3
+ <%= link_to "Manage Comments", spud_admin_post_comments_path, :class => 'btn', :title => 'Manage Comments' %>
3
4
  <%= link_to "New Post", new_spud_admin_post_path, :class => "btn btn-primary", :title => "New Post" %>
4
5
  <% end %>
5
6
 
@@ -12,7 +13,7 @@
12
13
  <th>Published At</th>
13
14
  <th>Comments</th>
14
15
  <th>&nbsp;</th>
15
- </tr>
16
+ </tr>
16
17
  </thead>
17
18
  <tbody>
18
19
  <% @posts.each do |post| %>
@@ -27,7 +28,11 @@
27
28
  </td>
28
29
  <td><%= post.author.full_name %></td>
29
30
  <td><%= link_to(post.published_at.strftime('%m/%d/%Y'), blog_post_path(post.url_name)) %></td>
30
- <td><%= post.comments.size %></td>
31
+ <td>
32
+ Approved: <%=link_to post.visible_comments.count, spud_admin_post_post_comments_path(:post_id => post.id) %>
33
+ <br/>
34
+ Spam: <%=link_to post.spam_comments.count, spud_admin_post_post_comments_path(:post_id => post.id) %>
35
+ </td>
31
36
  <td align="right">
32
37
  <%= link_to 'Delete', spud_admin_post_path(post), :method => :delete, :confirm => 'Are you sure you want to delete this post?', :class => 'btn btn-danger' %>
33
38
  </td>
data/config/routes.rb CHANGED
@@ -6,7 +6,12 @@ Rails.application.routes.draw do
6
6
  resources :post_comments, :path => 'comments', :only => :index
7
7
  end
8
8
  resources :news_posts
9
- resources :post_comments, :except => :new
9
+ resources :post_comments, :except => [:new, :create, :edit, :update] do
10
+ member do
11
+ get 'approve'
12
+ get 'spam'
13
+ end
14
+ end
10
15
  resources :post_categories
11
16
  end
12
17
  namespace :blog do
@@ -18,21 +23,21 @@ Rails.application.routes.draw do
18
23
  scope Spud::Blog.config.blog_path do
19
24
 
20
25
  # Blog Post Categories
21
- get 'category/:category_url_name(/page/:page)',
22
- :controller => 'blog',
23
- :action => 'category',
26
+ get 'category/:category_url_name(/page/:page)',
27
+ :controller => 'blog',
28
+ :action => 'category',
24
29
  :as => 'blog_category',
25
30
  :defaults => {:page => 1}
26
- get 'category/:category_url_name/:archive_date(/page/:page)',
27
- :controller => 'blog',
28
- :action => 'category',
31
+ get 'category/:category_url_name/:archive_date(/page/:page)',
32
+ :controller => 'blog',
33
+ :action => 'category',
29
34
  :as => 'blog_category_archive',
30
35
  :defaults => {:page => 1}
31
36
 
32
37
  # Blog Post Archives
33
- get 'archive/:archive_date(/page/:page)',
34
- :controller => 'blog',
35
- :action => 'archive',
38
+ get 'archive/:archive_date(/page/:page)',
39
+ :controller => 'blog',
40
+ :action => 'archive',
36
41
  :as => 'blog_archive',
37
42
  :defaults => {:page => 1}
38
43
 
@@ -40,8 +45,8 @@ Rails.application.routes.draw do
40
45
  post '/', :controller => 'blog', :action => 'filter'
41
46
 
42
47
  # Blog Posts
43
- get '/(page/:page)',
44
- :controller => 'blog',
48
+ get '/(page/:page)',
49
+ :controller => 'blog',
45
50
  :action => 'index',
46
51
  :as => 'blog',
47
52
  :defaults => {:page => 1}
@@ -55,35 +60,35 @@ Rails.application.routes.draw do
55
60
  scope Spud::Blog.config.news_path do
56
61
 
57
62
  # News Post Categories
58
- get 'category/:category_url_name(/page/:page)',
59
- :controller => 'news',
63
+ get 'category/:category_url_name(/page/:page)',
64
+ :controller => 'news',
60
65
  :action => 'category',
61
66
  :as => 'news_category',
62
67
  :defaults => {:page => 1}
63
- get 'category/:category_url_name/:archive_date(/page/:page)',
64
- :controller => 'news',
65
- :action => 'category',
68
+ get 'category/:category_url_name/:archive_date(/page/:page)',
69
+ :controller => 'news',
70
+ :action => 'category',
66
71
  :as => 'news_category_archive',
67
72
  :defaults => {:page => 1}
68
-
73
+
69
74
  # News Post Archives
70
- get 'archive/:archive_date(/page/:page)',
75
+ get 'archive/:archive_date(/page/:page)',
71
76
  :controller => 'news',
72
- :action => 'archive',
77
+ :action => 'archive',
73
78
  :as => 'news_archive',
74
79
  :defaults => {:page => 1}
75
80
 
76
81
  # Category/Archive filtering
77
82
  post '/', :controller => 'news', :action => 'filter'
78
-
83
+
79
84
  # News Posts
80
- get '/(page/:page)',
81
- :controller => 'news',
82
- :action => 'index',
85
+ get '/(page/:page)',
86
+ :controller => 'news',
87
+ :action => 'index',
83
88
  :as => 'news',
84
89
  :defaults => {:page => 1}
85
90
  resources :news_posts, :path => '/', :controller => 'news', :only => [:show]
86
91
  end
87
92
  end
88
93
 
89
- end
94
+ end
@@ -1,5 +1,5 @@
1
1
  module Spud
2
2
  module Blog
3
- VERSION = "0.9.9"
3
+ VERSION = "0.9.10"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spud_blog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9
4
+ version: 0.9.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-22 00:00:00.000000000 Z
12
+ date: 2013-02-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -291,6 +291,7 @@ files:
291
291
  - app/views/spud/admin/post_categories/edit.html.erb
292
292
  - app/views/spud/admin/post_categories/index.html.erb
293
293
  - app/views/spud/admin/post_categories/new.html.erb
294
+ - app/views/spud/admin/post_comments/index.html.erb
294
295
  - app/views/spud/admin/posts/_category.html.erb
295
296
  - app/views/spud/admin/posts/_form.html.erb
296
297
  - app/views/spud/admin/posts/edit.html.erb
@@ -338,7 +339,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
338
339
  version: '0'
339
340
  segments:
340
341
  - 0
341
- hash: -2302805393296962866
342
+ hash: -4012554368175872547
342
343
  required_rubygems_version: !ruby/object:Gem::Requirement
343
344
  none: false
344
345
  requirements:
@@ -347,7 +348,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
348
  version: '0'
348
349
  segments:
349
350
  - 0
350
- hash: -2302805393296962866
351
+ hash: -4012554368175872547
351
352
  requirements: []
352
353
  rubyforge_project:
353
354
  rubygems_version: 1.8.24