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.html.erb @ 912:5e80956cc792
History | View | Annotate | Download (4.16 KB)
| 1 | 0:513646585e45 | Chris | <script language="JavaScript"> |
|---|---|---|---|
| 2 | //<![CDATA[
|
||
| 3 | function recreateSortables() {
|
||
| 4 | Sortable.destroy('list-top');
|
||
| 5 | Sortable.destroy('list-left');
|
||
| 6 | Sortable.destroy('list-right');
|
||
| 7 | 909:cbb26bc654de | Chris | |
| 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 | 0:513646585e45 | Chris | } |
| 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 | 128:07fa8a8b56a8 | Chris | <%= label_tag('block-select', l(:label_my_page_block)) %>:
|
| 40 | 0:513646585e45 | Chris | <%= 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 | 909:cbb26bc654de | Chris | <% @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 | 0:513646585e45 | Chris | </div>
|
| 61 | |||
| 62 | <div id="list-left" class="splitcontentleft block-receiver"> |
||
| 63 | 909:cbb26bc654de | Chris | <% @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 | 0:513646585e45 | Chris | </div>
|
| 68 | |||
| 69 | <div id="list-right" class="splitcontentright block-receiver"> |
||
| 70 | 909:cbb26bc654de | Chris | <% @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 | 0:513646585e45 | Chris | </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 | 909:cbb26bc654de | Chris | |
| 86 | <%= sortable_element 'list-left',
|
||
| 87 | 0:513646585e45 | Chris | :tag => 'div',
|
| 88 | :only => 'mypage-box',
|
||
| 89 | :handle => "handle",
|
||
| 90 | :dropOnEmpty => true,
|
||
| 91 | :containment => ['list-top', 'list-left', 'list-right'],
|
||
| 92 | :constraint => false,
|
||
| 93 | :url => { :action => "order_blocks", :group => "left" }
|
||
| 94 | %>
|
||
| 95 | 909:cbb26bc654de | Chris | |
| 96 | <%= sortable_element 'list-right',
|
||
| 97 | 0:513646585e45 | Chris | :tag => 'div',
|
| 98 | :only => 'mypage-box',
|
||
| 99 | :handle => "handle",
|
||
| 100 | :dropOnEmpty => true,
|
||
| 101 | :containment => ['list-top', 'list-left', 'list-right'],
|
||
| 102 | :constraint => false,
|
||
| 103 | :url => { :action => "order_blocks", :group => "right" }
|
||
| 104 | %>
|
||
| 105 | 909:cbb26bc654de | Chris | |
| 106 | 0:513646585e45 | Chris | <%= javascript_tag "updateSelect()" %>
|
| 107 | <% html_title(l(:label_my_page)) -%> |