To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / app / views / my / page_layout.rhtml @ 380:6627ac1de32b

History | View | Annotate | Download (4.17 KB)

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('<%= url_for(:controller => 'my', :action => '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('<%= url_for(:controller => 'my', :action => '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('<%= url_for(:controller => 'my', :action => '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
<%= label_tag('block-select', l(:label_my_page_block)) %>
40
<%= select_tag 'block', "<option></option>" + options_for_select(@block_options), :id => "block-select" %>
41
<%= link_to_remote l(:button_add),
42
           {:url => { :action => "add_block" },
43
            :with => "Form.serialize('block-form')",
44
            :update => "list-top",
45
            :position => :top,
46
            :complete => "afterAddBlock();"
47
           }, :class => 'icon icon-add'
48
             %>
49
<% end %>
50
<%= link_to l(:button_back), {: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()" %>
108
<% html_title(l(:label_my_page)) -%>