Commit 49e7109df55b26dae99c31b796296b4c533750d7
1 parent
79818886
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
#community dashboard - add infra
Showing
14 changed files
with
376 additions
and
0 deletions
Show diff stats
app/controllers/public/content_viewer_controller.rb
| @@ -115,6 +115,8 @@ class ContentViewerController < ApplicationController | @@ -115,6 +115,8 @@ class ContentViewerController < ApplicationController | ||
| 115 | if params[:slideshow] | 115 | if params[:slideshow] |
| 116 | render :action => 'slideshow', :layout => 'slideshow' | 116 | render :action => 'slideshow', :layout => 'slideshow' |
| 117 | end | 117 | end |
| 118 | + | ||
| 119 | + render :file => @page.view_page, :layout => true | ||
| 118 | end | 120 | end |
| 119 | 121 | ||
| 120 | def article_versions | 122 | def article_versions |
app/models/article.rb
| @@ -730,6 +730,10 @@ class Article < ActiveRecord::Base | @@ -730,6 +730,10 @@ class Article < ActiveRecord::Base | ||
| 730 | true | 730 | true |
| 731 | end | 731 | end |
| 732 | 732 | ||
| 733 | + def view_page | ||
| 734 | + "content_viewer/view_page.rhtml" | ||
| 735 | + end | ||
| 736 | + | ||
| 733 | private | 737 | private |
| 734 | 738 | ||
| 735 | def sanitize_tag_list | 739 | def sanitize_tag_list |
plugins/community_hub/controllers/myprofile/community_dashboard_plugin_myprofile_controller.rb
0 → 100644
| @@ -0,0 +1,18 @@ | @@ -0,0 +1,18 @@ | ||
| 1 | +class CommunityDashboardPluginMyprofileController < MyProfileController | ||
| 2 | + | ||
| 3 | + append_view_path File.join(File.dirname(__FILE__) + '/../../views') | ||
| 4 | + | ||
| 5 | + before_filter :allow_edit_dashboard, :only => :save_order | ||
| 6 | + | ||
| 7 | + def save_order | ||
| 8 | + dashboard = profile.articles.find(params[:dashboard]) | ||
| 9 | + redirect_to dashboard.url | ||
| 10 | + end | ||
| 11 | + | ||
| 12 | + protected | ||
| 13 | + | ||
| 14 | + def allow_edit_dashboard | ||
| 15 | + render_access_denied unless profile.articles.find(params[:dashboard]).allow_edit?(user) | ||
| 16 | + end | ||
| 17 | + | ||
| 18 | +end |
plugins/community_hub/controllers/public/community_hub_plugin_public_controller.rb
0 → 100644
| @@ -0,0 +1,38 @@ | @@ -0,0 +1,38 @@ | ||
| 1 | +class CommunityHubPlugin < Noosfero::Plugin | ||
| 2 | + | ||
| 3 | + def self.plugin_name | ||
| 4 | + 'Community Hub' | ||
| 5 | + end | ||
| 6 | + | ||
| 7 | + def self.plugin_description | ||
| 8 | + _("New kind of content for communities.") | ||
| 9 | + end | ||
| 10 | + | ||
| 11 | + def stylesheet? | ||
| 12 | + true | ||
| 13 | + end | ||
| 14 | + | ||
| 15 | + def js_files | ||
| 16 | + 'javascripts/stream_post_form.js' | ||
| 17 | + end | ||
| 18 | + | ||
| 19 | + def content_types | ||
| 20 | + if context.respond_to?(:params) && context.params | ||
| 21 | + types = [] | ||
| 22 | + parent_id = context.params[:parent_id] | ||
| 23 | + types << CommunityHubPlugin::Hub if context.profile.community? && !parent_id | ||
| 24 | + types | ||
| 25 | + else | ||
| 26 | + [CommunityHubPlugin::Hub] | ||
| 27 | + end | ||
| 28 | + end | ||
| 29 | + | ||
| 30 | + #def self.extra_blocks | ||
| 31 | + # { CommunityHubPlugin::HubBlock => {:position => 1} } | ||
| 32 | + #end | ||
| 33 | + | ||
| 34 | + def content_remove_new(page) | ||
| 35 | + page.kind_of?(CommunityHubPlugin::Hub) | ||
| 36 | + end | ||
| 37 | + | ||
| 38 | +end |
| @@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
| 1 | +class CommunityHubPlugin::Hub < Folder | ||
| 2 | + | ||
| 3 | + def self.icon_name(article = nil) | ||
| 4 | + 'community-hub' | ||
| 5 | + end | ||
| 6 | + | ||
| 7 | + def self.short_description | ||
| 8 | + _("Hub") | ||
| 9 | + end | ||
| 10 | + | ||
| 11 | + def self.description | ||
| 12 | + _('Defines a hub.') | ||
| 13 | + end | ||
| 14 | + | ||
| 15 | + def view_page | ||
| 16 | + "content_viewer/hub.rhtml" | ||
| 17 | + end | ||
| 18 | + | ||
| 19 | + def bli | ||
| 20 | + "bli" | ||
| 21 | + end | ||
| 22 | + | ||
| 23 | + def accept_comments? | ||
| 24 | + true | ||
| 25 | + end | ||
| 26 | + | ||
| 27 | +end | ||
| 0 | \ No newline at end of file | 28 | \ No newline at end of file |
plugins/community_hub/lib/community_hub_plugin/hub_stream_post.rb
0 → 100644
442 Bytes
plugins/community_hub/public/javascripts/stream_post_form.js
0 → 100644
| @@ -0,0 +1,62 @@ | @@ -0,0 +1,62 @@ | ||
| 1 | +function send_message_for_stream(button) { | ||
| 2 | + var $ = jQuery; | ||
| 3 | + open_loading(DEFAULT_LOADING_MESSAGE); | ||
| 4 | + var $button = $(button); | ||
| 5 | + var form = $button.parents("form"); | ||
| 6 | + $button.addClass('stream-post-button-loading'); | ||
| 7 | + $.post(form.attr("action"), form.serialize(), function(data) { | ||
| 8 | + if(data.render_target == null) { | ||
| 9 | + } | ||
| 10 | + else if(data.render_target == 'form') { | ||
| 11 | + } | ||
| 12 | + else if($('#' + data.render_target).size() > 0) { | ||
| 13 | + } | ||
| 14 | + else { | ||
| 15 | + form.find("input[type='text']").add('textarea').each(function() { | ||
| 16 | + this.value = ''; | ||
| 17 | + }); | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + close_loading(); | ||
| 21 | + $button.removeClass('stream-post-button-loading'); | ||
| 22 | + $button.enable(); | ||
| 23 | + }, 'json'); | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +function teste() { | ||
| 27 | + alert('teste'); | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +function send_post_for_mediation(button) { | ||
| 31 | + var $ = jQuery; | ||
| 32 | + open_loading(DEFAULT_LOADING_MESSAGE); | ||
| 33 | + var $button = $(button); | ||
| 34 | + var form = $button.parents("form"); | ||
| 35 | + $button.addClass('stream-post-button-loading'); | ||
| 36 | + $.post(form.attr("action"), form.serialize(), function(data) { | ||
| 37 | + if(data.render_target == null) { | ||
| 38 | + } | ||
| 39 | + else if(data.render_target == 'form') { | ||
| 40 | + } | ||
| 41 | + else if($('#' + data.render_target).size() > 0) { | ||
| 42 | + } | ||
| 43 | + else { | ||
| 44 | + form.find("input[type='text']").add('textarea').each(function() { | ||
| 45 | + this.value = ''; | ||
| 46 | + }); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + close_loading(); | ||
| 50 | + $button.removeClass('stream-post-button-loading'); | ||
| 51 | + $button.enable(); | ||
| 52 | + }); | ||
| 53 | +} | ||
| 54 | + | ||
| 55 | +function clearMediationForm(element) { | ||
| 56 | + alert(element); | ||
| 57 | + //var $field = $(field); | ||
| 58 | + //$field.value = ''; | ||
| 59 | +} | ||
| 60 | + | ||
| 61 | + | ||
| 62 | +//setInterval(teste, 2000); |
| @@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
| 1 | +.icon-newcommunity-hub, | ||
| 2 | +.icon-community-hub { | ||
| 3 | + background-image: url(/plugins/community_hub/icons/community-hub.png) | ||
| 4 | +} | ||
| 5 | + | ||
| 6 | +#hub{ | ||
| 7 | + border:1px solid red; | ||
| 8 | +} | ||
| 9 | + | ||
| 10 | +#hub .body{ | ||
| 11 | + border:1px solid green; | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +#hub .live{ | ||
| 15 | + border:1px solid yellow; | ||
| 16 | + float: left; | ||
| 17 | + width: 50%; | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +#hub .mediation{ | ||
| 21 | + border:1px solid black; | ||
| 22 | + width: 50%; | ||
| 23 | +} | ||
| 24 | + | ||
| 25 | +#hub-posting-area td { | ||
| 26 | + padding: 0px; | ||
| 27 | +} | ||
| 0 | \ No newline at end of file | 28 | \ No newline at end of file |
plugins/community_hub/views/content_viewer/_comment.rhtml
0 → 100644
| @@ -0,0 +1,37 @@ | @@ -0,0 +1,37 @@ | ||
| 1 | +<li id="<%= comment.anchor %>" class="article-comment" style="border:1px solid black;"> | ||
| 2 | + | ||
| 3 | + <ul style="border:1px solid red;"> | ||
| 4 | + <li style="border:1px solid red;"> | ||
| 5 | + | ||
| 6 | + <% if comment.author %> | ||
| 7 | + <%= image_tag(profile_icon(comment.author, :minor)) %> | ||
| 8 | + <% end %> | ||
| 9 | + | ||
| 10 | + </li> | ||
| 11 | + <li style="border:1px solid red;"> | ||
| 12 | + <%= show_time(comment.created_at) %> | ||
| 13 | + </li> | ||
| 14 | + <li style="border:1px solid red;"> | ||
| 15 | + <%= txt2html comment.body %> | ||
| 16 | + </li> | ||
| 17 | + <li style="border:1px solid red;"> | ||
| 18 | + | ||
| 19 | + <ul style="border:1px solid red;"> | ||
| 20 | + <li> | ||
| 21 | + <a href="<%= url_for({:controller => 'comment', :action => 'destroy', :id => comment.id}) %>">remover postagem</a> | ||
| 22 | + </li> | ||
| 23 | + <li> | ||
| 24 | + <a href="<%= url_for({:controller => 'comment', :action => 'destroy', :id => comment.id}) %>">promover usuário</a> | ||
| 25 | + </li> | ||
| 26 | + <li> | ||
| 27 | + <a href="<%= url_for({:controller => 'comment', :action => 'destroy', :id => comment.id}) %>">curtir postagem</a> | ||
| 28 | + </li> | ||
| 29 | + <li> | ||
| 30 | + <a href="<%= url_for({:controller => 'comment', :action => 'destroy', :id => comment.id}) %>">não curtir postagem</a> | ||
| 31 | + </li> | ||
| 32 | + </ul> | ||
| 33 | + | ||
| 34 | + </li> | ||
| 35 | + </ul> | ||
| 36 | + | ||
| 37 | +</li> |
plugins/community_hub/views/content_viewer/_hub_mediation_item.rhtml
0 → 100644
| @@ -0,0 +1,134 @@ | @@ -0,0 +1,134 @@ | ||
| 1 | +<!-- HUB --> | ||
| 2 | +<div class="hub" style="border: 1px solid orange;"> | ||
| 3 | + | ||
| 4 | + <!-- HUB title --> | ||
| 5 | + <div>jdhfjdhf</div> | ||
| 6 | + | ||
| 7 | + <!-- HUB description --> | ||
| 8 | + <div>djfhkdhfkdjhfdkhffkdjfhkdjfh</div> | ||
| 9 | + | ||
| 10 | + <br /> | ||
| 11 | + | ||
| 12 | + <!-- HUB live section --> | ||
| 13 | + <div style="border:1px solid red;"> | ||
| 14 | + <div style="border:1px solid blue;"> | ||
| 15 | + Nome do Título - AO VIVO | ||
| 16 | + </div> | ||
| 17 | + <div style="border:1px solid yellow;"> | ||
| 18 | + <ul style="border:1px solid purple; margin: 0px;"> | ||
| 19 | + <%= render :partial => 'content_viewer/comment', :collection => @comments %> | ||
| 20 | + <%= pagination_links @comments, :param_name => 'comment_page' %> | ||
| 21 | + </ul> | ||
| 22 | + </div> | ||
| 23 | + </div> | ||
| 24 | + | ||
| 25 | + <br /> | ||
| 26 | + | ||
| 27 | + <!-- HUB post form (guest user) --> | ||
| 28 | + <div style="border:1px solid green;"> | ||
| 29 | + | ||
| 30 | + <% remote_form_for( :comment, | ||
| 31 | + CommunityHubPlugin::HubStreamPost.new, | ||
| 32 | + :url => { | ||
| 33 | + :profile => profile.identifier, | ||
| 34 | + :controller => 'comment', | ||
| 35 | + :action => 'create', | ||
| 36 | + :id => @page.id | ||
| 37 | + }, | ||
| 38 | + :html => { :class => 'comment_form' } ) do |f| %> | ||
| 39 | + | ||
| 40 | + <div> | ||
| 41 | + <span><%= _("Streaming") %></span> | ||
| 42 | + </div> | ||
| 43 | + <div> | ||
| 44 | + <%= f.text_area(:body, | ||
| 45 | + :style => 'width: 99%;', | ||
| 46 | + :placeholder => _('Type your message here')) %> | ||
| 47 | + </div> | ||
| 48 | + <div style="text-align: right;"> | ||
| 49 | + <%= submit_button('add', _('Post message'), :onclick => "send_message_for_stream(this); return false;") %> | ||
| 50 | + </div> | ||
| 51 | + | ||
| 52 | + <% end %> | ||
| 53 | + | ||
| 54 | + </div> | ||
| 55 | + | ||
| 56 | + <br /> | ||
| 57 | + | ||
| 58 | + <!-- HUB mediation section --> | ||
| 59 | + <div style="border:1px solid green"> | ||
| 60 | + <div style="border:1px solid blue;"> | ||
| 61 | + Mediação | ||
| 62 | + </div> | ||
| 63 | + <div style="border:1px solid yellow;"> | ||
| 64 | + <%= render :partial => 'hub_mediation_item' %> | ||
| 65 | + </div> | ||
| 66 | + </div> | ||
| 67 | + | ||
| 68 | + <br /> | ||
| 69 | + | ||
| 70 | + <div> | ||
| 71 | + | ||
| 72 | + <% | ||
| 73 | + def mediation_timestamp | ||
| 74 | + | ||
| 75 | + end | ||
| 76 | + %> | ||
| 77 | + | ||
| 78 | + <%= render :file => 'shared/tiny_mce' %> | ||
| 79 | + | ||
| 80 | + <% category_ids = [] %> | ||
| 81 | + | ||
| 82 | + <% remote_form_for( :article, | ||
| 83 | + TinyMceArticle.new, | ||
| 84 | + :url => { | ||
| 85 | + :profile => profile.identifier, | ||
| 86 | + :controller => 'cms', | ||
| 87 | + :action => 'new', | ||
| 88 | + :type => 'TinyMceArticle', | ||
| 89 | + :success_back_to => "", | ||
| 90 | + :q => "", | ||
| 91 | + :parent_id => @page.id, | ||
| 92 | + :back_to => "" | ||
| 93 | + }, | ||
| 94 | + :before => "tinymce.triggerSave()", | ||
| 95 | + :loading => "alert('loading...')", | ||
| 96 | + :complete => "tinymce.get('article_body').setContent('')", | ||
| 97 | + :html => { :class => 'comment_form' } ) do |f| %> | ||
| 98 | + | ||
| 99 | + <%= f.hidden_field :moderate_comments, :value => 0 %> | ||
| 100 | + <%= f.hidden_field :translation_of_id, :value => "" %> | ||
| 101 | + <%= f.hidden_field :notify_comments, :value => 0 %> | ||
| 102 | + <%= f.hidden_field :accept_comments, :value => 1 %> | ||
| 103 | + <%= f.hidden_field :tag_list, :value => "" %> | ||
| 104 | + <%= f.hidden_field :display_versions, :value => 0 %> | ||
| 105 | + <%= f.hidden_field :allow_members_to_edit, :value => 0 %> | ||
| 106 | + <%= f.hidden_field :abstract, :value => "" %> | ||
| 107 | + <%= f.hidden_field :display_hits, :value => 0 %> | ||
| 108 | + <%= f.hidden_field :parent_id, :value => 419 %> | ||
| 109 | + <%= f.hidden_field :name, :value => "hub-mediation-" %> | ||
| 110 | + <%= f.hidden_field :published, :value => true %> | ||
| 111 | + <%= f.hidden_field :license_id, :value => "" %> | ||
| 112 | + <%= hidden_field_tag "article[category_ids][]", "" %> | ||
| 113 | + <%= f.hidden_field :language, :value => "en" %> | ||
| 114 | + | ||
| 115 | + <div style="border:1px solid green;"> | ||
| 116 | + <div> | ||
| 117 | + <span><%= _("Posting for mediation") %></span> | ||
| 118 | + </div> | ||
| 119 | + <div> | ||
| 120 | + <%= f.text_area(:body, | ||
| 121 | + :style => 'width: 99%;', | ||
| 122 | + :class => 'mceEditor', | ||
| 123 | + :placeholder => _('Type your message for mediation here')) %> | ||
| 124 | + </div> | ||
| 125 | + <div style="text-align: right;"> | ||
| 126 | + <%= submit_button('add', _('Save'))%> | ||
| 127 | + </div> | ||
| 128 | + </div> | ||
| 129 | + | ||
| 130 | + <% end %> | ||
| 131 | + | ||
| 132 | + </div> | ||
| 133 | + | ||
| 134 | +</div> |