##// END OF EJS Templates
check that block is defined before rendering it (my/page_layout)...
Jean-Philippe Lang -
r241:92725e5803e4
parent child
Show More
@@ -1,113 +1,116
1 1 <script language="JavaScript">
2 2
3 3 function recreateSortables() {
4 4 Sortable.destroy('list-top');
5 5 Sortable.destroy('list-left');
6 6 Sortable.destroy('list-right');
7 7
8 8 Sortable.create("list-top", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('/my/order_blocks?group=top', {asynchronous:true, evalScripts:true, onComplete:function(request){new Effect.Highlight("list-top",{});}, onLoaded:function(request){Element.hide('indicator')}, onLoading:function(request){Element.show('indicator')}, parameters:Sortable.serialize("list-top")})}, only:'mypage-box', tag:'div'})
9 9 Sortable.create("list-left", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('/my/order_blocks?group=left', {asynchronous:true, evalScripts:true, onComplete:function(request){new Effect.Highlight("list-left",{});}, onLoaded:function(request){Element.hide('indicator')}, onLoading:function(request){Element.show('indicator')}, parameters:Sortable.serialize("list-left")})}, only:'mypage-box', tag:'div'})
10 10 Sortable.create("list-right", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('/my/order_blocks?group=right', {asynchronous:true, evalScripts:true, onComplete:function(request){new Effect.Highlight("list-right",{});}, onLoaded:function(request){Element.hide('indicator')}, onLoading:function(request){Element.show('indicator')}, parameters:Sortable.serialize("list-right")})}, only:'mypage-box', tag:'div'})
11 11 }
12 12
13 13 function updateSelect() {
14 14 s = $('block-select')
15 15 for (var i = 0; i < s.options.length; i++) {
16 16 if ($('block_' + s.options[i].value)) {
17 17 s.options[i].disabled = true;
18 18 } else {
19 19 s.options[i].disabled = false;
20 20 }
21 21 }
22 22 s.options[0].selected = true;
23 23 }
24 24
25 25 function afterAddBlock() {
26 26 recreateSortables();
27 27 updateSelect();
28 28 }
29 29
30 30 function removeBlock(block) {
31 31 $(block).parentNode.removeChild($(block));
32 32 updateSelect();
33 33 }
34 34
35 35 </script>
36 36
37 37 <div class="contextual">
38 38 <span id="indicator" style="display:none"><%= image_tag "loading.gif", :align => "absmiddle" %></span>
39 39 <% form_tag({:action => "add_block"}, :id => "block-form") do %>
40 40 <%= select_tag 'block', "<option></option>" + options_for_select(@block_options), :id => "block-select" %>
41 41 <%= link_to_remote l(:button_add),
42 42 :url => { :action => "add_block" },
43 43 :with => "Form.serialize('block-form')",
44 44 :update => "list-top",
45 45 :position => :top,
46 46 :complete => "afterAddBlock();",
47 47 :loading => "Element.show('indicator')",
48 48 :loaded => "Element.hide('indicator')"
49 49 %>
50 50 <% end %> |
51 51 <%= link_to l(:button_save), :action => 'page_layout_save' %> |
52 52 <%= link_to l(:button_cancel), :action => 'page' %>
53 53 </div>
54 54
55 55 <h2><%=l(:label_my_page)%></h2>
56 56
57 57 <div id="list-top" class="block-receiver">
58 <% @blocks['top'].each do |b| %>
58 <% @blocks['top'].each do |b|
59 next unless MyController::BLOCKS.keys.include? b %>
59 60 <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
60 61 <% end if @blocks['top'] %>
61 62 </div>
62 63
63 64 <div id="list-left" class="splitcontentleft block-receiver">
64 <% @blocks['left'].each do |b| %>
65 <% @blocks['left'].each do |b|
66 next unless MyController::BLOCKS.keys.include? b %>
65 67 <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
66 68 <% end if @blocks['left'] %>
67 69 </div>
68 70
69 71 <div id="list-right" class="splitcontentright block-receiver">
70 <% @blocks['right'].each do |b| %>
72 <% @blocks['right'].each do |b|
73 next unless MyController::BLOCKS.keys.include? b %>
71 74 <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
72 75 <% end if @blocks['right'] %>
73 76 </div>
74 77
75 78 <%= sortable_element 'list-top',
76 79 :tag => 'div',
77 80 :only => 'mypage-box',
78 81 :handle => "handle",
79 82 :dropOnEmpty => true,
80 83 :containment => ['list-top', 'list-left', 'list-right'],
81 84 :constraint => false,
82 85 :complete => visual_effect(:highlight, 'list-top'),
83 86 :url => { :action => "order_blocks", :group => "top" },
84 87 :loading => "Element.show('indicator')",
85 88 :loaded => "Element.hide('indicator')"
86 89 %>
87 90
88 91
89 92 <%= sortable_element 'list-left',
90 93 :tag => 'div',
91 94 :only => 'mypage-box',
92 95 :handle => "handle",
93 96 :dropOnEmpty => true,
94 97 :containment => ['list-top', 'list-left', 'list-right'],
95 98 :constraint => false,
96 99 :complete => visual_effect(:highlight, 'list-left'),
97 100 :url => { :action => "order_blocks", :group => "left" },
98 101 :loading => "Element.show('indicator')",
99 102 :loaded => "Element.hide('indicator')" %>
100 103
101 104 <%= sortable_element 'list-right',
102 105 :tag => 'div',
103 106 :only => 'mypage-box',
104 107 :handle => "handle",
105 108 :dropOnEmpty => true,
106 109 :containment => ['list-top', 'list-left', 'list-right'],
107 110 :constraint => false,
108 111 :complete => visual_effect(:highlight, 'list-right'),
109 112 :url => { :action => "order_blocks", :group => "right" },
110 113 :loading => "Element.show('indicator')",
111 114 :loaded => "Element.hide('indicator')" %>
112 115
113 116 <%= javascript_tag "updateSelect()" %> No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now