Commit b14ea06132f1d3046300ba7b93e144c53ca65e6b

Authored by Victor Costa
1 parent a8618196
Exists in master

Add pairwise group content

controllers/profile/pairwise_plugin_profile_controller.rb
@@ -14,6 +14,11 @@ class PairwisePluginProfileController < ProfileController @@ -14,6 +14,11 @@ class PairwisePluginProfileController < ProfileController
14 end 14 end
15 end 15 end
16 16
  17 + def group
  18 + pairwise_group ||= profile.articles.find(params[:id])
  19 + instance_exec(&pairwise_group.to_html('embeded' => true))
  20 + end
  21 +
17 #FIXME reuse 22 #FIXME reuse
18 def load_prompt 23 def load_prompt
19 @pairwise_content = find_content(params) 24 @pairwise_content = find_content(params)
lib/pairwise_plugin.rb
@@ -19,7 +19,7 @@ class PairwisePlugin < Noosfero::Plugin @@ -19,7 +19,7 @@ class PairwisePlugin < Noosfero::Plugin
19 end 19 end
20 20
21 def content_types 21 def content_types
22 - [PairwisePlugin::PairwiseContent] 22 + [PairwisePlugin::PairwiseContent, PairwisePlugin::PairwiseGroup]
23 # if context.profile.is_a?(Community) 23 # if context.profile.is_a?(Community)
24 # else 24 # else
25 # [] 25 # []
lib/pairwise_plugin/pairwise_group.rb 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +class PairwisePlugin::PairwiseGroup < Folder
  2 +
  3 + def self.short_description
  4 + 'Pairwise Group'
  5 + end
  6 +
  7 + def self.description
  8 + 'Group of Pairwise Questions'
  9 + end
  10 +
  11 + def to_html(options = {})
  12 + embeded = options.has_key? "embeded"
  13 + pairwise_group = self
  14 + proc do
  15 + layout = embeded ? 'embeded' : nil
  16 + render :file => 'content_viewer/pairwise_group', :layout => layout, :locals => {:pairwise_group => pairwise_group, :embeded => embeded, :questions => pairwise_group.children}
  17 + end
  18 + end
  19 +
  20 +end
