mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 23:30:12 +01:00
parent
05cbea50aa
commit
67df223488
5 changed files with 45 additions and 5 deletions
|
|
@ -122,7 +122,7 @@ module TodosHelper
|
|||
:title => 'Drag onto another action to make it depend on that action',
|
||||
:class => 'grip') +
|
||||
image_tag('blank.png', :width => 16, :height => 16, :border => 0,
|
||||
:title => "Drop an action to make it depend on this action", :class => 'successor_target')
|
||||
:title => "Drop an action to make it depend on this action", :class => 'successor_target drop_target')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -16,4 +16,5 @@
|
|||
</div>
|
||||
<%= render :partial => "todos/todo", :collection => @not_done, :locals => { :parent_container_type => "context" } %>
|
||||
</div><!-- [end:items] -->
|
||||
<div id="c_<%=context.id%>_target" class="context_target drop_target"></div>
|
||||
</div><!-- [end:c<%= context.id %>] -->
|
||||
|
|
|
|||
|
|
@ -153,3 +153,5 @@ else
|
|||
page.show 'error_status'
|
||||
page.replace_html 'error_status', "#{error_messages_for('todo')}"
|
||||
end
|
||||
|
||||
page << "enable_rich_interaction();"
|
||||
|
|
|
|||
|
|
@ -232,21 +232,46 @@ function enable_rich_interaction(){
|
|||
function drop_todo(evt, ui) {
|
||||
dragged_todo = ui.draggable[0].id.split('_')[2];
|
||||
dropped_todo = $(this).parents('.item-show').get(0).id.split('_')[2];
|
||||
ui.draggable.hide();
|
||||
ui.draggable.remove();
|
||||
$(this).block({message: null});
|
||||
$.post(relative_to_root('todos/add_predecessor'),
|
||||
{successor: dragged_todo, predecessor: dropped_todo},
|
||||
null, 'script');
|
||||
}
|
||||
|
||||
function drag_todo(){
|
||||
$('.drop_target').show();
|
||||
$(this).parents(".container").find(".context_target").hide();
|
||||
}
|
||||
|
||||
$('.item-show').draggable({handle: '.grip',
|
||||
revert: 'invalid',
|
||||
start: function() {$('.successor_target').show();},
|
||||
stop: function() {$('.successor_target').hide();}});
|
||||
start: drag_todo,
|
||||
stop: function() {$('.drop_target').hide();}});
|
||||
|
||||
$('.successor_target').droppable({drop: drop_todo,
|
||||
tolerance: 'pointer',
|
||||
hoverClass: 'hover'});
|
||||
|
||||
/* Drag & drop for changing contexts */
|
||||
function drop_todo_on_context(evt, ui) {
|
||||
target = $(this);
|
||||
dragged_todo = ui.draggable[0].id.split('_')[2];
|
||||
context_id = this.id.split('_')[1];
|
||||
ui.draggable.remove();
|
||||
target.block({message: null});
|
||||
setTimeout(function() {target.show()}, 0);
|
||||
$.post(relative_to_root('todos/update'),
|
||||
{id: dragged_todo,
|
||||
"todo[id]": dragged_todo,
|
||||
"todo[context_id]": context_id},
|
||||
function(){target.unblock(); target.hide();}, 'script');
|
||||
}
|
||||
|
||||
$('.context_target').droppable({
|
||||
drop: drop_todo_on_context,
|
||||
tolerance: 'pointer',
|
||||
hoverClass: 'hover'});
|
||||
|
||||
/* Reset auto updater */
|
||||
field_touched = false;
|
||||
|
|
|
|||
|
|
@ -939,11 +939,14 @@ div.message {
|
|||
cursor: move;
|
||||
}
|
||||
|
||||
.drop_target {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.successor_target {
|
||||
background-image:url("../images/add_successor_off.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center right;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.successor_target.hover {
|
||||
|
|
@ -952,6 +955,15 @@ div.message {
|
|||
background-position: center right;
|
||||
}
|
||||
|
||||
.context_target {
|
||||
height: 15px;
|
||||
margin: 4px;
|
||||
border: thick dotted #CCC;
|
||||
}
|
||||
|
||||
.context_target.hover {
|
||||
}
|
||||
|
||||
/* Error message styles */
|
||||
.fieldWithErrors {
|
||||
padding: 2px;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue