OSDN Git Service

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