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 | 16 | comment = args[:comment] |
| 17 | 17 | paragraph_id = comment.paragraph_id || args[:paragraph_id] |
| 18 | 18 | proc { |
| 19 | - arr = [] | |
| 19 | + arr = [] | |
| 20 | 20 | arr << hidden_field_tag('comment[id]', comment.id) |
| 21 | 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 | 23 | arr |
| 24 | 24 | } |
| 25 | 25 | end |
| 26 | - | |
| 26 | + | |
| 27 | 27 | def comment_extra_contents(args) |
| 28 | 28 | comment = args[:comment] |
| 29 | 29 | proc { |
| ... | ... | @@ -39,6 +39,41 @@ class CommentParagraphPlugin < Noosfero::Plugin |
| 39 | 39 | true |
| 40 | 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 | 77 | end |
| 43 | 78 | |
| 44 | 79 | require_dependency 'comment_paragraph_plugin/macros/allow_comment' | ... | ... |