Commit b14ea06132f1d3046300ba7b93e144c53ca65e6b
1 parent
a8618196
Exists in
master
Add pairwise group content
Showing
6 changed files
with
142 additions
and
42 deletions
Show diff stats
controllers/profile/pairwise_plugin_profile_controller.rb
... | ... | @@ -14,6 +14,11 @@ class PairwisePluginProfileController < ProfileController |
14 | 14 | end |
15 | 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 | 22 | #FIXME reuse |
18 | 23 | def load_prompt |
19 | 24 | @pairwise_content = find_content(params) | ... | ... |
lib/pairwise_plugin.rb
... | ... | @@ -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 | 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 | 435 | div.pairwise_group_list_container .row p { |
477 | 436 | line-height: 30px; |
478 | 437 | margin: auto; |
... | ... | @@ -555,3 +514,45 @@ div.pairwise_main .spinner h5{ |
555 | 514 | float: right; |
556 | 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 | 67 | $('.pairwise_group_menu_container .questions-menu .items .row').click(function() { |
68 | 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 | 79 | // FIXME move to js file | ... | ... |
... | ... | @@ -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> | ... | ... |