fix #1123 and fix #1124 and refactor drag and drop a bit

This commit is contained in:
Reinier Balt 2011-03-11 21:01:24 +01:00
parent 15a2eb6f08
commit bc73b18bed
9 changed files with 364 additions and 311 deletions

View file

@ -241,15 +241,19 @@ class TodosController < ApplicationController
@predecessor = current_user.todos.find(params['predecessor'])
@todo = current_user.todos.find(params['successor'])
@original_state = @todo.state
# Add predecessor
@todo.add_predecessor(@predecessor)
@todo.state = 'pending'
@saved = @todo.save
unless @predecessor.completed?
# Add predecessor
@todo.add_predecessor(@predecessor)
@todo.state = 'pending'
@saved = @todo.save
@status_message = t('todos.added_dependency', :dependency => @predecessor.description)
@status_message += t('todos.set_to_pending', :task => @todo.description) unless @original_state == 'pending'
else
@saved = false
end
respond_to do |format|
format.js {
@status_message = t('todos.added_dependency', :dependency => @predecessor.description)
@status_message += t('todos.set_to_pending', :task => @todo.description) unless @original_state == 'pending'
}
format.js
end
end
@ -342,7 +346,8 @@ class TodosController < ApplicationController
@saved = @todo.save
@context_changed = true
@message = t('todos.context_changed', :name => @context.name)
@status_message = t('todos.context_changed', :name => @context.name)
determine_down_count
determine_remaining_in_context_count(@original_item_context_id)
respond_to do |format|

View file

@ -1,6 +1,11 @@
<% if !@saved -%>
<% if !@saved
if @predecessor.completed? -%>
TracksPages.page_notify('error', "<%= t('todos.cannot_add_dependency_to_completed_todo') %>", 8);
$('#<%=dom_id(@todo)%>').html(html_for_todo());
<% else -%>
TracksPages.page_notify('error', "<%= t('todos.unable_to_add_dependency') %>", 8);
<% else -%>
<% end
else -%>
remove_successor_from_page();
replace_updated_predecessor();
regenerate_predecessor_family();
@ -19,7 +24,7 @@ function replace_updated_predecessor() {
function show_in_tickler_box() {
$("#tickler-empty-nd").hide();
$('#tickler').append( html_for_deferred_todo() );
$('#tickler').append( html_for_todo() );
}
function regenerate_predecessor_family() {
@ -37,9 +42,12 @@ function html_for_predecessor() {
return "<%= escape_javascript(render(:partial => @predecessor, :locals => { :parent_container_type => parent_container_type })) %>";
}
function html_for_deferred_todo() {
<% end # if !@saved
# following js is needed in case of an error with dragging onto a completed action althoug
%>
function html_for_todo() {
return "<%= escape_javascript(render(:partial => @todo, :locals => { :parent_container_type => parent_container_type })) %>";
}
<% end # if !@saved
%>