Commit d6a51c5a1a66110364f3f488354ceeae52b4c101

Authored by Francisco Marcelo de Araújo Lima Júnior
1 parent 271f561a

#community dashboard - code refactoring

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 &lt; Folder @@ -25,13 +31,13 @@ class CommunityHubPlugin::Hub &lt; 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 &lt; Folder @@ -44,7 +50,7 @@ class CommunityHubPlugin::Hub &lt; 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
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +<div class="banner">
  2 + <span><%= _("BANNER SPACE") %></span>
  3 +</div>
0 \ No newline at end of file 4 \ No newline at end of file
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">&#9658;</span>', :controller => 'cms', :action => 'edit', :id => @page.id %>
  5 + </li>
  6 + <li class="facebook">
  7 + <%= link_to _("Facebook settings") + '<span class="collapse">&#9658;</span>', :controller => 'cms', :action => 'edit', :id => @page.id %>
  8 + </li>
  9 + <li class="general">
  10 + <%= link_to _("General settings") + '<span class="collapse">&#9658;</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' %>