To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
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)) -%>
|