Commit 04d21bc24bddf81d4c6ec2b6d0dbfc65429ed371

Authored by Victor Costa
2 parents f4888a56 3d405423

Merge branch 'AI3074-community_dashboard' of gitlab.com:participa/noosfero into …

…AI3074-community_dashboard
plugins/community_hub/lib/community_hub_plugin/hub.rb
... ... @@ -18,6 +18,10 @@ class CommunityHubPlugin::Hub < Folder
18 18 hub.mediators = [hub.author.id]
19 19 end
20 20  
  21 + def notify_comments
  22 + false
  23 + end
  24 +
21 25 def self.icon_name(article = nil)
22 26 'community-hub'
23 27 end
... ...
plugins/community_hub/public/javascripts/community_hub.js
... ... @@ -2,39 +2,66 @@ var latest_post_id = 0;
2 2 var oldest_post_id = 0;
3 3 live_scroll_position = 0;
4 4  
  5 +function clearLoadingMediationCommentSignal(mediation) {
  6 + jQuery(".loading-mediation-comment").filter("#" + mediation).removeClass("loading-signal-error");
  7 + jQuery(".loading-mediation-comment").filter("#" + mediation).removeClass("loading-signal-done");
  8 +}
  9 +
  10 +function clearLoadingMessageSignal() {
  11 + jQuery("#loading-message").removeClass("loading-signal-error");
  12 + jQuery("#loading-message").removeClass("loading-signal-done");
  13 +}
  14 +
  15 +function clearLoadingMediationSignal() {
  16 + jQuery("#loading-mediation").removeClass("loading-signal-error");
  17 + jQuery("#loading-mediation").removeClass("loading-signal-done");
  18 +}
  19 +
