Commit 4b68f273ab72cf214e8492b820132204fa4b6cad
1 parent
0a7e61da
Exists in
staging
and in
4 other branches
removing community_hub
Showing
57 changed files
with
1 additions
and
3101 deletions
Show diff stats
plugins/community_hub/Gemfile
plugins/community_hub/controllers/myprofile/community_dashboard_plugin_myprofile_controller.rb
@@ -1,18 +0,0 @@ | @@ -1,18 +0,0 @@ | ||
1 | -class CommunityDashboardPluginMyprofileController < MyProfileController | ||
2 | - | ||
3 | - append_view_path File.join(File.dirname(__FILE__) + '/../../views') | ||
4 | - | ||
5 | - before_filter :allow_edit_dashboard, :only => :save_order | ||
6 | - | ||
7 | - def save_order | ||
8 | - dashboard = profile.articles.find(params[:dashboard]) | ||
9 | - redirect_to dashboard.url | ||
10 | - end | ||
11 | - | ||
12 | - protected | ||
13 | - | ||
14 | - def allow_edit_dashboard | ||
15 | - render_access_denied unless profile.articles.find(params[:dashboard]).allow_edit?(user) | ||
16 | - end | ||
17 | - | ||
18 | -end |
plugins/community_hub/controllers/public/community_hub_plugin_public_controller.rb
@@ -1,219 +0,0 @@ | @@ -1,219 +0,0 @@ | ||
1 | -class CommunityHubPluginPublicController < PublicController | ||
2 | - | ||
3 | - append_view_path File.join(File.dirname(__FILE__) + '/../../views') | ||
4 | - | ||
5 | - layout false | ||
6 | - | ||
7 | - | ||
8 | - def new_message | ||
9 | - if logged_in? | ||
10 | - | ||
11 | - begin | ||
12 | - hub = Article.find(params[:article_id]) | ||
13 | - rescue | ||
14 | - hub = nil | ||
15 | - end | ||
16 | - | ||
17 | - if hub | ||
18 | - message_data = {} | ||
19 | - message_data.merge!(params[:message]) if params[:message] | ||
20 | - | ||
21 | - message = Comment.new(message_data) | ||
22 | - message.author = user | ||
23 | - message.title = message_timestamp | ||
24 | - message.article = hub | ||
25 | - message.ip_address = request.remote_ip | ||
26 | - message.user_agent = request.user_agent | ||
27 | - message.referrer = request.referrer | ||
28 | - | ||
29 | - if message && message.save | ||
30 | - render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
31 | - return true | ||
32 | - end | ||
33 | - end | ||
34 | - | ||
35 | - end | ||
36 | - render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
37 | - end | ||
38 | - | ||
39 | - | ||
40 | - def new_mediation | ||
41 | - if logged_in? | ||
42 | - | ||
43 | - begin | ||
44 | - profile = Profile.find(params[:profile_id]) | ||
45 | - rescue | ||
46 | - profile = nil | ||
47 | - end | ||
48 | - | ||
49 | - if profile | ||
50 | - mediation_data = {} | ||
51 | - mediation_data.merge!(params[:article]) if params[:article] | ||
52 | - | ||
53 | - mediation = CommunityHubPlugin::Mediation.new(mediation_data) | ||
54 | - mediation.name = CommunityHubPlugin::Mediation.timestamp | ||
55 | - mediation.profile = profile | ||
56 | - mediation.last_changed_by = user | ||
57 | - mediation.created_by_id = user.id | ||
58 | - mediation.source = 'local' | ||
59 | - | ||
60 | - if mediation && mediation.save | ||
61 | - render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
62 | - return true | ||
63 | - end | ||
64 | - end | ||
65 | - | ||
66 | - end | ||
67 | - render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
68 | - end | ||
69 | - | ||
70 | - | ||
71 | - def newer_mediation_comment | ||
72 | - latest_id = params[:latest_post] | ||
73 | - mediation = params[:mediation] | ||
74 | - comments = Comment.find(:all, :conditions => ["id > :id and source_id = :mediation", { :id => latest_id, :mediation => mediation }]) | ||
75 | - render :partial => "mediation_comment", :collection => comments | ||
76 | - end | ||
77 | - | ||
78 | - | ||
79 | - def newer_comments | ||
80 | - latest_post = params[:latest_post] | ||
81 | - hub = Article.find(params[:hub]) | ||
82 | - posts = Comment.find(:all, :order => "id desc", :conditions => ["id > :id and source_id = :hub", { :id => latest_post, :hub => hub }], :limit => 30) | ||
83 | - | ||
84 | - if !posts.empty? | ||
85 | - oldest_post = posts.last.id | ||
86 | - latest_post = posts.first.id | ||
87 | - size = posts.size | ||
88 | - else | ||
89 | - oldest_post = 0 | ||
90 | - latest_post = 0 | ||
91 | - end | ||
92 | - | ||
93 | - render :partial => "post", :collection => posts, :locals => { :latest_id => latest_post, :oldest_id => oldest_post, :hub => hub } | ||
94 | - end | ||
95 | - | ||
96 | - | ||
97 | - def older_comments | ||
98 | - oldest_id = params[:oldest_id] | ||
99 | - hub = Article.find(params[:hub]) | ||
100 | - posts = Comment.find(:all, :order => "id desc", :conditions => ["id < :id and source_id = :hub", { :id => oldest_id, :hub => hub }], :limit => 30) | ||
101 | - | ||
102 | - if !posts.empty? | ||
103 | - oldest_id = posts.last.id | ||
104 | - latest_id = posts.first.id | ||
105 | - end | ||
106 | - | ||
107 | - render :partial => "post", :collection => posts, :locals => { :latest_id => latest_id, :oldest_id => oldest_id, :hub => hub } | ||
108 | - end | ||
109 | - | ||
110 | - | ||
111 | - def newer_articles | ||
112 | - latest_post = params[:latest_post] | ||
113 | - hub = Article.find(params[:hub]) | ||
114 | - posts = CommunityHubPlugin::Mediation.find(:all, :order => "id desc", :conditions => ["id > :id and parent_id = :hub", { :id => latest_post, :hub => hub.id }]) | ||
115 | - | ||
116 | - if !posts.empty? | ||
117 | - oldest_post = posts.last.id | ||
118 | - latest_post = posts.first.id | ||
119 | - else | ||
120 | - oldest_post = 0 | ||
121 | - latest_post = 0 | ||
122 | - end | ||
123 | - | ||
124 | - render :partial => "mediation", :collection => posts, :locals => { :latest_post => latest_post, :oldest_post => oldest_post, :hub => hub } | ||
125 | - end | ||
126 | - | ||
127 | - | ||
128 | - def promote_user | ||
129 | - if logged_in? | ||
130 | - if (!params[:hub].blank? && !params[:user].blank?) | ||
131 | - begin | ||
132 | - hub = Article.find(params[:hub]) | ||
133 | - rescue | ||
134 | - hub = nil | ||
135 | - end | ||
136 | - if hub && hub.mediator?(user) | ||
137 | - begin | ||
138 | - user_to_promote = Profile.find(params[:user]) | ||
139 | - rescue | ||
140 | - user_to_promote = nil | ||
141 | - end | ||
142 | - if user_to_promote | ||
143 | - hub.mediators += [user_to_promote.id] unless hub.mediators.include?(user_to_promote.id) | ||
144 | - if hub.save | ||
145 | - render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
146 | - return true | ||
147 | - end | ||
148 | - end | ||
149 | - end | ||
150 | - end | ||
151 | - end | ||
152 | - render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
153 | - end | ||
154 | - | ||
155 | - | ||
156 | - def pin_message | ||
157 | - if logged_in? | ||
158 | - if (!params[:hub].blank? && !params[:message].blank?) | ||
159 | - | ||
160 | - begin | ||
161 | - hub = Article.find(params[:hub]) | ||
162 | - rescue | ||
163 | - hub = nil | ||
164 | - end | ||
165 | - | ||
166 | - if hub && hub.mediator?(user) | ||
167 | - begin | ||
168 | - message = Comment.find(params[:message]) | ||
169 | - rescue | ||
170 | - message = nil | ||
171 | - end | ||
172 | - | ||
173 | - if message | ||
174 | - author = message.author.blank? ? user : message.author | ||
175 | - | ||
176 | - mediation = CommunityHubPlugin::Mediation.new | ||
177 | - mediation.name = CommunityHubPlugin::Mediation.timestamp | ||
178 | - | ||
179 | - mediation.profile = hub.profile | ||
180 | - mediation.last_changed_by = author | ||
181 | - mediation.created_by_id = author.id | ||
182 | - mediation.body = message.body | ||
183 | - mediation.parent_id = hub.id | ||
184 | - mediation.source = 'local' | ||
185 | - | ||
186 | - if mediation && mediation.save | ||
187 | - | ||
188 | - if ( message.title == 'hub-message-twitter' ) | ||
189 | - mediation.source = 'twitter' | ||
190 | - mediation.author_name = message.name | ||
191 | - mediation.profile_picture = message.profile_picture | ||
192 | - mediation.save | ||
193 | - end | ||
194 | - | ||
195 | - hub.pinned_messages += [message.id] unless hub.pinned_messages.include?(message.id) | ||
196 | - hub.pinned_mediations += [mediation.id] unless hub.pinned_mediations.include?(mediation.id) | ||
197 | - | ||
198 | - if hub && hub.save | ||
199 | - render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
200 | - return true | ||
201 | - end | ||
202 | - | ||
203 | - end | ||
204 | - | ||
205 | - end | ||
206 | - end | ||
207 | - end | ||
208 | - end | ||
209 | - render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
210 | - end | ||
211 | - | ||
212 | - | ||
213 | - protected | ||
214 | - | ||
215 | - def message_timestamp | ||
216 | - "hub-message-#{(Time.now.to_f * 1000).to_i}" | ||
217 | - end | ||
218 | - | ||
219 | -end |
plugins/community_hub/facebook_stream/codfish_facebook_api.rb
@@ -1,86 +0,0 @@ | @@ -1,86 +0,0 @@ | ||
1 | -require 'rubygems' | ||
2 | -require 'open-uri' | ||
3 | -require 'json' | ||
4 | - | ||
5 | -token = 'CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH' | ||
6 | -hashtag = "love" | ||
7 | -pooling_time = 10 | ||
8 | - | ||
9 | - | ||
10 | -#Aviso 12/04/2014 | ||
11 | -#token que só deverá expirar em 59 dias | ||
12 | -#@graph = Koala::Facebook::API.new('CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH') | ||
13 | -# https://graph.facebook.com/v1.0/search?q=%23nba&type=post&access_token=CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH | ||
14 | - | ||
15 | -def not_blank(v) | ||
16 | - if v == nil || v == "" | ||
17 | - false | ||
18 | - else | ||
19 | - true | ||
20 | - end | ||
21 | -end | ||
22 | - | ||
23 | -#if hashtag[0]='#' | ||
24 | -# hashtag = hashtag[1,hashtag.length-1] | ||
25 | -#end | ||
26 | - | ||
27 | -extractedComments = [] | ||
28 | -initialComments = [] | ||
29 | -firstTime = true | ||
30 | -read = 1 | ||
31 | - | ||
32 | -while true | ||
33 | - file = open("https://graph.facebook.com/v1.0/search?q=%23#{hashtag}&type=post&access_token=#{token}") | ||
34 | - itens = JSON.parse(file.read)['data'] | ||
35 | - mostRecent = "" | ||
36 | - itens.each{|i| | ||
37 | - from = "" | ||
38 | - message = "" | ||
39 | - if not_blank(i['from']['name']) | ||
40 | - from = i['from']['name'] | ||
41 | - if not_blank(i['message']) | ||
42 | - message += i['message'] | ||
43 | - end | ||
44 | - if not_blank(message) | ||
45 | - if mostRecent == "" or mostRecent < i["created_time"] | ||
46 | - mostRecent = i["created_time"] | ||
47 | - end | ||
48 | - | ||
49 | - extractedComments.push("#{from} said: #{message}") | ||
50 | - # puts "#{from} said: #{message}" | ||
51 | - end | ||
52 | - end | ||
53 | - } | ||
54 | - | ||
55 | - extractedComments = extractedComments.uniq | ||
56 | - if firstTime | ||
57 | - initialComments = extractedComments.clone | ||
58 | - firstTime = false | ||
59 | - end | ||
60 | - | ||
61 | -# extractedComments.each{|comment| | ||
62 | -# puts comment | ||
63 | -# } | ||
64 | - | ||
65 | -# extractedComments.each{|comment| | ||
66 | -# puts comment | ||
67 | -# } | ||
68 | - | ||
69 | - | ||
70 | - newComments = extractedComments - initialComments | ||
71 | - newComments = newComments.uniq | ||
72 | - initialComments += newComments | ||
73 | - initialComments = initialComments.uniq | ||
74 | - newComments.each{|comment| | ||
75 | - puts comment | ||
76 | - } | ||
77 | - puts "****************************************************************************************************************" | ||
78 | - puts "most recent post at #{mostRecent}" | ||
79 | - puts "Read: #{read} newComments: #{newComments.length} initialComments: #{initialComments.length} extractedComments: #{extractedComments.length} *******" | ||
80 | - | ||
81 | - read+=1 | ||
82 | - sleep(pooling_time) | ||
83 | -end | ||
84 | - | ||
85 | - | ||
86 | - |
plugins/community_hub/facebook_stream/facebook_stream.rb
@@ -1,56 +0,0 @@ | @@ -1,56 +0,0 @@ | ||
1 | -require 'rubygems' | ||
2 | -require 'koala' | ||
3 | -require 'json' | ||
4 | - | ||
5 | -#Aviso 12/04/2014 | ||
6 | -#token que só deverá expirar em 59 dias | ||
7 | -@graph = Koala::Facebook::API.new('CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH') | ||
8 | -# https://graph.facebook.com/v1.0/search?q=%23dilma&type=post&access_token=CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH | ||
9 | - | ||
10 | -#feed = @graph.get_connections("participabr", "posts") | ||
11 | - | ||
12 | -comentariosIniciais = [] | ||
13 | -comentariosExtraidos = [] | ||
14 | -comentariosNovos = [] | ||
15 | - | ||
16 | -primeiraVez = true | ||
17 | - | ||
18 | -while true | ||
19 | - | ||
20 | - feed = @graph.get_connections("mundoreagindo", "posts") | ||
21 | - | ||
22 | - array = [] | ||
23 | - comentariosExtraidos = [] | ||
24 | - feed.each {|f| | ||
25 | - if f['comments'] != nil && f['comments']['data'] != nil | ||
26 | - array.push(f['comments']['data']) | ||
27 | - end | ||
28 | - } | ||
29 | - | ||
30 | - array.each{ |comentarios| | ||
31 | - comentarios.each{|comentario| | ||
32 | - comentariosExtraidos.push("#{comentario['from']['name']} disse: #{comentario['message']}") | ||
33 | - } | ||
34 | - } | ||
35 | - | ||
36 | - comentariosExtraidos = comentariosExtraidos.uniq | ||
37 | - | ||
38 | - if primeiraVez | ||
39 | - comentariosIniciais=comentariosExtraidos.clone | ||
40 | - primeiraVez = false | ||
41 | - end | ||
42 | - | ||
43 | -# comentariosExtraidos.each{|comentario| | ||
44 | -# puts comentario | ||
45 | -# } | ||
46 | - | ||
47 | - comentariosNovos = comentariosExtraidos - comentariosIniciais | ||
48 | - comentariosNovos = comentariosNovos.uniq | ||
49 | - comentariosIniciais += comentariosNovos | ||
50 | - comentariosIniciais = comentariosIniciais.uniq | ||
51 | - comentariosNovos.each{|comentario| | ||
52 | - puts comentario | ||
53 | - } | ||
54 | - | ||
55 | - sleep(5) | ||
56 | -end |
plugins/community_hub/facebook_stream/lib_facebook_koala_stream.rb
@@ -1,48 +0,0 @@ | @@ -1,48 +0,0 @@ | ||
1 | -require 'rubygems' | ||
2 | -require 'koala' | ||
3 | -require 'json' | ||
4 | - | ||
5 | -#Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! Warning!!! | ||
6 | -#token will expire at 12/04/2014 (Brazilian date format) + 59 days | ||
7 | -#'CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH' | ||
8 | -# BACKUP TOKEN 'CAAEhsewl0ZAcBAHhipXszZCURSwWLmgvceDbs9mB5baJdLriFxYMEzywmF2fvZBuThuA2Mm7QF8wPd3E6R5pVqVEnC2VhcBb4VrfAnkZC73ZC5g1NRUnKZCB2e6CaRiUBDatR2nf505PeKp7Aj5XxvTdfSqdZCsXxQFYZApPNSUUgkUWm6HwL4rp21MRJXb612sZD' | ||
9 | - | ||
10 | -def deprecated_facebook_comments(hub, author_id, page_id, pooling_time, token, proxy_url) | ||
11 | - pooling_time ||= 5 | ||
12 | - Koala.http_service.http_options = { :proxy => proxy_url } unless proxy_url.blank? | ||
13 | - | ||
14 | - @graph = Koala::Facebook::API.new(token) | ||
15 | - initialComments = [] | ||
16 | - firstTime = true | ||
17 | - while true | ||
18 | - feed = @graph.get_connections(page_id, "posts") | ||
19 | - array = [] | ||
20 | - extractedComments = [] | ||
21 | - feed.each {|f| | ||
22 | - if f['comments'] != nil && f['comments']['data'] != nil | ||
23 | - array.push(f['comments']['data']) | ||
24 | - end | ||
25 | - } | ||
26 | - extractedComments = array.flatten.uniq | ||
27 | - if firstTime | ||
28 | - initialComments = extractedComments.clone | ||
29 | - firstTime = false | ||
30 | - end | ||
31 | - newComments = extractedComments - initialComments | ||
32 | - newComments = newComments.uniq | ||
33 | - initialComments += newComments | ||
34 | - initialComments = initialComments.uniq | ||
35 | - newComments.each{|comment| | ||
36 | - puts "#{comment['from']['name']} " + _("said") + ": #{comment['message']}" | ||
37 | - noosferoComment = Comment.new | ||
38 | - noosferoComment.title = 'hub-message-facebook' | ||
39 | - noosferoComment.source = hub | ||
40 | - noosferoComment.body = comment['message'] | ||
41 | - noosferoComment.author_id = author_id | ||
42 | - noosferoComment.name = comment['from']['name'] | ||
43 | - noosferoComment.email = 'admin@localhost.local' | ||
44 | - noosferoComment.save! | ||
45 | - } | ||
46 | - sleep(pooling_time) | ||
47 | - end | ||
48 | -end |
plugins/community_hub/facebook_stream/lib_facebook_stream.rb
@@ -1,117 +0,0 @@ | @@ -1,117 +0,0 @@ | ||
1 | -require 'rubygems' | ||
2 | -require 'open-uri' | ||
3 | -require 'json' | ||
4 | - | ||
5 | -def not_blank?(v) | ||
6 | - if v == nil || v == "" | ||
7 | - false | ||
8 | - else | ||
9 | - true | ||
10 | - end | ||
11 | -end | ||
12 | - | ||
13 | -def save_comment(hub, comment, author_id) | ||
14 | - noosferoComment = Comment.new | ||
15 | - noosferoComment.title = 'hub-message-facebook' | ||
16 | - noosferoComment.source = hub | ||
17 | - noosferoComment.body = comment[:message] | ||
18 | - noosferoComment.author_id = author_id | ||
19 | - noosferoComment.name = comment[:from] | ||
20 | - noosferoComment.email = 'admin@localhost.local' | ||
21 | - noosferoComment.save! | ||
22 | -end | ||
23 | - | ||
24 | - | ||
25 | -def facebook_comments(hub, author_id, hashtag, pooling_time, token) | ||
26 | - | ||
27 | - pooling_time ||= 10 | ||
28 | - token ||= 'CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH' | ||
29 | - hashtag ||= "#nba" | ||
30 | - #Aviso 12/04/2014 | ||
31 | - #token que só deverá expirar em 59 dias | ||
32 | - #https://graph.facebook.com/v1.0/search?q=%23nba&type=post&access_token=CAAD8cd4tMVkBAO3sh2DrzwZCDfeQq9ZAvTz7Jz24ZC26KtMfBoljqaXhD2vBV1zpP0bjrpxXUBzJvKKcFzOm6rMG9Sok7iNVUaxt5iwr7dfMqCvHpMboKpqrqgeLrfCH5ITVTAdezA6ZBSr9iOJrqyCSOYfui0zTmbXJ3FqtshwNRrRy4NPH | ||
33 | - # | ||
34 | - | ||
35 | - #removes extra '#' | ||
36 | - if hashtag[0,1]=='#' | ||
37 | - hashtag = hashtag[1,hashtag.length-1] | ||
38 | - end | ||
39 | - | ||
40 | - initialComments = [] | ||
41 | - firstTime = true | ||
42 | - read = 1 | ||
43 | - url = "https://graph.facebook.com/v1.0/search?q=%23#{hashtag}&type=post&access_token=#{token}" | ||
44 | - mostRecent = "" | ||
45 | - | ||
46 | - while true | ||
47 | - connected = false | ||
48 | - tries = 0 | ||
49 | - while !connected | ||
50 | - begin | ||
51 | - tries += 1 | ||
52 | - file = open(url) | ||
53 | - connected = true | ||
54 | - tries = 0 | ||
55 | - rescue => e | ||
56 | - puts "Error connecting to facebook: #{e.inspect} " | ||
57 | - puts file | ||
58 | - sleep (10 + 2 ** tries) | ||
59 | - end | ||
60 | - end | ||
61 | - | ||
62 | - extractedComments = [] | ||
63 | - itens = JSON.parse(file.read)['data'] | ||
64 | - itens.each{|i| | ||
65 | - from = "" | ||
66 | - message = "" | ||
67 | - if not_blank?(i['from']['name']) | ||
68 | - from = i['from']['name'] | ||
69 | - if not_blank?(i['message']) | ||
70 | - message += i['message'] | ||
71 | - else | ||
72 | - if not_blank?(i['description']) | ||
73 | - message += i['description'] | ||
74 | - else | ||
75 | - if not_blank?(i['caption']) | ||
76 | - message += i['caption'] | ||
77 | - end | ||
78 | - end | ||
79 | - end | ||
80 | - if not_blank?(message) | ||
81 | - if mostRecent == "" or mostRecent < i["created_time"] | ||
82 | - mostRecent = i["created_time"] | ||
83 | - end | ||
84 | - extractedComments.push({:from=>from, :message=>message}) | ||
85 | - end | ||
86 | - end | ||
87 | - } | ||
88 | - | ||
89 | - extractedComments = extractedComments.uniq | ||
90 | - if firstTime | ||
91 | - initialComments = extractedComments.clone | ||
92 | - firstTime = false | ||
93 | - extractedComments.each{|comment| | ||
94 | - puts "#{comment[:from]} " + _("said") + ": #{comment[:message]}" | ||
95 | - save_comment(hub, comment, author_id) | ||
96 | - } | ||
97 | - end | ||
98 | - | ||
99 | -# if read == 2 | ||
100 | -# extractedComments.push({:from=>"Evandro", :message=>"teste"}) | ||
101 | -# end | ||
102 | - | ||
103 | - newComments = extractedComments - initialComments | ||
104 | - newComments = newComments.uniq | ||
105 | - initialComments += newComments | ||
106 | - initialComments = initialComments.uniq | ||
107 | - #y newComments | ||
108 | - newComments.each{|comment| | ||
109 | - puts "#{comment[:from]} " + _("said") + ": #{comment[:message]}" | ||
110 | - save_comment(hub, comment, author_id) | ||
111 | - } | ||
112 | -# puts url | ||
113 | -# puts "Read: #{read} last post #{mostRecent} newComments: #{newComments.length} initialComments: #{initialComments.length} extractedComments: #{extractedComments.length}" | ||
114 | - read+=1 | ||
115 | - sleep(pooling_time) | ||
116 | - end | ||
117 | -end | ||
118 | \ No newline at end of file | 0 | \ No newline at end of file |
plugins/community_hub/lib/community_hub_plugin.rb
@@ -1,30 +0,0 @@ | @@ -1,30 +0,0 @@ | ||
1 | -class CommunityHubPlugin < Noosfero::Plugin | ||
2 | - | ||
3 | - def self.plugin_name | ||
4 | - 'Community Hub' | ||
5 | - end | ||
6 | - | ||
7 | - def self.plugin_description | ||
8 | - _("New kind of content for communities.") | ||
9 | - end | ||
10 | - | ||
11 | - def stylesheet? | ||
12 | - true | ||
13 | - end | ||
14 | - | ||
15 | - def content_types | ||
16 | - return [] if !context.kind_of?(CmsController) | ||
17 | - if context.respond_to?(:params) && context.params | ||
18 | - types = [] | ||
19 | - types << CommunityHubPlugin::Hub if context.profile.community? | ||
20 | - types | ||
21 | - else | ||
22 | - [CommunityHubPlugin::Hub] | ||
23 | - end | ||
24 | - end | ||
25 | - | ||
26 | - def content_remove_new(page) | ||
27 | - page.kind_of?(CommunityHubPlugin::Hub) | ||
28 | - end | ||
29 | - | ||
30 | -end |
plugins/community_hub/lib/community_hub_plugin/hub.rb
@@ -1,63 +0,0 @@ | @@ -1,63 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../../twitter/stream.rb' | ||
2 | -require File.dirname(__FILE__) + '/../../facebook_stream/lib_facebook_stream' | ||
3 | - | ||
4 | -class CommunityHubPlugin::Hub < Folder | ||
5 | - | ||
6 | - attr_accessible :last_changed_by_id, :integer | ||
7 | - | ||
8 | - attr_accessible :twitter_enabled, :type => :booelan, :default => false | ||
9 | - attr_accessible :twitter_hashtags, :type => :string, :default => "" | ||
10 | - attr_accessible :twitter_consumer_key, :type => :string, :default => "" | ||
11 | - attr_accessible :twitter_consumer_secret, :type => :string, :default => "" | ||
12 | - attr_accessible :twitter_access_token, :type => :string, :default => "" | ||
13 | - attr_accessible :twitter_access_token_secret, :type => :string, :default => "" | ||
14 | - attr_accessible :facebook_enabled, :type => :string, :default => "" | ||
15 | - attr_accessible :facebook_hashtag, :type => :string, :default => "" | ||
16 | - attr_accessible :facebook_access_token, :type => :string, :default => "" | ||
17 | - | ||
18 | - settings_items :twitter_enabled, :type => :boolean, :default => false | ||
19 | - settings_items :twitter_hashtags, :type => :string, :default => "" | ||
20 | - settings_items :twitter_consumer_key, :type => :string, :default => "" | ||
21 | - settings_items :twitter_consumer_secret, :type => :string, :default => "" | ||
22 | - settings_items :twitter_access_token, :type => :string, :default => "" | ||
23 | - settings_items :twitter_access_token_secret, :type => :string, :default => "" | ||
24 | - settings_items :facebook_enabled, :type => :boolean, :default => false | ||
25 | - settings_items :facebook_hashtag, :type => :string, :default => "" | ||
26 | - settings_items :facebook_pooling_time, :type => :integer, :default => 5 # Time in seconds | ||
27 | - settings_items :facebook_access_token, :type => :string, :default => '' | ||
28 | - settings_items :pinned_messages, :type => Array, :default => [] | ||
29 | - settings_items :pinned_mediations, :type => Array, :default => [] | ||
30 | - settings_items :mediators, :type => Array, :default => [] | ||
31 | - | ||
32 | - before_create do |hub| | ||
33 | - hub.mediators = [hub.author.id] | ||
34 | - end | ||
35 | - | ||
36 | - def notify_comments | ||
37 | - false | ||
38 | - end | ||
39 | - | ||
40 | - def self.icon_name(article = nil) | ||
41 | - 'community-hub' | ||
42 | - end | ||
43 | - | ||
44 | - def self.short_description | ||
45 | - _("Hub") | ||
46 | - end | ||
47 | - | ||
48 | - def self.description | ||
49 | - _('Defines a hub.') | ||
50 | - end | ||
51 | - | ||
52 | - def accept_comments? | ||
53 | - true | ||
54 | - end | ||
55 | - | ||
56 | - def view_page | ||
57 | - "content_viewer/hub" | ||
58 | - end | ||
59 | - | ||
60 | - def mediator?(user) | ||
61 | - self.allow_edit?(user) || self.mediators.include?(user.id) | ||
62 | - end | ||
63 | -end |
plugins/community_hub/lib/community_hub_plugin/hub_helper.rb
@@ -1,23 +0,0 @@ | @@ -1,23 +0,0 @@ | ||
1 | -module CommunityHubPlugin::HubHelper | ||
2 | - | ||
3 | - def mediator?(hub) | ||
4 | - logged_in? && (user && hub.allow_edit?(user) || hub.mediators.include?(user.id)) | ||
5 | - end | ||
6 | - | ||
7 | - def promoted?(hub, person) | ||
8 | - logged_in? && (hub.allow_edit?(person) || hub.mediators.include?(person.id)) | ||
9 | - end | ||
10 | - | ||
11 | - def pinned_message?(hub, message_id) | ||
12 | - hub.pinned_messages.include?(message_id) ? true : false | ||
13 | - end | ||
14 | - | ||
15 | - def pinned_mediation?(hub, mediation_id) | ||
16 | - hub.pinned_mediations.include?(mediation_id) ? true : false | ||
17 | - end | ||
18 | - | ||
19 | - def post_time(time) | ||
20 | - _('%{hour}:%{minutes}') % { :hour => time.hour, :minutes => time.strftime("%M") } rescue '' | ||
21 | - end | ||
22 | - | ||
23 | -end |
plugins/community_hub/lib/community_hub_plugin/listener.rb
@@ -1,48 +0,0 @@ | @@ -1,48 +0,0 @@ | ||
1 | -class CommunityHubPlugin::Listener | ||
2 | - | ||
3 | - class << self | ||
4 | - | ||
5 | - def twitter_service(hub) | ||
6 | - listen_twitter_stream(hub, nil) | ||
7 | - end | ||
8 | - | ||
9 | - def facebook_service(hub) | ||
10 | - facebook_comments(hub, nil, hub.facebook_hashtag, hub.facebook_pooling_time, hub.facebook_access_token) | ||
11 | - end | ||
12 | - | ||
13 | - def run | ||
14 | - hubs = {} | ||
15 | - loop do | ||
16 | - log "searching for hubs" | ||
17 | - CommunityHubPlugin::Hub.all.each do |hub| | ||
18 | - hub_conf = hubs[hub.id] | ||
19 | - if hub_conf.nil? || hub_conf[:hub].updated_at < hub.updated_at | ||
20 | - hub_conf[:threads].each {|t| t.terminate} if hub_conf | ||
21 | - log "hub #{hub.id} found!!!!!!" | ||
22 | - threads = [] | ||
23 | - threads << Thread.new { twitter_service(hub) } if hub.twitter_enabled | ||
24 | - threads << Thread.new { facebook_service(hub) } if hub.facebook_enabled | ||
25 | - hubs[hub.id] = {:threads => threads, :hub => hub} | ||
26 | - end | ||
27 | - end | ||
28 | - sleep(10) | ||
29 | - end | ||
30 | - end | ||
31 | - | ||
32 | - def initialize_logger | ||
33 | - logdir = File.join(Rails.root, 'log', CommunityHubPlugin::Listener.name.underscore) | ||
34 | - FileUtils.makedirs(logdir) if !File.exist?(logdir) | ||
35 | - logpath = File.join(logdir, "#{ENV['RAILS_ENV']}_#{Time.now.strftime('%F')}.log") | ||
36 | - @logger = Logger.new(logpath) | ||
37 | - end | ||
38 | - | ||
39 | - def log(message) | ||
40 | - #puts message | ||
41 | - initialize_logger unless @initiated | ||
42 | - @initiated ||= true | ||
43 | - @logger << "[#{Time.now.strftime('%F %T %z')}] #{message}\n" | ||
44 | - end | ||
45 | - | ||
46 | - end | ||
47 | - | ||
48 | -end |
plugins/community_hub/lib/community_hub_plugin/mediation.rb
@@ -1,23 +0,0 @@ | @@ -1,23 +0,0 @@ | ||
1 | -class CommunityHubPlugin::Mediation < Article | ||
2 | - | ||
3 | - before_save do |mediation| | ||
4 | - mediation.advertise = false | ||
5 | - mediation.notify_comments = false | ||
6 | - nil | ||
7 | - end | ||
8 | - | ||
9 | - settings_items :profile_picture, :type => :string, :default => "" | ||
10 | - | ||
11 | - def self.timestamp | ||
12 | - "hub-mediation-#{(Time.now.to_f * 1000).to_i}" | ||
13 | - end | ||
14 | - | ||
15 | - def self.description | ||
16 | - _('Hub mediation') | ||
17 | - end | ||
18 | - | ||
19 | - def self.short_description | ||
20 | - _('Hub mediation') | ||
21 | - end | ||
22 | - | ||
23 | -end |
plugins/community_hub/lib/ext/comment.rb
plugins/community_hub/po/community_hub.pot
@@ -1,176 +0,0 @@ | @@ -1,176 +0,0 @@ | ||
1 | -# SOME DESCRIPTIVE TITLE. | ||
2 | -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER | ||
3 | -# This file is distributed under the same license as the PACKAGE package. | ||
4 | -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. | ||
5 | -# | ||
6 | -#, fuzzy | ||
7 | -msgid "" | ||
8 | -msgstr "" | ||
9 | -"Project-Id-Version: 1.1~rc2-1809-gd4babc7\n" | ||
10 | -"POT-Creation-Date: 2015-04-13 19:39-0300\n" | ||
11 | -"PO-Revision-Date: 2015-04-13 19:39-0300\n" | ||
12 | -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||
13 | -"Language-Team: LANGUAGE <LL@li.org>\n" | ||
14 | -"MIME-Version: 1.0\n" | ||
15 | -"Content-Type: text/plain; charset=UTF-8\n" | ||
16 | -"Content-Transfer-Encoding: 8bit\n" | ||
17 | -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" | ||
18 | - | ||
19 | -#: plugins/community_hub/facebook_stream/lib_facebook_koala_stream.rb:36 plugins/community_hub/facebook_stream/lib_facebook_stream.rb:94 | ||
20 | -#: plugins/community_hub/facebook_stream/lib_facebook_stream.rb:109 | ||
21 | -msgid "said" | ||
22 | -msgstr "" | ||
23 | - | ||
24 | -#: plugins/community_hub/lib/community_hub_plugin/hub.rb:45 | ||
25 | -msgid "Hub" | ||
26 | -msgstr "" | ||
27 | - | ||
28 | -#: plugins/community_hub/lib/community_hub_plugin/hub.rb:49 | ||
29 | -msgid "Defines a hub." | ||
30 | -msgstr "" | ||
31 | - | ||
32 | -#: plugins/community_hub/lib/community_hub_plugin/hub_helper.rb:20 | ||
33 | -msgid "%{hour}:%{minutes}" | ||
34 | -msgstr "" | ||
35 | - | ||
36 | -#: plugins/community_hub/lib/community_hub_plugin/mediation.rb:16 plugins/community_hub/lib/community_hub_plugin/mediation.rb:20 | ||
37 | -msgid "Hub mediation" | ||
38 | -msgstr "" | ||
39 | - | ||
40 | -#: plugins/community_hub/lib/community_hub_plugin.rb:8 | ||
41 | -msgid "New kind of content for communities." | ||
42 | -msgstr "" | ||
43 | - | ||
44 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:3 | ||
45 | -msgid "HUB Settings:" | ||
46 | -msgstr "" | ||
47 | - | ||
48 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:8 | ||
49 | -msgid "Title" | ||
50 | -msgstr "" | ||
51 | - | ||
52 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:12 | ||
53 | -msgid "Description" | ||
54 | -msgstr "" | ||
55 | - | ||
56 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:16 | ||
57 | -msgid "Image:" | ||
58 | -msgstr "" | ||
59 | - | ||
60 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:22 | ||
61 | -msgid "Twitter Settings:" | ||
62 | -msgstr "" | ||
63 | - | ||
64 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:26 | ||
65 | -msgid "Turn on TWITTER" | ||
66 | -msgstr "" | ||
67 | - | ||
68 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:28 | ||
69 | -msgid "Twitter's Hashtags, comma separated (example: participa.br,participabr)" | ||
70 | -msgstr "" | ||
71 | - | ||
72 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:31 | ||
73 | -msgid "Twitter's consumer key" | ||
74 | -msgstr "" | ||
75 | - | ||
76 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:35 | ||
77 | -msgid "Twitter's consumer secret" | ||
78 | -msgstr "" | ||
79 | - | ||
80 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:39 | ||
81 | -msgid "Twitter's access token" | ||
82 | -msgstr "" | ||
83 | - | ||
84 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:43 | ||
85 | -msgid "Twitter's access token secret" | ||
86 | -msgstr "" | ||
87 | - | ||
88 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:47 | ||
89 | -msgid "Facebook Settings:" | ||
90 | -msgstr "" | ||
91 | - | ||
92 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:51 | ||
93 | -msgid "Turn on FACEBOOK" | ||
94 | -msgstr "" | ||
95 | - | ||
96 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:53 | ||
97 | -msgid "Facebook's hashtag (example: #participabr)" | ||
98 | -msgstr "" | ||
99 | - | ||
100 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:55 | ||
101 | -msgid "Facebook's access token" | ||
102 | -msgstr "" | ||
103 | - | ||
104 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:57 | ||
105 | -msgid "How to get a new access token?" | ||
106 | -msgstr "" | ||
107 | - | ||
108 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:14 plugins/community_hub/views/content_viewer/hub.html.erb:54 | ||
109 | -msgid "Live" | ||
110 | -msgstr "" | ||
111 | - | ||
112 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:18 plugins/community_hub/views/content_viewer/hub.html.erb:58 | ||
113 | -msgid "Mediation" | ||
114 | -msgstr "" | ||
115 | - | ||
116 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:25 | ||
117 | -msgid "Auto scrolling" | ||
118 | -msgstr "" | ||
119 | - | ||
120 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:38 | ||
121 | -msgid "Message" | ||
122 | -msgstr "" | ||
123 | - | ||
124 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:40 | ||
125 | -msgid "Type your message here" | ||
126 | -msgstr "" | ||
127 | - | ||
128 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:41 plugins/community_hub/views/content_viewer/hub.html.erb:79 | ||
129 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation_comment_form.html.erb:11 | ||
130 | -msgid "Send" | ||
131 | -msgstr "" | ||
132 | - | ||
133 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:93 | ||
134 | -msgid "Are you sure that you want to pin this message?" | ||
135 | -msgstr "" | ||
136 | - | ||
137 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:94 | ||
138 | -msgid "Are you sure that you want to promote this user?" | ||
139 | -msgstr "" | ||
140 | - | ||
141 | -#: plugins/community_hub/views/community_hub_plugin_public/_settings.html.erb:4 | ||
142 | -msgid "General settings" | ||
143 | -msgstr "" | ||
144 | - | ||
145 | -#: plugins/community_hub/views/community_hub_plugin_public/_embed.html.erb:4 | ||
146 | -msgid "Embed" | ||
147 | -msgstr "" | ||
148 | - | ||
149 | -#: plugins/community_hub/views/community_hub_plugin_public/_post.html.erb:23 | ||
150 | -msgid "Pin message" | ||
151 | -msgstr "" | ||
152 | - | ||
153 | -#: plugins/community_hub/views/community_hub_plugin_public/_post.html.erb:26 | ||
154 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb:40 | ||
155 | -msgid "Message pinned" | ||
156 | -msgstr "" | ||
157 | - | ||
158 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb:29 | ||
159 | -msgid "User not promoted" | ||
160 | -msgstr "" | ||
161 | - | ||
162 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb:32 | ||
163 | -msgid "User promoted" | ||
164 | -msgstr "" | ||
165 | - | ||
166 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb:54 | ||
167 | -msgid "Comments" | ||
168 | -msgstr "" | ||
169 | - | ||
170 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation_comment_form.html.erb:10 | ||
171 | -msgid "Type your comment here" | ||
172 | -msgstr "" | ||
173 | - | ||
174 | -#: plugins/community_hub/views/community_hub_plugin_public/_banner.html.erb:2 | ||
175 | -msgid "BANNER SPACE" | ||
176 | -msgstr "" |
plugins/community_hub/po/pt/community_hub.po
@@ -1,177 +0,0 @@ | @@ -1,177 +0,0 @@ | ||
1 | -msgid "" | ||
2 | -msgstr "" | ||
3 | -"Project-Id-Version: 0.45.0-6097-g490300c\n" | ||
4 | -"POT-Creation-Date: 2015-07-23 16:26-0300\n" | ||
5 | -"PO-Revision-Date: 2015-04-13 19:39-0300\n" | ||
6 | -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||
7 | -"Language-Team: LANGUAGE <LL@li.org>\n" | ||
8 | -"Language: \n" | ||
9 | -"MIME-Version: 1.0\n" | ||
10 | -"Content-Type: text/plain; charset=UTF-8\n" | ||
11 | -"Content-Transfer-Encoding: 8bit\n" | ||
12 | -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" | ||
13 | - | ||
14 | -#: plugins/community_hub/facebook_stream/lib_facebook_koala_stream.rb:36 | ||
15 | -#: plugins/community_hub/facebook_stream/lib_facebook_stream.rb:94 | ||
16 | -#: plugins/community_hub/facebook_stream/lib_facebook_stream.rb:109 | ||
17 | -msgid "said" | ||
18 | -msgstr "disse" | ||
19 | - | ||
20 | -#: plugins/community_hub/lib/community_hub_plugin/hub.rb:45 | ||
21 | -msgid "Hub" | ||
22 | -msgstr "Hub" | ||
23 | - | ||
24 | -#: plugins/community_hub/lib/community_hub_plugin/hub.rb:49 | ||
25 | -msgid "Defines a hub." | ||
26 | -msgstr "Define um hub." | ||
27 | - | ||
28 | -#: plugins/community_hub/lib/community_hub_plugin/hub_helper.rb:20 | ||
29 | -msgid "%{hour}:%{minutes}" | ||
30 | -msgstr "" | ||
31 | - | ||
32 | -#: plugins/community_hub/lib/community_hub_plugin/mediation.rb:16 | ||
33 | -#: plugins/community_hub/lib/community_hub_plugin/mediation.rb:20 | ||
34 | -msgid "Hub mediation" | ||
35 | -msgstr "Mediação do hub" | ||
36 | - | ||
37 | -#: plugins/community_hub/lib/community_hub_plugin.rb:8 | ||
38 | -msgid "New kind of content for communities." | ||
39 | -msgstr "Novo tipo de conteúdo para diálogo em comunidades." | ||
40 | - | ||
41 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:3 | ||
42 | -msgid "HUB Settings:" | ||
43 | -msgstr "Configuração do Hub:" | ||
44 | - | ||
45 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:8 | ||
46 | -msgid "Title" | ||
47 | -msgstr "Título" | ||
48 | - | ||
49 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:12 | ||
50 | -msgid "Description" | ||
51 | -msgstr "Descrição" | ||
52 | - | ||
53 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:16 | ||
54 | -msgid "Image:" | ||
55 | -msgstr "Imagem:" | ||
56 | - | ||
57 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:22 | ||
58 | -msgid "Twitter Settings:" | ||
59 | -msgstr "Configurações do Twitter:" | ||
60 | - | ||
61 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:26 | ||
62 | -msgid "Turn on TWITTER" | ||
63 | -msgstr "Ativar Twitter" | ||
64 | - | ||
65 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:28 | ||
66 | -msgid "Twitter's Hashtags, comma separated (example: participa.br,participabr)" | ||
67 | -msgstr "" | ||
68 | -"Hashtag do Twitter, separadas por vírgula (exemplo: participa.br,participabr)" | ||
69 | - | ||
70 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:31 | ||
71 | -msgid "Twitter's consumer key" | ||
72 | -msgstr "" | ||
73 | - | ||
74 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:35 | ||
75 | -msgid "Twitter's consumer secret" | ||
76 | -msgstr "" | ||
77 | - | ||
78 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:39 | ||
79 | -msgid "Twitter's access token" | ||
80 | -msgstr "" | ||
81 | - | ||
82 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:43 | ||
83 | -msgid "Twitter's access token secret" | ||
84 | -msgstr "" | ||
85 | - | ||
86 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:47 | ||
87 | -msgid "Facebook Settings:" | ||
88 | -msgstr "Configurações do Facebook:" | ||
89 | - | ||
90 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:51 | ||
91 | -msgid "Turn on FACEBOOK" | ||
92 | -msgstr "Ativar Facebook" | ||
93 | - | ||
94 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:53 | ||
95 | -msgid "Facebook's hashtag (example: #participabr)" | ||
96 | -msgstr "Hashtag do Facebook (exemplo: #participabr)" | ||
97 | - | ||
98 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:55 | ||
99 | -msgid "Facebook's access token" | ||
100 | -msgstr "" | ||
101 | - | ||
102 | -#: plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb:57 | ||
103 | -msgid "How to get a new access token?" | ||
104 | -msgstr "Como obter um novo token de acesso?" | ||
105 | - | ||
106 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:14 | ||
107 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:54 | ||
108 | -msgid "Live" | ||
109 | -msgstr "Ao Vivo" | ||
110 | - | ||
111 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:18 | ||
112 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:58 | ||
113 | -msgid "Mediation" | ||
114 | -msgstr "Mediação" | ||
115 | - | ||
116 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:25 | ||
117 | -msgid "Auto scrolling" | ||
118 | -msgstr "Rolagem automática" | ||
119 | - | ||
120 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:38 | ||
121 | -msgid "Message" | ||
122 | -msgstr "Mensagem" | ||
123 | - | ||
124 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:40 | ||
125 | -msgid "Type your message here" | ||
126 | -msgstr "Digite sua mensagem aqui" | ||
127 | - | ||
128 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:41 | ||
129 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:79 | ||
130 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation_comment_form.html.erb:11 | ||
131 | -msgid "Send" | ||
132 | -msgstr "Enviar" | ||
133 | - | ||
134 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:93 | ||
135 | -msgid "Are you sure that you want to pin this message?" | ||
136 | -msgstr "Tem certeza que deseja fixar esta mensagem?" | ||
137 | - | ||
138 | -#: plugins/community_hub/views/content_viewer/hub.html.erb:94 | ||
139 | -msgid "Are you sure that you want to promote this user?" | ||
140 | -msgstr "Tem certeza que deseja promover este usuário?" | ||
141 | - | ||
142 | -#: plugins/community_hub/views/community_hub_plugin_public/_settings.html.erb:4 | ||
143 | -msgid "General settings" | ||
144 | -msgstr "Configurações gerais" | ||
145 | - | ||
146 | -#: plugins/community_hub/views/community_hub_plugin_public/_embed.html.erb:4 | ||
147 | -msgid "Embed" | ||
148 | -msgstr "" | ||
149 | - | ||
150 | -#: plugins/community_hub/views/community_hub_plugin_public/_post.html.erb:23 | ||
151 | -msgid "Pin message" | ||
152 | -msgstr "Fixar mensagem" | ||
153 | - | ||
154 | -#: plugins/community_hub/views/community_hub_plugin_public/_post.html.erb:26 | ||
155 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb:40 | ||
156 | -msgid "Message pinned" | ||
157 | -msgstr "Mensagem fixada" | ||
158 | - | ||
159 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb:29 | ||
160 | -msgid "User not promoted" | ||
161 | -msgstr "Usuário não promovido" | ||
162 | - | ||
163 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb:32 | ||
164 | -msgid "User promoted" | ||
165 | -msgstr "Usuário promovido" | ||
166 | - | ||
167 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb:54 | ||
168 | -msgid "Comments" | ||
169 | -msgstr "Comentários" | ||
170 | - | ||
171 | -#: plugins/community_hub/views/community_hub_plugin_public/_mediation_comment_form.html.erb:10 | ||
172 | -msgid "Type your comment here" | ||
173 | -msgstr "Digite seu comentário aqui" | ||
174 | - | ||
175 | -#: plugins/community_hub/views/community_hub_plugin_public/_banner.html.erb:2 | ||
176 | -msgid "BANNER SPACE" | ||
177 | -msgstr "" |
plugins/community_hub/public/icons/community-hub.png
442 Bytes
plugins/community_hub/public/icons/hub-arrow-right.png
349 Bytes
plugins/community_hub/public/icons/hub-not-pinned-icon.png
772 Bytes
plugins/community_hub/public/icons/hub-not-promote-icon.png
674 Bytes
plugins/community_hub/public/icons/hub-pinned-icon.png
772 Bytes
plugins/community_hub/public/icons/hub-promote-icon.png
674 Bytes
plugins/community_hub/public/icons/hub-remove-icon.png
567 Bytes
plugins/community_hub/public/icons/hub-samarelo-a.png
424 Bytes
plugins/community_hub/public/icons/hub-samarelo-b.png
426 Bytes
plugins/community_hub/public/icons/hub-samarelo.gif
357 Bytes
plugins/community_hub/public/icons/hub-sverde-a.png
438 Bytes
plugins/community_hub/public/icons/hub-sverde-b.png
438 Bytes
plugins/community_hub/public/icons/hub-svermelho-a.png
373 Bytes
plugins/community_hub/public/icons/hub-svermelho-b.png
374 Bytes
plugins/community_hub/public/icons/hub-time-bg.gif
807 Bytes
plugins/community_hub/public/icons/logo_facebook_50x50.png
905 Bytes
plugins/community_hub/public/icons/logo_twitter_50x50.png
1.73 KB
plugins/community_hub/public/icons/logo_twitter_bird_blue_50x50.png
1.08 KB
plugins/community_hub/public/icons/logo_twitter_bird_white_50x50.png
1.02 KB
plugins/community_hub/public/javascripts/community_hub.js
@@ -1,366 +0,0 @@ | @@ -1,366 +0,0 @@ | ||
1 | -var latest_post_id = 0; | ||
2 | -var oldest_post_id = 0; | ||
3 | -live_scroll_position = 0; | ||
4 | -var mediations = []; | ||
5 | -var message_interval_id; | ||
6 | - | ||
7 | -function load_more(tab) { | ||
8 | - switch (tab) { | ||
9 | - case 'live': | ||
10 | - load_more_messages(); | ||
11 | - break; | ||
12 | - } | ||
13 | -} | ||
14 | - | ||
15 | - | ||
16 | -function load_more_messages() { | ||
17 | - var hub_id = jQuery(".hub").attr('id'); | ||
18 | - var oldest_id = jQuery("#live-posts li.post").last().attr("id"); | ||
19 | - | ||
20 | - jQuery.ajax({ | ||
21 | - url: '/plugin/community_hub/public/older_comments', | ||
22 | - type: 'get', | ||
23 | - data: { oldest_id: oldest_id, hub: hub_id }, | ||
24 | - success: function(data) { | ||
25 | - if (data.trim().length > 0) { | ||
26 | - jQuery("#live-posts").append(data); | ||
27 | - } | ||
28 | - }, | ||
29 | - error: function(ajax, stat, errorThrown) { | ||
30 | - } | ||
31 | - }); | ||
32 | -} | ||
33 | - | ||
34 | - | ||
35 | -function validate_textarea(txt) { | ||
36 | - return (txt.search(/[^\n\s]/)!=-1); | ||
37 | -} | ||
38 | - | ||
39 | - | ||
40 | -function toogle_mediation_comments(mediation) { | ||
41 | - jQuery("#mediation-comment-list-" + mediation ).toggle(); | ||
42 | - jQuery("#mediation-comment-form-" + mediation ).toggle(); | ||
43 | -} | ||
44 | - | ||
45 | - | ||
46 | -function new_mediation_comment(button, mediation) { | ||
47 | - | ||
48 | - if (!validate_textarea(jQuery("#mediation-comment-form-" + mediation + " textarea").val())) { | ||
49 | - return false; | ||
50 | - } | ||
51 | - | ||
52 | - for (var i = 0; i < mediations.length; i++) { | ||
53 | - mediation_id = mediations[i][0]; | ||
54 | - if (mediation_id == mediation) { | ||
55 | - interval_id = mediations[i][1]; | ||
56 | - clearInterval( interval_id ); | ||
57 | - break; | ||
58 | - } | ||
59 | - | ||
60 | - } | ||
61 | - | ||
62 | - mediations.splice(i, 1); | ||
63 | - | ||
64 | - var form = jQuery(button).parents("form"); | ||
65 | - | ||
66 | - jQuery("#mediation-comment-form-" + mediation + " .submit").attr("disabled", true); | ||
67 | - | ||
68 | - jQuery("body").addClass("hub-loading"); | ||
69 | - | ||
70 | - jQuery.post(form.attr("action"), form.serialize(), function(data) { | ||
71 | - jQuery("body").removeClass("hub-loading"); | ||
72 | - if (data.ok) { | ||
73 | - jQuery("#mediation-comment-form-" + mediation + " textarea").val(''); | ||
74 | - jQuery("#mediation-comment-form-" + mediation + " .submit").attr("disabled", false); | ||
75 | - update_mediation_comments(mediation, false); | ||
76 | - mediations.push( [ mediation, setInterval(function() { update_mediation_comments(mediation, false)}, 5000) ] ); | ||
77 | - } | ||
78 | - else { | ||
79 | - jQuery("#mediation-comment-form-" + mediation + " .submit").attr("disabled", false); | ||
80 | - mediations.push( [ mediation, setInterval(function() { update_mediation_comments(mediation, false)}, 5000) ] ); | ||
81 | - } | ||
82 | - }, 'json'); | ||
83 | - | ||
84 | -} | ||
85 | - | ||
86 | - | ||
87 | -function new_message(button) { | ||
88 | - | ||
89 | - if (!validate_textarea(jQuery(".hub .form-message #message_body").val())) { | ||
90 | - return false; | ||
91 | - } | ||
92 | - | ||
93 | - clearInterval( message_interval_id ); | ||
94 | - | ||
95 | - var form = jQuery(button).parents("form"); | ||
96 | - | ||
97 | - jQuery(".hub .form-message .submit").attr("disabled", true); | ||
98 | - | ||
99 | - jQuery("body").addClass("hub-loading"); | ||
100 | - | ||
101 | - jQuery.post(form.attr("action"), form.serialize(), function(data) { | ||
102 | - jQuery("body").removeClass("hub-loading"); | ||
103 | - if (data.ok) { | ||
104 | - jQuery(".hub .form-message #message_body").val(''); | ||
105 | - jQuery(".hub .form-message .submit").attr("disabled", false); | ||
106 | - update_live_stream(); | ||
107 | - message_interval_id = setInterval(function() { update_live_stream()}, 5000); | ||
108 | - } | ||
109 | - else { | ||
110 | - jQuery(".hub .form-message .submit").attr("disabled", false); | ||
111 | - message_interval_id = setInterval(function() { update_live_stream()}, 5000); | ||
112 | - } | ||
113 | - }, 'json'); | ||
114 | - | ||
115 | -} | ||
116 | - | ||
117 | - | ||
118 | -function new_mediation(button) { | ||
119 | - | ||
120 | - if (!validate_textarea(tinymce.get('article_body').getContent(''))) { | ||
121 | - return false; | ||
122 | - } | ||
123 | - | ||
124 | - var form = jQuery(button).parents("form"); | ||
125 | - | ||
126 | - jQuery(".hub .form-mediation .submit").attr("disabled", true); | ||
127 | - | ||
128 | - jQuery("body").addClass("hub-loading"); | ||
129 | - | ||
130 | - tinymce.triggerSave(); | ||
131 | - jQuery.post(form.attr("action"), form.serialize(), function(data) { | ||
132 | - jQuery("body").removeClass("hub-loading"); | ||
133 | - if (data.ok) { | ||
134 | - jQuery(".hub .form-mediation .submit").attr("disabled", false); | ||
135 | - tinymce.get('article_body').setContent(''); | ||
136 | - update_mediations(); | ||
137 | - } | ||
138 | - else { | ||
139 | - jQuery(".hub .form-mediation .submit").attr("disabled", false); | ||
140 | - } | ||
141 | - }, 'json'); | ||
142 | - | ||
143 | -} | ||
144 | - | ||
145 | - | ||
146 | -function promote_user(mediation, user_id) { | ||
147 | - | ||
148 | - if (confirm(DEFAULT_PROMOTE_QUESTION)) { | ||
149 | - | ||
150 | - var hub_id = jQuery(".hub").attr('id'); | ||
151 | - | ||
152 | - jQuery.ajax({ | ||
153 | - url: '/plugin/community_hub/public/promote_user', | ||
154 | - type: 'get', | ||
155 | - dataType: 'json', | ||
156 | - data: { user: user_id, hub: hub_id }, | ||
157 | - success: function(data) { | ||
158 | - jQuery(".promote a").filter("#" + mediation).replaceWith( '<img class="promoted" src="/plugins/community_hub/icons/hub-not-promote-icon.png" title="User promoted">' ); | ||
159 | - }, | ||
160 | - error: function(ajax, stat, errorThrown) { | ||
161 | - } | ||
162 | - }); | ||
163 | - | ||
164 | - } | ||
165 | - | ||
166 | -} | ||
167 | - | ||
168 | - | ||
169 | -function pin_message(post_id) { | ||
170 | - | ||
171 | - if (confirm(DEFAULT_PIN_QUESTION)) { | ||
172 | - | ||
173 | - var hub_id = jQuery(".hub").attr('id'); | ||
174 | - | ||
175 | - jQuery.ajax({ | ||
176 | - url: '/plugin/community_hub/public/pin_message', | ||
177 | - type: 'get', | ||
178 | - dataType: 'json', | ||
179 | - data: { message: post_id, hub: hub_id }, | ||
180 | - success: function(data) { | ||
181 | - jQuery(".pin a").filter("#" + post_id).replaceWith( '<img class="pinned" src="/plugins/community_hub/icons/hub-not-pinned-icon.png" title="Message pinned">' ); | ||
182 | - }, | ||
183 | - error: function(ajax, stat, errorThrown) { | ||
184 | - } | ||
185 | - }); | ||
186 | - | ||
187 | - } | ||
188 | - | ||
189 | -} | ||
190 | - | ||
191 | - | ||
192 | -function update_mediation_comments(mediation, recursive) { | ||
193 | - | ||
194 | - if (jQuery("#right-tab.show").size() != 0) { | ||
195 | - | ||
196 | - if (jQuery(".hub #mediation-comment-list-" + mediation).css('display') != "none") { | ||
197 | - | ||
198 | - var hub_id = jQuery(".hub").attr('id'); | ||
199 | - | ||
200 | - if (jQuery("#mediation-comment-list-" + mediation + " li").first().length == 0) { | ||
201 | - var latest_post_id = 0; | ||
202 | - } | ||
203 | - else { | ||
204 | - var latest_post_id = jQuery("#mediation-comment-list-" + mediation + " li.mediation-comment").last().attr('id'); | ||
205 | - } | ||
206 | - | ||
207 | - jQuery.ajax({ | ||
208 | - url: '/plugin/community_hub/public/newer_mediation_comment', | ||
209 | - type: 'get', | ||
210 | - data: { latest_post: latest_post_id, mediation: mediation }, | ||
211 | - success: function(data) { | ||
212 | - if (data.trim().length > 0) { | ||
213 | - jQuery("#mediation-comment-list-" + mediation + "").append(data); | ||
214 | - jQuery("#mediation-comment-total-" + mediation).html(jQuery("#mediation-comment-list-" + mediation + " li.mediation-comment").size()); | ||
215 | - } | ||
216 | - }, | ||
217 | - error: function(ajax, stat, errorThrown) { | ||
218 | - } | ||
219 | - }); | ||
220 | - | ||
221 | - } | ||
222 | - | ||
223 | - } | ||
224 | - | ||
225 | - if (recursive) { | ||
226 | - setTimeout(function() { | ||
227 | - update_mediation_comments(mediation, true); | ||
228 | - }, 5000); | ||
229 | - } | ||
230 | -} | ||
231 | - | ||
232 | - | ||
233 | -function update_mediations() { | ||
234 | - | ||
235 | - if (jQuery("#right-tab.show").size() != 0) { | ||
236 | - | ||
237 | - var hub_id = jQuery(".hub").attr('id'); | ||
238 | - | ||
239 | - if (jQuery("#mediation-posts li").first().length == 0) { | ||
240 | - var latest_post_id = 0; | ||
241 | - } | ||
242 | - else { | ||
243 | - var latest_post_id = jQuery("#mediation-posts li").first().attr('id'); | ||
244 | - } | ||
245 | - | ||
246 | - jQuery.ajax({ | ||
247 | - url: '/plugin/community_hub/public/newer_articles', | ||
248 | - type: 'get', | ||
249 | - data: { latest_post: latest_post_id, hub: hub_id }, | ||
250 | - success: function(data) { | ||
251 | - jQuery("body").removeClass("hub-loading"); | ||
252 | - if (data.trim().length > 0) { | ||
253 | - jQuery("#mediation-posts").prepend(data); | ||
254 | - } | ||
255 | - }, | ||
256 | - error: function(ajax, stat, errorThrown) { | ||
257 | - } | ||
258 | - }); | ||
259 | - | ||
260 | - } | ||
261 | - | ||
262 | - setTimeout(update_mediations, 10000); | ||
263 | -} | ||
264 | - | ||
265 | - | ||
266 | -function update_live_stream() { | ||
267 | - if (jQuery("#left-tab.show").size() != 0) { | ||
268 | - | ||
269 | - var hub_id = jQuery(".hub").attr('id'); | ||
270 | - | ||
271 | - if (jQuery("#live-posts li").first().length == 0) { | ||
272 | - var latest_post_id = 0; | ||
273 | - } | ||
274 | - else { | ||
275 | - var latest_post_id = jQuery("#live-posts li").first().attr('id'); | ||
276 | - } | ||
277 | - | ||
278 | - jQuery.ajax({ | ||
279 | - url: '/plugin/community_hub/public/newer_comments', | ||
280 | - type: 'get', | ||
281 | - data: { latest_post: latest_post_id, hub: hub_id }, | ||
282 | - success: function(data) { | ||
283 | - | ||
284 | - if (data.trim().length > 0) { | ||
285 | - jQuery("#live-posts").prepend(data); | ||
286 | - if (jQuery("#auto_scrolling").prop('checked', true)) { | ||
287 | - jQuery("#live-posts").scrollTop(0); | ||
288 | - } | ||
289 | - else { | ||
290 | - jQuery("#live-posts").scrollTop(live_scroll_position); | ||
291 | - } | ||
292 | - } | ||
293 | - | ||
294 | - if (first_hub_load) { | ||
295 | - jQuery("body").removeClass("hub-loading"); | ||
296 | - first_hub_load = false; | ||
297 | - } | ||
298 | - | ||
299 | - } | ||
300 | - }); | ||
301 | - | ||
302 | - } | ||
303 | -} | ||
304 | - | ||
305 | -function hub_left_tab_click() { | ||
306 | - jQuery("#right-tab").removeClass('show'); | ||
307 | - jQuery("#right-tab").addClass('hide'); | ||
308 | - jQuery("#left-tab").removeClass('hide'); | ||
309 | - jQuery("#left-tab").addClass('show'); | ||
310 | -} | ||
311 | - | ||
312 | -function hub_right_tab_click() { | ||
313 | - jQuery("#left-tab").removeClass('show'); | ||
314 | - jQuery("#left-tab").addClass('hide'); | ||
315 | - jQuery("#right-tab").removeClass('hide'); | ||
316 | - jQuery("#right-tab").addClass('show'); | ||
317 | - jQuery(".hub #right-tab.show h1.live").click(hub_left_tab_click); | ||
318 | - if (first_mediations_load) { | ||
319 | - jQuery("body").addClass("hub-loading"); | ||
320 | - first_mediations_load = false; | ||
321 | - update_mediations(); | ||
322 | - } | ||
323 | -} | ||
324 | - | ||
325 | -first_hub_load = true; | ||
326 | -first_mediations_load = true; | ||
327 | - | ||
328 | -jQuery(".hub .envelope").scroll(function() { | ||
329 | - jQuery("#auto_scrolling").prop('checked', false); | ||
330 | - | ||
331 | - | ||
332 | - // live stream tab... | ||
333 | - if (jQuery("#left-tab.show").size() != 0) { | ||
334 | - current_envelope = jQuery(".hub .live .envelope"); | ||
335 | - current_list_posts = jQuery(".hub ul#live-posts"); | ||
336 | - tab = 'live'; | ||
337 | - } | ||
338 | - else { | ||
339 | - // mediation tab... | ||
340 | - if (jQuery("#right-tab.show").size() != 0) { | ||
341 | - current_envelope = jQuery(".hub .mediation .envelope"); | ||
342 | - current_list_posts = jQuery(".hub ul#mediation-posts"); | ||
343 | - tab = 'mediation'; | ||
344 | - } | ||
345 | - } | ||
346 | - | ||
347 | - if (current_envelope.scrollTop() == (current_list_posts.height() - current_envelope.height() + 23)) { | ||
348 | - load_more(tab); | ||
349 | - } | ||
350 | - | ||
351 | -}); | ||
352 | - | ||
353 | - | ||
354 | -jQuery(document).ready(function() { | ||
355 | - | ||
356 | - jQuery("#live-posts").scroll(function() { | ||
357 | - live_scroll_position = jQuery("#live-posts").scrollTop(); | ||
358 | - }); | ||
359 | - | ||
360 | - jQuery(".hub #left-tab.show h1.mediation").click(hub_right_tab_click); | ||
361 | - | ||
362 | - jQuery("body").addClass("hub-loading"); | ||
363 | - | ||
364 | - message_interval_id = setInterval(function() { update_live_stream() }, 5000); | ||
365 | - | ||
366 | -}); |
plugins/community_hub/public/style.css
@@ -1,576 +0,0 @@ | @@ -1,576 +0,0 @@ | ||
1 | -#banner-embed-container { | ||
2 | - width: 49%; | ||
3 | - float: right; | ||
4 | -} | ||
5 | - | ||
6 | -#input-panel { | ||
7 | - width: 100%; | ||
8 | - padding-top: 10px; | ||
9 | - display: inline-block; | ||
10 | -} | ||
11 | - | ||
12 | -#hub-loading { | ||
13 | - float: right; | ||
14 | -} | ||
15 | - | ||
16 | -.hub-loading { | ||
17 | - cursor: wait; | ||
18 | -} | ||
19 | - | ||
20 | -.icon-newcommunity-hub, | ||
21 | -.icon-community-hub { | ||
22 | - background-image: url(/plugins/community_hub/icons/community-hub.png) | ||
23 | -} | ||
24 | - | ||
25 | -.hub ul {padding-left: 0px; margin-top: 0;} | ||
26 | - | ||
27 | -#content .hub h1{ | ||
28 | - margin-bottom: 0; | ||
29 | -} | ||
30 | - | ||
31 | -#content .hub .content-tab h1{ | ||
32 | - border-color: #D71410 #CCCCCC -moz-use-text-color; | ||
33 | - border-left: 1px solid #CCCCCC; | ||
34 | - border-right: 1px solid #CCCCCC; | ||
35 | - border-style: solid solid none; | ||
36 | - border-width: 1px 1px 0; | ||
37 | - border-top: 1px solid #D71410; | ||
38 | -} | ||
39 | - | ||
40 | -#content .hub .title { | ||
41 | - font-size: 33px; | ||
42 | - font-weight: normal; | ||
43 | - padding-right: 70px; | ||
44 | - color: #4b7421; | ||
45 | - font-variant: normal; | ||
46 | -} | ||
47 | - | ||
48 | -.hub .description { | ||
49 | - font-size: 14px; | ||
50 | -} | ||
51 | - | ||
52 | -.hub .post { | ||
53 | - border-top: 1px solid #ddd; | ||
54 | - background: url("images/hub-time-bg.gif") repeat-y left top #fff; | ||
55 | - padding: 5px 0; | ||
56 | -} | ||
57 | - | ||
58 | - | ||
59 | -.hub .time{ | ||
60 | - display: inline-block; | ||
61 | - font-size: 8px; | ||
62 | - padding-top: 10px; | ||
63 | - text-align: center; | ||
64 | - vertical-align: top; | ||
65 | - width: 35px; | ||
66 | -} | ||
67 | - | ||
68 | -.hub .avatar{ | ||
69 | - background-color: lightGray; | ||
70 | - display: inline-block; | ||
71 | - height: 43px; | ||
72 | - margin: 0 10px; | ||
73 | - vertical-align: top; | ||
74 | - width: 43px; | ||
75 | - text-align: center; | ||
76 | -} | ||
77 | - | ||
78 | -.hub .avatar img{ | ||
79 | - max-height: 43px; | ||
80 | - max-width: 43px; | ||
81 | -} | ||
82 | - | ||
83 | -.hub .message { | ||
84 | - display: inline-block; | ||
85 | - width: 65%; | ||
86 | - float: none; | ||
87 | - clear: both; | ||
88 | -} | ||
89 | - | ||
90 | -.hub .show .message { | ||
91 | - width: 80%; | ||
92 | -} | ||
93 | - | ||
94 | -.hub .message .author { | ||
95 | - font-weight: bold; | ||
96 | - display: inline-block; | ||
97 | - margin-right: 5px; | ||
98 | - padding-bottom: 0px; | ||
99 | -} | ||
100 | - | ||
101 | -.hub .mediation-bar { | ||
102 | - display: inline-block; | ||
103 | - margin: 10px 0 10px 104px; | ||
104 | - width: 83%; | ||
105 | -} | ||
106 | - | ||
107 | -.hub .mediation-bar ul {} | ||
108 | - | ||
109 | -.hub .mediation-bar ul li { | ||
110 | - display: inline-block; | ||
111 | - overflow: hidden; | ||
112 | - width: 16px; | ||
113 | -} | ||
114 | - | ||
115 | -.hub .mediation-bar ul li.likes-dislikes{ | ||
116 | - overflow: visible; | ||
117 | - text-indent: 0px; | ||
118 | - width: auto; | ||
119 | - vertical-align: top; | ||
120 | -} | ||
121 | - | ||
122 | -.hub .mediation-bar ul li.pin { | ||
123 | - height: 25px; | ||
124 | -} | ||
125 | - | ||
126 | -.hub .remove{} | ||
127 | - | ||
128 | -.hub .mediation-bar ul li a{ | ||
129 | - text-indent: -10000px; | ||
130 | -} | ||
131 | - | ||
132 | -.hub .not-promoted { | ||
133 | - opacity: 0.5; | ||
134 | - filter: alpha(opacity=50); | ||
135 | -} | ||
136 | - | ||
137 | -.hub .pin .not-pinned { | ||
138 | - opacity: 0.5; | ||
139 | - filter: alpha(opacity=50); | ||
140 | -} | ||
141 | - | ||
142 | -.hub .mediation-bar ul li.pin { | ||
143 | - float: right; | ||
144 | -} | ||
145 | - | ||
146 | -.hub ul.mediation-comment-list{ | ||
147 | - margin-left: 80px; | ||
148 | - display: inline-block; | ||
149 | - padding: 10px 0; | ||
150 | - background-color: #fff; | ||
151 | - margin-bottom: 10px; | ||
152 | -} | ||
153 | - | ||
154 | -.hub ul.mediation-comment-list li { | ||
155 | - margin-bottom: 2px; | ||
156 | -} | ||
157 | - | ||
158 | -.hub .mediation-comment-form { | ||
159 | - margin-left: 70px; | ||
160 | - margin-top: 10px; | ||
161 | -} | ||
162 | - | ||
163 | -.hub input.button.with-text.icon-add.submit{ | ||
164 | - display: block; | ||
165 | -} | ||
166 | - | ||
167 | -.hub .live { | ||
168 | - border: 0px solid lightGray; | ||
169 | - display: inline-block; | ||
170 | - float: left; | ||
171 | - width: 49%; | ||
172 | - margin-bottom: 2em; | ||
173 | -} | ||
174 | - | ||
175 | -.hub .envelope { | ||
176 | - height: 500px; | ||
177 | - overflow-x: hidden; | ||
178 | - overflow-y: scroll; | ||
179 | - margin-bottom: 14px; | ||
180 | - border: 1px solid lightgray; | ||
181 | - width: 100%; | ||
182 | - display: inline-block; | ||
183 | - margin-top: 0; | ||
184 | -} | ||
185 | - | ||
186 | -.hub ul#live-posts, .hub ul#mediation-posts{ | ||
187 | - border-bottom: 1px solid lightgray; | ||
188 | - padding-top: 10px; | ||
189 | -} | ||
190 | - | ||
191 | -/*modificação da scroll bar*/ | ||
192 | -.hub div.envelope::-webkit-scrollbar-button { | ||
193 | - height: 0; | ||
194 | - width: 0; | ||
195 | -} | ||
196 | - | ||
197 | -.hub div.envelope::-webkit-scrollbar-thumb { | ||
198 | - background-clip: padding-box; | ||
199 | - background-color: rgba(0,0,0,.3); | ||
200 | - border: 5px solid transparent; | ||
201 | - border-radius: 10px; | ||
202 | - min-height: 20px; | ||
203 | - min-width: 20px; | ||
204 | - height: 5px; | ||
205 | - width: 5px; | ||
206 | -} | ||
207 | - | ||
208 | -.hub div.envelope::-webkit-scrollbar { | ||
209 | - height: 15px; | ||
210 | - width: 15px; | ||
211 | -} | ||
212 | - | ||
213 | -/*fim de modificação da scroll bar*/ | ||
214 | - | ||
215 | -.hub #live-posts .post { | ||
216 | - background-color:#fff; | ||
217 | -} | ||
218 | - | ||
219 | -.hub ul#mediation-posts .post{ | ||
220 | - background-color:#eee; | ||
221 | - border-color: #fff; | ||
222 | - padding-bottom: 10px; | ||
223 | -} | ||
224 | - | ||
225 | -/*novos elementos: h1.live - h1.mediation*/ | ||
226 | -#content .main-block .hub .live h1.live, | ||
227 | -#content .main-block .hub .mediation h1.mediation { | ||
228 | - border: 1px solid lightGray; | ||
229 | - border-top: 1px solid #96110D; | ||
230 | - border-bottom: 0px solid #FFFFFF; | ||
231 | - top: 3px; | ||
232 | - float: left; | ||
233 | - font-weight: normal; | ||
234 | - margin-bottom: -1px; | ||
235 | - position: relative; | ||
236 | - width: 60%; | ||
237 | -background-color: white; | ||
238 | -z-index: 99; | ||
239 | -} | ||
240 | - | ||
241 | -#content .main-block .hub .live h1.live{ | ||
242 | - float: left; | ||
243 | - margin-right: 20px; | ||
244 | - margin-left: 0px; | ||
245 | - text-align: center; | ||
246 | -} | ||
247 | - | ||
248 | -#content .main-block .hub .mediation h1.mediation{ | ||
249 | - float: right; | ||
250 | - margin-right: 0px; | ||
251 | - margin-left: 20px; | ||
252 | - top: 0px; | ||
253 | - left: 2px; | ||
254 | - text-align: center; | ||
255 | -} | ||
256 | - | ||
257 | -#content .main-block .hub .live h1.mediation, | ||
258 | -#content .main-block .hub .mediation h1.live { | ||
259 | - display: inline-block; | ||
260 | - background-color: #EEEEEE; | ||
261 | - border-bottom: 1px solid #CCCCCC; | ||
262 | - border-top-color: #CCCCCC; | ||
263 | - color: gray; | ||
264 | - position: relative; | ||
265 | - width: 30%; | ||
266 | - text-align: center; | ||
267 | - margin-top: 8px; | ||
268 | - line-height: 27px; | ||
269 | - cursor: pointer; | ||
270 | - top: 1px; | ||
271 | -} | ||
272 | - | ||
273 | -#content .main-block .hub .live h1.mediation {} | ||
274 | - | ||
275 | -#content .main-block .hub .mediation h1.live { | ||
276 | - margin-left: 20px; | ||
277 | - top:1px; | ||
278 | -} | ||
279 | - | ||
280 | - | ||
281 | -/*fim de novos elementos: h1.live - h1.mediation*/ | ||
282 | - | ||
283 | - | ||
284 | -#content .hub .live .title { | ||
285 | - color: #D71410; | ||
286 | - display: inline-block; | ||
287 | - font-size: 14px; | ||
288 | - font-family: arial, sans-serif; | ||
289 | - padding-right: 0; | ||
290 | - width: 70%; | ||
291 | -} | ||
292 | -#content .hub .live .on-air { | ||
293 | - background-color: #96110D; | ||
294 | - border-radius: 10px 10px 10px 10px; | ||
295 | - color: white; | ||
296 | - display: inline-block; | ||
297 | - font-size: 16px; | ||
298 | - font-weight: bold; | ||
299 | - padding: 0 0.5em; | ||
300 | - text-align: center; | ||
301 | - vertical-align: top; | ||
302 | - width: 20%; | ||
303 | - | ||
304 | -} | ||
305 | -#content .hub .live .off-air { | ||
306 | - background-color: gray; | ||
307 | - border-radius: 10px 10px 10px 10px; | ||
308 | - color: black; | ||
309 | - display: inline-block; | ||
310 | - font-size: 16px; | ||
311 | - font-weight: bold; | ||
312 | - padding: 0 0.5em; | ||
313 | - text-align: center; | ||
314 | - text-transform: uppercase; | ||
315 | - vertical-align: top; | ||
316 | - width: 20%; | ||
317 | -} | ||
318 | - | ||
319 | -/****aba live fechada****/ | ||
320 | - | ||
321 | - | ||
322 | -.hub .live.hide { | ||
323 | - width: 10%; | ||
324 | -} | ||
325 | - | ||
326 | -.hub .live.hide ul#live-posts{ | ||
327 | - overflow-x: visible; | ||
328 | - overflow-y: visible; | ||
329 | - background-color: lightGray; | ||
330 | -} | ||
331 | - | ||
332 | -.hub .live.hide ul#live-posts li{ | ||
333 | - display: none; | ||
334 | -} | ||
335 | - | ||
336 | -#content .hub .live.hide h1 { | ||
337 | - text-align: center; | ||
338 | - cursor: pointer; | ||
339 | -} | ||
340 | - | ||
341 | -#content .hub .live.hide h1 .title { | ||
342 | - display: none; | ||
343 | -} | ||
344 | -#content .hub .live.hide .on-air, | ||
345 | -#content .hub .live.hide .off-air { | ||
346 | - width: auto; | ||
347 | -} | ||
348 | - | ||
349 | -/****fim aba live fechada****/ | ||
350 | - | ||
351 | -/****aba live aberta****/ | ||
352 | - | ||
353 | -.hub .live.show { | ||
354 | - width: 100%; | ||
355 | -} | ||
356 | - | ||
357 | -.hub .live.show ul#live-posts .li{ | ||
358 | - | ||
359 | -} | ||
360 | - | ||
361 | -#content .hub .live.show .on-air, | ||
362 | -#content .hub .live.show .off-air{ | ||
363 | -margin-right: 10px; | ||
364 | -} | ||
365 | - | ||
366 | -/****fim aba mlive aberta****/ | ||
367 | - | ||
368 | - | ||
369 | -/**************************************/ | ||
370 | - | ||
371 | - | ||
372 | -.hub .mediation { | ||
373 | - border: 0px solid lightGray; | ||
374 | - display: inline-block; | ||
375 | - clear: right; | ||
376 | - float: none; | ||
377 | - margin-left: 1%; | ||
378 | - width: 50%; | ||
379 | - margin-bottom: 2em; | ||
380 | -} | ||
381 | - | ||
382 | -#content .main-block .hub .mediation h1{ | ||
383 | - border: 1px solid lightGray | ||
384 | -} | ||
385 | - | ||
386 | -#content .hub .mediation .title { | ||
387 | - color: gray; | ||
388 | - display: inline-block; | ||
389 | - font-size: 14px; | ||
390 | - font-family: Arial, sans-serif; | ||
391 | - padding-right: 0; | ||
392 | -} | ||
393 | -.hub .mediation .expand { | ||
394 | - float: right; | ||
395 | - padding-right: 1em; | ||
396 | -} | ||
397 | - | ||
398 | -/****aba mediation fechada****/ | ||
399 | - | ||
400 | -.hub .mediation.hide { | ||
401 | - border: 0px solid lightGray; | ||
402 | - display: inline-block; | ||
403 | - clear: right; | ||
404 | - float: none; | ||
405 | - margin-left: 1%; | ||
406 | - width: 10%; | ||
407 | - margin-bottom: 0em; | ||
408 | -} | ||
409 | - | ||
410 | -#content .main-block .hub .mediation.hide h1{ | ||
411 | - cursor: pointer; | ||
412 | -} | ||
413 | - | ||
414 | -#content .hub .mediation.hide .title { | ||
415 | - display: inline-block; | ||
416 | - font-size: 14px; | ||
417 | - font-family: arial, sans-serif; | ||
418 | - padding-right: 0; | ||
419 | - width: 100%; | ||
420 | -} | ||
421 | -.hub .mediation.hide .expand { | ||
422 | - display: none; | ||
423 | -} | ||
424 | - | ||
425 | - | ||
426 | -.hub .mediation.hide ul#mediation-posts { | ||
427 | -height: 500px; | ||
428 | -overflow-x: visible; | ||
429 | -overflow-y: visible; | ||
430 | -border-width: 0 1px 1px; | ||
431 | -border-style: solid; | ||
432 | -border-color: lightGray; | ||
433 | -padding-top: 10px; | ||
434 | -background-color: lightgray; | ||
435 | -} | ||
436 | - | ||
437 | -.hub .mediation.hide ul#mediation-posts li{ | ||
438 | -display: none; | ||
439 | -} | ||
440 | - | ||
441 | -/****fim aba mediation fechada****/ | ||
442 | - | ||
443 | -/****aba mediation aberta****/ | ||
444 | - | ||
445 | -.hub .mediation.show { | ||
446 | - width: 100%; | ||
447 | -} | ||
448 | - | ||
449 | -#content .hub .mediation.show .title { | ||
450 | - display: inline-block; | ||
451 | - font-family: arial, sans-serif; | ||
452 | - padding-right: 0; | ||
453 | -} | ||
454 | - | ||
455 | -.hub .mediation.show ul#mediation-posts li{ | ||
456 | - | ||
457 | -} | ||
458 | - | ||
459 | -/****fim aba mediation aberta****/ | ||
460 | - | ||
461 | -.hub .mediation.hide, | ||
462 | -.hub .live.hide { | ||
463 | - display: none; | ||
464 | - visibility: hidden; | ||
465 | -} | ||
466 | - | ||
467 | -.hub .mediation.show, | ||
468 | -.hub .live.show { | ||
469 | - display: inline-block; | ||
470 | - visibility: visible; | ||
471 | -} | ||
472 | - | ||
473 | -.hub .form-mediation { | ||
474 | - width: 60%; | ||
475 | - display: inline-block; | ||
476 | - padding: 10px; | ||
477 | - border: 1px solid #c0c0c0; | ||
478 | - overflow-x: hidden; | ||
479 | -} | ||
480 | - | ||
481 | -.hub .form-message { | ||
482 | - height: 148px; | ||
483 | - padding: 10px; | ||
484 | - border: 1px solid #c0c0c0; | ||
485 | -} | ||
486 | - | ||
487 | - | ||
488 | -.hub div.settings { | ||
489 | - display: inline-block; | ||
490 | - margin-left: 1%; | ||
491 | - margin-top: 10px; | ||
492 | - vertical-align: top; | ||
493 | - width: 35%; | ||
494 | -} | ||
495 | - | ||
496 | -.hub ul.settings li { | ||
497 | - height: 50px; | ||
498 | - line-height: 50px; | ||
499 | - margin-bottom: 10px; | ||
500 | - padding: 0 10px; | ||
501 | - background: url("images/hub-arrow-right.png") no-repeat 90% top #ed8e01; | ||
502 | -} | ||
503 | - | ||
504 | -.hub ul.settings span.collapse { | ||
505 | - padding-right: 0.5em; | ||
506 | - float: right; | ||
507 | -} | ||
508 | - | ||
509 | -.hub div.banner { | ||
510 | - height: 70px; | ||
511 | - background-color: #6d6d6d; | ||
512 | - text-align: center; | ||
513 | - padding-top: 30px; | ||
514 | -} | ||
515 | - | ||
516 | -.hub div.banner span { | ||
517 | - color: white; | ||
518 | - font-family: Arial Black, arial, sans-serif; | ||
519 | - font-size: large; | ||
520 | - font-weight: normal; | ||
521 | - display: block; | ||
522 | -} | ||
523 | - | ||
524 | -.hub div.embed { | ||
525 | - margin-top: 10px; | ||
526 | - padding: 8px; | ||
527 | - border: 1px solid #c0c0c0; | ||
528 | -} | ||
529 | - | ||
530 | -.hub div.embed textarea.code { | ||
531 | - background-color: #f0f0f0; | ||
532 | - border: 1px solid #f0f0f0; | ||
533 | - height: 195px; | ||
534 | - resize: none; | ||
535 | -} | ||
536 | - | ||
537 | -#content .hub ul.settings li a{ | ||
538 | - color: white; | ||
539 | - font-family: Arial Black, arial, sans-serif; | ||
540 | - font-size: large; | ||
541 | - font-weight: normal; | ||
542 | -} | ||
543 | - | ||
544 | -#content .hub ul.settings li a:hover { | ||
545 | - text-decoration: none; | ||
546 | -} | ||
547 | - | ||
548 | -#content .hub form input.button.submit { | ||
549 | - font-family: Arial Black, arial, sans-serif; | ||
550 | - font-size: small; | ||
551 | - font-weight: normal; | ||
552 | - color: #333; | ||
553 | - margin-top: 10px; | ||
554 | -} | ||
555 | - | ||
556 | -textarea#message_body { | ||
557 | - width: auto; | ||
558 | - margin-left: 80px; | ||
559 | -} | ||
560 | - | ||
561 | -.post .comment-count { | ||
562 | - margin-left: 80px; | ||
563 | - padding: 5px 10px; | ||
564 | - background-color: white; | ||
565 | - display: inline-block; | ||
566 | - border-radius: 5px; | ||
567 | - font-weight: bold; | ||
568 | - display: block; | ||
569 | - margin-bottom: -5px; | ||
570 | - margin-top: 10px; | ||
571 | - max-width: 100px; | ||
572 | -} | ||
573 | - | ||
574 | -.hub ul.mediation-comment-list { | ||
575 | - width: 80%; | ||
576 | -} |
plugins/community_hub/script/hub_updater
@@ -1,17 +0,0 @@ | @@ -1,17 +0,0 @@ | ||
1 | -#!/usr/bin/env ruby | ||
2 | - | ||
3 | -require 'daemons' | ||
4 | -require 'optparse' | ||
5 | - | ||
6 | -NOOSFERO_ROOT = File.expand_path(File.dirname(__FILE__) + '/../../../') | ||
7 | - | ||
8 | -Daemons.run_proc('hub') do | ||
9 | - Dir.chdir NOOSFERO_ROOT | ||
10 | - require './config/environment' | ||
11 | - | ||
12 | - unless ENV['PROXY'].blank? | ||
13 | - ENV['NO_PROXY'] ||= 'localhost' | ||
14 | - require 'proxifier/env' | ||
15 | - end | ||
16 | - CommunityHubPlugin::Listener.run | ||
17 | -end |
plugins/community_hub/test/functional/community_hub_plugin_cms_controller_test.rb
@@ -1,73 +0,0 @@ | @@ -1,73 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
2 | - | ||
3 | -class CmsController; def rescue_action(e) raise e end; end | ||
4 | - | ||
5 | -class CmsControllerTest < ActionController::TestCase | ||
6 | - | ||
7 | - def setup | ||
8 | - @controller = CmsController.new | ||
9 | - @request = ActionController::TestRequest.new | ||
10 | - @response = ActionController::TestResponse.new | ||
11 | - | ||
12 | - user = create_user('testinguser') | ||
13 | - | ||
14 | - @environment = user.environment | ||
15 | - | ||
16 | - @community = Community.create!( | ||
17 | - :name => 'Sample community', | ||
18 | - :identifier => 'sample-community', | ||
19 | - :environment => @environment | ||
20 | - ) | ||
21 | - | ||
22 | - @community.add_admin(user.person) | ||
23 | - | ||
24 | - @community.save! | ||
25 | - | ||
26 | - @hub = CommunityHubPlugin::Hub.new( | ||
27 | - :abstract => 'abstract', | ||
28 | - :body => 'body', | ||
29 | - :name => 'test-hub', | ||
30 | - :profile => @community, | ||
31 | - :last_changed_by_id => user | ||
32 | - ) | ||
33 | - | ||
34 | - @hub.save! | ||
35 | - | ||
36 | - login_as(user.login) | ||
37 | - | ||
38 | - end | ||
39 | - | ||
40 | - should 'be able to edit hub settings' do | ||
41 | - get :edit, :id => @hub.id, :profile => @community.identifier | ||
42 | - assert_tag :tag => 'input', :attributes => { :id => 'article_name' } | ||
43 | - assert_tag :tag => 'textarea', :attributes => { :id => 'article_body' } | ||
44 | - assert_tag :tag => 'input', :attributes => { :id => 'article_twitter_enabled' } | ||
45 | - assert_tag :tag => 'input', :attributes => { :id => 'article_twitter_hashtags' } | ||
46 | - assert_tag :tag => 'input', :attributes => { :id => 'article_facebook_enabled' } | ||
47 | - assert_tag :tag => 'input', :attributes => { :id => 'article_facebook_hashtag' } | ||
48 | - assert_tag :tag => 'input', :attributes => { :id => 'article_facebook_access_token' } | ||
49 | - end | ||
50 | - | ||
51 | - should 'be able to save hub' do | ||
52 | - get :edit, :id => @hub.id, :profile => @community.identifier | ||
53 | - post :edit, :id => @hub.id, :profile => @community.identifier, :article => { | ||
54 | - :name => 'changed', | ||
55 | - :body => 'changed', | ||
56 | - :twitter_enabled => true, | ||
57 | - :twitter_hashtags => 'changed', | ||
58 | - :facebook_enabled => true, | ||
59 | - :facebook_hashtag => 'changed', | ||
60 | - :facebook_access_token => 'changed' | ||
61 | - } | ||
62 | - @hub.reload | ||
63 | - assert_equal 'changed', @hub.name | ||
64 | - assert_equal 'changed', @hub.body | ||
65 | - assert_equal true, @hub.twitter_enabled | ||
66 | - assert_equal 'changed', @hub.twitter_hashtags | ||
67 | - assert_equal true, @hub.facebook_enabled | ||
68 | - assert_equal 'changed', @hub.facebook_hashtag | ||
69 | - assert_equal 'changed', @hub.facebook_access_token | ||
70 | - end | ||
71 | - | ||
72 | -end | ||
73 | - |
plugins/community_hub/test/functional/community_hub_plugin_content_viewer_controller_test.rb
@@ -1,108 +0,0 @@ | @@ -1,108 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
2 | -require 'content_viewer_controller' | ||
3 | - | ||
4 | -class ContentViewerController; def rescue_action(e) raise e end; end | ||
5 | - | ||
6 | -class ContentViewerControllerTest < ActionController::TestCase | ||
7 | - | ||
8 | - all_fixtures | ||
9 | - | ||
10 | - def setup | ||
11 | - @controller = ContentViewerController.new | ||
12 | - @request = ActionController::TestRequest.new | ||
13 | - @response = ActionController::TestResponse.new | ||
14 | - | ||
15 | - @user = create_user('testinguser').person | ||
16 | - | ||
17 | - @environment = @user.environment | ||
18 | - | ||
19 | - @community = Community.create!( | ||
20 | - :name => 'Sample community', | ||
21 | - :identifier => 'sample-community', | ||
22 | - :environment => @environment | ||
23 | - ) | ||
24 | - | ||
25 | - @hub = CommunityHubPlugin::Hub.new( | ||
26 | - :abstract => 'abstract', | ||
27 | - :body => 'body', | ||
28 | - :name => 'test-hub', | ||
29 | - :profile => community, | ||
30 | - :last_changed_by_id => user.id | ||
31 | - ) | ||
32 | - | ||
33 | - @hub.save! | ||
34 | - | ||
35 | - end | ||
36 | - | ||
37 | - attr_reader :user, :environment, :community, :hub | ||
38 | - should 'display live tab' do | ||
39 | - get :view_page, @hub.url | ||
40 | - assert_tag :tag => 'div', :attributes => { :id => 'left-tab' } | ||
41 | - end | ||
42 | - | ||
43 | - should 'display mediation tab' do | ||
44 | - get :view_page, @hub.url | ||
45 | - assert_tag :tag => 'div', :attributes => { :id => 'right-tab' } | ||
46 | - end | ||
47 | - | ||
48 | - should 'display auto scroll checkbox for live stream content' do | ||
49 | - get :view_page, @hub.url | ||
50 | - assert_tag :tag => 'div', :attributes => { :id => 'left-tab' }, :descendant => { | ||
51 | - :tag => 'span', :descendant => { | ||
52 | - :tag => 'input', :attributes => { :id => 'auto_scrolling', :type => 'checkbox' } | ||
53 | - } | ||
54 | - } | ||
55 | - end | ||
56 | - | ||
57 | - should 'not display auto scroll setting for mediation content' do | ||
58 | - get :view_page, @hub.url | ||
59 | - assert_no_tag :tag => 'div', :attributes => { :id => 'right-tab' }, :descendant => { | ||
60 | - :tag => 'span', :descendant => { | ||
61 | - :tag => 'input', :attributes => { :id => 'auto_scrolling', :type => 'checkbox' } | ||
62 | - } | ||
63 | - } | ||
64 | - end | ||
65 | - | ||
66 | - should 'not display message form if user is not logged' do | ||
67 | - get :view_page, @hub.url | ||
68 | - assert_no_tag :tag => 'div', :attributes => { :class => 'form-message' } | ||
69 | - end | ||
70 | - | ||
71 | - should 'not display mediation form if user is not loged' do | ||
72 | - get :view_page, @hub.url | ||
73 | - assert_no_tag :tag => 'div', :attributes => { :class => 'form-mediation' } | ||
74 | - end | ||
75 | - | ||
76 | - should 'display message form if user is logged' do | ||
77 | - user = create_user('visitor') | ||
78 | - login_as(user.login) | ||
79 | - get :view_page, @hub.url | ||
80 | - assert_tag :tag => 'div', :attributes => { :class => 'form-message' } | ||
81 | - end | ||
82 | - | ||
83 | - should 'display mediation form if user is logged and is hub''s mediator' do | ||
84 | - login_as(user.user.login) | ||
85 | - get :view_page, @hub.url | ||
86 | - assert_tag :tag => 'div', :attributes => { :class => 'form-mediation' } | ||
87 | - end | ||
88 | - | ||
89 | - should 'not display mediation form if user is logged but is not hub''s mediator' do | ||
90 | - visitor = create_user('visitor') | ||
91 | - login_as(visitor.login) | ||
92 | - assert_no_tag :tag => 'div', :attributes => { :class => 'form-mediation' } | ||
93 | - end | ||
94 | - | ||
95 | - should 'display link to hub''s settings if user is mediator' do | ||
96 | - login_as(user.user.login) | ||
97 | - get :view_page, @hub.url | ||
98 | - assert_tag :tag => 'div', :attributes => { :class => 'settings' } | ||
99 | - end | ||
100 | - | ||
101 | - should 'not display link to hub''s settings if user is not mediator' do | ||
102 | - visitor = create_user('visitor') | ||
103 | - login_as(visitor.login) | ||
104 | - get :view_page, @hub.url | ||
105 | - assert_no_tag :tag => 'div', :attributes => { :class => 'settings' } | ||
106 | - end | ||
107 | - | ||
108 | -end |
plugins/community_hub/test/functional/community_hub_plugin_public_controller_test.rb
@@ -1,186 +0,0 @@ | @@ -1,186 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
2 | -require File.dirname(__FILE__) + '/../../controllers/public/community_hub_plugin_public_controller' | ||
3 | - | ||
4 | -class CommunityHubPluginPublicController; def rescue_action(e) raise e end; end | ||
5 | - | ||
6 | -class CommunityHubPluginPublicControllerTest < ActionController::TestCase | ||
7 | - | ||
8 | - all_fixtures | ||
9 | - | ||
10 | - def setup | ||
11 | - @controller = CommunityHubPluginPublicController.new | ||
12 | - @request = ActionController::TestRequest.new | ||
13 | - @response = ActionController::TestResponse.new | ||
14 | - | ||
15 | - @user = create_user('testinguser').person | ||
16 | - | ||
17 | - @environment = @user.environment | ||
18 | - | ||
19 | - @community = Community.create!( | ||
20 | - :name => 'Sample community', | ||
21 | - :identifier => 'sample-community', | ||
22 | - :environment => @environment | ||
23 | - ) | ||
24 | - | ||
25 | - @community.save! | ||
26 | - | ||
27 | - @hub = CommunityHubPlugin::Hub.new( | ||
28 | - :abstract => 'abstract', | ||
29 | - :body => 'body', | ||
30 | - :name => 'test-hub', | ||
31 | - :profile => community, | ||
32 | - :last_changed_by_id => user.id | ||
33 | - ) | ||
34 | - | ||
35 | - @hub.save! | ||
36 | - | ||
37 | - end | ||
38 | - | ||
39 | - attr_reader :user, :environment, :community, :hub | ||
40 | - | ||
41 | - should 'display pin message flag if user is logged and mediator' do | ||
42 | - message = create_message( hub, user ) | ||
43 | - login_as(user.user.login) | ||
44 | - xhr :get, :newer_comments, { :latest_post => 0, :hub => hub.id } | ||
45 | - assert_tag :tag => 'li', :attributes => { :class => 'pin' } | ||
46 | - end | ||
47 | - | ||
48 | - should 'not display pin message flag if user is not mediator' do | ||
49 | - message = create_message( hub, user ) | ||
50 | - visitor = create_user('visitor') | ||
51 | - login_as(visitor.login) | ||
52 | - xhr :get, :newer_comments, { :latest_post => 0, :hub => hub.id } | ||
53 | - assert_no_tag :tag => 'li', :attributes => { :class => 'pin' } | ||
54 | - end | ||
55 | - | ||
56 | - should 'pin message flag is link if message has not been pinned' do | ||
57 | - message = create_message( hub, user ) | ||
58 | - login_as(user.user.login) | ||
59 | - xhr :get, :newer_comments, { :latest_post => 0, :hub => hub.id } | ||
60 | - assert_tag :tag => 'li', :attributes => { :class => 'pin' }, :descendant => { | ||
61 | - :tag => 'a', :descendant => { | ||
62 | - :tag => 'img', :attributes => { :class => 'not-pinned' } | ||
63 | - } | ||
64 | - } | ||
65 | - end | ||
66 | - | ||
67 | - should 'ping message flag is not link if message has beem pinned' do | ||
68 | - message = create_message( hub, user ) | ||
69 | - hub.pinned_messages += [message.id] | ||
70 | - hub.save | ||
71 | - login_as(user.user.login) | ||
72 | - xhr :get, :newer_comments, { :latest_post => 0, :hub => hub.id } | ||
73 | - assert_tag :tag => 'li', :attributes => { :class => 'pin' }, :descendant => { | ||
74 | - :tag => 'img', :attributes => { :class => 'pinned' } | ||
75 | - } | ||
76 | - end | ||
77 | - | ||
78 | - should 'display promote user flag if user is logged and mediator' do | ||
79 | - mediation = create_mediation(hub, user, community) | ||
80 | - login_as(user.user.login) | ||
81 | - xhr :get, :newer_articles, { :latest_post => 0, :hub => hub.id } | ||
82 | - assert_tag :tag => 'li', :attributes => { :class => 'promote' } | ||
83 | - end | ||
84 | - | ||
85 | - should 'not display promote user flag if user is not mediator' do | ||
86 | - mediation = create_mediation(hub, user, community) | ||
87 | - visitor = create_user('visitor') | ||
88 | - login_as(visitor.login) | ||
89 | - xhr :get, :newer_articles, { :latest_post => 0, :hub => hub.id } | ||
90 | - assert_no_tag :tag => 'li', :attributes => { :class => 'promote' } | ||
91 | - end | ||
92 | - | ||
93 | - should 'promote user flag is link if user has not been promoted' do | ||
94 | - visitor = create_user('visitor').person | ||
95 | - mediation = create_mediation(hub, visitor, community) | ||
96 | - login_as(user.user.login) | ||
97 | - xhr :get, :newer_articles, { :latest_post => 0, :hub => hub.id } | ||
98 | - assert_tag :tag => 'li', :attributes => { :class => 'promote' }, :descendant => { | ||
99 | - :tag => 'a', :descendant => { | ||
100 | - :tag => 'img', :attributes => { :class => 'not-promoted' } | ||
101 | - } | ||
102 | - } | ||
103 | - end | ||
104 | - | ||
105 | - should 'promote user flag is not link if user has been promoted' do | ||
106 | - mediation = create_mediation(hub, user, community) | ||
107 | - login_as(user.user.login) | ||
108 | - xhr :get, :newer_articles, { :latest_post => 0, :hub => hub.id } | ||
109 | - assert_tag :tag => 'li', :attributes => { :class => 'promote' }, :descendant => { | ||
110 | - :tag => 'img', :attributes => { :class => 'promoted' } | ||
111 | - } | ||
112 | - end | ||
113 | - | ||
114 | - should 'promote user flag is not link if user is hub''s owner' do | ||
115 | - mediation = create_mediation(hub, user, community) | ||
116 | - login_as(user.user.login) | ||
117 | - xhr :get, :newer_articles, { :latest_post => 0, :hub => hub.id } | ||
118 | - assert_tag :tag => 'li', :attributes => { :class => 'promote' }, :descendant => { | ||
119 | - :tag => 'img', :attributes => { :class => 'promoted' } | ||
120 | - } | ||
121 | - end | ||
122 | - | ||
123 | - should 'should create new message' do | ||
124 | - login_as(user.user.login) | ||
125 | - xhr :post, :new_message, { :article_id => hub.id, :message => {"body"=>"testmessage"} } | ||
126 | - response = JSON.parse(@response.body) | ||
127 | - assert_equal true, response['ok'] | ||
128 | - end | ||
129 | - | ||
130 | - should 'should create new mediation' do | ||
131 | - login_as(user.user.login) | ||
132 | - xhr :post, :new_mediation, { :profile_id => community.id, :article => { "parent_id" => hub.id , "body" => "<p>testmediation</p>" } } | ||
133 | - response = JSON.parse(@response.body) | ||
134 | - assert_equal true, response['ok'] | ||
135 | - end | ||
136 | - | ||
137 | - should 'should create new mediation comment' do | ||
138 | - login_as(user.user.login) | ||
139 | - mediation = create_mediation(hub, user, community) | ||
140 | - xhr :post, :new_message, { "article_id" => mediation.id, "message" => {"body"=>"testmediationcomment"} } | ||
141 | - response = JSON.parse(@response.body) | ||
142 | - assert_equal true, response['ok'] | ||
143 | - end | ||
144 | - | ||
145 | - should 'should get newer messages' do | ||
146 | - message1 = create_message( hub, user ) | ||
147 | - message2 = create_message( hub, user ) | ||
148 | - message3 = create_message( hub, user ) | ||
149 | - xhr :get, :newer_comments, { :latest_post => message2.id, :hub => hub.id } | ||
150 | - assert_tag :tag => 'li', :attributes => { :id => message3.id } | ||
151 | - end | ||
152 | - | ||
153 | - should 'should get oldest messages' do | ||
154 | - message1 = create_message( hub, user ) | ||
155 | - message2 = create_message( hub, user ) | ||
156 | - message3 = create_message( hub, user ) | ||
157 | - xhr :get, :older_comments, { :oldest_id => message2.id, :hub => hub.id } | ||
158 | - assert_tag :tag => 'li', :attributes => { :id => message1.id } | ||
159 | - end | ||
160 | - | ||
161 | - should 'should get newer mediations' do | ||
162 | - mediation1 = create_mediation(hub, user, community) | ||
163 | - mediation2 = create_mediation(hub, user, community) | ||
164 | - mediation3 = create_mediation(hub, user, community) | ||
165 | - xhr :get, :newer_articles, { :latest_post => mediation2.id, :hub => hub.id } | ||
166 | - assert_tag :tag => 'li', :attributes => { :id => mediation3.id } | ||
167 | - end | ||
168 | - | ||
169 | - should 'should promote user' do | ||
170 | - login_as(user.user.login) | ||
171 | - visitor = create_user('visitor').person | ||
172 | - xhr :post, :promote_user, { :hub => hub.id, :user => visitor.id } | ||
173 | - response = JSON.parse(@response.body) | ||
174 | - assert_equal true, response['ok'] | ||
175 | - end | ||
176 | - | ||
177 | - should 'should pin message' do | ||
178 | - login_as(user.user.login) | ||
179 | - message = create_message( hub, user ) | ||
180 | - xhr :post, :pin_message, { :hub => hub.id, :message => message.id } | ||
181 | - response = JSON.parse(@response.body) | ||
182 | - assert_equal true, response['ok'] | ||
183 | - end | ||
184 | - | ||
185 | -end | ||
186 | - |
plugins/community_hub/test/test_helper.rb
@@ -1,38 +0,0 @@ | @@ -1,38 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../../../test/test_helper' | ||
2 | - | ||
3 | -def create_hub(name, community, user) | ||
4 | - hub = CommunityHubPlugin::Hub.new(:abstract => 'abstract', :body => 'body', :name => name, :profile => community, :last_changed_by_id => user.id ) | ||
5 | - hub.save! | ||
6 | - hub | ||
7 | -end | ||
8 | - | ||
9 | -def create_mediation(hub, community) | ||
10 | - mediation = CommunityHubPlugin::Mediation.new(:profile => community) | ||
11 | - mediation.name = CommunityHubPlugin::Mediation.timestamp | ||
12 | - mediation.save! | ||
13 | - mediation | ||
14 | -end | ||
15 | - | ||
16 | -def create_message(hub,user) | ||
17 | - message = Comment.new | ||
18 | - message.author = user | ||
19 | - message.title = "hub-message-#{(Time.now.to_f * 1000).to_i}" | ||
20 | - message.body = 'body' | ||
21 | - message.article = hub | ||
22 | - message.save! | ||
23 | - message | ||
24 | -end | ||
25 | - | ||
26 | -def create_mediation(hub, user, community) | ||
27 | - | ||
28 | - #raise community.inspect | ||
29 | - mediation = CommunityHubPlugin::Mediation.new | ||
30 | - mediation.name = CommunityHubPlugin::Mediation.timestamp | ||
31 | - mediation.profile = community | ||
32 | - mediation.last_changed_by = user | ||
33 | - mediation.created_by_id = user.id | ||
34 | - mediation.source = 'local' | ||
35 | - mediation.parent_id = hub.id | ||
36 | - mediation.save! | ||
37 | - mediation | ||
38 | -end |
plugins/community_hub/test/unit/community_hub_plugin/hub_helper_test.rb
@@ -1,18 +0,0 @@ | @@ -1,18 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../../test_helper' | ||
2 | - | ||
3 | -class HubHelperTest < ActiveSupport::TestCase | ||
4 | - | ||
5 | - include CommunityHubPlugin::HubHelper | ||
6 | - include NoosferoTestHelper | ||
7 | - | ||
8 | - should 'return time formated to hh:mm' do | ||
9 | - t = Time.utc(2014,"jan",1,17,40,0) | ||
10 | - assert_equal post_time(t), "17:40" | ||
11 | - end | ||
12 | - | ||
13 | - should 'return empty string if param is not time' do | ||
14 | - i = 1 | ||
15 | - assert_equal post_time(i), '' | ||
16 | - end | ||
17 | - | ||
18 | -end |
plugins/community_hub/test/unit/community_hub_plugin/hub_test.rb
@@ -1,128 +0,0 @@ | @@ -1,128 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../../test_helper' | ||
2 | - | ||
3 | -class HubTest < ActiveSupport::TestCase | ||
4 | - | ||
5 | - def setup | ||
6 | - @env = fast_create(Environment) | ||
7 | - @user = create_user('testuser', :environment => @env).person | ||
8 | - @comm = fast_create(Community, :environment_id => @env.id) | ||
9 | - @hub = create_hub('hub', @comm, @user) | ||
10 | - end | ||
11 | - | ||
12 | - should 'has setting twitter_enable' do | ||
13 | - assert_respond_to @hub, :twitter_enabled | ||
14 | - end | ||
15 | - | ||
16 | - should 'default value of setting twitter_enabled is false' do | ||
17 | - assert_equal @hub.twitter_enabled, false | ||
18 | - end | ||
19 | - | ||
20 | - should 'has setting twitter_hashtags' do | ||
21 | - assert_respond_to @hub, :twitter_hashtags | ||
22 | - end | ||
23 | - | ||
24 | - should 'default value of setting twitter_hashtags is blank' do | ||
25 | - assert_equal @hub.twitter_hashtags, "" | ||
26 | - end | ||
27 | - | ||
28 | - should 'has setting twitter_consumer_key' do | ||
29 | - assert_respond_to @hub, :twitter_consumer_key | ||
30 | - end | ||
31 | - | ||
32 | - should 'default value of setting twitter_consumer is blank' do | ||
33 | - assert_equal @hub.twitter_consumer_key, "" | ||
34 | - end | ||
35 | - | ||
36 | - should 'has setting twitter_consumer_secret' do | ||
37 | - assert_respond_to @hub, :twitter_consumer_secret | ||
38 | - end | ||
39 | - | ||
40 | - should 'default value of setting twitter_consumer_secret is blank' do | ||
41 | - assert_equal @hub.twitter_consumer_secret, "" | ||
42 | - end | ||
43 | - | ||
44 | - should 'has setting twitter_access_token' do | ||
45 | - assert_respond_to @hub, :twitter_access_token | ||
46 | - end | ||
47 | - | ||
48 | - should 'default value of setting twitter_access_token is blank' do | ||
49 | - assert_equal @hub.twitter_access_token, "" | ||
50 | - end | ||
51 | - | ||
52 | - should 'has setting twitter_access_token_secret' do | ||
53 | - assert_respond_to @hub, :twitter_access_token_secret | ||
54 | - end | ||
55 | - | ||
56 | - should 'default value of setting twitter_access_token_secret' do | ||
57 | - assert_equal @hub.twitter_access_token_secret, "" | ||
58 | - end | ||
59 | - | ||
60 | - should 'has setting facebook_enabled' do | ||
61 | - assert_respond_to @hub, :facebook_enabled | ||
62 | - end | ||
63 | - | ||
64 | - should 'default value of setting facebook_enabled is false' do | ||
65 | - assert_equal @hub.facebook_enabled, false | ||
66 | - end | ||
67 | - | ||
68 | - should 'has setting facebook_pooling_time' do | ||
69 | - assert_respond_to @hub, :facebook_pooling_time | ||
70 | - end | ||
71 | - | ||
72 | - should 'default value of setting facebook_pooling_time id five (5)' do | ||
73 | - assert_equal @hub.facebook_pooling_time, 5 | ||
74 | - end | ||
75 | - | ||
76 | - should 'has setting facebook_access_token' do | ||
77 | - assert_respond_to @hub, :facebook_access_token | ||
78 | - end | ||
79 | - | ||
80 | - should 'default value of setting facebook_access_token is blank' do | ||
81 | - assert_equal @hub.facebook_access_token, "" | ||
82 | - end | ||
83 | - | ||
84 | - should 'has pinned_messages' do | ||
85 | - assert_respond_to @hub, :pinned_messages | ||
86 | - end | ||
87 | - | ||
88 | - should 'default value of pinned_messags' do | ||
89 | - assert_equal @hub.pinned_messages, [] | ||
90 | - end | ||
91 | - | ||
92 | - should 'has pinned_mediations' do | ||
93 | - assert_respond_to @hub, :pinned_mediations | ||
94 | - end | ||
95 | - | ||
96 | - should 'default value of pinned_mediations' do | ||
97 | - assert_equal @hub.pinned_mediations, [] | ||
98 | - end | ||
99 | - | ||
100 | - should 'has mediators' do | ||
101 | - assert_respond_to @hub, :mediators | ||
102 | - end | ||
103 | - | ||
104 | - should 'hub creator is mediator by default' do | ||
105 | - assert @hub.mediators.include?(@user.id) | ||
106 | - end | ||
107 | - | ||
108 | - should 'describe yourself' do | ||
109 | - assert CommunityHubPlugin::Hub.description | ||
110 | - end | ||
111 | - | ||
112 | - should 'has a short descriptionf' do | ||
113 | - assert CommunityHubPlugin::Hub.short_description | ||
114 | - end | ||
115 | - | ||
116 | - should 'accept comments by default' do | ||
117 | - assert @hub.accept_comments? | ||
118 | - end | ||
119 | - | ||
120 | - should 'do not notify comments by default' do | ||
121 | - assert !@hub.notify_comments | ||
122 | - end | ||
123 | - | ||
124 | - should 'has a view page' do | ||
125 | - assert @hub.view_page | ||
126 | - end | ||
127 | - | ||
128 | -end |
plugins/community_hub/test/unit/community_hub_plugin/listener_test.rb
@@ -1,31 +0,0 @@ | @@ -1,31 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../../test_helper' | ||
2 | - | ||
3 | -class ListenerTest < ActiveSupport::TestCase | ||
4 | - | ||
5 | - should 'initialize logger' do | ||
6 | - logger = CommunityHubPlugin::Listener.initialize_logger | ||
7 | - logfile = logger.instance_variable_get(:@logdev).instance_variable_get(:@filename) | ||
8 | - assert_instance_of(Logger, logger) | ||
9 | - assert File.exists?(logfile) | ||
10 | - end | ||
11 | - | ||
12 | - should 'log message' do | ||
13 | - logdir = File.join(Rails.root, 'log', CommunityHubPlugin::Listener.name.underscore) | ||
14 | - | ||
15 | - if File.exists?(logdir) | ||
16 | - Dir.foreach(logdir) { |f| | ||
17 | - fn = File.join(logdir, f); | ||
18 | - File.delete(fn) if f != '.' && f != '..' | ||
19 | - } | ||
20 | - end | ||
21 | - | ||
22 | - logger = CommunityHubPlugin::Listener.initialize_logger | ||
23 | - CommunityHubPlugin::Listener.log('testmessage') | ||
24 | - | ||
25 | - logfile = logger.instance_variable_get(:@logdev).instance_variable_get(:@filename) | ||
26 | - text = File.open(logfile).read | ||
27 | - | ||
28 | - assert_match /testmessage/, text | ||
29 | - end | ||
30 | - | ||
31 | -end |
plugins/community_hub/test/unit/community_hub_plugin/mediation_test.rb
@@ -1,33 +0,0 @@ | @@ -1,33 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../../test_helper' | ||
2 | - | ||
3 | -class MediationTest < ActiveSupport::TestCase | ||
4 | - | ||
5 | - def setup | ||
6 | - @env = fast_create(Environment) | ||
7 | - @user = create_user('testuser', :environment => @env).person | ||
8 | - @comm = fast_create(Community, :environment_id => @env.id) | ||
9 | - @hub = create_hub('hub', @comm, @user) | ||
10 | - @mediation = create_mediation(@hub, @user, @comm) | ||
11 | - end | ||
12 | - | ||
13 | - should 'has setting profile_picture' do | ||
14 | - assert_respond_to @mediation, :profile_picture | ||
15 | - end | ||
16 | - | ||
17 | - should 'default value of setting profile_picture is blank' do | ||
18 | - assert_equal @mediation.profile_picture, "" | ||
19 | - end | ||
20 | - | ||
21 | - should 'generate timestamp for mediation' do | ||
22 | - assert CommunityHubPlugin::Mediation.timestamp | ||
23 | - end | ||
24 | - | ||
25 | - should 'default value of advertise is false' do | ||
26 | - assert !@mediation.advertise | ||
27 | - end | ||
28 | - | ||
29 | - should 'default value of notify comments is false' do | ||
30 | - assert !@mediation.notify_comments | ||
31 | - end | ||
32 | - | ||
33 | -end |
plugins/community_hub/test/unit/community_hub_plugin_test.rb
@@ -1,49 +0,0 @@ | @@ -1,49 +0,0 @@ | ||
1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
2 | - | ||
3 | -class CommunityHubPluginTest < ActiveSupport::TestCase | ||
4 | - | ||
5 | - def setup | ||
6 | - @plugin = CommunityHubPlugin.new | ||
7 | - @profile = fast_create(Community) | ||
8 | - @params = {} | ||
9 | - @plugin.stubs(:context).returns(self) | ||
10 | - end | ||
11 | - | ||
12 | - attr_reader :profile, :params | ||
13 | - | ||
14 | - should 'has name' do | ||
15 | - assert CommunityHubPlugin.plugin_name | ||
16 | - end | ||
17 | - | ||
18 | - should 'describe yourself' do | ||
19 | - assert CommunityHubPlugin.plugin_description | ||
20 | - end | ||
21 | - | ||
22 | - should 'has stylesheet' do | ||
23 | - assert @plugin.stylesheet? | ||
24 | - end | ||
25 | - | ||
26 | - should 'return Hub as a content type if profile is a community' do | ||
27 | - assert_includes @plugin.content_types, CommunityHubPlugin::Hub | ||
28 | - end | ||
29 | - | ||
30 | - should 'do not return Hub as a content type if profile is not a community' do | ||
31 | - @profile = Organization.new | ||
32 | - assert_not_includes @plugin.content_types, CommunityHubPlugin::Hub | ||
33 | - end | ||
34 | - | ||
35 | - should 'do not return Hub as a content type if there is a parent' do | ||
36 | - parent = fast_create(Blog, :profile_id => @profile.id) | ||
37 | - @params[:parent_id] = parent.id | ||
38 | - assert_not_includes @plugin.content_types, CommunityHubPlugin::Hub | ||
39 | - end | ||
40 | - | ||
41 | - should 'return true at content_remove_new if page is a Hub' do | ||
42 | - assert @plugin.content_remove_new(CommunityHubPlugin::Hub.new) | ||
43 | - end | ||
44 | - | ||
45 | - should 'return false at content_remove_new if page is not a Hub' do | ||
46 | - assert !@plugin.content_remove_new(Article.new) | ||
47 | - end | ||
48 | - | ||
49 | -end |
plugins/community_hub/twitter/stream.rb
@@ -1,69 +0,0 @@ | @@ -1,69 +0,0 @@ | ||
1 | -require 'rubygems' | ||
2 | -require 'twitter' | ||
3 | -require 'iconv' | ||
4 | - | ||
5 | -#disable address resolv to avoid problems with proxy | ||
6 | -class Resolv | ||
7 | - def self.getaddress(host) | ||
8 | - host | ||
9 | - end | ||
10 | -end | ||
11 | - | ||
12 | -#Filters non-UTF8 octets | ||
13 | -def UTF8Filter(string) | ||
14 | - ic = Iconv.new('UTF-8//IGNORE', 'UTF-8') | ||
15 | - #Attention please, don't remove + ' ')[0..-2] it is used for UTF8 validation | ||
16 | - ic.iconv(string + ' ')[0..-2] | ||
17 | -end | ||
18 | - | ||
19 | -def listen_twitter_stream(hub, author_id) | ||
20 | - | ||
21 | - connected = false | ||
22 | - tries = 0 | ||
23 | - while !connected | ||
24 | - begin | ||
25 | - tries += 1 | ||
26 | - client = Twitter::Streaming::Client.new do |config| | ||
27 | - config.consumer_key = hub.twitter_consumer_key | ||
28 | - config.consumer_secret = hub.twitter_consumer_secret | ||
29 | - config.access_token = hub.twitter_access_token | ||
30 | - config.access_token_secret = hub.twitter_access_token_secret | ||
31 | - end | ||
32 | - puts client.inspect | ||
33 | - connected = true | ||
34 | - tries = 0 | ||
35 | - rescue => e | ||
36 | - puts "Error connecting to twitter stream: #{e.inspect}" | ||
37 | - sleep (10 + 2 ** tries) | ||
38 | - end | ||
39 | - end | ||
40 | - | ||
41 | - tries = 0 | ||
42 | - while true | ||
43 | - begin | ||
44 | - tries += 1 | ||
45 | - client.filter(:track => hub.twitter_hashtags) do |object| | ||
46 | - if object.is_a?(Twitter::Tweet) | ||
47 | - comment = Comment.new | ||
48 | - comment.title = 'hub-message-twitter' | ||
49 | - comment.source = hub | ||
50 | - comment.body = UTF8Filter(object.text) | ||
51 | - comment.profile_picture = object.user.profile_image_url.to_s | ||
52 | - comment.author_id = author_id | ||
53 | - comment.name = UTF8Filter(object.user.screen_name) | ||
54 | - comment.email = 'admin@localhost.local' | ||
55 | - | ||
56 | - tries = 0 | ||
57 | - begin | ||
58 | - comment.save! | ||
59 | - rescue => e | ||
60 | - puts "Error writing twitter comment #{e.inspect}" | ||
61 | - end | ||
62 | - end | ||
63 | - end | ||
64 | - rescue => e | ||
65 | - puts "Error reading twitter stream #{e.inspect}" | ||
66 | - sleep (10 + 2 ** tries) | ||
67 | - end | ||
68 | - end | ||
69 | -end |
plugins/community_hub/views/cms/community_hub_plugin/_hub.html.erb
@@ -1,59 +0,0 @@ | @@ -1,59 +0,0 @@ | ||
1 | -<div class='hub'> | ||
2 | - | ||
3 | - <h1><%= _("HUB Settings:") %></h1> | ||
4 | - | ||
5 | - <%= required_fields_message %> | ||
6 | - | ||
7 | - <div> | ||
8 | - <%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64', :maxlength => 150)) %> | ||
9 | - </div> | ||
10 | - | ||
11 | - <div> | ||
12 | - <%= required labelled_form_field(_('Description'), text_area(:article, 'body', :style => 'width: 99%;')) %> | ||
13 | - </div> | ||
14 | - | ||
15 | - <%= fields_for 'article[image_builder]', @article.image do |i| %> | ||
16 | - <%= file_field_or_thumbnail(_('Image:'), @article.image, i) %> | ||
17 | - <% end %> | ||
18 | - | ||
19 | - <br /> | ||
20 | - | ||
21 | - <div> | ||
22 | - <h2><%= _('Twitter Settings:') %></h2> | ||
23 | - </div> | ||
24 | - | ||
25 | - <%= check_box(:article, :twitter_enabled) %> | ||
26 | - <span><%= _("Turn on TWITTER") %></span> | ||
27 | - | ||
28 | - <span><%= labelled_form_field(_('Twitter\'s Hashtags, comma separated (example: participa.br,participabr)'), text_field(:article, :twitter_hashtags)) %></span> | ||
29 | - | ||
30 | - <div> | ||
31 | - <%= labelled_form_field(_('Twitter\'s consumer key'), text_field(:article, :twitter_consumer_key)) %> | ||
32 | - </div> | ||
33 | - | ||
34 | - <div> | ||
35 | - <%= labelled_form_field(_('Twitter\'s consumer secret'), text_field(:article, :twitter_consumer_secret)) %> | ||
36 | - </div> | ||
37 | - | ||
38 | - <div> | ||
39 | - <%= labelled_form_field(_('Twitter\'s access token'), text_field(:article, :twitter_access_token)) %> | ||
40 | - </div> | ||
41 | - | ||
42 | - <div> | ||
43 | - <%= labelled_form_field(_('Twitter\'s access token secret'), text_field(:article, :twitter_access_token_secret)) %> | ||
44 | - </div> | ||
45 | - <br /> | ||
46 | - <div> | ||
47 | - <h2><%= _('Facebook Settings:') %></h2> | ||
48 | - </div> | ||
49 | - | ||
50 | - <%= check_box(:article, :facebook_enabled) %> | ||
51 | - <span><%= _("Turn on FACEBOOK") %></span> | ||
52 | - | ||
53 | - <span><%= labelled_form_field(_('Facebook\'s hashtag (example: #participabr)'), text_field(:article, :facebook_hashtag)) %></span> | ||
54 | - | ||
55 | - <span><%= labelled_form_field(_('Facebook\'s access token'), text_field(:article, :facebook_access_token)) %></span> | ||
56 | - <br /> | ||
57 | - <a href='https://smashballoon.com/custom-facebook-feed/access-token/' ><%= _('How to get a new access token?') %><a> | ||
58 | - <br /> | ||
59 | -</div> |
plugins/community_hub/views/community_hub_plugin_public/_banner.html.erb
plugins/community_hub/views/community_hub_plugin_public/_embed.html.erb
@@ -1,11 +0,0 @@ | @@ -1,11 +0,0 @@ | ||
1 | -<% extend CommunityHubPlugin::HubHelper %> | ||
2 | - | ||
3 | -<div class="embed"> | ||
4 | - <span class="label">Embed / <%= _("Embed") %></span> | ||
5 | - <textarea cols="38" | ||
6 | - id="comment_body" | ||
7 | - name="comment[body]" | ||
8 | - rows="10" | ||
9 | - class="code" | ||
10 | - style="width: 99%;"><%= embed_code(@page) %></textarea> | ||
11 | -</div> | ||
12 | \ No newline at end of file | 0 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_mediation.html.erb
@@ -1,87 +0,0 @@ | @@ -1,87 +0,0 @@ | ||
1 | -<% extend CommunityHubPlugin::HubHelper %> | ||
2 | - | ||
3 | -<li id="<%= mediation.id %>" class="post"> | ||
4 | - | ||
5 | - <ul> | ||
6 | - <li class="time"><%= post_time(mediation.created_at) %></li> | ||
7 | - | ||
8 | - <li class="avatar"> | ||
9 | - <% if mediation.source == 'twitter' %> | ||
10 | - <%= image_tag(mediation.profile_picture, :alt => "Twitter") %> | ||
11 | - <% elsif mediation.source == 'facebook' %> | ||
12 | - <%= image_tag('/plugins/community_hub/icons/logo_facebook_50x50.png', :alt => "Facebook") %> | ||
13 | - <% else %> | ||
14 | - <%= image_tag(profile_icon(mediation.created_by, :minor)) if mediation.created_by %> | ||
15 | - <% end %> | ||
16 | - </li> | ||
17 | - <li class="message"><span class="author"><%= mediation.setting[:author_name] %>:</span> <%= mediation.body %></li> | ||
18 | - | ||
19 | - <% if mediator?(hub) %> | ||
20 | - <li class="mediation-bar"> | ||
21 | - | ||
22 | - <ul> | ||
23 | - | ||
24 | - <% if mediation.source != 'twitter' && mediation.source != 'facebook' %> | ||
25 | - | ||
26 | - <li class="promote"> | ||
27 | - <% if !promoted?(hub, mediation.created_by) %> | ||
28 | - <a id="<%= mediation.id %>" href="#" onclick="promote_user(<%= mediation.id %>,<%= mediation.created_by.id %>); return false;"> | ||
29 | - <img class="not-promoted" src="/plugins/community_hub/icons/hub-not-promote-icon.png" title="<%= _("User not promoted") %>" /> | ||
30 | - </a> | ||
31 | - <% else %> | ||
32 | - <img class="promoted" src="/plugins/community_hub/icons/hub-not-promote-icon.png" title="<%= _("User promoted") %>" /> | ||
33 | - <% end %> | ||
34 | - </li> | ||
35 | - | ||
36 | - <% end %> | ||
37 | - | ||
38 | - <% if pinned_mediation?(hub, mediation.id) %> | ||
39 | - <li class="pin"> | ||
40 | - <img class="pinned" src="/plugins/community_hub/icons/hub-not-pinned-icon.png" title="<%= _("Message pinned")%>" /> | ||
41 | - </li> | ||
42 | - <% end %> | ||
43 | - | ||
44 | - </ul> | ||
45 | - | ||
46 | - </li> | ||
47 | - <% end %> | ||
48 | - | ||
49 | - </ul> | ||
50 | - | ||
51 | - <% total_mediation_comments = mediation.comments.count %> | ||
52 | - | ||
53 | - <span class="comment-count"> | ||
54 | - <%= link_to( "<span id='mediation-comment-total-#{mediation.id}'>#{total_mediation_comments}</span> " + _("Comments") , '#', | ||
55 | - :class => 'display-comment-form', | ||
56 | - :id => 'top-post-comment-button', | ||
57 | - :onclick => "toogle_mediation_comments(#{mediation.id}); return false;") %> | ||
58 | - </span> | ||
59 | - | ||
60 | - <script type="text/javascript"> | ||
61 | - mediations.push( [ <%= mediation.id %>, setInterval(function() { update_mediation_comments('<%= mediation.id %>', false)}, 5000) ] ); | ||
62 | - </script> | ||
63 | - | ||
64 | - <ul id="mediation-comment-list-<%=mediation.id%>" class="mediation-comment-list" style="display:none;"> | ||
65 | - <% if mediation.accept_comments? && mediation.comments.count > 0 %> | ||
66 | - <%= render :partial => 'community_hub_plugin_public/mediation_comment', :collection => mediation.comments %> | ||
67 | - <% end %> | ||
68 | - </ul> | ||
69 | - | ||
70 | - <% if logged_in? && mediation.accept_comments? %> | ||
71 | - <div id='mediation-comment-form-<%=mediation.id%>' class='mediation-comment-form' style="display:none;"> | ||
72 | - <%= render :partial => 'community_hub_plugin_public/mediation_comment_form', | ||
73 | - :locals => { | ||
74 | - :hub => hub, | ||
75 | - :mediation => mediation, | ||
76 | - :comment => Comment.new, | ||
77 | - :url => { | ||
78 | - :controller => :comment, | ||
79 | - :action => :create | ||
80 | - }, | ||
81 | - :display_link => true, | ||
82 | - :cancel_triggers_hide => true | ||
83 | - } %> | ||
84 | - </div> | ||
85 | - <% end %> | ||
86 | - | ||
87 | -</li> |
plugins/community_hub/views/community_hub_plugin_public/_mediation_comment.html.erb
@@ -1,6 +0,0 @@ | @@ -1,6 +0,0 @@ | ||
1 | -<li id="<%= mediation_comment.id %>" class="mediation-comment"> | ||
2 | - <ul> | ||
3 | - <li class="avatar"><%= image_tag(profile_icon(mediation_comment.author, :minor)) %></li> | ||
4 | - <li class="message"><span class="author"><%= mediation_comment.author_name %>:</span> <%= mediation_comment.body %></li> | ||
5 | - </ul> | ||
6 | -</li> | ||
7 | \ No newline at end of file | 0 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_mediation_comment_form.html.erb
@@ -1,12 +0,0 @@ | @@ -1,12 +0,0 @@ | ||
1 | -<%= form_for :message, | ||
2 | - :method => 'post', | ||
3 | - :url => { | ||
4 | - :controller => 'community_hub_plugin_public', | ||
5 | - :action => 'new_message', | ||
6 | - :article_id => mediation.id | ||
7 | - } do |f| %> | ||
8 | - <%= f.text_area(:body, | ||
9 | - :rows => 4, | ||
10 | - :placeholder => _('Type your comment here')) %> | ||
11 | - <%= submit_button('add', _('Send'), :onclick => "new_mediation_comment(this,#{mediation.id}); return false;") %> | ||
12 | -<% end %> |
plugins/community_hub/views/community_hub_plugin_public/_post.html.erb
@@ -1,34 +0,0 @@ | @@ -1,34 +0,0 @@ | ||
1 | -<% extend CommunityHubPlugin::HubHelper %> | ||
2 | - | ||
3 | -<li id="<%= post.id %>" class="post"> | ||
4 | - <ul> | ||
5 | - <li class="time"><%= post_time(post.created_at) %></li> | ||
6 | - <li class="avatar"> | ||
7 | - <% if post.title == 'hub-message-twitter' %> | ||
8 | - <%= image_tag(post.profile_picture, :alt => "Twitter") %> | ||
9 | - <% elsif post.title == 'hub-message-facebook' %> | ||
10 | - <%= image_tag('/plugins/community_hub/icons/logo_facebook_50x50.png', :alt => "Facebook") %> | ||
11 | - <% else %> | ||
12 | - <%= image_tag(profile_icon(post.author, :minor)) if post.author %> | ||
13 | - <% end %> | ||
14 | - </li> | ||
15 | - <li class="message"><span class="author"><%= post.author_name %>:</span> <%= post.body %></li> | ||
16 | - | ||
17 | - <% if mediator?(hub) && post.title != 'hub-message-facebook' %> | ||
18 | - <li class="mediation-bar"> | ||
19 | - <ul> | ||
20 | - <li class="pin"> | ||
21 | - <% if !pinned_message?(hub, post.id) %> | ||
22 | - <a id="<%= post.id %>" href="#" onclick="pin_message(<%= post.id %>); return false;"> | ||
23 | - <img class="not-pinned" src="/plugins/community_hub/icons/hub-pinned-icon.png" title="<%= _("Pin message")%>" /> | ||
24 | - </a> | ||
25 | - <% else %> | ||
26 | - <img class="pinned" src="/plugins/community_hub/icons/hub-not-pinned-icon.png" title="<%= _("Message pinned")%>" /> | ||
27 | - <% end %> | ||
28 | - </li> | ||
29 | - </ul> | ||
30 | - </li> | ||
31 | - <% end %> | ||
32 | - | ||
33 | - </ul> | ||
34 | -</li> |
plugins/community_hub/views/community_hub_plugin_public/_settings.html.erb
plugins/community_hub/views/content_viewer/hub.html.erb
@@ -1,97 +0,0 @@ | @@ -1,97 +0,0 @@ | ||
1 | -<% extend CommunityHubPlugin::HubHelper %> | ||
2 | - | ||
3 | -<div id="<%=@page.id%>" class="hub clearfix"> | ||
4 | - | ||
5 | - <div class="title"><%= @page.title %> HUB</div> | ||
6 | - | ||
7 | - <div class="description"><%= @page.body %></div> | ||
8 | - | ||
9 | - <br /> | ||
10 | - | ||
11 | - <div id="left-tab" class="live content-tab show"> | ||
12 | - | ||
13 | - <h1 class="live"> | ||
14 | - <span class="on-air"><%= _("Live") %></span> | ||
15 | - </h1> | ||
16 | - | ||
17 | - <h1 class="mediation"> | ||
18 | - <span class="title"><%= _("Mediation") %></span> | ||
19 | - </h1> | ||
20 | - | ||
21 | - <div class="envelope"> | ||
22 | - <ul id="live-posts"></ul> | ||
23 | - </div> | ||
24 | - | ||
25 | - <span><%= check_box_tag 'auto_scrolling', 'yes', true %><%= _("Auto scrolling") %></span> | ||
26 | - | ||
27 | - <% if logged_in? %> | ||
28 | - <div id="input-panel"> | ||
29 | - <div class="form-message"> | ||
30 | - | ||
31 | - <%= form_for :message, | ||
32 | - :method => 'post', | ||
33 | - :url => { | ||
34 | - :controller => 'community_hub_plugin_public', | ||
35 | - :action => 'new_message', | ||
36 | - :article_id => @page.id | ||
37 | - } do |f| %> | ||
38 | - <span><%= _("Message") %>:</span> | ||
39 | - <br /> | ||
40 | - <%= f.text_area :body, :style => "width: 99%;", :cols => "38", :rows => "5", :placeholder => _("Type your message here") %> | ||
41 | - <%= submit_button('add', _('Send'), :onclick => 'new_message(this); return false;') %> | ||
42 | - | ||
43 | - <% end %> | ||
44 | - | ||
45 | - </div> | ||
46 | - </div> | ||
47 | - <% end %> | ||
48 | - | ||
49 | - </div> | ||
50 | - | ||
51 | - <div id="right-tab" class="mediation content-tab hide"> | ||
52 | - | ||
53 | - <h1 class="live"> | ||
54 | - <span class="on-air"><%= _("Live") %></span> | ||
55 | - </h1> | ||
56 | - | ||
57 | - <h1 class="mediation"> | ||
58 | - <span class="title"><%= _("Mediation") %></span> | ||
59 | - </h1> | ||
60 | - | ||
61 | - <div class="envelope"> | ||
62 | - <ul id="mediation-posts"></ul> | ||
63 | - </div> | ||
64 | - | ||
65 | - <% if logged_in? && mediator?(@page) %> | ||
66 | - <div class="form-mediation"> | ||
67 | - | ||
68 | - <%= render :file => 'shared/tiny_mce' %> | ||
69 | - | ||
70 | - <%= form_for :article, | ||
71 | - :method => 'post', | ||
72 | - :url => { | ||
73 | - :controller => 'community_hub_plugin_public', | ||
74 | - :action => 'new_mediation', | ||
75 | - :profile_id => profile.id | ||
76 | - } do |f| %> | ||
77 | - <%= f.hidden_field :parent_id, :value => @page.id %> | ||
78 | - <%= f.text_area :body, :style => "width: 100%;", :class => "mceEditor" %> | ||
79 | - <%= submit_button('add', _('Send'), :onclick => 'new_mediation(this); return false;') %> | ||
80 | - <% end %> | ||
81 | - | ||
82 | - </div> | ||
83 | - | ||
84 | - <%= render :partial => "community_hub_plugin_public/settings" %> | ||
85 | - | ||
86 | - <% end %> | ||
87 | - | ||
88 | - </div> | ||
89 | - | ||
90 | -</div> | ||
91 | - | ||
92 | -<script type="text/javascript"> | ||
93 | - DEFAULT_PIN_QUESTION = '<%= _("Are you sure that you want to pin this message?") %>'; | ||
94 | - DEFAULT_PROMOTE_QUESTION = '<%= _("Are you sure that you want to promote this user?") %>'; | ||
95 | -</script> | ||
96 | - | ||
97 | -<%= javascript_include_tag '/plugins/community_hub/javascripts/community_hub.js' %> | ||
98 | \ No newline at end of file | 0 | \ No newline at end of file |
plugins/gamification