app/views/todos/add_predecessor.js.erb
<% if !@saved
if @predecessor.completed? -%>
TracksPages.page_error("<%= t('todos.cannot_add_dependency_to_completed_todo') %>");
$('#<%=dom_id(@todo)%>').html(html_for_todo());
<% else -%>
TracksPages.page_error("<%= t('todos.unable_to_add_dependency') %>");
<% end
else -%>
remove_successor_from_page();
replace_updated_predecessor();
regenerate_predecessor_family();
<%= "show_in_tickler_box();".html_safe if source_view_is_one_of :project, :tag, :context %>
TracksPages.page_inform("<%= @status_message %>");
function remove_successor_from_page() {
<% # TODO: last todo in context --> remove context?? -%>
$('#<%=dom_id(@todo)%>').remove();
}
function replace_updated_predecessor() {
$('#<%= dom_id(@predecessor) %>').html( html_for_predecessor() );
}
function show_in_tickler_box() {
$("#deferred_pending_container-empty-d").hide();
$('#deferred_pending_container').append( html_for_todo() );
}
function regenerate_predecessor_family() {
<%
parents = @predecessors.to_a
until parents.empty?
parent = parents.pop
parents += parent.predecessors -%>
$('#<%= dom_id(parent) %>').replaceWith("<%= js_render(parent, { :parent_container_type => parent_container_type }) %>");
<%end-%>
}
function html_for_predecessor() {
return "<%= js_render(@predecessor, { :parent_container_type => parent_container_type }) %>";
}
<% end # if !@saved
# following js is needed in case of an error with dragging onto a completed action althoug
%>
function html_for_todo() {
return "<%= js_render(@todo, { :parent_container_type => parent_container_type }) %>";
}