5 20 function toogle_mediation_comments(mediation) {
6 21 jQuery("#mediation-comment-list-" + mediation ).toggle();
7 22 jQuery("#mediation-comment-form-" + mediation ).toggle();
8 23 }
9 24  
10 25  
11   -function hub_open_loading(button) {
12   - var html = '<div id="hub-loading">' +
13   - '<img src="/images/loading-small.gif" />' +
14   - '</div>';
  26 +function new_mediation_comment(button, mediation) {
  27 + var form = jQuery(button).parents("form");
15 28  
16   - //$('.hub .form .submit').after(html);
17   - jQuery(button).after(html);
18   - jQuery('#hub-loading').fadeIn('slow');
19   -}
  29 + jQuery(".loading-mediation-comment").filter("#" + mediation).addClass("loading-signal-processing");
20 30  
  31 + jQuery.post(form.attr("action"), form.serialize(), function(data) {
  32 + jQuery(".loading-mediation-comment").filter("#" + mediation).removeClass("loading-signal-processing");
  33 + if (data.ok) {
  34 + jQuery("#mediation-comment-form-" + mediation + " textarea").val('');
  35 + jQuery(".loading-mediation-comment").filter("#" + mediation).addClass("loading-signal-done");
  36 + setTimeout(function(){
  37 + clearLoadingMediationCommentSignal(mediation);
  38 + }, 3000);
  39 + }
  40 + else {
  41 + jQuery(".loading-mediation-comment").filter("#" + mediation).addClass("loading-signal-error");
  42 + setTimeout(clearLoadingMessageSignal, 3000);
  43 + }
  44 + }, 'json');
21 45  
22   -function hub_close_loading() {
23   - jQuery('#hub-loading').fadeOut('slow', function() {
24   - jQuery('#hub-loading').remove();
25   - });
26 46 }
27 47  
28 48  
29 49 function new_message(button) {
30 50 var form = jQuery(button).parents("form");
31 51  
32   - //hub_open_loading();
  52 + jQuery("#loading-message").addClass("loading-signal-processing");
  53 +
33 54 jQuery.post(form.attr("action"), form.serialize(), function(data) {
  55 + jQuery("#loading-message").removeClass("loading-signal-processing");
34 56 if (data.ok) {
35   - jQuery("#message_body").val('');
  57 + jQuery(".hub .form #message_body").val('');
  58 + jQuery("#loading-message").addClass("loading-signal-done");
  59 + setTimeout(clearLoadingMessageSignal, 3000);
  60 + }
  61 + else {
  62 + jQuery("#loading-message").addClass("loading-signal-error");
  63 + setTimeout(clearLoadingMessageSignal, 3000);
36 64 }
37   - //hub_close_loading();
38 65 }, 'json');
39 66  
40 67 }
... ... @@ -43,23 +70,25 @@ function new_message(button) {
43 70 function new_mediation(button) {
44 71 var form = jQuery(button).parents("form");
45 72  
46   - //hub_open_loading();
  73 + jQuery("#loading-mediation").addClass("loading-signal-processing");
  74 +
47 75 tinymce.triggerSave();
48 76 jQuery.post(form.attr("action"), form.serialize(), function(data) {
  77 + jQuery("#loading-mediation").removeClass("loading-signal-processing");
49 78 if (data.ok) {
  79 + jQuery("#loading-mediation").addClass("loading-signal-done");
50 80 tinymce.get('article_body').setContent('');
  81 + setTimeout(clearLoadingMediationSignal, 3000);
  82 + }
  83 + else {
  84 + jQuery("#loading-mediation").addClass("loading-signal-error");
  85 + setTimeout(clearLoadingMediationSignal, 3000);
51 86 }
52   - //hub_close_loading();
53 87 }, 'json');
54 88  
55 89 }
56 90  
57 91  
58   -function toogleAutoScrolling() {
59   - alert(jQuery("#auto_scrolling").attr('checked'));
60   -}
61   -
62   -
63 92 function promote_user(user_id) {
64 93  
65 94 var hub_id = jQuery(".hub").attr('id');
... ... @@ -88,7 +117,7 @@ function pin_message(post_id) {
88 117 type: 'get',
89 118 dataType: 'json',
90 119 data: { message: post_id, hub: hub_id },
91   - success: function(data) {
  120 + success: function(data) {
92 121 },
93 122 error: function(ajax, stat, errorThrown) {
94 123 console.log(stat);
... ... @@ -108,8 +137,6 @@ function update_mediation_comments(mediation) {
108 137 var latest_post_id = jQuery("#mediation-comment-list-" + mediation + " li.mediation-comment").last().attr('id');
109 138 }
110 139  
111   - //console.log(latest_post_id);
112   -
113 140 jQuery.ajax({
114 141 url: '/plugin/community_hub/public/newer_mediation_comment',
115 142 type: 'get',
... ... @@ -117,6 +144,7 @@ function update_mediation_comments(mediation) {
117 144 success: function(data) {
118 145 if (data.trim().length > 0) {
119 146 jQuery("#mediation-comment-list-" + mediation + "").append(data);
  147 + jQuery("#mediation-comment-total-" + mediation).html(jQuery("#mediation-comment-list-" + mediation + " li.mediation-comment").size());
120 148 }
121 149 },
122 150 error: function(ajax, stat, errorThrown) {
... ... @@ -201,4 +229,4 @@ jQuery(document).ready(function() {
201 229  
202 230 setTimeout(update_live_stream, 5000);
203 231 setTimeout(update_mediations, 7000);
204   -});
205 232 \ No newline at end of file
  233 +});
... ...
plugins/community_hub/public/style.css
... ... @@ -78,7 +78,7 @@ clear: both;
78 78 font-weight: bold;
79 79 float: left;
80 80 display: inline-block;
81   - line-height: 20px;
  81 + line-height: 16px;
82 82 margin-right: 5px;
83 83 }
84 84  
... ... @@ -107,6 +107,7 @@ clear: both;
107 107  
108 108 .hub .mediation-bar ul li.pin{
109 109 height: 25px;
  110 + margin-right: 10px;
110 111 }
111 112  
112 113 .hub .remove{}
... ... @@ -153,6 +154,19 @@ clear: both;
153 154 margin-bottom: 2px;
154 155 }
155 156  
  157 +.hub .mediation-comment-form {
  158 + margin-left: 70px;
  159 + margin-top: 10px;
  160 +}
  161 +
  162 +.hub input.button.with-text.icon-add.submit{
  163 + display: block;
  164 +}
  165 +
  166 +.hub ul#mediation-posts .post {
  167 + padding-bottom: 10px;
  168 +}
  169 +
156 170 /**/
157 171  
158 172 .hub .live {
... ... @@ -367,3 +381,35 @@ textarea#message_body {
367 381 width: 80%;
368 382 }
369 383  
  384 +.hub #loading-message,
  385 +.hub #loading-mediation {
  386 + width: 16px;
  387 + height: 16px;
  388 + display: inline-block;
  389 + float: right;
  390 + margin-top: 17px;
  391 + margin-right: 270px;
  392 +}
  393 +
  394 +.hub .loading-mediation-comment {
  395 + width: 16px;
  396 + height: 16px;
  397 + display: inline-block;
  398 + float: right;
  399 + margin-top: 16px;
  400 + margin-right: 260px;
  401 +}
  402 +
  403 +.loading-signal-done {
  404 + background-image: url(/plugins/community_hub/icons/hub-sverde-a.png);
  405 +}
  406 +
  407 +.loading-signal-error {
  408 + background-image: url(/plugins/community_hub/icons/hub-svermelho-a.png);
  409 +}
  410 +
  411 +.loading-signal-processing {
  412 + background-image: url(/plugins/community_hub/icons/hub-samarelo.gif);
  413 +}
  414 +
  415 +
... ...
plugins/community_hub/views/community_hub_plugin_public/_mediation.rhtml
... ... @@ -6,25 +6,25 @@
6 6 <li class="time"><%= post_time(mediation.created_at) %></li>
7 7 <li class="avatar"><%= image_tag(profile_icon(mediation.author, :minor)) %></li>
8 8 <li class="message"><span class="author"><%= mediation.author_name %>:</span> <%= mediation.body %></li>
9   -
  9 +
10 10 <% if mediator?(hub) %>
11 11 <li class="mediation-bar">
12 12  
13 13 <ul>
14   -
  14 +
15 15 <li class="promote">
16   - <% if !promoted?(hub, mediation.author.id) %>
  16 + <% if promoted?(hub, mediation.author.id) %>
17 17 <a id="<%= mediation.id %>" href="#" onclick="promote_user(<%= mediation.author.id %>); return false;">
18   - <img class="promoted" src="/plugins/community_hub/icons/hub-promote-icon.png" />
  18 + <img class="promoted" src="/plugins/community_hub/icons/hub-promote-icon.png" title="<%= _("User promoted") %>" />
19 19 </a>
20 20 <% else %>
21   - <img class="not-promoted" src="/plugins/community_hub/icons/hub-not-promote-icon.png" />
  21 + <img class="not-promoted" src="/plugins/community_hub/icons/hub-not-promote-icon.png" title="<%= _("User not promoted") %>" />
22 22 <% end %>
23 23 </li>
24 24  
25 25 <% if pinned_mediation?(hub, mediation.id) %>
26 26 <li class="pin">
27   - <img class="pinned" src="/plugins/community_hub/icons/hub-not-pinned-icon.png" />
  27 + <img class="pinned" src="/plugins/community_hub/icons/hub-not-pinned-icon.png" title="<%= _("Message pinned")%>" />
28 28 </li>
29 29 <% end %>
30 30  
... ... @@ -38,16 +38,16 @@
38 38 <% total_mediation_comments = mediation.comments.count %>
39 39  
40 40 <span class="comment-count">
41   - <%= link_to(_( "#{total_mediation_comments} Comments" ) , '#',
42   - :class => 'display-comment-form',
43   - :id => 'top-post-comment-button',
  41 + <%= link_to(_( "<span id='mediation-comment-total-#{mediation.id}'>#{total_mediation_comments}</span> Comments" ) , '#',
  42 + :class => 'display-comment-form',
  43 + :id => 'top-post-comment-button',
44 44 :onclick => "toogle_mediation_comments(#{mediation.id}); return false;") %>
45 45 </span>
46 46  
47 47 <script type="text/javascript">
48 48 setTimeout(function() { update_mediation_comments('<%= mediation.id %>')}, 5000);
49 49 </script>
50   -
  50 +
51 51 <ul id="mediation-comment-list-<%=mediation.id%>" class="mediation-comment-list" style="display:none;">
52 52 <% if mediation.accept_comments? && mediation.comments.count > 0 %>
53 53 <%= render :partial => 'community_hub_plugin_public/mediation_comment', :collection => mediation.comments %>
... ... @@ -60,15 +60,15 @@
60 60 :locals => {
61 61 :hub => hub,
62 62 :mediation => mediation,
63   - :comment => Comment.new,
  63 + :comment => Comment.new,
64 64 :url => {
65   - :controller => :comment,
  65 + :controller => :comment,
66 66 :action => :create
67   - },
68   - :display_link => true,
  67 + },
  68 + :display_link => true,
69 69 :cancel_triggers_hide => true
70 70 } %>
71 71 </div>
72 72 <% end %>
73 73  
74   -</li>
75 74 \ No newline at end of file
  75 +</li>
... ...
plugins/community_hub/views/community_hub_plugin_public/_mediation_comment_form.rhtml
... ... @@ -8,5 +8,6 @@
8 8 <%= f.text_area(:body,
9 9 :rows => 4,
10 10 :placeholder => _('Type your comment here')) %>
11   - <%= submit_button('add', _('Post'), :onclick => 'new_message(this); return false;') %>
12   -<% end %>
13 11 \ No newline at end of file
  12 + <%= submit_button('add', _('Post'), :onclick => "new_mediation_comment(this,#{mediation.id}); return false;") %>
  13 + <span id="<%=mediation.id%>" class="loading-mediation-comment"></span>
  14 +<% end %>
... ...
plugins/community_hub/views/community_hub_plugin_public/_post.rhtml
... ... @@ -16,17 +16,7 @@
16 16  
17 17 <% if mediator?(hub) && post.title != 'hub-message-twitter' && post.title != 'hub-message-facebook' %>
18 18 <li class="mediation-bar">
19   -
20 19 <ul>
21   - <li class="promote">
22   - <% if promoted?(hub, post.author.id) == 'promoted' %>
23   - <a id="<%= post.id %>" href="#" onclick="pin_message(<%= post.id %>); return false;">
24   - <img class="promoted" src="/plugins/community_hub/icons/hub-promote-icon.png" />
25   - </a>
26   - <% else %>
27   - <img class="not-promoted" src="/plugins/community_hub/icons/hub-not-promote-icon.png" />
28   - <% end %>
29   - </li>
30 20 <li class="pin">
31 21 <% if !pinned_message?(hub, post.id) %>
32 22 <a id="<%= post.id %>" href="#" onclick="pin_message(<%= post.id %>); return false;">
... ... @@ -37,7 +27,6 @@
37 27 <% end %>
38 28 </li>
39 29 </ul>
40   -
41 30 </li>
42 31 <% end %>
43 32  
... ...
plugins/community_hub/views/content_viewer/hub.rhtml
... ... @@ -43,6 +43,7 @@
43 43 <br />
44 44 <%= f.text_area :body, :style => "width: 99%;", :cols => "38", :rows => "10", :placeholder => _("Type your message here") %>
45 45 <%= submit_button('add', _('Post'), :onclick => 'new_message(this); return false;') %>
  46 + <span id="loading-message"></span>
46 47 <% end %>
47 48  
48 49 <% else %>
... ... @@ -59,6 +60,7 @@
59 60 <%= f.hidden_field :parent_id, :value => @page.id %>
60 61 <%= f.text_area :body, :style => "width: 100%;", :class => "mceEditor" %>
61 62 <%= submit_button('add', _('Post'), :onclick => 'new_mediation(this); return false;') %>
  63 + <span id="loading-mediation"></span>
62 64 <% end %>
63 65  
64 66 <% end %>
... ...