Chris@0
|
1 <script language="JavaScript">
|
Chris@0
|
2 //<![CDATA[
|
Chris@0
|
3 function recreateSortables() {
|
Chris@0
|
4 Sortable.destroy('list-top');
|
Chris@0
|
5 Sortable.destroy('list-left');
|
Chris@0
|
6 Sortable.destroy('list-right');
|
Chris@0
|
7
|
chris@37
|
8 Sortable.create("list-top", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => 'my', :action => 'order_blocks', :group => 'top') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-top")})}, only:'mypage-box', tag:'div'})
|
chris@37
|
9 Sortable.create("list-left", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => 'my', :action => 'order_blocks', :group => 'left') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-left")})}, only:'mypage-box', tag:'div'})
|
chris@37
|
10 Sortable.create("list-right", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => 'my', :action => 'order_blocks', :group => 'right') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-right")})}, only:'mypage-box', tag:'div'})
|
Chris@0
|
11 }
|
Chris@0
|
12
|
Chris@0
|
13 function updateSelect() {
|
Chris@0
|
14 s = $('block-select')
|
Chris@0
|
15 for (var i = 0; i < s.options.length; i++) {
|
Chris@0
|
16 if ($('block_' + s.options[i].value)) {
|
Chris@0
|
17 s.options[i].disabled = true;
|
Chris@0
|
18 } else {
|
Chris@0
|
19 s.options[i].disabled = false;
|
Chris@0
|
20 }
|
Chris@0
|
21 }
|
Chris@0
|
22 s.options[0].selected = true;
|
Chris@0
|
23 }
|
Chris@0
|
24
|
Chris@0
|
25 function afterAddBlock() {
|
Chris@0
|
26 recreateSortables();
|
Chris@0
|
27 updateSelect();
|
Chris@0
|
28 }
|
Chris@0
|
29
|
Chris@0
|
30 function removeBlock(block) {
|
Chris@0
|
31 Effect.DropOut(block);
|
Chris@0
|
32 updateSelect();
|
Chris@0
|
33 }
|
Chris@0
|
34 //]]>
|
Chris@0
|
35 </script>
|
Chris@0
|
36
|
Chris@0
|
37 <div class="contextual">
|
Chris@0
|
38 <% form_tag({:action => "add_block"}, :id => "block-form") do %>
|
Chris@0
|
39 <%= label_tag('block-select', l(:label_my_page_block)) %>
|
Chris@0
|
40 <%= select_tag 'block', "<option></option>" + options_for_select(@block_options), :id => "block-select" %>
|
Chris@0
|
41 <%= link_to_remote l(:button_add),
|
Chris@0
|
42 {:url => { :action => "add_block" },
|
Chris@0
|
43 :with => "Form.serialize('block-form')",
|
Chris@0
|
44 :update => "list-top",
|
Chris@0
|
45 :position => :top,
|
Chris@0
|
46 :complete => "afterAddBlock();"
|
Chris@0
|
47 }, :class => 'icon icon-add'
|
Chris@0
|
48 %>
|
Chris@0
|
49 <% end %>
|
Chris@0
|
50 <%= link_to l(:button_back), {:action => 'page'}, :class => 'icon icon-cancel' %>
|
Chris@0
|
51 </div>
|
Chris@0
|
52
|
Chris@0
|
53 <h2><%=l(:label_my_page)%></h2>
|
Chris@0
|
54
|
Chris@0
|
55 <div id="list-top" class="block-receiver">
|
Chris@0
|
56 <% @blocks['top'].each do |b|
|
Chris@0
|
57 next unless MyController::BLOCKS.keys.include? b %>
|
Chris@0
|
58 <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
|
Chris@0
|
59 <% end if @blocks['top'] %>
|
Chris@0
|
60 </div>
|
Chris@0
|
61
|
Chris@0
|
62 <div id="list-left" class="splitcontentleft block-receiver">
|
Chris@0
|
63 <% @blocks['left'].each do |b|
|
Chris@0
|
64 next unless MyController::BLOCKS.keys.include? b %>
|
Chris@0
|
65 <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
|
Chris@0
|
66 <% end if @blocks['left'] %>
|
Chris@0
|
67 </div>
|
Chris@0
|
68
|
Chris@0
|
69 <div id="list-right" class="splitcontentright block-receiver">
|
Chris@0
|
70 <% @blocks['right'].each do |b|
|
Chris@0
|
71 next unless MyController::BLOCKS.keys.include? b %>
|
Chris@0
|
72 <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
|
Chris@0
|
73 <% end if @blocks['right'] %>
|
Chris@0
|
74 </div>
|
Chris@0
|
75
|
Chris@0
|
76 <%= sortable_element 'list-top',
|
Chris@0
|
77 :tag => 'div',
|
Chris@0
|
78 :only => 'mypage-box',
|
Chris@0
|
79 :handle => "handle",
|
Chris@0
|
80 :dropOnEmpty => true,
|
Chris@0
|
81 :containment => ['list-top', 'list-left', 'list-right'],
|
Chris@0
|
82 :constraint => false,
|
Chris@0
|
83 :url => { :action => "order_blocks", :group => "top" }
|
Chris@0
|
84 %>
|
Chris@0
|
85
|
Chris@0
|
86
|
Chris@0
|
87 <%= sortable_element 'list-left',
|
Chris@0
|
88 :tag => 'div',
|
Chris@0
|
89 :only => 'mypage-box',
|
Chris@0
|
90 :handle => "handle",
|
Chris@0
|
91 :dropOnEmpty => true,
|
Chris@0
|
92 :containment => ['list-top', 'list-left', 'list-right'],
|
Chris@0
|
93 :constraint => false,
|
Chris@0
|
94 :url => { :action => "order_blocks", :group => "left" }
|
Chris@0
|
95 %>
|
Chris@0
|
96
|
Chris@0
|
97 <%= sortable_element 'list-right',
|
Chris@0
|
98 :tag => 'div',
|
Chris@0
|
99 :only => 'mypage-box',
|
Chris@0
|
100 :handle => "handle",
|
Chris@0
|
101 :dropOnEmpty => true,
|
Chris@0
|
102 :containment => ['list-top', 'list-left', 'list-right'],
|
Chris@0
|
103 :constraint => false,
|
Chris@0
|
104 :url => { :action => "order_blocks", :group => "right" }
|
Chris@0
|
105 %>
|
Chris@0
|
106
|
Chris@0
|
107 <%= javascript_tag "updateSelect()" %>
|
Chris@0
|
108 <% html_title(l(:label_my_page)) -%>
|