Alain Ravet
2006-Feb-10 11:24 UTC
Sortable + Draggable : doesn''t follow the mouse horizontally
When a ''draggable'' element is made ''sortable'', it no longer follows the mouse horizontally when you drag it. Is there a solution/workaround? TIA Alain
Robin Haswell
2006-Feb-10 11:41 UTC
Re: Sortable + Draggable : doesn''t follow the mouse horizontally
Yes, use the constraints options of Sortable.create Alain Ravet wrote:> When a ''draggable'' element is made ''sortable'', it no longer follows > the mouse horizontally when you drag it. > Is there a solution/workaround? > > > TIA > > Alain > > _______________________________________________ > Rails-spinoffs mailing list > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs_______________________________________________ Rails-spinoffs mailing list Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
Alain Ravet
2006-Feb-10 14:32 UTC
Re: Sortable + Draggable : doesn''t follow the mouse horizontally
Robin > Yes, use the constraints options of Sortable.create When I do that (see below) the list is no longer sortable : when I drop an element, it goes back to its original location, and the associated actin is not triggered. (Complete view code is at the bottom of this message. I placed 2 markers : *** DRAGABLE and *** SORTABLE) (Note: What I try to achieve: combine the cart demo and the sort demo. In other works, make a list, in Rails, that''s 1/- sortable : to ... sort the elements 2/- dragable: to drag elements to a bin area (like in the cart demo) 3/- dragged element follows the mouse, vertically and horizontally - 1/ and 2/ , work fine, but not 3/ (you can only drag them vertically to the bin area). ) I followed the advice and added :constraint => nil => code is now: <%= sortable_element(''sortable_list'', :update => ''lists'', :url => {:action => :update_positions}, :constraint => nil) %> ==> sort is broken: clearing the constraint in the sortable - fixes the vertical constraint problem in the dragging, BUT - breaks the sort on the list: when I drop an element to its new location, it doesn''t stay in this new location (goes back to its old location). :constraint => :none ok:1/+2/, not ok: 3/ (constraint still vertical) not ok: no more ghosting when sorting. :constraint => nil ok: 2/+3/: drag ok (no constraint, ghosting, action is triggered not ok : 1/ is broken (cannot sort, because element goes back to original location when it is dropped.) Code: <h1>Mes listes</h1> <table width="60%" style="margin:0 auto;border: 1px solid black"> <tr> <td> <div id="lists"> <ul id="sortable_list"> <% for list in @lists all_items_done = (list.nof_open_items == list.list_items.size) klass = all_items_done ? "closed_list" : "open_list" -%> <li id="item_<%= list.id %>"class="one_list <%= klass %>"> <%= list.title %> <!-- < %= link_to h(list.title), :action => ''show'', :id => list %> --> (<%= list.position %>) <small class="xsmall gray"><%= list.nof_open_items -%>/<%= list.list_items.size -%></small> </li> *** DRAGABLE HERE *** <script type="text/javascript" language="javascript"> new Draggable("item_<%= list.id %>",{revert:true}); </script> <% end %> </ul> </div> </td> <td> <%= link_to ''Créer'', {:action => ''new'' }, :class => ''action_on_lists''%> <span class="action_on_lists_details"> une nouvelle liste</span> </td></tr></table> <div id="wastebin"> <%= image_tag ''poubelle.gif'' %> </div> <hr> *** SORTABLE HERE (only the 1st one works/sorts) *** <!-- < %= sortable_element ''sortable_list'', :url => {:action => :update_positions} -%> --> <%= sortable_element ''sortable_list'', :url => {:action => :update_positions}, :constraint => ''none'' -%> <%= drop_receiving_element "wastebin", :update => "items", :url => { :action => "remove_list" }, :accept => "one_list", :hoverclass => "wastebin-active", :before => "Element.hide(element)", :loading => "Element.show(''spinner'')", :complete => "Element.hide(''spinner'')" %> <div style="height:40px;padding-top:10px;"> <p id="indicator" style="display:none;margin-top:0px;"> <%= image_tag "spinner.gif" %> Updating cart... </p> </div>