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' |