Commit 4b68f273ab72cf214e8492b820132204fa4b6cad

Authored by Leandro Santos
1 parent 0a7e61da

removing community_hub

Showing 57 changed files with 1 additions and 3101 deletions   Show diff stats
plugins/community_hub/Gemfile
@@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
1 -source 'https://rubygems.org'  
2 -gem 'twitter', '~> 5.8.0'  
3 -gem 'proxifier', '~> 1.0.3'  
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
@@ -1,5 +0,0 @@ @@ -1,5 +0,0 @@
1 -require_dependency 'comment'  
2 -  
3 -class Comment  
4 - settings_items :profile_picture, :type => :string, :default => ""  
5 -end  
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
@@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
1 -<div class="banner">  
2 - <span><%= _("BANNER SPACE") %></span>  
3 -</div>  
4 \ No newline at end of file 0 \ No newline at end of file
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
@@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
1 -<div class="settings">  
2 - <ul class="settings">  
3 - <li class="general">  
4 - <%= link_to _("General settings"), :controller => 'cms', :action => 'edit', :id => @page.id %>  
5 - </li>  
6 - </ul>  
7 -</div>  
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
1 -Subproject commit bea83c2384fd561acb4cddf17454616dd91fabd7 1 +Subproject commit d94cfe72d24d6ba5ca19732fea55ed8273389a61