diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 74097747..fc0ff4f0 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -141,6 +141,7 @@ class TodosController < ApplicationController end def add_predecessor + @source_view = params['_source_view'] || 'todo' @predecessor = Todo.find(params['predecessor']) @todo = Todo.find(params['successor']) @original_state = @todo.state diff --git a/app/views/todos/_todo.html.erb b/app/views/todos/_todo.html.erb index 2ca193d0..fb2aadb8 100644 --- a/app/views/todos/_todo.html.erb +++ b/app/views/todos/_todo.html.erb @@ -47,7 +47,7 @@ draggable_element(dom_id(todo), :revert => "'true'", :handle => "'grip'", :onDr <%= drop_receiving_element(dom_id(todo), :url => {:controller => "todos", :action => "add_predecessor"}, - :with => "'successor=' + encodeURIComponent(element.id.split('_').last()) + '&predecessor=' + encodeURIComponent(#{todo.id})", + :with => "'#{parameters}&successor=' + encodeURIComponent(element.id.split('_').last()) + '&predecessor=' + encodeURIComponent(#{todo.id})", :hoverclass => 'hover' ) %> diff --git a/app/views/todos/add_predecessor.js.rjs b/app/views/todos/add_predecessor.js.rjs index 4b4d46ee..438a3140 100644 --- a/app/views/todos/add_predecessor.js.rjs +++ b/app/views/todos/add_predecessor.js.rjs @@ -3,9 +3,19 @@ if @saved status_message = "Added #{@predecessor.description} as dependency." unless @original_state == 'pending' status_message += " #{@todo.description} set to pending" + # remove successor from page page[@todo].remove - page['tickler-empty-nd'].hide - page.insert_html :bottom, item_container_id(@todo), :partial => 'todos/todo', :locals => { :todo => @todo, :parent_container_type => parent_container_type } + # regenerate predecessor to add arrow + page[@predecessor].replace_html :partial => 'todos/todo', :locals => { :todo => @predecessor, :parent_container_type => parent_container_type } + + # show in tickler box in project view + if source_view_is_one_of :project, :tag + page['tickler-empty-nd'].hide + page.insert_html :bottom, "tickler", :partial => 'todos/todo', :locals => { :todo => @todo, :parent_container_type => parent_container_type } + end + + page << "TodoBehavior.enableToggleNotes();" + page << "TodoBehavior.enableToggleSuccessors();" end page.notify :notice, status_message, 5.0 else