cortex-reaver 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cortex_reaver/controller/comment.rb +2 -3
- data/lib/cortex_reaver/controller/controller.rb +1 -1
- data/lib/cortex_reaver/controller/main.rb +9 -0
- data/lib/cortex_reaver/controller/page.rb +1 -0
- data/lib/cortex_reaver/helper/gravatar.rb +11 -0
- data/lib/cortex_reaver/migrations/015_page_comments.rb +11 -0
- data/lib/cortex_reaver/migrations/016_drop_comment_titles.rb +16 -0
- data/lib/cortex_reaver/model/comment.rb +3 -28
- data/lib/cortex_reaver/public/css/commments.css +45 -4
- data/lib/cortex_reaver/public/css/fonts.css +0 -1
- data/lib/cortex_reaver/public/css/page.css +3 -0
- data/lib/cortex_reaver/public/css/text.css +3 -3
- data/lib/cortex_reaver/version.rb +1 -1
- data/lib/cortex_reaver/view/comments/comment.rhtml +9 -7
- data/lib/cortex_reaver/view/comments/form.rhtml +0 -1
- data/lib/cortex_reaver/view/comments/list.rhtml +1 -0
- data/lib/cortex_reaver/view/comments/post_form.rhtml +0 -1
- data/lib/cortex_reaver/view/journals/journal.rhtml +1 -1
- data/lib/cortex_reaver/view/pages/form.rhtml +1 -0
- data/lib/cortex_reaver/view/pages/show.rhtml +11 -0
- metadata +6 -2
@@ -24,7 +24,6 @@ module CortexReaver
|
|
24
24
|
end
|
25
25
|
|
26
26
|
on_save do |comment, request|
|
27
|
-
comment.title = request[:title]
|
28
27
|
comment.body = request[:body]
|
29
28
|
comment.comment_id = request[:comment_id]
|
30
29
|
comment.journal_id = request[:journal_id]
|
@@ -80,11 +79,11 @@ module CortexReaver
|
|
80
79
|
CortexReaver.db.transaction do
|
81
80
|
@comment = Comment.new
|
82
81
|
|
83
|
-
@comment.title = request[:title]
|
84
82
|
@comment.body = request[:body]
|
85
83
|
@comment.comment_id = request[:comment_id]
|
86
84
|
@comment.journal_id = request[:journal_id]
|
87
85
|
@comment.photograph_id = request[:photograph_id]
|
86
|
+
@comment.page_id = request[:page_id]
|
88
87
|
|
89
88
|
if session[:user]
|
90
89
|
# A user is logged in. Use their account.
|
@@ -112,7 +111,7 @@ module CortexReaver
|
|
112
111
|
# Clear action cache
|
113
112
|
Ramaze::Cache.action.clear
|
114
113
|
|
115
|
-
flash[:notice] = "
|
114
|
+
flash[:notice] = "<a href=\"##{@comment.url.gsub(/.*#/, '')}\">Your comment</a> has been posted."
|
116
115
|
redirect @comment.parent.url
|
117
116
|
end
|
118
117
|
rescue => e
|
@@ -4,7 +4,7 @@ module CortexReaver
|
|
4
4
|
# trait :app => :cortex_reaver
|
5
5
|
engine :Erubis
|
6
6
|
layout :text
|
7
|
-
helper :form, :auth, :navigation, :workflow, :error, :sidebar, :aspect, :common
|
7
|
+
helper :form, :auth, :navigation, :workflow, :error, :sidebar, :aspect, :common, :gravatar
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -45,6 +45,7 @@ module CortexReaver
|
|
45
45
|
# Render that page.
|
46
46
|
@title = @page.title
|
47
47
|
|
48
|
+
# Workflows
|
48
49
|
if user.can_edit? Page.new
|
49
50
|
workflow "Edit this page", PageController.r(:edit, @page.id), :edit, :page
|
50
51
|
end
|
@@ -52,6 +53,14 @@ module CortexReaver
|
|
52
53
|
workflow "Delete this page", PageController.r(:delete, @page.id), :delete, :page
|
53
54
|
end
|
54
55
|
|
56
|
+
# Set up comments
|
57
|
+
if comment = session[:pending_comment] and comment.parent == @page
|
58
|
+
@new_comment = session.delete :pending_comment
|
59
|
+
else
|
60
|
+
# Create a comment to be posted
|
61
|
+
@new_comment = CortexReaver::Comment.new :page => @page
|
62
|
+
end
|
63
|
+
|
55
64
|
PageController.render_view('show')
|
56
65
|
elsif not ids.empty?
|
57
66
|
# Didn't have that page
|
@@ -34,6 +34,7 @@ module CortexReaver
|
|
34
34
|
page.page_id = request[:page_id]
|
35
35
|
page.name = Page.canonicalize request[:name], :id => page.id, :page_id => page.page_id
|
36
36
|
page.draft = request[:draft]
|
37
|
+
page.comments_enabled = request[:comments_enabled]
|
37
38
|
page.body = request[:body]
|
38
39
|
end
|
39
40
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Ramaze
|
2
|
+
module Helper
|
3
|
+
module Gravatar
|
4
|
+
# Returns an IMG tag for a comment.
|
5
|
+
def gravatar_img(o)
|
6
|
+
email = o.creator.email rescue o.email || 'anonymous'
|
7
|
+
"<img src=\"http://www.gravatar.com/avatar/#{Digest::MD5.hexdigest(email)}?r=pg&s=60\" alt=\"#{email}\" title=\"#{email}\" />"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module CortexReaver
|
2
|
+
class CommentsEnabledOnPagesSchema < Sequel::Migration
|
3
|
+
def down
|
4
|
+
alter_table(:pages) { drop_column :comments_enabled }
|
5
|
+
end
|
6
|
+
|
7
|
+
def up
|
8
|
+
alter_table(:pages) { add_column :comments_enabled, :boolean, :default => false }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module CortexReaver
|
2
|
+
class DropCommentTitlesSchema < Sequel::Migration
|
3
|
+
def down
|
4
|
+
alter_table(:comments) { add_column :varchar, :title }
|
5
|
+
end
|
6
|
+
|
7
|
+
def up
|
8
|
+
if CortexReaver.db[:comments].filter(:title => nil).invert.count > 0
|
9
|
+
puts "About to drop titles on comments. Hit enter to confirm, ctrl-c to cancel."
|
10
|
+
gets
|
11
|
+
end
|
12
|
+
|
13
|
+
alter_table(:comments) { drop_column :title }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -15,19 +15,6 @@ module CortexReaver
|
|
15
15
|
many_to_one :comment, :class => 'CortexReaver::Comment'
|
16
16
|
one_to_many :comments, :class => 'CortexReaver::Comment'
|
17
17
|
|
18
|
-
# Infer blank titles
|
19
|
-
def before_save
|
20
|
-
return false unless super
|
21
|
-
|
22
|
-
if title.blank?
|
23
|
-
title = 'Re: ' + parent.title.to_s
|
24
|
-
title.gsub!(/^(Re: )+/, 'Re: ')
|
25
|
-
self.title = title
|
26
|
-
end
|
27
|
-
|
28
|
-
true
|
29
|
-
end
|
30
|
-
|
31
18
|
# Update parent comment counts
|
32
19
|
def before_destroy
|
33
20
|
return false unless super
|
@@ -68,19 +55,8 @@ module CortexReaver
|
|
68
55
|
'/comments'
|
69
56
|
end
|
70
57
|
|
71
|
-
def self.infer_blank_titles
|
72
|
-
self.all.each do |comment|
|
73
|
-
if comment.title.blank?
|
74
|
-
comment.title = 'Re: ' + comment.parent.title.to_s
|
75
|
-
comment.title.gsub!(/^(Re: )+/, 'Re: ')
|
76
|
-
comment.skip_timestamp_update = true
|
77
|
-
comment.save
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
58
|
def to_s
|
83
|
-
|
59
|
+
'comment ' + id.to_s
|
84
60
|
end
|
85
61
|
|
86
62
|
def url
|
@@ -89,7 +65,6 @@ module CortexReaver
|
|
89
65
|
|
90
66
|
def validate
|
91
67
|
validates_presence :body
|
92
|
-
validates_max_length 255, :title, :allow_blank => true
|
93
68
|
validates_max_length 255, :name, :allow_blank => true
|
94
69
|
validates_max_length 255, :http, :allow_blank => true
|
95
70
|
validates_max_length 255, :email, :allow_blank => true
|
@@ -107,14 +82,14 @@ module CortexReaver
|
|
107
82
|
unless self[field].blank?
|
108
83
|
count += 1
|
109
84
|
if count > 1
|
110
|
-
self.errors[
|
85
|
+
self.errors[:comment] << 'has too many kinds of parents'
|
111
86
|
break
|
112
87
|
end
|
113
88
|
end
|
114
89
|
end
|
115
90
|
|
116
91
|
if count == 0
|
117
|
-
self.errors[
|
92
|
+
self.errors[:comment] << "doesn't have a parent"
|
118
93
|
end
|
119
94
|
end
|
120
95
|
end
|
@@ -1,7 +1,48 @@
|
|
1
|
-
.
|
2
|
-
margin-
|
1
|
+
div.comment {
|
2
|
+
margin-bottom: 10px;
|
3
|
+
padding: 6px;
|
4
|
+
-webkit-box-shadow: 0 0px 4px #bbb;
|
5
|
+
-moz-box-shadow: 0 0px 4px #bbb;
|
6
|
+
-webkit-border-radius: 3px;
|
7
|
+
-moz-border-radius: 3px;
|
8
|
+
position: relative;
|
9
|
+
min-height: 60px;
|
3
10
|
}
|
4
11
|
|
5
|
-
.comment {
|
6
|
-
|
12
|
+
.comment .avatar {
|
13
|
+
position: absolute;
|
14
|
+
top: 6px;
|
15
|
+
left: 6px;
|
16
|
+
}
|
17
|
+
|
18
|
+
.comment .body {
|
19
|
+
margin-left: 66px;
|
20
|
+
margin-bottom: 20px;
|
21
|
+
}
|
22
|
+
|
23
|
+
.comment p:first-child {
|
24
|
+
margin-top: 0;
|
25
|
+
}
|
26
|
+
|
27
|
+
.comment .footer {
|
28
|
+
background: transparent;
|
29
|
+
position: absolute;
|
30
|
+
bottom: 6px;
|
31
|
+
left: 72px;
|
32
|
+
right: 6px;
|
33
|
+
height: 12px;
|
34
|
+
border: none;
|
35
|
+
padding: 2px;
|
36
|
+
}
|
37
|
+
|
38
|
+
.comment .footer .byline {
|
39
|
+
margin-bottom: 0;
|
40
|
+
position: relative;
|
41
|
+
height: auto;
|
42
|
+
}
|
43
|
+
|
44
|
+
.comment .footer .actions {
|
45
|
+
float: right;
|
46
|
+
width: 120px;
|
47
|
+
text-align: right;
|
7
48
|
}
|
@@ -11,15 +11,15 @@ h1 a, h2 a, h3 a {
|
|
11
11
|
color: #555;
|
12
12
|
}
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
.text-entry > *:first-child {
|
15
|
+
margin-top: 0;
|
16
16
|
margin-bottom: 0;
|
17
|
-
padding-bottom: 0;
|
18
17
|
}
|
19
18
|
|
20
19
|
.text-entry .byline {
|
21
20
|
color: #666;
|
22
21
|
position: relative;
|
22
|
+
height: 4px;
|
23
23
|
}
|
24
24
|
|
25
25
|
.text-entry .footer {
|
@@ -1,17 +1,17 @@
|
|
1
1
|
<div class="comment text-entry">
|
2
|
-
<
|
3
|
-
<div class="
|
4
|
-
<%=
|
2
|
+
<a id="comment_<%= @comment.id %>"></a>
|
3
|
+
<div class="avatar">
|
4
|
+
<%= gravatar_img @comment %>
|
5
5
|
</div>
|
6
6
|
<div class="body">
|
7
7
|
<%= @comment.body_cache %>
|
8
8
|
</div>
|
9
|
+
|
9
10
|
<div class="footer">
|
11
|
+
<div class="byline">
|
12
|
+
<%= author_info @comment %>
|
13
|
+
</div>
|
10
14
|
<ul class="actions">
|
11
|
-
<li><a href="<%=@comment.url %>_comments">
|
12
|
-
<img src="/images/comment.gif" class="icon" alt="comment" />
|
13
|
-
<%= @comment.comment_count %> <%= @comment.comment_count == 1 ? 'comment' : 'comments' %>
|
14
|
-
</a></li>
|
15
15
|
<% if user.can_edit? @comment %>
|
16
16
|
<li><a href="/comments/edit/<%= @comment.id %>">
|
17
17
|
<img src="/images/edit.gif" class="icon" alt="edit" /> Edit
|
@@ -24,8 +24,10 @@
|
|
24
24
|
</a>
|
25
25
|
</li>
|
26
26
|
<% end %>
|
27
|
+
<li><a href="<%= @comment.url %>">Link</a></li>
|
27
28
|
</ul>
|
28
29
|
</div>
|
30
|
+
|
29
31
|
<% unless @hide_comments %>
|
30
32
|
<a id="comment_<%= @comment.id %>_comments" ></a>
|
31
33
|
<div class="comments">
|
@@ -5,7 +5,6 @@
|
|
5
5
|
<%= errors_on @new_comment %>
|
6
6
|
|
7
7
|
<form class="comment-form" action="<%= CortexReaver::CommentController.r :post %>" method="post">
|
8
|
-
<%= form_p :title, :model => @new_comment %>
|
9
8
|
<p class="dont-read-me">
|
10
9
|
Please avoid writing anything here unless you are a computer:
|
11
10
|
<label for="captcha">Captcha</label>
|
@@ -31,7 +31,7 @@
|
|
31
31
|
|
32
32
|
<% unless @hide_comments %>
|
33
33
|
<div class="comments">
|
34
|
-
<a id="comments"
|
34
|
+
<a id="comments" /><h2>Comments</h2>
|
35
35
|
<% @journal.comments_dataset.order(:created_on).all.each do |comment| %>
|
36
36
|
<%= CortexReaver::CommentController.render_view :comment, 'comment' => comment %>
|
37
37
|
<% end %>
|
@@ -9,6 +9,7 @@
|
|
9
9
|
<%= live_tags_field @page %>
|
10
10
|
<%= form_p :body, :model => @page, :type => 'textarea' %>
|
11
11
|
<%= attachment_form @page %>
|
12
|
+
<%= form_p :comments_enabled, :model => @page, :type => 'checkbox', :description => 'Allow comments' %>
|
12
13
|
<%= form_p :draft, :model => @page, :type => 'checkbox', :description => 'This is a draft' %>
|
13
14
|
<input type="submit" name="submit" />
|
14
15
|
</form>
|
@@ -3,4 +3,15 @@
|
|
3
3
|
<%= @page.body_cache %>
|
4
4
|
<div class="clear"></div>
|
5
5
|
</div>
|
6
|
+
|
7
|
+
<% if @page.comments_enabled %>
|
8
|
+
<div class="comments">
|
9
|
+
<a id="comments">
|
10
|
+
<% @page.comments_dataset.order(:created_on).all.each do |comment| %>
|
11
|
+
<%= CortexReaver::CommentController.render_view :comment, 'comment' => comment %>
|
12
|
+
<% end %>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<%= CortexReaver::CommentController.render_view :post_form, 'comment' => @new_comment %>
|
16
|
+
<% end %>
|
6
17
|
</div>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cortex-reaver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyle Kingsbury
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-13 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -158,6 +158,7 @@ files:
|
|
158
158
|
- lib/cortex_reaver/public/css/custom.css
|
159
159
|
- lib/cortex_reaver/public/css/table.css
|
160
160
|
- lib/cortex_reaver/public/css/icons.css
|
161
|
+
- lib/cortex_reaver/public/css/page.css
|
161
162
|
- lib/cortex_reaver/public/css/actions.css
|
162
163
|
- lib/cortex_reaver/public/css/journals.css
|
163
164
|
- lib/cortex_reaver/public/css/fonts.css
|
@@ -273,6 +274,7 @@ files:
|
|
273
274
|
- lib/cortex_reaver/view/head.rhtml
|
274
275
|
- lib/cortex_reaver/cache.rb
|
275
276
|
- lib/cortex_reaver/migrations/003_journals.rb
|
277
|
+
- lib/cortex_reaver/migrations/015_page_comments.rb
|
276
278
|
- lib/cortex_reaver/migrations/009_mysql.rb
|
277
279
|
- lib/cortex_reaver/migrations/011_user_roles.rb
|
278
280
|
- lib/cortex_reaver/migrations/002_pages.rb
|
@@ -284,6 +286,7 @@ files:
|
|
284
286
|
- lib/cortex_reaver/migrations/007_comments.rb
|
285
287
|
- lib/cortex_reaver/migrations/014_convert_projects_to_pages.rb
|
286
288
|
- lib/cortex_reaver/migrations/013_draft.rb
|
289
|
+
- lib/cortex_reaver/migrations/016_drop_comment_titles.rb
|
287
290
|
- lib/cortex_reaver/migrations/001_users.rb
|
288
291
|
- lib/cortex_reaver/migrations/004_photographs.rb
|
289
292
|
- lib/cortex_reaver/controller/tag.rb
|
@@ -312,6 +315,7 @@ files:
|
|
312
315
|
- lib/cortex_reaver/helper/sidebar.rb
|
313
316
|
- lib/cortex_reaver/helper/workflow.rb
|
314
317
|
- lib/cortex_reaver/helper/attachments.rb
|
318
|
+
- lib/cortex_reaver/helper/gravatar.rb
|
315
319
|
- lib/cortex_reaver/helper/navigation.rb
|
316
320
|
- lib/cortex_reaver/helper/crud.rb
|
317
321
|
- lib/cortex_reaver/helper/photographs.rb
|