Commit 49e7109df55b26dae99c31b796296b4c533750d7

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

#community dashboard - add infra

app/controllers/public/content_viewer_controller.rb
... ... @@ -115,6 +115,8 @@ class ContentViewerController < ApplicationController
115 115 if params[:slideshow]
116 116 render :action => 'slideshow', :layout => 'slideshow'
117 117 end
  118 +
  119 + render :file => @page.view_page, :layout => true
118 120 end
119 121  
120 122 def article_versions
... ...
app/models/article.rb
... ... @@ -730,6 +730,10 @@ class Article < ActiveRecord::Base
730 730 true
731 731 end
732 732  
  733 + def view_page
  734 + "content_viewer/view_page.rhtml"
  735 + end
  736 +
733 737 private
734 738  
735 739 def sanitize_tag_list
... ...
plugins/community_hub/controllers/myprofile/community_dashboard_plugin_myprofile_controller.rb 0 → 100644
... ... @@ -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,7 @@
  1 +class CommunityHubPluginPublicController < PublicController
  2 + append_view_path File.join(File.dirname(__FILE__) + '/../../views')
  3 +
  4 + def delete_post
  5 + end
  6 +
  7 +end
0 8 \ No newline at end of file
... ...
plugins/community_hub/lib/community_hub_plugin.rb 0 → 100644
... ... @@ -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
... ...
plugins/community_hub/lib/community_hub_plugin/hub.rb 0 → 100644
... ... @@ -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 28 \ No newline at end of file
... ...
plugins/community_hub/lib/community_hub_plugin/hub_stream_post.rb 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +class CommunityHubPlugin::HubStreamPost < Comment
  2 +
  3 + def bli
  4 + ""
  5 + end
  6 +
  7 +end
0 8 \ No newline at end of file
... ...
plugins/community_hub/lib/ext/article.rb 0 → 100644
... ... @@ -0,0 +1,12 @@
  1 +require_dependency 'article'
  2 +
  3 +class Article
  4 +
  5 + #before_create do |article|
  6 + # if article.parent.kind_of?(CommunityDashboardPlugin::Hub)
  7 + # article.accept_comments = article.parent.accept_comments
  8 + # end
  9 + # true
  10 + #end
  11 +
  12 +end
... ...
plugins/community_hub/public/icons/community-hub.png 0 → 100644

442 Bytes

plugins/community_hub/public/javascripts/stream_post_form.js 0 → 100644
... ... @@ -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);
... ...
plugins/community_hub/public/style.css 0 → 100644
... ... @@ -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 28 \ No newline at end of file
... ...
plugins/community_hub/views/content_viewer/_comment.rhtml 0 → 100644
... ... @@ -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 @@
  1 +wueyriweuyriweuyriwuery
0 2 \ No newline at end of file
... ...
plugins/community_hub/views/content_viewer/hub.rhtml 0 → 100644
... ... @@ -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>
... ...