page_layout.rhtml
106 lines
| 3.9 KiB
| text/html+ruby
|
RhtmlLexer
|
r330 | <script language="JavaScript"> | ||
//<![CDATA[ | ||||
function recreateSortables() { | ||||
Sortable.destroy('list-top'); | ||||
Sortable.destroy('list-left'); | ||||
Sortable.destroy('list-right'); | ||||
|
r482 | 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'}) | ||
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'}) | ||||
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'}) | ||||
|
r330 | } | ||
function updateSelect() { | ||||
s = $('block-select') | ||||
for (var i = 0; i < s.options.length; i++) { | ||||
if ($('block_' + s.options[i].value)) { | ||||
s.options[i].disabled = true; | ||||
} else { | ||||
s.options[i].disabled = false; | ||||
} | ||||
} | ||||
s.options[0].selected = true; | ||||
} | ||||
function afterAddBlock() { | ||||
recreateSortables(); | ||||
updateSelect(); | ||||
} | ||||
function removeBlock(block) { | ||||
|
r488 | Effect.DropOut(block); | ||
|
r330 | updateSelect(); | ||
} | ||||
//]]> | ||||
</script> | ||||
<div class="contextual"> | ||||
<% form_tag({:action => "add_block"}, :id => "block-form") do %> | ||||
<%= select_tag 'block', "<option></option>" + options_for_select(@block_options), :id => "block-select" %> | ||||
<%= link_to_remote l(:button_add), | ||||
{:url => { :action => "add_block" }, | ||||
:with => "Form.serialize('block-form')", | ||||
:update => "list-top", | ||||
:position => :top, | ||||
|
r482 | :complete => "afterAddBlock();" | ||
|
r330 | }, :class => 'icon icon-add' | ||
%> | ||||
<% end %> | ||||
|
r3080 | <%= link_to l(:button_back), {:action => 'page'}, :class => 'icon icon-cancel' %> | ||
|
r330 | </div> | ||
<h2><%=l(:label_my_page)%></h2> | ||||
<div id="list-top" class="block-receiver"> | ||||
<% @blocks['top'].each do |b| | ||||
next unless MyController::BLOCKS.keys.include? b %> | ||||
<%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %> | ||||
<% end if @blocks['top'] %> | ||||
</div> | ||||
<div id="list-left" class="splitcontentleft block-receiver"> | ||||
<% @blocks['left'].each do |b| | ||||
next unless MyController::BLOCKS.keys.include? b %> | ||||
<%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %> | ||||
<% end if @blocks['left'] %> | ||||
</div> | ||||
<div id="list-right" class="splitcontentright block-receiver"> | ||||
<% @blocks['right'].each do |b| | ||||
next unless MyController::BLOCKS.keys.include? b %> | ||||
<%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %> | ||||
<% end if @blocks['right'] %> | ||||
</div> | ||||
<%= sortable_element 'list-top', | ||||
:tag => 'div', | ||||
:only => 'mypage-box', | ||||
:handle => "handle", | ||||
:dropOnEmpty => true, | ||||
:containment => ['list-top', 'list-left', 'list-right'], | ||||
:constraint => false, | ||||
|
r482 | :url => { :action => "order_blocks", :group => "top" } | ||
|
r330 | %> | ||
<%= sortable_element 'list-left', | ||||
:tag => 'div', | ||||
:only => 'mypage-box', | ||||
:handle => "handle", | ||||
:dropOnEmpty => true, | ||||
:containment => ['list-top', 'list-left', 'list-right'], | ||||
:constraint => false, | ||||
|
r482 | :url => { :action => "order_blocks", :group => "left" } | ||
%> | ||||
|
r330 | |||
<%= sortable_element 'list-right', | ||||
:tag => 'div', | ||||
:only => 'mypage-box', | ||||
:handle => "handle", | ||||
:dropOnEmpty => true, | ||||
:containment => ['list-top', 'list-left', 'list-right'], | ||||
:constraint => false, | ||||
|
r482 | :url => { :action => "order_blocks", :group => "right" } | ||
%> | ||||
|
r330 | |||
|
r482 | <%= javascript_tag "updateSelect()" %> | ||