Commit c4d925d6941cf6874a5a851ec97a62eeff494d13
1 parent
3601416a
Exists in
master
comment_paragraph: add filter for marking paragraphs by default
Showing
1 changed file
with
38 additions
and
3 deletions
Show diff stats
lib/comment_paragraph_plugin.rb
| @@ -16,14 +16,14 @@ class CommentParagraphPlugin < Noosfero::Plugin | @@ -16,14 +16,14 @@ class CommentParagraphPlugin < Noosfero::Plugin | ||
| 16 | comment = args[:comment] | 16 | comment = args[:comment] |
| 17 | paragraph_id = comment.paragraph_id || args[:paragraph_id] | 17 | paragraph_id = comment.paragraph_id || args[:paragraph_id] |
| 18 | proc { | 18 | proc { |
| 19 | - arr = [] | 19 | + arr = [] |
| 20 | arr << hidden_field_tag('comment[id]', comment.id) | 20 | arr << hidden_field_tag('comment[id]', comment.id) |
| 21 | arr << hidden_field_tag('comment[paragraph_id]', paragraph_id) if paragraph_id | 21 | arr << hidden_field_tag('comment[paragraph_id]', paragraph_id) if paragraph_id |
| 22 | - arr << hidden_field_tag('comment[comment_paragraph_selected_area]', comment.comment_paragraph_selected_area) if comment.comment_paragraph_selected_area | 22 | + arr << hidden_field_tag('comment[comment_paragraph_selected_area]', comment.comment_paragraph_selected_area) if comment.comment_paragraph_selected_area |
| 23 | arr | 23 | arr |
| 24 | } | 24 | } |
| 25 | end | 25 | end |
| 26 | - | 26 | + |
| 27 | def comment_extra_contents(args) | 27 | def comment_extra_contents(args) |
| 28 | comment = args[:comment] | 28 | comment = args[:comment] |
| 29 | proc { | 29 | proc { |
| @@ -39,6 +39,41 @@ class CommentParagraphPlugin < Noosfero::Plugin | @@ -39,6 +39,41 @@ class CommentParagraphPlugin < Noosfero::Plugin | ||
| 39 | true | 39 | true |
| 40 | end | 40 | end |
| 41 | 41 | ||
| 42 | + def cms_controller_filters | ||
| 43 | + block = proc do | ||
| 44 | + if params['commit'] == 'Save' | ||
| 45 | + unless @article.id.blank? | ||
| 46 | + | ||
| 47 | + parsed_paragraphs = [] | ||
| 48 | + paragraph_id = 0 | ||
| 49 | + | ||
| 50 | + doc = Hpricot(@article.body) | ||
| 51 | + paragraphs = doc.search("/[\r\n]").each do |paragraph| | ||
| 52 | + parsed_paragraphs << (paragraph.to_html =~ /(.*)paragraph_comment_spacer(.*)|<div(.*)paragraph_comment(.*)/ ? paragraph.to_html : CommentParagraphPlugin.parse_paragraph(paragraph.to_html, paragraph_id)) | ||
| 53 | + paragraph_id += 1 | ||
| 54 | + end | ||
| 55 | + | ||
| 56 | + @article.body = parsed_paragraphs.join() | ||
| 57 | + @article.save | ||
| 58 | + | ||
| 59 | + end | ||
| 60 | + end | ||
| 61 | + end | ||
| 62 | + | ||
| 63 | + { :type => 'after_filter', | ||
| 64 | + :method_name => 'new', | ||
| 65 | + :block => block } | ||
| 66 | + end | ||
| 67 | + | ||
| 68 | + private | ||
| 69 | + | ||
| 70 | + def self.parse_paragraph( paragraph_content, paragraph_id ) | ||
| 71 | + "<div class='macro article_comments paragraph_comment' " + | ||
| 72 | + "data-macro='comment_paragraph_plugin/allow_comment' " + | ||
| 73 | + "data-macro-paragraph_id='#{paragraph_id}'>#{paragraph_content}</div>\r\n" + | ||
| 74 | + "<p class='paragraph_comment_spacer'></p>\r\n" | ||
| 75 | + end | ||
| 76 | + | ||
| 42 | end | 77 | end |
| 43 | 78 | ||
| 44 | require_dependency 'comment_paragraph_plugin/macros/allow_comment' | 79 | require_dependency 'comment_paragraph_plugin/macros/allow_comment' |