Commit 80b43289ad366f76999b4eaadb3d9457038b83e7
1 parent
82c3dd7b
Exists in
master
and in
29 other branches
rails3: fix comment_classification plugin
Showing
29 changed files
with
151 additions
and
147 deletions
Show diff stats
plugins/comment_classification/features/step_definitions/plugin_steps.rb
1 | Given /^CommentClassificationPlugin is enabled$/ do | 1 | Given /^CommentClassificationPlugin is enabled$/ do |
2 | - Given %{I am logged in as admin} | ||
3 | - And %{I am on the environment control panel} | ||
4 | - And %{I follow "Plugins"} | ||
5 | - And %{I check "Comment Classification"} | ||
6 | - And %{I press "Save changes"} | 2 | + step %{I am logged in as admin} |
3 | + step %{I am on the environment control panel} | ||
4 | + step %{I follow "Plugins"} | ||
5 | + step %{I check "Comment Classification"} | ||
6 | + step %{I press "Save changes"} | ||
7 | Environment.default.enabled_plugins.should include("CommentClassificationPlugin") | 7 | Environment.default.enabled_plugins.should include("CommentClassificationPlugin") |
8 | end | 8 | end |
9 | 9 |
plugins/comment_classification/lib/comment_classification_plugin.rb
@@ -20,15 +20,15 @@ class CommentClassificationPlugin < Noosfero::Plugin | @@ -20,15 +20,15 @@ class CommentClassificationPlugin < Noosfero::Plugin | ||
20 | 20 | ||
21 | def comment_form_extra_contents(args) | 21 | def comment_form_extra_contents(args) |
22 | comment = args[:comment] | 22 | comment = args[:comment] |
23 | - lambda { | ||
24 | - render :file => 'comment/comments_labels_select.rhtml', :locals => {:comment => comment } | 23 | + proc { |
24 | + render :file => 'comment/comments_labels_select', :locals => {:comment => comment } | ||
25 | } | 25 | } |
26 | end | 26 | end |
27 | 27 | ||
28 | def comment_extra_contents(args) | 28 | def comment_extra_contents(args) |
29 | comment = args[:comment] | 29 | comment = args[:comment] |
30 | - lambda { | ||
31 | - render :file => 'comment/comment_extra.rhtml', :locals => {:comment => comment} | 30 | + proc { |
31 | + render :file => 'comment/comment_extra', :locals => {:comment => comment} | ||
32 | } | 32 | } |
33 | end | 33 | end |
34 | 34 | ||
@@ -46,10 +46,6 @@ class CommentClassificationPlugin < Noosfero::Plugin | @@ -46,10 +46,6 @@ class CommentClassificationPlugin < Noosfero::Plugin | ||
46 | end | 46 | end |
47 | end | 47 | end |
48 | 48 | ||
49 | - def js_files | ||
50 | - 'comment_classification.js' | ||
51 | - end | ||
52 | - | ||
53 | def stylesheet? | 49 | def stylesheet? |
54 | true | 50 | true |
55 | end | 51 | end |
plugins/comment_classification/lib/comment_classification_plugin/comment_label_user.rb
1 | -class CommentClassificationPlugin::CommentLabelUser < Noosfero::Plugin::ActiveRecord | 1 | +class CommentClassificationPlugin::CommentLabelUser < ActiveRecord::Base |
2 | set_table_name :comment_classification_plugin_comment_label_user | 2 | set_table_name :comment_classification_plugin_comment_label_user |
3 | 3 | ||
4 | belongs_to :profile | 4 | belongs_to :profile |
5 | belongs_to :comment | 5 | belongs_to :comment |
6 | belongs_to :label, :class_name => 'CommentClassificationPlugin::Label' | 6 | belongs_to :label, :class_name => 'CommentClassificationPlugin::Label' |
7 | 7 | ||
8 | + attr_accessible :profile, :comment, :label | ||
9 | + | ||
8 | validates_presence_of :profile | 10 | validates_presence_of :profile |
9 | validates_presence_of :comment | 11 | validates_presence_of :comment |
10 | validates_presence_of :label | 12 | validates_presence_of :label |
plugins/comment_classification/lib/comment_classification_plugin/comment_status_user.rb
1 | -class CommentClassificationPlugin::CommentStatusUser < Noosfero::Plugin::ActiveRecord | 1 | +class CommentClassificationPlugin::CommentStatusUser < ActiveRecord::Base |
2 | set_table_name :comment_classification_plugin_comment_status_user | 2 | set_table_name :comment_classification_plugin_comment_status_user |
3 | 3 | ||
4 | belongs_to :profile | 4 | belongs_to :profile |
5 | belongs_to :comment | 5 | belongs_to :comment |
6 | belongs_to :status, :class_name => 'CommentClassificationPlugin::Status' | 6 | belongs_to :status, :class_name => 'CommentClassificationPlugin::Status' |
7 | 7 | ||
8 | + attr_accessible :name, :enabled, :profile, :comment, :status_id, :reason | ||
9 | + | ||
8 | validates_presence_of :profile | 10 | validates_presence_of :profile |
9 | validates_presence_of :comment | 11 | validates_presence_of :comment |
10 | validates_presence_of :status | 12 | validates_presence_of :status |
plugins/comment_classification/lib/comment_classification_plugin/label.rb
@@ -4,7 +4,9 @@ class CommentClassificationPlugin::Label < Noosfero::Plugin::ActiveRecord | @@ -4,7 +4,9 @@ class CommentClassificationPlugin::Label < Noosfero::Plugin::ActiveRecord | ||
4 | 4 | ||
5 | validates_presence_of :name | 5 | validates_presence_of :name |
6 | 6 | ||
7 | - named_scope :enabled, :conditions => { :enabled => true } | 7 | + scope :enabled, :conditions => { :enabled => true } |
8 | + | ||
9 | + attr_accessible :name, :enabled, :color | ||
8 | 10 | ||
9 | COLORS = ['red', 'green', 'yellow', 'gray', 'blue'] | 11 | COLORS = ['red', 'green', 'yellow', 'gray', 'blue'] |
10 | end | 12 | end |
plugins/comment_classification/lib/comment_classification_plugin/status.rb
@@ -2,7 +2,9 @@ class CommentClassificationPlugin::Status < Noosfero::Plugin::ActiveRecord | @@ -2,7 +2,9 @@ class CommentClassificationPlugin::Status < Noosfero::Plugin::ActiveRecord | ||
2 | 2 | ||
3 | belongs_to :owner, :polymorphic => true | 3 | belongs_to :owner, :polymorphic => true |
4 | 4 | ||
5 | + attr_accessible :name, :enabled | ||
6 | + | ||
5 | validates_presence_of :name | 7 | validates_presence_of :name |
6 | 8 | ||
7 | - named_scope :enabled, :conditions => { :enabled => true } | 9 | + scope :enabled, :conditions => { :enabled => true } |
8 | end | 10 | end |
plugins/comment_classification/views/comment/comment_extra.html.erb
0 → 100644
@@ -0,0 +1,17 @@ | @@ -0,0 +1,17 @@ | ||
1 | +<div class='comment-classification-options'> | ||
2 | + | ||
3 | + <% unless comment.label.nil? %> | ||
4 | + <p class='label-name' style='color:<%= comment.label.color %>'> | ||
5 | + <%= comment.label.name %> | ||
6 | + </p> | ||
7 | + <% end %> | ||
8 | + | ||
9 | + <% statuses = CommentClassificationPlugin::Status.enabled %> | ||
10 | + <% if profile.organization? && user && user.has_permission?(:moderate_comments, profile) && !statuses.empty? %> | ||
11 | + <div class='comment-classification-status'> | ||
12 | + <%= link_to(_('Status'), :profile => profile.identifier, :controller => :comment_classification_plugin_myprofile, :action => :add_status, :id => comment.id) | ||
13 | + %> | ||
14 | + </div> | ||
15 | + <% end %> | ||
16 | + | ||
17 | +</div> |
plugins/comment_classification/views/comment/comment_extra.rhtml
@@ -1,17 +0,0 @@ | @@ -1,17 +0,0 @@ | ||
1 | -<div class='comment-classification-options'> | ||
2 | - | ||
3 | - <% unless comment.label.nil? %> | ||
4 | - <p class='label-name' style='color:<%= comment.label.color %>'> | ||
5 | - <%= comment.label.name %> | ||
6 | - </p> | ||
7 | - <% end %> | ||
8 | - | ||
9 | - <% statuses = CommentClassificationPlugin::Status.enabled %> | ||
10 | - <% if profile.organization? && user && user.has_permission?(:moderate_comments, profile) && !statuses.empty? %> | ||
11 | - <div class='comment-classification-status'> | ||
12 | - <%= link_to(_('Status'), :profile => profile.identifier, :controller => :comment_classification_plugin_myprofile, :action => :add_status, :id => comment.id) | ||
13 | - %> | ||
14 | - </div> | ||
15 | - <% end %> | ||
16 | - | ||
17 | -</div> |
plugins/comment_classification/views/comment/comments_labels_select.html.erb
0 → 100644
@@ -0,0 +1,4 @@ | @@ -0,0 +1,4 @@ | ||
1 | +<% labels = CommentClassificationPlugin::Label.enabled %> | ||
2 | +<% if logged_in? && user.has_permission?(:moderate_comments, profile) && !labels.empty? %> | ||
3 | + <%= labelled_form_field(_('Label'), select_tag('comment_label_id', options_for_select( [[_('[Select ...]'), nil]] + labels.map{|l|[l.name,l.id]}, @comment.label.nil? ? '' : @comment.label.id))) %> | ||
4 | +<% end %> |
plugins/comment_classification/views/comment/comments_labels_select.rhtml
@@ -1,4 +0,0 @@ | @@ -1,4 +0,0 @@ | ||
1 | -<% labels = CommentClassificationPlugin::Label.enabled %> | ||
2 | -<% if logged_in? && user.has_permission?(:moderate_comments, profile) && !labels.empty? %> | ||
3 | - <%= labelled_form_field(_('Label'), select_tag('comment_label_id', options_for_select( [[_('[Select ...]'), nil]] + labels.map{|l|[l.name,l.id]}, @comment.label.nil? ? '' : @comment.label.id))) %> | ||
4 | -<% end %> |
plugins/comment_classification/views/comment_classification_plugin_admin/index.html.erb
0 → 100644
@@ -0,0 +1,6 @@ | @@ -0,0 +1,6 @@ | ||
1 | +<h1><%= _('Comments classification options')%></h1> | ||
2 | + | ||
3 | +<ul> | ||
4 | + <li><%= link_to _('Manage Labels'), :controller => 'comment_classification_plugin_labels' %></li> | ||
5 | + <li><%= link_to _('Manage Status'), :controller => 'comment_classification_plugin_status' %></li> | ||
6 | +</ul> |
plugins/comment_classification/views/comment_classification_plugin_admin/index.rhtml
@@ -1,6 +0,0 @@ | @@ -1,6 +0,0 @@ | ||
1 | -<h1><%= _('Comments classification options')%></h1> | ||
2 | - | ||
3 | -<ul> | ||
4 | - <li><%= link_to _('Manage Labels'), :controller => 'comment_classification_plugin_labels' %></li> | ||
5 | - <li><%= link_to _('Manage Status'), :controller => 'comment_classification_plugin_status' %></li> | ||
6 | -</ul> |
plugins/comment_classification/views/comment_classification_plugin_labels/_form.html.erb
0 → 100644
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
1 | +<%= error_messages_for :label %> | ||
2 | + | ||
3 | +<%= form_for :label do |f| %> | ||
4 | + <%= required_fields_message %> | ||
5 | + | ||
6 | + <%= required labelled_form_field(_('Name'), f.text_field(:name)) %> | ||
7 | + <%= labelled_form_field(_('Color'), f.select(:color, @colors.map{|s|[s.capitalize,s]})) %> | ||
8 | + <%= labelled_form_field(f.check_box(:enabled) + _('Enable this label?'),'') %> | ||
9 | + | ||
10 | + <% button_bar do %> | ||
11 | + <%= submit_button('save', _('Save'), :cancel => {:action => 'index'} ) %> | ||
12 | + <% end %> | ||
13 | +<% end %> |
plugins/comment_classification/views/comment_classification_plugin_labels/_form.rhtml
@@ -1,13 +0,0 @@ | @@ -1,13 +0,0 @@ | ||
1 | -<%= error_messages_for :label %> | ||
2 | - | ||
3 | -<% form_for :label, @label do |f| %> | ||
4 | - <%= required_fields_message %> | ||
5 | - | ||
6 | - <%= required labelled_form_field(_('Name'), f.text_field(:name)) %> | ||
7 | - <%= labelled_form_field(_('Color'), f.select(:color, @colors.map{|s|[s.capitalize,s]})) %> | ||
8 | - <%= labelled_form_field(f.check_box(:enabled) + _('Enable this label?'),'') %> | ||
9 | - | ||
10 | - <% button_bar do %> | ||
11 | - <%= submit_button('save', _('Save'), :cancel => {:action => 'index'} ) %> | ||
12 | - <% end %> | ||
13 | -<% end %> |
plugins/comment_classification/views/comment_classification_plugin_labels/create.html.erb
0 → 100644
plugins/comment_classification/views/comment_classification_plugin_labels/create.rhtml
plugins/comment_classification/views/comment_classification_plugin_labels/edit.html.erb
0 → 100644
plugins/comment_classification/views/comment_classification_plugin_labels/edit.rhtml
plugins/comment_classification/views/comment_classification_plugin_labels/index.html.erb
0 → 100644
@@ -0,0 +1,32 @@ | @@ -0,0 +1,32 @@ | ||
1 | +<h1><%= _("Manage comments labels") %></h1> | ||
2 | + | ||
3 | +<div id='comment-classification-labels'> | ||
4 | + <% if @labels.empty? %> | ||
5 | + <%= _('(no label registered yet)') %> | ||
6 | + <% else %> | ||
7 | + <table> | ||
8 | + <tr> | ||
9 | + <th><%= _('Label') %></th> | ||
10 | + <th><%= _('Color') %></th> | ||
11 | + <th><%= _('Enabled') %></th> | ||
12 | + <th><%= _('Actions') %></th> | ||
13 | + </tr> | ||
14 | + <% @labels.each do |label| %> | ||
15 | + <tr> | ||
16 | + <td><%= label.name %></td> | ||
17 | + <td><%= label.color %></td> | ||
18 | + <td><%= label.enabled %></td> | ||
19 | + <td> | ||
20 | + <%= button_without_text :edit, _('Edit'), {:action => 'edit', :id => label} %> | ||
21 | + <%= button_without_text :delete, _('Remove'), {:action => 'destroy', :id => label}, :confirm => _('Are you sure you want to remove this label?') %> | ||
22 | + </td> | ||
23 | + </tr> | ||
24 | + <% end %> | ||
25 | + </table> | ||
26 | + <% end %> | ||
27 | + | ||
28 | + <% button_bar do %> | ||
29 | + <%= button(:add, _('Add a new label'), :action => 'create')%> | ||
30 | + <%= button :back, _('Back to admin panel'), :controller => 'admin_panel' %> | ||
31 | + <% end %> | ||
32 | +</div> |
plugins/comment_classification/views/comment_classification_plugin_labels/index.rhtml
@@ -1,32 +0,0 @@ | @@ -1,32 +0,0 @@ | ||
1 | -<h1><%= _("Manage comments labels") %></h1> | ||
2 | - | ||
3 | -<div id='comment-classification-labels'> | ||
4 | - <% if @labels.empty? %> | ||
5 | - <%= _('(no label registered yet)') %> | ||
6 | - <% else %> | ||
7 | - <table> | ||
8 | - <tr> | ||
9 | - <th><%= _('Label') %></th> | ||
10 | - <th><%= _('Color') %></th> | ||
11 | - <th><%= _('Enabled') %></th> | ||
12 | - <th><%= _('Actions') %></th> | ||
13 | - </tr> | ||
14 | - <% @labels.each do |label| %> | ||
15 | - <tr> | ||
16 | - <td><%= label.name %></td> | ||
17 | - <td><%= label.color %></td> | ||
18 | - <td><%= label.enabled %></td> | ||
19 | - <td> | ||
20 | - <%= button_without_text :edit, _('Edit'), {:action => 'edit', :id => label} %> | ||
21 | - <%= button_without_text :delete, _('Remove'), {:action => 'destroy', :id => label}, :confirm => _('Are you sure you want to remove this label?') %> | ||
22 | - </td> | ||
23 | - </tr> | ||
24 | - <% end %> | ||
25 | - </table> | ||
26 | - <% end %> | ||
27 | - | ||
28 | - <% button_bar do %> | ||
29 | - <%= button(:add, _('Add a new label'), :action => 'create')%> | ||
30 | - <%= button :back, _('Back to admin panel'), :controller => 'admin_panel' %> | ||
31 | - <% end %> | ||
32 | -</div> |
plugins/comment_classification/views/comment_classification_plugin_myprofile/_status_form.html.erb
1 | <%= error_messages_for :status %> | 1 | <%= error_messages_for :status %> |
2 | 2 | ||
3 | -<% form_for :status, @status do |f| %> | 3 | +<%= form_for :status do |f| %> |
4 | <%= required_fields_message %> | 4 | <%= required_fields_message %> |
5 | 5 | ||
6 | <%= labelled_form_field(_('Status'), f.select(:status_id, @statuses.map{|s|[s.name,s.id]})) %> | 6 | <%= labelled_form_field(_('Status'), f.select(:status_id, @statuses.map{|s|[s.name,s.id]})) %> |
plugins/comment_classification/views/comment_classification_plugin_status/_form.html.erb
0 → 100644
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
1 | +<%= error_messages_for :status %> | ||
2 | + | ||
3 | +<%= form_for :status do |f| %> | ||
4 | + <%= required_fields_message %> | ||
5 | + | ||
6 | + <%= required labelled_form_field(_('Name'), f.text_field(:name)) %> | ||
7 | + <%= labelled_form_field(f.check_box(:enabled) + _('Enable this status?'),'') %> | ||
8 | + <%#= labelled_form_field(f.check_box(:enable_reason) + _('This status allows reason?'),'') %> | ||
9 | + | ||
10 | + <% button_bar do %> | ||
11 | + <%= submit_button('save', _('Save'), :cancel => {:action => 'index'} ) %> | ||
12 | + <% end %> | ||
13 | +<% end %> |
plugins/comment_classification/views/comment_classification_plugin_status/_form.rhtml
@@ -1,13 +0,0 @@ | @@ -1,13 +0,0 @@ | ||
1 | -<%= error_messages_for :status %> | ||
2 | - | ||
3 | -<% form_for :status, @status do |f| %> | ||
4 | - <%= required_fields_message %> | ||
5 | - | ||
6 | - <%= required labelled_form_field(_('Name'), f.text_field(:name)) %> | ||
7 | - <%= labelled_form_field(f.check_box(:enabled) + _('Enable this status?'),'') %> | ||
8 | - <%#= labelled_form_field(f.check_box(:enable_reason) + _('This status allows reason?'),'') %> | ||
9 | - | ||
10 | - <% button_bar do %> | ||
11 | - <%= submit_button('save', _('Save'), :cancel => {:action => 'index'} ) %> | ||
12 | - <% end %> | ||
13 | -<% end %> |
plugins/comment_classification/views/comment_classification_plugin_status/create.html.erb
0 → 100644
plugins/comment_classification/views/comment_classification_plugin_status/create.rhtml
plugins/comment_classification/views/comment_classification_plugin_status/edit.html.erb
0 → 100644
plugins/comment_classification/views/comment_classification_plugin_status/edit.rhtml
plugins/comment_classification/views/comment_classification_plugin_status/index.html.erb
0 → 100644
@@ -0,0 +1,32 @@ | @@ -0,0 +1,32 @@ | ||
1 | +<h1> <%= _("Manage comments status") %></h1> | ||
2 | + | ||
3 | +<div id='comment-classification-status'> | ||
4 | + <% if @status.empty? %> | ||
5 | + <%= _('(no status registered yet)') %> | ||
6 | + <% else %> | ||
7 | + <table> | ||
8 | + <tr> | ||
9 | + <th><%= _('Status') %></th> | ||
10 | + <th><%= _('Enabled') %></th> | ||
11 | + <th><%= _('Reason enabled?') %></th> | ||
12 | + <th><%= _('Actions') %></th> | ||
13 | + </tr> | ||
14 | + <% @status.each do |st| %> | ||
15 | + <tr> | ||
16 | + <td><%= st.name %></td> | ||
17 | + <td><%= st.enabled %></td> | ||
18 | + <td><%= st.enable_reason %></td> | ||
19 | + <td> | ||
20 | + <%= button_without_text :edit, _('Edit'), {:action => 'edit', :id => st} %> | ||
21 | + <%= button_without_text :delete, _('Remove'), {:action => 'destroy', :id => st}, :confirm => _('Are you sure you want to remove this status?') %> | ||
22 | + </td> | ||
23 | + </tr> | ||
24 | + <% end %> | ||
25 | + </table> | ||
26 | + <% end %> | ||
27 | + | ||
28 | + <% button_bar do %> | ||
29 | + <%= button(:add, _('Add a new status'), :action => 'create')%> | ||
30 | + <%= button :back, _('Back to admin panel'), :controller => 'admin_panel' %> | ||
31 | + <% end %> | ||
32 | +</div> |
plugins/comment_classification/views/comment_classification_plugin_status/index.rhtml
@@ -1,32 +0,0 @@ | @@ -1,32 +0,0 @@ | ||
1 | -<h1> <%= _("Manage comments status") %></h1> | ||
2 | - | ||
3 | -<div id='comment-classification-status'> | ||
4 | - <% if @status.empty? %> | ||
5 | - <%= _('(no status registered yet)') %> | ||
6 | - <% else %> | ||
7 | - <table> | ||
8 | - <tr> | ||
9 | - <th><%= _('Status') %></th> | ||
10 | - <th><%= _('Enabled') %></th> | ||
11 | - <th><%= _('Reason enabled?') %></th> | ||
12 | - <th><%= _('Actions') %></th> | ||
13 | - </tr> | ||
14 | - <% @status.each do |st| %> | ||
15 | - <tr> | ||
16 | - <td><%= st.name %></td> | ||
17 | - <td><%= st.enabled %></td> | ||
18 | - <td><%= st.enable_reason %></td> | ||
19 | - <td> | ||
20 | - <%= button_without_text :edit, _('Edit'), {:action => 'edit', :id => st} %> | ||
21 | - <%= button_without_text :delete, _('Remove'), {:action => 'destroy', :id => st}, :confirm => _('Are you sure you want to remove this status?') %> | ||
22 | - </td> | ||
23 | - </tr> | ||
24 | - <% end %> | ||
25 | - </table> | ||
26 | - <% end %> | ||
27 | - | ||
28 | - <% button_bar do %> | ||
29 | - <%= button(:add, _('Add a new status'), :action => 'create')%> | ||
30 | - <%= button :back, _('Back to admin panel'), :controller => 'admin_panel' %> | ||
31 | - <% end %> | ||
32 | -</div> |