Commit 32dfc0b82173056324ba1d9d4b3914a213ced695
1 parent
08eef885
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
comment_paragraph: add filter for marking paragraphs by default
Showing
1 changed file
with
38 additions
and
3 deletions
Show diff stats
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 < 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' | ... | ... |