commontator 4.1.2 → 4.2.0
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/mailers/commontator/subscriptions_mailer.rb +8 -7
- data/app/mailers/commontator/subscriptions_mailer.rb~ +8 -9
- data/app/models/commontator/comment.rb +10 -6
- data/app/models/commontator/comment.rb~ +10 -6
- data/app/models/commontator/thread.rb +6 -2
- data/app/models/commontator/thread.rb~ +6 -3
- data/app/views/commontator/comments/_list.html.erb +11 -0
- data/app/views/commontator/comments/_list.html.erb~ +11 -0
- data/app/views/commontator/comments/create.js.erb +6 -11
- data/app/views/commontator/comments/create.js.erb~ +12 -0
- data/app/views/commontator/comments/delete.js.erb~ +2 -2
- data/app/views/commontator/comments/edit.js.erb~ +5 -0
- data/app/views/commontator/comments/new.js.erb +1 -1
- data/app/views/commontator/comments/new.js.erb~ +12 -0
- data/app/views/commontator/comments/update.js.erb~ +2 -2
- data/app/views/commontator/threads/_show.html.erb +3 -6
- data/app/views/commontator/threads/_show.html.erb~ +4 -1
- data/config/initializers/commontator.rb +24 -16
- data/config/initializers/commontator.rb~ +22 -15
- data/lib/commontator.rb +2 -1
- data/lib/commontator.rb~ +4 -3
- data/lib/commontator/version.rb +1 -1
- data/lib/commontator/version.rb~ +1 -1
- data/spec/dummy/config/initializers/commontator.rb +24 -11
- data/spec/dummy/config/initializers/commontator.rb~ +24 -11
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +4162 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62ff7e0ae14f2179de8ad2f079f27c5647a253bb
|
4
|
+
data.tar.gz: 205e1137acfdea70a5d0ded9c7714b0e85d494dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60f0a5755fa8b1f143a4e492463d017c37effc7c5d5e3fb7a327d15e78b4f1077df459e04f0e25849a0fbeded4197009f96fc0195c59608e969d0a35afca5be5
|
7
|
+
data.tar.gz: 401709696330a73aba059e47dfc40ca35324ee3a0909ac306f01b819c69bcfea50b37fa4ed5862942585f79b42afed4d7dff59fd78faca02f561a24999f32395
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@ module Commontator
|
|
6
6
|
def comment_created(comment, recipients)
|
7
7
|
setup_variables(comment, recipients)
|
8
8
|
|
9
|
-
mail :to =>
|
9
|
+
mail :to => @to,
|
10
10
|
:bcc => @bcc,
|
11
11
|
:from => @from,
|
12
12
|
:subject => @subject
|
@@ -18,17 +18,17 @@ module Commontator
|
|
18
18
|
@comment = comment
|
19
19
|
@thread = @comment.thread
|
20
20
|
@creator = @comment.creator
|
21
|
-
|
21
|
+
|
22
22
|
@commontable = @thread.commontable
|
23
23
|
@config = @thread.config
|
24
|
-
|
24
|
+
|
25
25
|
@creator_name = commontator_name(@creator)
|
26
26
|
@comment_created_timestamp = @comment.created_timestamp
|
27
|
-
|
27
|
+
|
28
28
|
@commontable_name = commontable_name(@thread)
|
29
|
-
|
29
|
+
|
30
30
|
@commontable_url = ApplicationController.commontable_url
|
31
|
-
|
31
|
+
|
32
32
|
params = Hash.new
|
33
33
|
params[:comment] = @comment
|
34
34
|
params[:thread] = @thread
|
@@ -39,7 +39,8 @@ module Commontator
|
|
39
39
|
params[:comment_created_timestamp] = @comment_created_timestamp
|
40
40
|
params[:commontable_name] = @commontable_name
|
41
41
|
params[:commontable_url] = @commontable_url
|
42
|
-
|
42
|
+
|
43
|
+
@to = @config.subscription_email_to_proc.call(params)
|
43
44
|
@bcc = recipients.collect{|s| commontator_email(s)}
|
44
45
|
@from = @config.subscription_email_from_proc.call(params)
|
45
46
|
@subject = @config.subscription_email_subject_proc.call(params)
|
@@ -6,7 +6,7 @@ module Commontator
|
|
6
6
|
def comment_created(comment, recipients)
|
7
7
|
setup_variables(comment, recipients)
|
8
8
|
|
9
|
-
mail :to =>
|
9
|
+
mail :to => @to
|
10
10
|
:bcc => @bcc,
|
11
11
|
:from => @from,
|
12
12
|
:subject => @subject
|
@@ -18,18 +18,17 @@ module Commontator
|
|
18
18
|
@comment = comment
|
19
19
|
@thread = @comment.thread
|
20
20
|
@creator = @comment.creator
|
21
|
-
|
21
|
+
|
22
22
|
@commontable = @thread.commontable
|
23
23
|
@config = @thread.config
|
24
|
-
|
24
|
+
|
25
25
|
@creator_name = commontator_name(@creator)
|
26
26
|
@comment_created_timestamp = @comment.created_timestamp
|
27
|
-
|
27
|
+
|
28
28
|
@commontable_name = commontable_name(@thread)
|
29
|
-
|
30
|
-
|
29
|
+
|
31
30
|
@commontable_url = ApplicationController.commontable_url
|
32
|
-
|
31
|
+
|
33
32
|
params = Hash.new
|
34
33
|
params[:comment] = @comment
|
35
34
|
params[:thread] = @thread
|
@@ -39,9 +38,9 @@ module Commontator
|
|
39
38
|
params[:creator_name] = @creator_name
|
40
39
|
params[:comment_created_timestamp] = @comment_created_timestamp
|
41
40
|
params[:commontable_name] = @commontable_name
|
42
|
-
params[:commontable_id] = @commontable_id
|
43
41
|
params[:commontable_url] = @commontable_url
|
44
|
-
|
42
|
+
|
43
|
+
@to = @config.subscription_email_to_proc.call(params)
|
45
44
|
@bcc = recipients.collect{|s| commontator_email(s)}
|
46
45
|
@from = @config.subscription_email_from_proc.call(params)
|
47
46
|
@subject = @config.subscription_email_subject_proc.call(params)
|
@@ -20,6 +20,14 @@ module Commontator
|
|
20
20
|
|
21
21
|
public
|
22
22
|
|
23
|
+
def is_modified?
|
24
|
+
!editor.nil?
|
25
|
+
end
|
26
|
+
|
27
|
+
def is_latest?
|
28
|
+
thread.comments.last == self
|
29
|
+
end
|
30
|
+
|
23
31
|
def is_votable?
|
24
32
|
return true if acts_as_votable_initialized
|
25
33
|
return false unless self.class.respond_to?(:acts_as_votable)
|
@@ -32,10 +40,6 @@ module Commontator
|
|
32
40
|
votes.where(:voter_type => user.class.name, :voter_id => user.id).first
|
33
41
|
end
|
34
42
|
|
35
|
-
def is_modified?
|
36
|
-
!editor.nil?
|
37
|
-
end
|
38
|
-
|
39
43
|
def is_deleted?
|
40
44
|
!deleted_at.blank?
|
41
45
|
end
|
@@ -82,14 +86,14 @@ module Commontator
|
|
82
86
|
|
83
87
|
def can_be_edited_by?(user)
|
84
88
|
(!thread.is_closed? && !is_deleted? &&\
|
85
|
-
(
|
89
|
+
(is_latest? || thread.config.can_edit_old_comments) &&\
|
86
90
|
user == creator && thread.config.can_edit_own_comments && thread.can_be_read_by?(user)) ||\
|
87
91
|
(thread.config.admin_can_edit_comments && thread.can_be_edited_by?(user))
|
88
92
|
end
|
89
93
|
|
90
94
|
def can_be_deleted_by?(user)
|
91
95
|
(!thread.is_closed? && (!is_deleted? || editor == user) &&\
|
92
|
-
(
|
96
|
+
(is_latest? || thread.config.can_delete_old_comments) &&\
|
93
97
|
user == creator && thread.config.can_delete_own_comments &&\
|
94
98
|
thread.can_be_read_by?(user)) ||\
|
95
99
|
thread.can_be_edited_by?(user)
|
@@ -20,6 +20,14 @@ module Commontator
|
|
20
20
|
|
21
21
|
public
|
22
22
|
|
23
|
+
def is_modified?
|
24
|
+
!editor.nil?
|
25
|
+
end
|
26
|
+
|
27
|
+
def is_latest?
|
28
|
+
thread.comments.last == self
|
29
|
+
end
|
30
|
+
|
23
31
|
def is_votable?
|
24
32
|
return true if acts_as_votable_initialized
|
25
33
|
return false unless self.class.respond_to?(:acts_as_votable)
|
@@ -28,14 +36,10 @@ module Commontator
|
|
28
36
|
end
|
29
37
|
|
30
38
|
def get_vote_by(user)
|
31
|
-
return nil unless is_votable?
|
39
|
+
return nil unless is_votable? && user && user.is_commontator
|
32
40
|
votes.where(:voter_type => user.class.name, :voter_id => user.id).first
|
33
41
|
end
|
34
42
|
|
35
|
-
def is_modified?
|
36
|
-
!editor.nil?
|
37
|
-
end
|
38
|
-
|
39
43
|
def is_deleted?
|
40
44
|
!deleted_at.blank?
|
41
45
|
end
|
@@ -82,7 +86,7 @@ module Commontator
|
|
82
86
|
|
83
87
|
def can_be_edited_by?(user)
|
84
88
|
(!thread.is_closed? && !is_deleted? &&\
|
85
|
-
(
|
89
|
+
(is_latest? || thread.config.can_edit_old_comments) &&\
|
86
90
|
user == creator && thread.config.can_edit_own_comments && thread.can_be_read_by?(user)) ||\
|
87
91
|
(thread.config.admin_can_edit_comments && thread.can_be_edited_by?(user))
|
88
92
|
end
|
@@ -14,8 +14,12 @@ module Commontator
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def ordered_comments
|
17
|
-
|
18
|
-
comments.order(
|
17
|
+
case config.comments_order
|
18
|
+
when :l then comments.order('id DESC')
|
19
|
+
when :ve then comments.order('cached_votes_down - cached_votes_up')
|
20
|
+
when :vl then comments.order('cached_votes_down - cached_votes_up', 'id DESC')
|
21
|
+
else comments
|
22
|
+
end
|
19
23
|
end
|
20
24
|
|
21
25
|
def is_closed?
|
@@ -14,8 +14,12 @@ module Commontator
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def ordered_comments
|
17
|
-
|
18
|
-
comments.order(
|
17
|
+
case config.comments_order
|
18
|
+
when :l then comments.order('id DESC')
|
19
|
+
when :ve then comments.order('cached_votes_down - cached_votes_up')
|
20
|
+
when :vl then comments.order('cached_votes_down - cached_votes_up', '')
|
21
|
+
else comments
|
22
|
+
end
|
19
23
|
end
|
20
24
|
|
21
25
|
def is_closed?
|
@@ -32,7 +36,6 @@ module Commontator
|
|
32
36
|
|
33
37
|
def subscription_for(subscriber)
|
34
38
|
return nil if !subscriber || !subscriber.is_commontator
|
35
|
-
return nil if !subscriber.is_commontator
|
36
39
|
subscriber.subscriptions.where(:thread_id => self.id).first
|
37
40
|
end
|
38
41
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% # Clients of this partial must supply the following variables:
|
2
|
+
# comments
|
3
|
+
# user
|
4
|
+
%>
|
5
|
+
|
6
|
+
<% comments.each do |comment| %>
|
7
|
+
<% next unless comment.can_be_read_by?(user) %>
|
8
|
+
<%= render :partial => 'commontator/comments/show',
|
9
|
+
:locals => {:comment => comment,
|
10
|
+
:user => user} %>
|
11
|
+
<% end %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% # Clients of this partial must supply the following variables:
|
2
|
+
# comments
|
3
|
+
# user
|
4
|
+
%>
|
5
|
+
|
6
|
+
<% thread.ordered_comments.each do |comment| %>
|
7
|
+
<% next unless comment.can_be_read_by?(user) %>
|
8
|
+
<%= render :partial => 'commontator/comments/show',
|
9
|
+
:locals => {:comment => comment,
|
10
|
+
:user => user} %>
|
11
|
+
<% end %>
|
@@ -1,17 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
:locals => {:comment => comment,
|
1
|
+
$("#thread_<%= @thread.id %>_comment_list_div").html("<%= escape_javascript(
|
2
|
+
render :partial => 'list',
|
3
|
+
:locals => {:comments => @thread.ordered_comments,
|
5
4
|
:user => @user}) %>");
|
6
|
-
<% end %>
|
7
|
-
|
8
|
-
$("#thread_<%= @thread.id %>_comment_list_div").append("<%= escape_javascript(
|
9
|
-
render :partial => 'show',
|
10
|
-
:locals => {:comment => @comment,
|
11
|
-
:user => @user}) %>");
|
12
5
|
|
13
6
|
$("#thread_<%= @thread.id %>_new_comment_div").hide();
|
14
7
|
|
15
|
-
$("#thread_<%= @thread.id %>_new_comment_link_span").
|
8
|
+
$("#thread_<%= @thread.id %>_new_comment_link_span").fadeIn();
|
9
|
+
|
10
|
+
$("#comment_<%= @comment.id.to_s %>_div").hide().fadeIn()[0].scrollIntoView();
|
16
11
|
|
17
12
|
<%= javascript_proc %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
$("#thread_<%= @thread.id %>_comment_list_div").html("<%= escape_javascript(
|
2
|
+
render :partial => 'list',
|
3
|
+
:locals => {:comments => @thread.ordered_comments,
|
4
|
+
:user => @user}) %>");
|
5
|
+
|
6
|
+
$("#thread_<%= @thread.id %>_new_comment_div").hide();
|
7
|
+
|
8
|
+
$("#thread_<%= @thread.id %>_new_comment_link_span").fadeIn();
|
9
|
+
|
10
|
+
$("#comment_<%= @comment.id.to_s %>_div").hide().fadeIn()[0].scrollIntoView();
|
11
|
+
|
12
|
+
$("#error_explanation").remove();
|
@@ -2,7 +2,7 @@ $("#comment_<%= @comment.id.to_s %>_body_div").html("<%= escape_javascript(
|
|
2
2
|
render :partial => 'body', :locals => {:comment => @comment}) %>");
|
3
3
|
|
4
4
|
$("#comment_<%= @comment.id.to_s %>_updated_timestamp_span").html("<%= escape_javascript(
|
5
|
-
"#{@comment.updated_timestamp} by #{commontator_name(comment.editor)}") %>");
|
5
|
+
"#{@comment.updated_timestamp} by #{commontator_name(@comment.editor)}") %>");
|
6
6
|
|
7
7
|
$("#comment_<%= @comment.id.to_s %>_actions_span").html("<%= escape_javascript(
|
8
8
|
render :partial => 'actions',
|
@@ -14,4 +14,4 @@ $("#comment_<%= @comment.id %>_votes_span").html("<%= escape_javascript(
|
|
14
14
|
:locals => {:comment => @comment,
|
15
15
|
:user => @user}) %>");
|
16
16
|
|
17
|
-
|
17
|
+
$("#error_explanation").remove();
|
@@ -5,7 +5,7 @@ $("#thread_<%= @thread.id %>_new_comment_div").html("<%= escape_javascript(
|
|
5
5
|
:thread => @thread
|
6
6
|
}) %>");
|
7
7
|
|
8
|
-
$("#thread_<%= @thread.id %>_new_comment_div").
|
8
|
+
$("#thread_<%= @thread.id %>_new_comment_div").fadeIn()[0].scrollIntoView();
|
9
9
|
|
10
10
|
$("#thread_<%= @thread.id %>_new_comment_link_span").hide();
|
11
11
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
$("#thread_<%= @thread.id %>_new_comment_div").html("<%= escape_javascript(
|
2
|
+
render :partial => 'form',
|
3
|
+
:locals => {
|
4
|
+
:comment => @comment,
|
5
|
+
:thread => @thread
|
6
|
+
}) %>");
|
7
|
+
|
8
|
+
$("#thread_<%= @thread.id %>_new_comment_div").fadeIn()[0].scrollIntoView();
|
9
|
+
|
10
|
+
$("#thread_<%= @thread.id %>_new_comment_link_span").hide();
|
11
|
+
|
12
|
+
$("#error_explanation").remove();
|
@@ -2,6 +2,6 @@ $("#comment_<%= @comment.id.to_s %>_body_div").html("<%= escape_javascript(
|
|
2
2
|
render :partial => 'body', :locals => {:comment => @comment}) %>");
|
3
3
|
|
4
4
|
$("#comment_<%= @comment.id.to_s %>_updated_timestamp_span").html("<%= escape_javascript(
|
5
|
-
|
5
|
+
"#{@comment.updated_timestamp} by #{commontator_name(@comment.editor)}") %>");
|
6
6
|
|
7
|
-
|
7
|
+
$("#error_explanation").remove();
|
@@ -36,12 +36,9 @@
|
|
36
36
|
</span>
|
37
37
|
|
38
38
|
<div id="thread_<%= thread.id.to_s %>_comment_list_div" class="thread_comment_list">
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
:locals => {:comment => comment,
|
43
|
-
:user => user} %>
|
44
|
-
<% end %>
|
39
|
+
<%= render :partial => 'commontator/comments/list',
|
40
|
+
:locals => {:comments => thread.ordered_comments,
|
41
|
+
:user => user} %>
|
45
42
|
</div>
|
46
43
|
|
47
44
|
<% if thread.is_closed? %>
|
@@ -36,6 +36,9 @@
|
|
36
36
|
</span>
|
37
37
|
|
38
38
|
<div id="thread_<%= thread.id.to_s %>_comment_list_div" class="thread_comment_list">
|
39
|
+
<%= render :partial => 'commontator/comments/list',
|
40
|
+
:locals => {:comments => thread.ordered_comments,
|
41
|
+
:user => user} %>
|
39
42
|
<% thread.ordered_comments.each do |comment| %>
|
40
43
|
<% next unless comment.can_be_read_by?(user) %>
|
41
44
|
<%= render :partial => 'commontator/comments/show',
|
@@ -47,7 +50,7 @@
|
|
47
50
|
<% if thread.is_closed? %>
|
48
51
|
<p><%= thread.config.comment_name.capitalize.pluralize %> cannot be <%= thread.config.comment_create_verb_past %> at this time.</p>
|
49
52
|
<% elsif !user %>
|
50
|
-
<p>You must log in before you can <%= thread.config.comment_create_verb_present %> a <%= thread.config.comment_name
|
53
|
+
<p>You must log in before you can <%= thread.config.comment_create_verb_present %> a <%= thread.config.comment_name %>.</p>
|
51
54
|
<% else %>
|
52
55
|
<div id="thread_<%= thread.id %>_new_comment_div" class="thread_new_comment"></div>
|
53
56
|
|
@@ -8,13 +8,14 @@ Commontator.configure do |config|
|
|
8
8
|
# Default: lambda { |controller| controller.current_user }
|
9
9
|
config.current_user_proc = lambda { |controller| controller.current_user }
|
10
10
|
|
11
|
-
# Proc
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
|
11
|
+
# Proc called with the view_context object as argument
|
12
|
+
# Returns a string to be appended to all JavaScript responses from commontator
|
13
|
+
# Can be used, for example, to display/clear Rails error messages
|
14
|
+
# Objects visible in view templates can be accessed through
|
15
|
+
# the view_context object (for example, view_context.flash)
|
16
|
+
# However, the view_context does not include the main application's helpers
|
17
|
+
# Default: lambda { |view_context| '$("#error_explanation").remove();' }
|
18
|
+
config.javascript_proc = lambda { |view_context| '$("#error_explanation").remove();' }
|
18
19
|
|
19
20
|
|
20
21
|
# User (acts_as_commontator) Configuration
|
@@ -109,15 +110,14 @@ Commontator.configure do |config|
|
|
109
110
|
# Default: false
|
110
111
|
config.can_vote_on_comments = false
|
111
112
|
|
112
|
-
#
|
113
|
-
#
|
114
|
-
#
|
115
|
-
|
116
|
-
|
117
|
-
#
|
118
|
-
#
|
119
|
-
|
120
|
-
config.comments_ordered_by_votes = false
|
113
|
+
# What order to use for comments
|
114
|
+
# Valid values:
|
115
|
+
# :e (earliest comment first)
|
116
|
+
# :l (latest comment first)
|
117
|
+
# :ve (highest voted first; earliest first if tied)
|
118
|
+
# :vl (highest voted first; latest first if tied)
|
119
|
+
# Default: :e (earliest comment first)
|
120
|
+
config.comments_order = :e
|
121
121
|
|
122
122
|
# Whether users can read threads closed by moderators
|
123
123
|
# Default: true
|
@@ -153,6 +153,14 @@ Commontator.configure do |config|
|
|
153
153
|
# Default: lambda { |main_app, commontable| main_app.polymorphic_url(commontable) }
|
154
154
|
# (defaults to the commontable's show url)
|
155
155
|
config.commontable_url_proc = lambda { |main_app, commontable| main_app.polymorphic_url(commontable) }
|
156
|
+
|
157
|
+
# Proc called with params from the subscription mailer as arguments
|
158
|
+
# Returns the subscription email 'to' addresses
|
159
|
+
# Available params can be seen in the subscription mailer
|
160
|
+
# Note that the actual addresses are already set in the BCC field
|
161
|
+
# Default:
|
162
|
+
# lambda { |params| 'Undisclosed Recipients' }
|
163
|
+
config.subscription_email_to_proc = lambda { |params| 'Undisclosed Recipients' }
|
156
164
|
|
157
165
|
# Proc called with params from the subscription mailer as arguments
|
158
166
|
# Returns the subscription email 'from' address
|
@@ -5,14 +5,14 @@ Commontator.configure do |config|
|
|
5
5
|
|
6
6
|
# Proc that is passed the current controller as argument
|
7
7
|
# Returns the current user
|
8
|
-
# Default:
|
8
|
+
# Default: lambda { |controller| controller.current_user }
|
9
9
|
config.current_user_proc = lambda { |controller| controller.current_user }
|
10
10
|
|
11
|
-
# Proc
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
11
|
+
# Proc called with the view_context object as argument
|
12
|
+
# Returns a string to be appended to all JavaScript responses from commontator
|
13
|
+
# Can be used, for example, to display/clear Rails error messages
|
14
|
+
# Objects visible in view templates can be accessed through the view_context object
|
15
|
+
# However, the view_context does not include the main application's helpers
|
16
16
|
# Default: lambda { |view| '$("#error_explanation").remove();' }
|
17
17
|
config.javascript_proc = lambda { |view| '$("#error_explanation").remove();' }
|
18
18
|
|
@@ -109,15 +109,14 @@ Commontator.configure do |config|
|
|
109
109
|
# Default: false
|
110
110
|
config.can_vote_on_comments = false
|
111
111
|
|
112
|
-
#
|
113
|
-
#
|
114
|
-
#
|
115
|
-
|
116
|
-
|
117
|
-
#
|
118
|
-
#
|
119
|
-
|
120
|
-
config.comments_ordered_by_votes = false
|
112
|
+
# What order to use for comments
|
113
|
+
# Valid values:
|
114
|
+
# :e (earliest comment first)
|
115
|
+
# :l (latest comment first)
|
116
|
+
# :ve (highest voted first; earliest first if tied)
|
117
|
+
# :vl (highest voted first; latest first if tied)
|
118
|
+
# Default: :e (earliest comment first)
|
119
|
+
config.comments_order = :e
|
121
120
|
|
122
121
|
# Whether users can read threads closed by moderators
|
123
122
|
# Default: true
|
@@ -153,6 +152,14 @@ Commontator.configure do |config|
|
|
153
152
|
# Default: lambda { |main_app, commontable| main_app.polymorphic_url(commontable) }
|
154
153
|
# (defaults to the commontable's show url)
|
155
154
|
config.commontable_url_proc = lambda { |main_app, commontable| main_app.polymorphic_url(commontable) }
|
155
|
+
|
156
|
+
# Proc called with params from the subscription mailer as arguments
|
157
|
+
# Returns the subscription email 'to' addresses
|
158
|
+
# Available params can be seen in the subscription mailer
|
159
|
+
# Note that the actual addresses are already set in the BCC field
|
160
|
+
# Default:
|
161
|
+
# lambda { |params| 'Undisclosed Recipients' }
|
162
|
+
config.subscription_email_to_proc = lambda { |params| 'Undisclosed Recipients' }
|
156
163
|
|
157
164
|
# Proc called with params from the subscription mailer as arguments
|
158
165
|
# Returns the subscription email 'from' address
|