Commit d6a51c5a1a66110364f3f488354ceeae52b4c101
1 parent
271f561a
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
#community dashboard - code refactoring
Showing
16 changed files
with
511 additions
and
574 deletions
Show diff stats
plugins/community_hub/controllers/public/community_hub_plugin_public_controller.rb
@@ -5,9 +5,67 @@ class CommunityHubPluginPublicController < PublicController | @@ -5,9 +5,67 @@ class CommunityHubPluginPublicController < PublicController | ||
5 | layout false | 5 | layout false |
6 | 6 | ||
7 | 7 | ||
8 | + def new_message | ||
9 | + article = Article.find(params[:article_id]) | ||
10 | + | ||
11 | + message_data = {} | ||
12 | + message_data.merge!(params[:message]) if params[:message] | ||
13 | + | ||
14 | + @message = Comment.new(message_data) | ||
15 | + @message.author = user if logged_in? | ||
16 | + @message.title = message_timestamp | ||
17 | + @message.article = article | ||
18 | + @message.ip_address = request.remote_ip | ||
19 | + @message.user_agent = request.user_agent | ||
20 | + @message.referrer = request.referrer | ||
21 | + | ||
22 | + if @message && @message.save | ||
23 | + render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
24 | + else | ||
25 | + render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
26 | + end | ||
27 | + end | ||
28 | + | ||
29 | + | ||
30 | + def new_mediation | ||
31 | + profile = Profile.find(params[:profile_id]) | ||
32 | + | ||
33 | + mediation_data = {} | ||
34 | + mediation_data.merge!(params[:article]) if params[:article] | ||
35 | + | ||
36 | + @mediation = TinyMceArticle.new(mediation_data) | ||
37 | + @mediation.profile = profile | ||
38 | + @mediation.last_changed_by = user | ||
39 | + @mediation.name = mediation_timestamp | ||
40 | + @mediation.notify_comments = false | ||
41 | + @mediation.type = 'TinyMceArticle' | ||
42 | + @mediation.advertise = false | ||
43 | + @mediation.save | ||
44 | + | ||
45 | + if @mediation && @mediation.save | ||
46 | + render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
47 | + else | ||
48 | + render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
49 | + end | ||
50 | + end | ||
51 | + | ||
52 | + | ||
53 | + def newer_mediation_comment | ||
54 | + latest_id = params[:latest_post] | ||
55 | + mediation = params[:mediation] | ||
56 | + comments = Comment.find(:all, :conditions => ["id > :id and source_id = :mediation", { | ||
57 | + :id => latest_id, | ||
58 | + :mediation => mediation | ||
59 | + }]) | ||
60 | + | ||
61 | + render :partial => "mediation_comment", | ||
62 | + :collection => comments | ||
63 | + end | ||
64 | + | ||
65 | + | ||
8 | def newer_comments | 66 | def newer_comments |
9 | latest_post = params[:latest_post] | 67 | latest_post = params[:latest_post] |
10 | - hub = params[:hub] | 68 | + hub = Article.find(params[:hub]) |
11 | posts = Comment.find(:all, | 69 | posts = Comment.find(:all, |
12 | :order => "id desc", | 70 | :order => "id desc", |
13 | :conditions => ["id > ?", latest_post]) | 71 | :conditions => ["id > ?", latest_post]) |
@@ -20,8 +78,6 @@ class CommunityHubPluginPublicController < PublicController | @@ -20,8 +78,6 @@ class CommunityHubPluginPublicController < PublicController | ||
20 | latest_post = 0 | 78 | latest_post = 0 |
21 | end | 79 | end |
22 | 80 | ||
23 | - #raise hub.inspect | ||
24 | - | ||
25 | render :partial => "post", | 81 | render :partial => "post", |
26 | :collection => posts, | 82 | :collection => posts, |
27 | :locals => { | 83 | :locals => { |
@@ -34,13 +90,13 @@ class CommunityHubPluginPublicController < PublicController | @@ -34,13 +90,13 @@ class CommunityHubPluginPublicController < PublicController | ||
34 | 90 | ||
35 | def newer_articles | 91 | def newer_articles |
36 | latest_post = params[:latest_post] | 92 | latest_post = params[:latest_post] |
37 | - hub = params[:hub] | 93 | + hub = Article.find(params[:hub]) |
38 | posts = Article.find(:all, | 94 | posts = Article.find(:all, |
39 | :order => "id desc", | 95 | :order => "id desc", |
40 | :conditions => ["id > :id and type = :type and parent_id = :hub", { | 96 | :conditions => ["id > :id and type = :type and parent_id = :hub", { |
41 | :id => latest_post, | 97 | :id => latest_post, |
42 | :type => 'TinyMceArticle', | 98 | :type => 'TinyMceArticle', |
43 | - :hub => hub | 99 | + :hub => hub.id |
44 | }]) | 100 | }]) |
45 | 101 | ||
46 | if !posts.empty? | 102 | if !posts.empty? |
@@ -51,7 +107,7 @@ class CommunityHubPluginPublicController < PublicController | @@ -51,7 +107,7 @@ class CommunityHubPluginPublicController < PublicController | ||
51 | latest_post = 0 | 107 | latest_post = 0 |
52 | end | 108 | end |
53 | 109 | ||
54 | - render :partial => "post", | 110 | + render :partial => "mediation", |
55 | :collection => posts, | 111 | :collection => posts, |
56 | :locals => { | 112 | :locals => { |
57 | :latest_post => latest_post, | 113 | :latest_post => latest_post, |
@@ -91,31 +147,12 @@ class CommunityHubPluginPublicController < PublicController | @@ -91,31 +147,12 @@ class CommunityHubPluginPublicController < PublicController | ||
91 | end | 147 | end |
92 | 148 | ||
93 | 149 | ||
94 | - def remove_live_post | ||
95 | - | ||
96 | - begin | ||
97 | - post = Comment.find(params[:id]) | ||
98 | - rescue | ||
99 | - post = nil | ||
100 | - end | ||
101 | - | ||
102 | - if post && post.destroy | ||
103 | - render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
104 | - else | ||
105 | - render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
106 | - end | ||
107 | - | ||
108 | - end | ||
109 | - | ||
110 | - | ||
111 | - def promote_live_post | 150 | + def promote_user |
151 | + hub = Article.find(params[:hub]) | ||
112 | 152 | ||
113 | - post_id = params[:id] | ||
114 | user_id = params[:user].to_i | 153 | user_id = params[:user].to_i |
115 | 154 | ||
116 | - hub = Article.find(params[:hub]) | ||
117 | - | ||
118 | - hub.promoted_users += [user_id] unless hub.promoted_users.include?(user_id) | 155 | + hub.mediators += [user_id] unless hub.mediators.include?(user_id) |
119 | 156 | ||
120 | if hub && hub.save | 157 | if hub && hub.save |
121 | render :text => {'ok' => true}.to_json, :content_type => 'application/json' | 158 | render :text => {'ok' => true}.to_json, :content_type => 'application/json' |
@@ -125,54 +162,29 @@ class CommunityHubPluginPublicController < PublicController | @@ -125,54 +162,29 @@ class CommunityHubPluginPublicController < PublicController | ||
125 | end | 162 | end |
126 | 163 | ||
127 | 164 | ||
128 | - def pin_live_post | ||
129 | - | ||
130 | - begin | ||
131 | - post = Comment.find(params[:id]) | ||
132 | - rescue | ||
133 | - post = nil | ||
134 | - end | ||
135 | - | ||
136 | - hub = Article.find(params[:hub]) | 165 | + def pin_message |
166 | + message = Comment.find(params[:message]) | ||
167 | + hub = Article.find(params[:hub]) | ||
168 | + community = Profile.find(params[:community]) | ||
137 | 169 | ||
138 | - hub.pinned_posts += [post.id] unless hub.pinned_posts.include?(post.id) | 170 | + mediation = make_mediation_from_message(community, hub, message) |
171 | + mediation.save | ||
139 | 172 | ||
140 | - if hub && hub.save | 173 | + if mediation && mediation.save |
174 | + hub.pinned_messages += [message.id] unless hub.pinned_messages.include?(message.id) | ||
175 | + hub.pinned_mediations += [mediation.id] unless hub.pinned_mediations.include?(mediation.id) | ||
176 | + hub.save | ||
141 | render :text => {'ok' => true}.to_json, :content_type => 'application/json' | 177 | render :text => {'ok' => true}.to_json, :content_type => 'application/json' |
142 | else | 178 | else |
143 | render :text => {'ok' => false}.to_json, :content_type => 'application/json' | 179 | render :text => {'ok' => false}.to_json, :content_type => 'application/json' |
144 | - end | ||
145 | - end | ||
146 | - | 180 | + end |
147 | 181 | ||
148 | - # | ||
149 | - # to implement.......... | ||
150 | - # | ||
151 | - def like_live_post | ||
152 | - if false | ||
153 | - render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
154 | - else | ||
155 | - render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
156 | - end | ||
157 | - end | ||
158 | - | ||
159 | - | ||
160 | - # | ||
161 | - # to implement.......... | ||
162 | - # | ||
163 | - def dislike_live_post | ||
164 | - if false | ||
165 | - render :text => {'ok' => true}.to_json, :content_type => 'application/json' | ||
166 | - else | ||
167 | - render :text => {'ok' => false}.to_json, :content_type => 'application/json' | ||
168 | - end | ||
169 | end | 182 | end |
170 | 183 | ||
171 | 184 | ||
172 | protected | 185 | protected |
173 | 186 | ||
174 | def posts_to_json(list) | 187 | def posts_to_json(list) |
175 | - | ||
176 | list.map do |item| { | 188 | list.map do |item| { |
177 | 'id' => item.id, | 189 | 'id' => item.id, |
178 | 'created_at' => item.created_at, | 190 | 'created_at' => item.created_at, |
@@ -182,4 +194,44 @@ class CommunityHubPluginPublicController < PublicController | @@ -182,4 +194,44 @@ class CommunityHubPluginPublicController < PublicController | ||
182 | end.to_json | 194 | end.to_json |
183 | end | 195 | end |
184 | 196 | ||
197 | + | ||
198 | + def make_mediation_from_message(community, hub, message) | ||
199 | + begin | ||
200 | + mediation = Article.new | ||
201 | + | ||
202 | + mediation.profile = community | ||
203 | + mediation.parent = hub | ||
204 | + mediation.name = mediation_timestamp | ||
205 | + mediation.body = message.body | ||
206 | + mediation.abstract = "" | ||
207 | + mediation.last_changed_by = message.author | ||
208 | + mediation.type = 'TinyMceArticle' | ||
209 | + mediation.display_versions = false | ||
210 | + mediation.moderate_comments = false | ||
211 | + mediation.translation_of_id = "" | ||
212 | + mediation.notify_comments = false | ||
213 | + mediation.accept_comments = true | ||
214 | + mediation.tag_list = "" | ||
215 | + mediation.allow_members_to_edit = false | ||
216 | + mediation.display_hits = false | ||
217 | + mediation.published = true | ||
218 | + mediation.license_id = "" | ||
219 | + mediation.category_ids = [] | ||
220 | + #mediation.save | ||
221 | + rescue | ||
222 | + mediation = nil | ||
223 | + end | ||
224 | + | ||
225 | + mediation | ||
226 | + end | ||
227 | + | ||
228 | + | ||
229 | + def mediation_timestamp | ||
230 | + "hub-mediation-#{(Time.now.to_f * 1000).to_i}" | ||
231 | + end | ||
232 | + | ||
233 | + def message_timestamp | ||
234 | + "hub-message-#{(Time.now.to_f * 1000).to_i}" | ||
235 | + end | ||
236 | + | ||
185 | end | 237 | end |
186 | \ No newline at end of file | 238 | \ No newline at end of file |
plugins/community_hub/lib/community_hub_plugin.rb
@@ -12,10 +12,6 @@ class CommunityHubPlugin < Noosfero::Plugin | @@ -12,10 +12,6 @@ class CommunityHubPlugin < Noosfero::Plugin | ||
12 | true | 12 | true |
13 | end | 13 | end |
14 | 14 | ||
15 | - def js_files | ||
16 | - 'javascripts/community_hub.js' | ||
17 | - end | ||
18 | - | ||
19 | def content_types | 15 | def content_types |
20 | if context.respond_to?(:params) && context.params | 16 | if context.respond_to?(:params) && context.params |
21 | types = [] | 17 | types = [] |
plugins/community_hub/lib/community_hub_plugin/hub.rb
1 | -require File.dirname(__FILE__) + '/../../tweeter_stream/lib/twurl' | ||
2 | - | 1 | +#require File.dirname(__FILE__) + '/../../tweeter_stream/lib/twurl' |
3 | 2 | ||
4 | class CommunityHubPlugin::Hub < Folder | 3 | class CommunityHubPlugin::Hub < Folder |
5 | 4 | ||
6 | settings_items :hashtags_twitter, :type => :string, :default => "" | 5 | settings_items :hashtags_twitter, :type => :string, :default => "" |
7 | - settings_items :promoted_users, :type => Array, :default => [] | ||
8 | - settings_items :pinned_posts, :type => Array, :default => [] | 6 | + settings_items :twitter_enabled, :type => :boolean, :default => false |
7 | + settings_items :facebook_enabled, :type => :boolean, :default => false | ||
8 | + settings_items :pinned_messages, :type => Array, :default => [] | ||
9 | + settings_items :pinned_mediations, :type => Array, :default => [] | ||
10 | + settings_items :mediators, :type => Array, :default => [] | ||
11 | + | ||
12 | + #@@thread_started = false | ||
13 | + | ||
14 | + before_create do |hub| | ||
15 | + hub.mediators = [hub.author.id] | ||
16 | + end | ||
9 | 17 | ||
10 | - @@thread_started = false | ||
11 | - | ||
12 | def self.icon_name(article = nil) | 18 | def self.icon_name(article = nil) |
13 | 'community-hub' | 19 | 'community-hub' |
14 | end | 20 | end |
@@ -25,13 +31,13 @@ class CommunityHubPlugin::Hub < Folder | @@ -25,13 +31,13 @@ class CommunityHubPlugin::Hub < Folder | ||
25 | true | 31 | true |
26 | end | 32 | end |
27 | 33 | ||
28 | - def self.start_twitter_service(page) | 34 | +# def self.start_twitter_service(page) |
29 | 35 | ||
30 | - a = Thread.new { | ||
31 | - Twurl::Stream.run(page, 'nba', '/root/.twurlrc') | ||
32 | - } unless @@thread_started | 36 | +# a = Thread.new { |
37 | +# Twurl::Stream.run(page, 'nba', '/root/.twurlrc') | ||
38 | +# } unless @@thread_started | ||
33 | 39 | ||
34 | - @@thread_started = true | 40 | +# @@thread_started = true |
35 | 41 | ||
36 | # raise page.inspect | 42 | # raise page.inspect |
37 | 43 | ||
@@ -44,7 +50,7 @@ class CommunityHubPlugin::Hub < Folder | @@ -44,7 +50,7 @@ class CommunityHubPlugin::Hub < Folder | ||
44 | 50 | ||
45 | # raise "Pai #{parent.id}".inspect | 51 | # raise "Pai #{parent.id}".inspect |
46 | 52 | ||
47 | - end | 53 | +# end |
48 | 54 | ||
49 | def view_page | 55 | def view_page |
50 | "content_viewer/hub.rhtml" | 56 | "content_viewer/hub.rhtml" |
plugins/community_hub/lib/community_hub_plugin/hub_helper.rb
@@ -15,7 +15,31 @@ module CommunityHubPlugin::HubHelper | @@ -15,7 +15,31 @@ module CommunityHubPlugin::HubHelper | ||
15 | end | 15 | end |
16 | 16 | ||
17 | def mediator?(hub) | 17 | def mediator?(hub) |
18 | - false | 18 | + logged_in? && (hub.author.id == user.id || hub.mediators.include?(user.id)) ? true : false |
19 | + end | ||
20 | + | ||
21 | + def promoted?(hub, user_id) | ||
22 | + logged_in? && (hub.author.id == user_id || hub.mediators.include?(user_id)) ? true : false | ||
23 | + end | ||
24 | + | ||
25 | + def pinned_message?(hub, message_id) | ||
26 | + hub.pinned_messages.include?(message_id) ? true : false | ||
27 | + end | ||
28 | + | ||
29 | + def pinned_mediation?(hub, mediation_id) | ||
30 | + hub.pinned_mediations.include?(mediation_id) ? true : false | ||
31 | + end | ||
32 | + | ||
33 | + def post_time(time) | ||
34 | + if time | ||
35 | + _('%{hour}:%{minutes}') % { :hour => time.hour, :minutes => time.strftime("%M") } | ||
36 | + else | ||
37 | + '' | ||
38 | + end | ||
39 | + end | ||
40 | + | ||
41 | + def embed_code(hub) | ||
42 | + "<iframe width='425' height='350' frameborder='0' scrolling='no' marginheight='0' marginwidth='0' src='#{url_for(hub.url)}'></iframe>" | ||
19 | end | 43 | end |
20 | 44 | ||
21 | end | 45 | end |
22 | \ No newline at end of file | 46 | \ No newline at end of file |
plugins/community_hub/public/javascripts/community_hub.js
1 | -var $ = jQuery; | ||
2 | var latest_post_id = 0; | 1 | var latest_post_id = 0; |
3 | var oldest_post_id = 0; | 2 | var oldest_post_id = 0; |
4 | 3 | ||
4 | +function toogle_mediation_comments(mediation) { | ||
5 | + jQuery("#mediation-comment-list-" + mediation ).toggle(); | ||
6 | + jQuery("#mediation-comment-form-" + mediation ).toggle(); | ||
7 | +} | ||
8 | + | ||
5 | 9 | ||
6 | -function hub_open_loading() { | 10 | +function hub_open_loading(button) { |
7 | var html = '<div id="hub-loading">' + | 11 | var html = '<div id="hub-loading">' + |
8 | '<img src="/images/loading-small.gif" />' + | 12 | '<img src="/images/loading-small.gif" />' + |
9 | '</div>'; | 13 | '</div>'; |
10 | 14 | ||
11 | - $('.hub .form .submit').after(html); | ||
12 | - $('#hub-loading').fadeIn('slow'); | 15 | + //$('.hub .form .submit').after(html); |
16 | + jQuery(button).after(html); | ||
17 | + jQuery('#hub-loading').fadeIn('slow'); | ||
13 | } | 18 | } |
14 | 19 | ||
15 | 20 | ||
16 | function hub_close_loading() { | 21 | function hub_close_loading() { |
17 | - $('#hub-loading').fadeOut('slow', function() { | ||
18 | - $('#hub-loading').remove(); | 22 | + jQuery('#hub-loading').fadeOut('slow', function() { |
23 | + jQuery('#hub-loading').remove(); | ||
19 | }); | 24 | }); |
20 | } | 25 | } |
21 | 26 | ||
22 | 27 | ||
23 | -function send_message_for_stream(button) { | ||
24 | - | ||
25 | - var $button = $(button); | ||
26 | - var form = $button.parents("form"); | ||
27 | - | ||
28 | - hub_open_loading(); | 28 | +function new_message(button) { |
29 | + var form = jQuery(button).parents("form"); | ||
29 | 30 | ||
30 | - $.post(form.attr("action"), form.serialize(), function(data) { | ||
31 | - console.log(data); | ||
32 | - $("#comment_body").val(''); | ||
33 | - hub_close_loading(); | 31 | + //hub_open_loading(); |
32 | + jQuery.post(form.attr("action"), form.serialize(), function(data) { | ||
33 | + if (data.ok) { | ||
34 | + jQuery("#message_body").val(''); | ||
35 | + } | ||
36 | + //hub_close_loading(); | ||
34 | }, 'json'); | 37 | }, 'json'); |
35 | -} | ||
36 | - | ||
37 | -function send_post_for_mediation(button) { | ||
38 | - var $ = jQuery; | ||
39 | - open_loading(DEFAULT_LOADING_MESSAGE); | ||
40 | - var $button = $(button); | ||
41 | - var form = $button.parents("form"); | ||
42 | - $button.addClass('stream-post-button-loading'); | ||
43 | - setMediationTimestamp(); | ||
44 | - $.post(form.attr("action"), form.serialize(), function(data) { | ||
45 | - tinymce.get('article_body').setContent(''); | ||
46 | - close_loading(); | ||
47 | - $button.removeClass('stream-post-button-loading'); | ||
48 | - $button.enable(); | ||
49 | - }); | ||
50 | -} | ||
51 | - | ||
52 | -function clearMediationForm(element) { | ||
53 | - alert(element); | ||
54 | -} | ||
55 | 38 | ||
56 | -function setMediationTimestamp() { | ||
57 | - var now = new Date().getTime(); | ||
58 | - var timestamp = 'hub-mediation-' + now.toString(); | ||
59 | - $("#article_name").val(timestamp); | ||
60 | - console.log('teste!!!!!!!!!!!'); | ||
61 | } | 39 | } |
62 | 40 | ||
63 | -function loadPosts(section) { | ||
64 | 41 | ||
65 | - var url; | ||
66 | - var container; | 42 | +function new_mediation(button) { |
43 | + var form = jQuery(button).parents("form"); | ||
67 | 44 | ||
68 | - switch(section) { | ||
69 | - case 'live': | ||
70 | - url = '/plugin/community_hub/public/newer_comments'; | ||
71 | - container = $("#live-posts"); | ||
72 | - break; | ||
73 | - case 'mediation': | ||
74 | - url = '/plugin/community_hub/public/newer_articles'; | ||
75 | - container = $("#mediation-posts"); | ||
76 | - break; | ||
77 | - } | ||
78 | - | ||
79 | - $.ajax({ | ||
80 | - url: url, | ||
81 | - success: function(data) { | ||
82 | - container.append(data); | ||
83 | - }, | ||
84 | - error: function(ajax, stat, errorThrown) { | ||
85 | - console.log(stat); | 45 | + //hub_open_loading(); |
46 | + tinymce.triggerSave(); | ||
47 | + jQuery.post(form.attr("action"), form.serialize(), function(data) { | ||
48 | + if (data.ok) { | ||
49 | + tinymce.get('article_body').setContent(''); | ||
86 | } | 50 | } |
87 | - }); | ||
88 | - | ||
89 | -} | 51 | + //hub_close_loading(); |
52 | + }, 'json'); | ||
90 | 53 | ||
91 | -function hub() { | ||
92 | - //checkNewPosts('live'); | ||
93 | - //checkNewPosts('mediation'); | ||
94 | } | 54 | } |
95 | 55 | ||
96 | -function checkNewPosts(postType) { | ||
97 | - | ||
98 | - var url = ''; | ||
99 | - var container; | ||
100 | - | ||
101 | - console.log(postType); | ||
102 | - | ||
103 | - switch (postType) { | ||
104 | - case 'live': | ||
105 | - url = '/plugin/community_hub/public/newer_comments'; | ||
106 | - container = $("#live-posts"); | ||
107 | - break; | ||
108 | - case 'mediation': | ||
109 | - url = '/plugin/community_hub/public/newer_articles'; | ||
110 | - container = $("#mediation-posts"); | ||
111 | - break; | ||
112 | - } | ||
113 | - | ||
114 | - var hub_id = $(".hub").attr('id'); | ||
115 | - var now = new Date(); | ||
116 | - | ||
117 | - $.ajax({ | ||
118 | - url: url, | ||
119 | - type: 'get', | ||
120 | - data: { latest_post: latest_post_id, hub: hub_id }, | ||
121 | - success: function(data) { | ||
122 | - | ||
123 | - if (data.trim().length > 0) { | ||
124 | - container.prepend(data); | ||
125 | - latest_post_id = $(".latest").attr("id"); | ||
126 | - | ||
127 | - } | ||
128 | - else { | ||
129 | - console.log('No more live posts!'); | ||
130 | - } | ||
131 | - | ||
132 | - }, | ||
133 | - error: function(ajax, stat, errorThrown) { | ||
134 | - console.log(stat); | ||
135 | - } | ||
136 | - }); | ||
137 | - | ||
138 | -} | ||
139 | 56 | ||
140 | function toogleAutoScrolling() { | 57 | function toogleAutoScrolling() { |
141 | - alert($("#auto_scrolling").attr('checked')); | 58 | + alert(jQuery("#auto_scrolling").attr('checked')); |
142 | } | 59 | } |
143 | 60 | ||
144 | -function setHubView(role) { | ||
145 | 61 | ||
146 | - var hub_id = $(".hub").attr('id'); | 62 | +function promote_user(user_id) { |
147 | 63 | ||
148 | - $.ajax({ | ||
149 | - url: '/plugin/community_hub/public/set_hub_view', | 64 | + var hub_id = jQuery(".hub").attr('id'); |
65 | + | ||
66 | + jQuery.ajax({ | ||
67 | + url: '/plugin/community_hub/public/promote_user', | ||
150 | type: 'get', | 68 | type: 'get', |
151 | - data: { hub: hub_id, role: role }, | 69 | + dataType: 'json', |
70 | + data: { user: user_id, hub: hub_id }, | ||
152 | success: function(data) { | 71 | success: function(data) { |
153 | - $(".form").html(data); | ||
154 | - console.log( data ); | ||
155 | }, | 72 | }, |
156 | error: function(ajax, stat, errorThrown) { | 73 | error: function(ajax, stat, errorThrown) { |
157 | - console.log( 'ERRO ao processar requisição!'); | 74 | + console.log(stat); |
158 | } | 75 | } |
159 | }); | 76 | }); |
160 | 77 | ||
161 | } | 78 | } |
162 | 79 | ||
163 | 80 | ||
164 | -function checkUserLevel() { | 81 | +function pin_message(post_id) { |
165 | 82 | ||
166 | - var hub_id = $(".hub").attr('id'); | 83 | + var hub_id = jQuery(".hub").attr('id'); |
167 | 84 | ||
168 | - $.ajax({ | ||
169 | - url: '/plugin/community_hub/public/check_user_level', | 85 | + jQuery.ajax({ |
86 | + url: '/plugin/community_hub/public/pin_message', | ||
170 | type: 'get', | 87 | type: 'get', |
171 | dataType: 'json', | 88 | dataType: 'json', |
172 | - data: { hub: hub_id }, | ||
173 | - success: function(data) { | ||
174 | - | ||
175 | - | ||
176 | - switch (data.level) { | ||
177 | - | ||
178 | - case -1: | ||
179 | - console.log( 'usuário não logado...' ); | ||
180 | - setHubView('guest'); | ||
181 | - break; | ||
182 | - case 0: | ||
183 | - console.log( 'usuário logado, visitante...'); | ||
184 | - setHubView('visitor'); | ||
185 | - break; | ||
186 | - case 1: | ||
187 | - console.log( 'usuário logado, mediador...'); | ||
188 | - setHubView('mediator'); | ||
189 | - break; | ||
190 | - } | ||
191 | - | ||
192 | - | 89 | + data: { id: post_id, hub: hub_id }, |
90 | + success: function(data) { | ||
193 | }, | 91 | }, |
194 | error: function(ajax, stat, errorThrown) { | 92 | error: function(ajax, stat, errorThrown) { |
195 | - console.log( 'ERRO ao processar requisição!'); | 93 | + console.log(stat); |
196 | } | 94 | } |
197 | }); | 95 | }); |
198 | 96 | ||
199 | } | 97 | } |
200 | 98 | ||
201 | -$(document).ready(function(){ | ||
202 | - | ||
203 | - $("#auto_scrolling").click(function(){ | ||
204 | - toogleAutoScrolling(); | ||
205 | - }); | ||
206 | - | ||
207 | - hub(); | ||
208 | - | ||
209 | - //checkUserLevel(); | ||
210 | - | ||
211 | - setInterval(checkNewLivePosts, 10000); //10 seconds interval | ||
212 | - //setInterval(checkNewMediationPosts, 10000); //10 seconds interval | ||
213 | - //setInterval(checkUserLevel, 10000); //10 seconds interval | ||
214 | - | ||
215 | -}); | ||
216 | - | ||
217 | - | ||
218 | -function checkNewLivePosts() { | ||
219 | - checkNewPosts('live'); | ||
220 | -} | ||
221 | - | ||
222 | 99 | ||
223 | -function checkNewMediationPosts() { | ||
224 | - checkNewPosts('mediation'); | ||
225 | -} | 100 | +function update_mediation_comments(mediation) { |
101 | + var hub_id = jQuery(".hub").attr('id'); | ||
226 | 102 | ||
103 | + if (jQuery("#mediation-comment-list-" + mediation + " li").first().length == 0) { | ||
104 | + var latest_post_id = 0; | ||
105 | + } | ||
106 | + else { | ||
107 | + var latest_post_id = jQuery("#mediation-comment-list-" + mediation + " li.mediation-comment").last().attr('id'); | ||
108 | + } | ||
227 | 109 | ||
228 | -function removeLivePost(post_id) { | 110 | + //console.log(latest_post_id); |
229 | 111 | ||
230 | - $.ajax({ | ||
231 | - url: '/plugin/community_hub/public/remove_live_post', | 112 | + jQuery.ajax({ |
113 | + url: '/plugin/community_hub/public/newer_mediation_comment', | ||
232 | type: 'get', | 114 | type: 'get', |
233 | - dataType: 'json', | ||
234 | - data: { id: post_id }, | 115 | + data: { latest_post: latest_post_id, mediation: mediation }, |
235 | success: function(data) { | 116 | success: function(data) { |
236 | - | ||
237 | - if (data.ok) { | ||
238 | - console.log( 'OK - Post removido!'); | ||
239 | - } | ||
240 | - else { | ||
241 | - console.log( 'NOT OK - Post NÃO removido!'); | 117 | + if (data.trim().length > 0) { |
118 | + jQuery("#mediation-comment-list-" + mediation + "").append(data); | ||
242 | } | 119 | } |
243 | - | ||
244 | }, | 120 | }, |
245 | error: function(ajax, stat, errorThrown) { | 121 | error: function(ajax, stat, errorThrown) { |
246 | - console.log( 'ERRO ao processar requisição!'); | 122 | + console.log(stat); |
247 | } | 123 | } |
248 | }); | 124 | }); |
249 | 125 | ||
126 | + setTimeout(function() { update_mediation_comments(mediation); }, 5000); | ||
250 | } | 127 | } |
251 | 128 | ||
252 | 129 | ||
253 | -function promoteLivePost(post_id, user_id) { | 130 | +function update_mediations() { |
131 | + var hub_id = jQuery(".hub").attr('id'); | ||
132 | + | ||
133 | + if (jQuery("#mediation-posts li").first().length == 0) { | ||
134 | + var latest_post_id = 0; | ||
135 | + } | ||
136 | + else { | ||
137 | + var latest_post_id = jQuery("#mediation-posts li").first().attr('id'); | ||
138 | + } | ||
254 | 139 | ||
255 | - var hub_id = $(".hub").attr('id'); | 140 | + //console.log(latest_post_id); |
256 | 141 | ||
257 | - $.ajax({ | ||
258 | - url: '/plugin/community_hub/public/promote_live_post', | 142 | + jQuery.ajax({ |
143 | + url: '/plugin/community_hub/public/newer_articles', | ||
259 | type: 'get', | 144 | type: 'get', |
260 | - dataType: 'json', | ||
261 | - data: { id: post_id, user: user_id, hub: hub_id }, | 145 | + data: { latest_post: latest_post_id, hub: hub_id }, |
262 | success: function(data) { | 146 | success: function(data) { |
263 | - | ||
264 | - if (data.ok) { | ||
265 | - console.log( 'OK - Post promovido!'); | ||
266 | - } | ||
267 | - else { | ||
268 | - console.log( 'NOT OK - Post NÃO promovido!'); | 147 | + if (data.trim().length > 0) { |
148 | + jQuery("#mediation-posts").prepend(data); | ||
269 | } | 149 | } |
270 | - | ||
271 | }, | 150 | }, |
272 | error: function(ajax, stat, errorThrown) { | 151 | error: function(ajax, stat, errorThrown) { |
273 | - console.log( 'ERRO ao processar requisição!'); | 152 | + console.log(stat); |
274 | } | 153 | } |
275 | }); | 154 | }); |
276 | 155 | ||
156 | + setTimeout(update_mediations, 10000); | ||
277 | } | 157 | } |
278 | 158 | ||
279 | -function pinLivePost(post_id) { | ||
280 | - | ||
281 | - var hub_id = $(".hub").attr('id'); | ||
282 | - | ||
283 | - $.ajax({ | ||
284 | - url: '/plugin/community_hub/public/pin_live_post', | ||
285 | - type: 'get', | ||
286 | - dataType: 'json', | ||
287 | - data: { id: post_id, hub: hub_id }, | ||
288 | - success: function(data) { | ||
289 | 159 | ||
290 | - if (data.ok) { | ||
291 | - console.log( 'OK - Post fixado!'); | ||
292 | - } | ||
293 | - else { | ||
294 | - console.log( 'NOT OK - Post NÃO fixado!'); | ||
295 | - } | ||
296 | - | ||
297 | - }, | ||
298 | - error: function(ajax, stat, errorThrown) { | ||
299 | - console.log( 'ERRO ao processar requisição!'); | ||
300 | - } | ||
301 | - }); | 160 | +function update_live_stream() { |
161 | + var hub_id = jQuery(".hub").attr('id'); | ||
302 | 162 | ||
303 | -} | 163 | + if (jQuery("#live-posts li").first().length == 0) { |
164 | + var latest_post_id = 0; | ||
165 | + } | ||
166 | + else { | ||
167 | + var latest_post_id = jQuery("#live-posts li").first().attr('id'); | ||
168 | + } | ||
304 | 169 | ||
305 | -function likeLivePost(post_id) { | 170 | + //console.log(latest_post_id); |
306 | 171 | ||
307 | - $.ajax({ | ||
308 | - url: '/plugin/community_hub/public/like_live_post', | 172 | + jQuery.ajax({ |
173 | + url: '/plugin/community_hub/public/newer_comments', | ||
309 | type: 'get', | 174 | type: 'get', |
310 | - dataType: 'json', | ||
311 | - data: { id: post_id }, | 175 | + data: { latest_post: latest_post_id, hub: hub_id }, |
312 | success: function(data) { | 176 | success: function(data) { |
313 | - | ||
314 | - if (data.ok) { | ||
315 | - console.log( 'OK - Post curtido!'); | ||
316 | - } | ||
317 | - else { | ||
318 | - console.log( 'NOT OK - Post NÃO curtido!'); | 177 | + if (data.trim().length > 0) { |
178 | + jQuery("#live-posts").prepend(data); | ||
319 | } | 179 | } |
320 | - | ||
321 | }, | 180 | }, |
322 | error: function(ajax, stat, errorThrown) { | 181 | error: function(ajax, stat, errorThrown) { |
323 | - console.log( 'ERRO ao processar requisição!'); | 182 | + console.log(stat); |
324 | } | 183 | } |
325 | }); | 184 | }); |
326 | 185 | ||
186 | + setTimeout(update_live_stream, 5000); | ||
327 | } | 187 | } |
328 | 188 | ||
329 | -function dislikeLivePost(post_id) { | ||
330 | - | ||
331 | - $.ajax({ | ||
332 | - url: '/plugin/community_hub/public/dislike_live_post', | ||
333 | - type: 'get', | ||
334 | - dataType: 'json', | ||
335 | - data: { id: post_id }, | ||
336 | - success: function(data) { | ||
337 | - | ||
338 | - if (data.ok) { | ||
339 | - console.log( 'OK - Post descurtido!'); | ||
340 | - } | ||
341 | - else { | ||
342 | - console.log( 'NOT OK - Post NÃO descurtido!'); | ||
343 | - } | ||
344 | - | ||
345 | - }, | ||
346 | - error: function(ajax, stat, errorThrown) { | ||
347 | - console.log( 'ERRO ao processar requisição!'); | ||
348 | - } | ||
349 | - }); | ||
350 | 189 | ||
351 | -} | ||
352 | \ No newline at end of file | 190 | \ No newline at end of file |
191 | +jQuery(document).ready(function() { | ||
192 | + setTimeout(update_live_stream, 5000); | ||
193 | + setTimeout(update_mediations, 10000); | ||
194 | +}); | ||
353 | \ No newline at end of file | 195 | \ No newline at end of file |
plugins/community_hub/public/style.css
1 | #hub-loading { | 1 | #hub-loading { |
2 | - margin-top: 18px; | 2 | + /*margin-top: 18px;*/ |
3 | float: right; | 3 | float: right; |
4 | } | 4 | } |
5 | 5 | ||
@@ -31,7 +31,7 @@ | @@ -31,7 +31,7 @@ | ||
31 | font-size: 14px; | 31 | font-size: 14px; |
32 | } | 32 | } |
33 | 33 | ||
34 | -.hub .post{ | 34 | +.hub .post { |
35 | border-bottom: 1px solid #ddd !important; | 35 | border-bottom: 1px solid #ddd !important; |
36 | background: url("images/hub-time-bg.gif") repeat-y left top #fff; | 36 | background: url("images/hub-time-bg.gif") repeat-y left top #fff; |
37 | } | 37 | } |
@@ -59,21 +59,24 @@ | @@ -59,21 +59,24 @@ | ||
59 | width: 70%; | 59 | width: 70%; |
60 | } | 60 | } |
61 | 61 | ||
62 | -.hub .mediation-bar{ | ||
63 | - display: inline-block; | ||
64 | - margin: 10px 0 10px 104px; | ||
65 | - width: 70%; | 62 | +.hub .message .author { |
63 | + font-weight: bold; | ||
64 | +} | ||
66 | 65 | ||
66 | +.hub .mediation-bar { | ||
67 | + display: inline-block; | ||
68 | + margin: 10px 0 10px 104px; | ||
69 | + width: 70%; | ||
67 | } | 70 | } |
68 | 71 | ||
69 | .hub .mediation-bar ul {} | 72 | .hub .mediation-bar ul {} |
70 | 73 | ||
71 | .hub .mediation-bar ul li { | 74 | .hub .mediation-bar ul li { |
72 | - display: inline-block; | ||
73 | - margin-right: 5px; | ||
74 | - overflow: hidden; | ||
75 | - text-indent: -1000px; | ||
76 | - width: 16px; | 75 | + display: inline-block; |
76 | + /*margin-right: 5px;*/ | ||
77 | + overflow: hidden; | ||
78 | + /*text-indent: -1000px;*/ | ||
79 | + width: 16px; | ||
77 | } | 80 | } |
78 | 81 | ||
79 | .hub .mediation-bar ul li.likes-dislikes{ | 82 | .hub .mediation-bar ul li.likes-dislikes{ |
@@ -93,14 +96,24 @@ | @@ -93,14 +96,24 @@ | ||
93 | text-indent: -10000px; | 96 | text-indent: -10000px; |
94 | } | 97 | } |
95 | 98 | ||
96 | -.hub .promote{ | 99 | +.hub .promote { |
97 | background: url("images/hub-promote-icon.png") no-repeat center center #fff; | 100 | background: url("images/hub-promote-icon.png") no-repeat center center #fff; |
98 | } | 101 | } |
99 | 102 | ||
100 | -.hub .pin{ | 103 | +.hub .promote .not-promoted { |
104 | + opacity: 0.5; | ||
105 | + filter: alpha(opacity=50); | ||
106 | +} | ||
107 | + | ||
108 | +.hub .pin { | ||
101 | background: url("images/hub-pin-icon.png") no-repeat center center #fff; | 109 | background: url("images/hub-pin-icon.png") no-repeat center center #fff; |
102 | } | 110 | } |
103 | 111 | ||
112 | +.hub .pin .not-pinned { | ||
113 | + opacity: 0.5; | ||
114 | + filter: alpha(opacity=50); | ||
115 | +} | ||
116 | + | ||
104 | .hub .mediation-bar ul li.pin { | 117 | .hub .mediation-bar ul li.pin { |
105 | float: right; | 118 | float: right; |
106 | } | 119 | } |
@@ -201,21 +214,56 @@ | @@ -201,21 +214,56 @@ | ||
201 | float: left; | 214 | float: left; |
202 | width: 49%; | 215 | width: 49%; |
203 | } | 216 | } |
204 | -.hub .settings { | ||
205 | - /* border: 1px solid red;*/ | ||
206 | -} | ||
207 | 217 | ||
208 | .hub div.settings { | 218 | .hub div.settings { |
209 | float: right; | 219 | float: right; |
210 | width: 50%; | 220 | width: 50%; |
211 | } | 221 | } |
212 | 222 | ||
213 | -.hub ul.settings li{ | 223 | +.hub ul.settings li { |
214 | height: 50px; | 224 | height: 50px; |
215 | line-height: 50px; | 225 | line-height: 50px; |
216 | margin-bottom: 10px; | 226 | margin-bottom: 10px; |
217 | - padding: 0 10px; | ||
218 | - /* background: url("images/hub-arrow-right.png") no-repeat 90% top #ed8e01;*/ | 227 | + padding: 0 10px; |
228 | + background: url("images/hub-arrow-right.png") no-repeat 90% top #ed8e01; | ||
229 | +} | ||
230 | + | ||
231 | +.hub ul.settings span.collapse { | ||
232 | + padding-right: 0.5em; | ||
233 | + float: right; | ||
234 | +} | ||
235 | + | ||
236 | +.hub div.banner { | ||
237 | + width: 50%; | ||
238 | + height: 100px; | ||
239 | + background-color: #6d6d6d; | ||
240 | + float: right; | ||
241 | + text-align: center; | ||
242 | +} | ||
243 | + | ||
244 | +.hub div.banner span { | ||
245 | + color: white; | ||
246 | + font-family: Arial Black, arial, sans-serif; | ||
247 | + font-size: large; | ||
248 | + font-weight: normal; | ||
249 | + margin-top: 35px; | ||
250 | + display: block; | ||
251 | +} | ||
252 | + | ||
253 | +.hub div.embed { | ||
254 | + margin-top: 10px; | ||
255 | + padding: 8px; | ||
256 | + width: 48%; | ||
257 | + height: 216px; | ||
258 | + border: 1px solid #c0c0c0; | ||
259 | + float: right; | ||
260 | +} | ||
261 | + | ||
262 | +.hub div.embed textarea.code { | ||
263 | + background-color: #f0f0f0; | ||
264 | + border: 1px solid #f0f0f0; | ||
265 | + height: 195px; | ||
266 | + resize: none; | ||
219 | } | 267 | } |
220 | 268 | ||
221 | #content .hub ul.settings li a{ | 269 | #content .hub ul.settings li a{ |
plugins/community_hub/views/cms/community_hub_plugin/_hub.rhtml
@@ -12,6 +12,14 @@ | @@ -12,6 +12,14 @@ | ||
12 | <%= required labelled_form_field(_('Description'), text_area(:article, 'body', :style => 'width: 99%;')) %> | 12 | <%= required labelled_form_field(_('Description'), text_area(:article, 'body', :style => 'width: 99%;')) %> |
13 | </div> | 13 | </div> |
14 | 14 | ||
15 | + <br /> | ||
16 | + | ||
17 | + <%= check_box(:article, :twitter_enabled) %> <span><%= _("Turn on TWITTER") %></span> | ||
18 | + | ||
15 | <span><%= labelled_form_field(_('Hashtags (TWITTER)'), text_field(:article, 'hashtags_twitter')) %></span> | 19 | <span><%= labelled_form_field(_('Hashtags (TWITTER)'), text_field(:article, 'hashtags_twitter')) %></span> |
16 | 20 | ||
21 | + <br /> | ||
22 | + | ||
23 | + <%= check_box(:article, :facebook_enabled) %> <span><%= _("Turn on FACEBOOK") %></span> | ||
24 | + | ||
17 | </div> | 25 | </div> |
18 | \ No newline at end of file | 26 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_banner.rhtml
0 → 100644
plugins/community_hub/views/community_hub_plugin_public/_embed.rhtml
0 → 100644
@@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
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> | ||
0 | \ No newline at end of file | 12 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_mediation.rhtml
0 → 100644
@@ -0,0 +1,74 @@ | @@ -0,0 +1,74 @@ | ||
1 | +<% extend CommunityHubPlugin::HubHelper %> | ||
2 | + | ||
3 | +<li id="<%= mediation.id %>" class="<%=post_css_classes(mediation.id, latest_post, oldest_post)%>"> | ||
4 | + | ||
5 | + <ul> | ||
6 | + <li class="time"><%= post_time(mediation.created_at) %></li> | ||
7 | + <li class="avatar"><%= image_tag(profile_icon(mediation.author, :minor)) %></li> | ||
8 | + <li class="message"><span class="author"><%= mediation.author_name %>:</span> <%= mediation.body %></li> | ||
9 | + | ||
10 | + <% if mediator?(hub) %> | ||
11 | + <li class="mediation-bar"> | ||
12 | + | ||
13 | + <ul> | ||
14 | + | ||
15 | + <li class="promote"> | ||
16 | + <% if !promoted?(hub, mediation.author.id) %> | ||
17 | + <a id="<%= mediation.id %>" href="#" onclick="promote_user(<%= mediation.author.id %>); return false;"> | ||
18 | + <img class="promoted" src="/designs/icons/default/outras/16x16/actions/spread.png" /> | ||
19 | + </a> | ||
20 | + <% else %> | ||
21 | + <img class="not-promoted" src="/designs/icons/default/outras/16x16/actions/spread.png" /> | ||
22 | + <% end %> | ||
23 | + </li> | ||
24 | + | ||
25 | + <% if pinned_mediation?(hub, mediation.id) %> | ||
26 | + <li class="pin"> | ||
27 | + <img class="pinned" src="/designs/icons/default/outras/16x16/apps/tags.gif" /> | ||
28 | + </li> | ||
29 | + <% end %> | ||
30 | + | ||
31 | + </ul> | ||
32 | + | ||
33 | + </li> | ||
34 | + <% end %> | ||
35 | + | ||
36 | + </ul> | ||
37 | + | ||
38 | + <% total_mediation_comments = mediation.comments.count %> | ||
39 | + | ||
40 | + <span> | ||
41 | + <%= link_to(_( "#{total_mediation_comments} Comments" ) , '#', | ||
42 | + :class => 'display-comment-form', | ||
43 | + :id => 'top-post-comment-button', | ||
44 | + :onclick => "toogle_mediation_comments(#{mediation.id}); return false;") %> | ||
45 | + </span> | ||
46 | + | ||
47 | + <script type="text/javascript"> | ||
48 | + setTimeout(function() { update_mediation_comments('<%= mediation.id %>')}, 5000); | ||
49 | + </script> | ||
50 | + | ||
51 | + <ul id="mediation-comment-list-<%=mediation.id%>" class="mediation-comment-list" style="display:none;"> | ||
52 | + <% if mediation.accept_comments? && mediation.comments.count > 0 %> | ||
53 | + <%= render :partial => 'community_hub_plugin_public/mediation_comment', :collection => mediation.comments %> | ||
54 | + <% end %> | ||
55 | + </ul> | ||
56 | + | ||
57 | + <% if logged_in? && mediation.accept_comments? %> | ||
58 | + <div id='mediation-comment-form-<%=mediation.id%>' class='mediation-comment-form' style="display:none;"> | ||
59 | + <%= render :partial => 'community_hub_plugin_public/mediation_comment_form', | ||
60 | + :locals => { | ||
61 | + :hub => hub, | ||
62 | + :mediation => mediation, | ||
63 | + :comment => Comment.new, | ||
64 | + :url => { | ||
65 | + :controller => :comment, | ||
66 | + :action => :create | ||
67 | + }, | ||
68 | + :display_link => true, | ||
69 | + :cancel_triggers_hide => true | ||
70 | + } %> | ||
71 | + </div> | ||
72 | + <% end %> | ||
73 | + | ||
74 | +</li> | ||
0 | \ No newline at end of file | 75 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_mediation_comment.rhtml
0 → 100644
@@ -0,0 +1,6 @@ | @@ -0,0 +1,6 @@ | ||
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> | ||
0 | \ No newline at end of file | 7 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_mediation_comment_form.rhtml
0 → 100644
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
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 | + :style => 'width: 97%;', | ||
10 | + :rows => 4, | ||
11 | + :placeholder => _('Type your comment here')) %> | ||
12 | + <%= submit_button('add', _('Post'), :onclick => 'new_message(this); return false;') %> | ||
13 | +<% end %> | ||
0 | \ No newline at end of file | 14 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_post.rhtml
1 | <% extend CommunityHubPlugin::HubHelper %> | 1 | <% extend CommunityHubPlugin::HubHelper %> |
2 | -<li id="<%= post.id %>" class="<%=post_css_classes(post.id, latest_post, oldest_post)%>"> | ||
3 | - | ||
4 | - <ul> | ||
5 | - <li class="time"> | ||
6 | - <%= show_time(post.created_at) %> | ||
7 | - </li> | ||
8 | - <li class="avatar"> | ||
9 | - | ||
10 | - <%= link_to image_tag(profile_icon(post.author, :minor)), | ||
11 | - post.author.url, | ||
12 | - :class => 'comment-picture1', | ||
13 | - :title => post.author_name | ||
14 | - %> | ||
15 | - | ||
16 | - </li> | ||
17 | - <li class="message"> | ||
18 | - <%= txt2html post.body %> | ||
19 | - </li> | ||
20 | - | ||
21 | - <% if logged_in? %> | ||
22 | - | ||
23 | - <li class="mediation-bar"> | ||
24 | 2 | ||
25 | - <ul> | ||
26 | - <% if mediator?(hub) %> | ||
27 | - <li class="promote"> | ||
28 | - <a id="<%= post.id %>" href="#" onclick="promoteLivePost(<%= post.id %>,<%= user.id %>); return false;"> | ||
29 | - <img src="/designs/icons/default/outras/16x16/actions/spread.png" /> | ||
30 | - </a> | ||
31 | - </li> | ||
32 | - <% end %> | ||
33 | - | ||
34 | - <li class="like"> | ||
35 | - <a id="<%= post.id %>" href="#" onclick="likeLivePost(<%= post.id %>); return false;"> | ||
36 | - <img src="/designs/icons/default/outras/16x16/actions/positive-hand.png" /> | ||
37 | - </a> | ||
38 | - </li> | ||
39 | - <li class="dislike"> | ||
40 | - <a id="<%= post.id %>" href="#" onclick="dislikeLivePost(<%= post.id %>); return false;"> | ||
41 | - <img src="/designs/icons/default/outras/16x16/actions/negative-hand.png" /> | ||
42 | - </a> | ||
43 | - </li> | ||
44 | - | ||
45 | - <% if mediator?(hub) %> | ||
46 | - <li class="pin"> | ||
47 | - <a id="<%= post.id %>" href="#" onclick="pinLivePost(<%= post.id %>); return false;"> | ||
48 | - <img src="/designs/icons/default/outras/16x16/apps/tags.gif" /> | ||
49 | - </a> | ||
50 | - </li> | 3 | +<li id="<%= post.id %>" class="<%=post_css_classes(post.id, latest_post, oldest_post)%>"> |
4 | + <ul> | ||
5 | + <li class="time"><%= post_time(post.created_at) %></li> | ||
6 | + <li class="avatar"><%= image_tag(profile_icon(post.author, :minor)) %></li> | ||
7 | + <li class="message"><span class="author"><%= post.author_name %>:</span> <%= post.body %></li> | ||
8 | + | ||
9 | + <% if mediator?(hub) %> | ||
10 | + <li class="mediation-bar"> | ||
11 | + | ||
12 | + <ul> | ||
13 | + | ||
14 | + <li class="promote"> | ||
15 | + <img class="<%= !promoted?(hub, post.author.id) ? "promoted" : "not-promoted" %>" src="/designs/icons/default/outras/16x16/actions/spread.png" /> | ||
16 | + </li> | ||
17 | + <% end %> | ||
18 | + | ||
19 | + <% if mediator?(hub) %> | ||
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="pinned" src="/designs/icons/default/outras/16x16/apps/tags.gif" /> | ||
24 | + </a> | ||
25 | + <% else %> | ||
26 | + <img class="not-pinned" src="/designs/icons/default/outras/16x16/apps/tags.gif" /> | ||
51 | <% end %> | 27 | <% end %> |
28 | + </li> | ||
52 | 29 | ||
53 | - </ul> | ||
54 | - | ||
55 | - </li> | 30 | + </ul> |
56 | 31 | ||
57 | - <% end %> | ||
58 | - </ul> | 32 | + </li> |
33 | + <% end %> | ||
59 | 34 | ||
35 | + </ul> | ||
60 | </li> | 36 | </li> |
61 | \ No newline at end of file | 37 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_post_form.rhtml
@@ -1,82 +0,0 @@ | @@ -1,82 +0,0 @@ | ||
1 | - <% if user_role == 'visitor' %> | ||
2 | - | ||
3 | - <% remote_form_for( :comment, | ||
4 | - Comment.new, | ||
5 | - :url => { | ||
6 | - :profile => hub.profile.identifier, | ||
7 | - :controller => 'comment', | ||
8 | - :action => 'create', | ||
9 | - :id => hub.id | ||
10 | - }, | ||
11 | - :html => { :class => 'comment_form' } ) do |f| %> | ||
12 | - | ||
13 | - <div> | ||
14 | - <span><%= _("Streaming") %></span> | ||
15 | - </div> | ||
16 | - <div> | ||
17 | - <%= f.text_area(:body, | ||
18 | - :style => 'width: 99%;', | ||
19 | - :placeholder => _('Type your message here')) %> | ||
20 | - </div> | ||
21 | - <div> | ||
22 | - <%= submit_button('add', _('Post'), :onclick => "send_message_for_stream(this); return false;") %> | ||
23 | - </div> | ||
24 | - | ||
25 | - <% end %> | ||
26 | - | ||
27 | - <% end %> | ||
28 | - | ||
29 | - <% if user_role == 'mediator' %> | ||
30 | - | ||
31 | - <%= render :file => 'shared/tiny_mce' %> | ||
32 | - | ||
33 | - <% category_ids = [] %> | ||
34 | - | ||
35 | - <% remote_form_for( :article, | ||
36 | - TinyMceArticle.new, | ||
37 | - :url => { | ||
38 | - :profile => profile.identifier, | ||
39 | - :controller => 'cms', | ||
40 | - :action => 'new', | ||
41 | - :type => 'TinyMceArticle', | ||
42 | - :success_back_to => "", | ||
43 | - :q => "", | ||
44 | - :parent_id => hub.id, | ||
45 | - :back_to => "" | ||
46 | - }, | ||
47 | - :before => "tinymce.triggerSave(); setMediationTimestamp()", | ||
48 | - :loading => "alert('loading...')", | ||
49 | - :complete => "tinymce.get('article_body').setContent('')", | ||
50 | - :html => { :class => 'comment_form' } ) do |f| %> | ||
51 | - | ||
52 | - <%= f.hidden_field :moderate_comments, :value => 0 %> | ||
53 | - <%= f.hidden_field :translation_of_id, :value => "" %> | ||
54 | - <%= f.hidden_field :notify_comments, :value => 0 %> | ||
55 | - <%= f.hidden_field :accept_comments, :value => 1 %> | ||
56 | - <%= f.hidden_field :tag_list, :value => "" %> | ||
57 | - <%= f.hidden_field :display_versions, :value => 0 %> | ||
58 | - <%= f.hidden_field :allow_members_to_edit, :value => 0 %> | ||
59 | - <%= f.hidden_field :abstract, :value => "" %> | ||
60 | - <%= f.hidden_field :display_hits, :value => 0 %> | ||
61 | - <%= f.hidden_field :parent_id, :value => hub.id %> | ||
62 | - <%= f.hidden_field :name %> | ||
63 | - <%= f.hidden_field :published, :value => true %> | ||
64 | - <%= f.hidden_field :license_id, :value => "" %> | ||
65 | - <%= hidden_field_tag "article[category_ids][]", "" %> | ||
66 | - <%= f.hidden_field :language, :value => "en" %> | ||
67 | - | ||
68 | - <div> | ||
69 | - <div> | ||
70 | - <%= f.text_area(:body, | ||
71 | - :style => 'width: 99%;', | ||
72 | - :class => 'mceEditor', | ||
73 | - :placeholder => _('Type your message for mediation here')) %> | ||
74 | - </div> | ||
75 | - <div> | ||
76 | - <%= submit_button('add', _('Post'), :onclick => "send_post_for_mediation(this); return false;")%> | ||
77 | - </div> | ||
78 | - </div> | ||
79 | - | ||
80 | - <% end %> | ||
81 | - | ||
82 | - <% end %> | ||
83 | \ No newline at end of file | 0 | \ No newline at end of file |
plugins/community_hub/views/community_hub_plugin_public/_settings.rhtml
1 | -<ul class="settings"> | ||
2 | - <li class="twitter"> | ||
3 | - <%= link_to _("Twitter settings"), :controller => 'cms', :action => 'edit', :id => @page.id %> | ||
4 | - <form> | ||
5 | - <label>#hashtag a ser seguida</label> | ||
6 | - <input></input><input class="btn-ok" type="submit" value="ok"></input> | ||
7 | - </form> | ||
8 | - </li> | ||
9 | - <li class="general"> | ||
10 | - <%= link_to _("General settings"), :controller => 'cms', :action => 'edit', :id => @page.id %> | ||
11 | - </li> | ||
12 | -</ul> | 1 | +<div class="settings"> |
2 | + <ul class="settings"> | ||
3 | + <li class="twitter"> | ||
4 | + <%= link_to _("Twitter settings") + '<span class="collapse">►</span>', :controller => 'cms', :action => 'edit', :id => @page.id %> | ||
5 | + </li> | ||
6 | + <li class="facebook"> | ||
7 | + <%= link_to _("Facebook settings") + '<span class="collapse">►</span>', :controller => 'cms', :action => 'edit', :id => @page.id %> | ||
8 | + </li> | ||
9 | + <li class="general"> | ||
10 | + <%= link_to _("General settings") + '<span class="collapse">►</span>', :controller => 'cms', :action => 'edit', :id => @page.id %> | ||
11 | + </li> | ||
12 | + </ul> | ||
13 | +</div> | ||
13 | \ No newline at end of file | 14 | \ No newline at end of file |
plugins/community_hub/views/content_viewer/hub.rhtml
1 | <% extend CommunityHubPlugin::HubHelper %> | 1 | <% extend CommunityHubPlugin::HubHelper %> |
2 | 2 | ||
3 | -<% CommunityHubPlugin::Hub.start_twitter_service(@page) %> | ||
4 | - | ||
5 | <div id="<%=@page.id%>" class="hub"> | 3 | <div id="<%=@page.id%>" class="hub"> |
6 | 4 | ||
7 | <div class="title"><%= @page.title %> HUB</div> | 5 | <div class="title"><%= @page.title %> HUB</div> |
@@ -32,78 +30,36 @@ | @@ -32,78 +30,36 @@ | ||
32 | 30 | ||
33 | <div class="form"> | 31 | <div class="form"> |
34 | 32 | ||
35 | - <% if !mediator?(@page.id) %> | ||
36 | - | ||
37 | - <form action="/profile/<%=profile.identifier%>/comment/create/<%=@page.id%>" | ||
38 | - class="comment_form" | ||
39 | - method="post"> | ||
40 | - | ||
41 | - <div> | ||
42 | - <span>Streaming</span> | ||
43 | - </div> | ||
44 | - <div> | ||
45 | - <textarea cols="38" | ||
46 | - id="comment_body" | ||
47 | - name="comment[body]" | ||
48 | - placeholder="Type your message here" | ||
49 | - rows="10" | ||
50 | - style="width: 99%;"></textarea> | ||
51 | - </div> | ||
52 | - <div> | ||
53 | - <input class="button with-text icon-add submit" | ||
54 | - name="commit" | ||
55 | - onclick="send_message_for_stream(this); return false;" | ||
56 | - type="submit" | ||
57 | - value="Post"> | ||
58 | - </div> | ||
59 | - | ||
60 | - </form> | 33 | + <% if !mediator?(@page) %> |
61 | 34 | ||
62 | - <% end %> | 35 | + <% form_for :message, |
36 | + :method => 'post', | ||
37 | + :url => { | ||
38 | + :controller => 'community_hub_plugin_public', | ||
39 | + :action => 'new_message', | ||
40 | + :article_id => @page.id | ||
41 | + } do |f| %> | ||
42 | + <span><%= _("Streaming") %></span> | ||
43 | + <br /> | ||
44 | + <%= f.text_area :body, :style => "width: 99%;", :cols => "38", :rows => "10", :placeholder => _("Type your message here") %> | ||
45 | + <%= submit_button('add', _('Post'), :onclick => 'new_message(this); return false;') %> | ||
46 | + <% end %> | ||
63 | 47 | ||
64 | - <% if mediator?(@page.id) %> | 48 | + <% else %> |
65 | 49 | ||
66 | <%= render :file => 'shared/tiny_mce' %> | 50 | <%= render :file => 'shared/tiny_mce' %> |
67 | 51 | ||
68 | - <% category_ids = [] %> | ||
69 | - | ||
70 | - <form action="/myprofile/<%=profile.identifier%>/cms/new?back_to=&parent_id=<%=@page.id%>&q=&success_back_to=&type=TinyMceArticle" | ||
71 | - class="comment_form" | ||
72 | - method="post"> | ||
73 | - | ||
74 | - <input id="article_moderate_comments" name="article[moderate_comments]" type="hidden" value="0" /> | ||
75 | - <input id="article_translation_of_id" name="article[translation_of_id]" type="hidden" value="" /> | ||
76 | - <input id="article_notify_comments" name="article[notify_comments]" type="hidden" value="0" /> | ||
77 | - <input id="article_accept_comments" name="article[accept_comments]" type="hidden" value="1" /> | ||
78 | - <input id="article_tag_list" name="article[tag_list]" type="hidden" value="" /> | ||
79 | - <input id="article_display_versions" name="article[display_versions]" type="hidden" value="0" /> | ||
80 | - <input id="article_allow_members_to_edit" name="article[allow_members_to_edit]" type="hidden" value="0" /> | ||
81 | - <input id="article_abstract" name="article[abstract]" type="hidden" value="" /> | ||
82 | - <input id="article_display_hits" name="article[display_hits]" type="hidden" value="0" /> | ||
83 | - <input id="article_parent_id" name="article[parent_id]" type="hidden" value="446" /> | ||
84 | - <input id="article_name" name="article[name]" type="hidden" /> | ||
85 | - <input id="article_published" name="article[published]" type="hidden" value="true" /> | ||
86 | - <input id="article_license_id" name="article[license_id]" type="hidden" value="" /> | ||
87 | - <input id="article_category_ids_" name="article[category_ids][]" type="hidden" value="" /> | ||
88 | - <input id="article_language" name="article[language]" type="hidden" value="en" /> | ||
89 | - | ||
90 | - <textarea class="mceEditor" | ||
91 | - cols="40" | ||
92 | - id="article_body" | ||
93 | - name="article[body]" | ||
94 | - placeholder="Type your message for mediation here" | ||
95 | - rows="20" | ||
96 | - style="width: 99%;" | ||
97 | - aria-hidden="true"> | ||
98 | - </textarea> | ||
99 | - | ||
100 | - <input class="button with-text icon-add submit" | ||
101 | - name="commit" | ||
102 | - onclick="send_post_for_mediation(this); return false;" | ||
103 | - type="submit" | ||
104 | - value="Post" /> | ||
105 | - | ||
106 | - </form> | 52 | + <% form_for :article, |
53 | + :method => 'post', | ||
54 | + :url => { | ||
55 | + :controller => 'community_hub_plugin_public', | ||
56 | + :action => 'new_mediation', | ||
57 | + :profile_id => profile.id | ||
58 | + } do |f| %> | ||
59 | + <%= f.hidden_field :parent_id, :value => @page.id %> | ||
60 | + <%= f.text_area :body, :style => "width: 100%;", :class => "mceEditor" %> | ||
61 | + <%= submit_button('add', _('Post'), :onclick => 'new_mediation(this); return false;') %> | ||
62 | + <% end %> | ||
107 | 63 | ||
108 | <% end %> | 64 | <% end %> |
109 | 65 | ||
@@ -111,10 +67,13 @@ | @@ -111,10 +67,13 @@ | ||
111 | 67 | ||
112 | <% end %> | 68 | <% end %> |
113 | 69 | ||
114 | - <% if logged_in? %> | ||
115 | - <div class="settings"> | 70 | + <% if mediator?(@page) %> |
116 | <%= render :partial => "community_hub_plugin_public/settings" %> | 71 | <%= render :partial => "community_hub_plugin_public/settings" %> |
117 | - </div> | 72 | + <% else %> |
73 | + <%= render :partial => "community_hub_plugin_public/banner" %> | ||
74 | + <%= render :partial => "community_hub_plugin_public/embed" %> | ||
118 | <% end %> | 75 | <% end %> |
119 | 76 | ||
120 | </div> | 77 | </div> |
78 | + | ||
79 | +<%= javascript_include_tag '/plugins/community_hub/javascripts/community_hub.js' %> |