Commit 32dfc0b82173056324ba1d9d4b3914a213ced695

Authored by Francisco Júnior
1 parent 08eef885

comment_paragraph: add filter for marking paragraphs by default

plugins/comment_paragraph/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 &lt; 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'
... ...