public/style.css
@@ -432,47 +432,6 @@ div.pairwise_group_list_container .row { @@ -432,47 +432,6 @@ div.pairwise_group_list_container .row {
432 cursor: auto; 432 cursor: auto;
433 } 433 }
434 434
435 -div.pairwise_group_menu_container .row {  
436 - cursor: auto;  
437 - font-weight: bold;  
438 -}  
439 -div.pairwise_group_menu_container .row.secondary {  
440 - font-weight: normal;  
441 -}  
442 -div.pairwise_group_menu_container .questions-menu .menu-icon {  
443 - float: right;  
444 - font-size: 16px;  
445 -}  
446 -div.pairwise_group_menu_container .questions-menu .icon-label {  
447 - float: right;  
448 -}  
449 -div.pairwise_group_menu_container .questions-menu .icon-bar {  
450 - background-color: rgb(100, 100, 100);  
451 - display: block;  
452 - width: 1.125em;  
453 - height: 0.125em;  
454 - border-radius: 1px;  
455 - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);  
456 - margin: 3px;  
457 -}  
458 -div.pairwise_group_menu_container .questions-menu .menu {  
459 - position: absolute;  
460 - background-color: rgb(247, 247, 247);  
461 - width: 96%;  
462 - z-index: 999;  
463 - padding: 10px;  
464 - top: 17px;  
465 - box-shadow: -5px 7px 10px #888888;  
466 -}  
467 -div.pairwise_group_menu_container .questions-menu .menu .item {  
468 - cursor: pointer;  
469 - color: rgb(107, 107, 107);  
470 -}  
471 -div.pairwise_group_menu_container .questions-menu .menu .label {  
472 - color: rgb(175, 175, 175);  
473 - margin-bottom: 10px;  
474 -}  
475 -  
476 div.pairwise_group_list_container .row p { 435 div.pairwise_group_list_container .row p {
477 line-height: 30px; 436 line-height: 30px;
478 margin: auto; 437 margin: auto;
@@ -555,3 +514,45 @@ div.pairwise_main .spinner h5{ @@ -555,3 +514,45 @@ div.pairwise_main .spinner h5{
555 float: right; 514 float: right;
556 color: #999; 515 color: #999;
557 } 516 }
  517 +
  518 +div.pairwise_group_menu_container .row {
  519 + cursor: auto;
  520 + font-weight: bold;
  521 +}
  522 +div.pairwise_group_menu_container .row.secondary {
  523 + font-weight: normal;
  524 +}
  525 +div.pairwise_group_menu_container .questions-menu .menu-icon {
  526 + float: right;
  527 + font-size: 16px;
  528 +}
  529 +div.pairwise_group_menu_container .questions-menu .icon-label {
  530 + float: right;
  531 +}
  532 +div.pairwise_group_menu_container .questions-menu .icon-bar {
  533 + background-color: rgb(100, 100, 100);
  534 + display: block;
  535 + width: 1.125em;
  536 + height: 0.125em;
  537 + border-radius: 1px;
  538 + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  539 + margin: 3px;
  540 +}
  541 +div.pairwise_group_menu_container .questions-menu .menu {
  542 + position: absolute;
  543 + background-color: rgb(247, 247, 247);
  544 + width: 96%;
  545 + z-index: 999;
  546 + padding: 10px;
  547 + top: 74px;
  548 + box-shadow: -5px 7px 10px #888888;
  549 +}
  550 +div.pairwise_group_menu_container .questions-menu .menu .item {
  551 + cursor: pointer;
  552 + color: rgb(107, 107, 107);
  553 +}
  554 +div.pairwise_group_menu_container .questions-menu .menu .label {
  555 + color: rgb(175, 175, 175);
  556 + margin-bottom: 10px;
  557 +}
  558 +
views/blocks/questions_group_menu.html.erb
@@ -67,6 +67,13 @@ @@ -67,6 +67,13 @@
67 $('.pairwise_group_menu_container .questions-menu .items .row').click(function() { 67 $('.pairwise_group_menu_container .questions-menu .items .row').click(function() {
68 $('.pairwise_group_menu_container .questions-menu .menu').hide('fast'); 68 $('.pairwise_group_menu_container .questions-menu .menu').hide('fast');
69 }); 69 });
  70 +
  71 + function updatePairwiseMenuInfo() {
  72 + var block_id = '#pairwise_group_list_block_<%= block.id %>';
  73 + $(block_id + ' .pairwise_body').text('<%= block.title %>');
  74 + $(block_id + ' .pairwise_body').after('<div class="description"><%= block.group_description %></div>');
  75 + }
  76 + //updatePairwiseMenuInfo();
70 }); 77 });
71 78
72 // FIXME move to js file 79 // FIXME move to js file
views/content_viewer/pairwise_group.html.erb 0 → 100644
@@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
  1 +<% extend PairwisePlugin::Helpers::ViewerHelper %>
  2 +
  3 +<div id='pairwise_group_list_block_<%= pairwise_group.id %>' class="pairwise_group_menu_container" data-open-prompt="0">
  4 + <div class="questions-menu clearfix">
  5 + <span class="menu-icon">
  6 + <span class="icon-bar"></span>
  7 + <span class="icon-bar"></span>
  8 + <span class="icon-bar"></span>
  9 + </span>
  10 + <span class="icon-label"><%= _('Select theme') %></span>
  11 + <% if questions.count > 1 %>
  12 + <div class="menu" style="display: none">
  13 + <div class="label">
  14 + <%= _('Select a specific theme below to vote on proposals:') %>
  15 + </div>
  16 + <div class="items">
  17 + <% questions.each_with_index do |pairwise_content, index| %>
  18 + <div class="item <%= pairwise_group_row_classes(index) %>">
  19 + <%= pairwise_content.name %>
  20 + </div>
  21 + <% end %>
  22 + </div>
  23 + </div>
  24 + <% end %>
  25 + </div>
  26 + <div class="question container">
  27 + <% if questions.blank? %>
  28 + <span><%= _("Empty") %></span>
  29 + <% else %>
  30 + <% questions.each_with_index do |pairwise_content, index| %>
  31 + <%= pairwise_group_content_body(index, pairwise_content) %>
  32 + <% end %>
  33 + <% end %>
  34 + </div>
  35 +</div>
  36 +
  37 +<script type="text/javascript">
  38 + jQuery(document).ready(function($){
  39 + $('.pairwise_group_menu_container .questions-menu .menu-icon').click(function() {
  40 + $(this).siblings('.menu').toggle();
  41 + });
  42 + $('.pairwise_group_menu_container .questions-menu .items .row').click(function() {
  43 + $('.pairwise_group_menu_container .questions-menu .menu').hide('fast');
  44 + });
  45 + });
  46 +
  47 +// FIXME move to js file
  48 +jQuery(document).ready(function($){
  49 + var block_id = '#pairwise_group_list_block_<%= pairwise_group.id %>';
  50 + var block_element = $(block_id);
  51 + var questions_arrows = $(block_id + ' .arrow');
  52 + var questions_rows = $(block_id + ' .row');
  53 + var questions_bodies = $(block_id + ' .pairwise_inner_body');
  54 + questions_rows.click(function(){
  55 + var current_open = parseInt(block_element.attr('data-open-prompt'));
  56 + var index_clicked = questions_rows.index(this);
  57 + if(index_clicked != current_open){
  58 + block_element.attr('data-open-prompt', index_clicked);
  59 + $(questions_bodies[current_open]).slideToggle();
  60 + $(questions_rows[current_open]).toggleClass("secondary");
  61 +
  62 + $(questions_bodies[index_clicked]).slideToggle();
  63 + $(questions_rows[index_clicked]).toggleClass("secondary");
  64 + }
  65 + });
  66 +});
  67 +</script>