mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-30 13:58:49 +01:00
126 lines
No EOL
4.6 KiB
Text
126 lines
No EOL
4.6 KiB
Text
<% if !@saved -%>
|
|
TracksPages.show_edit_errors(html_for_error_messages());
|
|
<% else
|
|
|
|
# jquery animations are async, so first collect all animation steps that need
|
|
# to be run sequential,then execute them. All steps are functions which are
|
|
# passed a function as parameter that will execute the next animation steps
|
|
|
|
animation = []
|
|
animation << "remove_todo" if update_needs_to_remove_todo_from_container
|
|
if replace_with_updated_todo
|
|
animation << "replace_todo"
|
|
elsif append_updated_todo
|
|
animation << (@new_context_created ? "insert_new_context_with_updated_todo" : "add_to_existing_container")
|
|
end
|
|
animation << "hide_context" if update_needs_to_hide_context
|
|
animation << "highlight_updated_todo"
|
|
animation << "update_empty_container" if source_view_is_one_of(:tag, :todo)
|
|
animation << "update_predecessors"
|
|
%>
|
|
|
|
<%= render_animation(animation) %>
|
|
TracksPages.page_notify('notice', '<%=escape_javascript @status_message%>', 5);
|
|
TracksPages.set_page_badge(<%= @down_count %>);
|
|
<% end %>
|
|
|
|
function remove_todo(next_steps) {
|
|
$('#<%= dom_id(@todo) %>').fadeOut(400, function() {
|
|
$('#<%= dom_id(@todo) %>').remove();
|
|
<% if source_view_is :calendar
|
|
# in calendar view it is possible to have a todo twice on the page
|
|
-%>
|
|
$('#<%= dom_id(@todo) %>').remove();
|
|
<% end %>
|
|
<%= show_empty_message_in_source_container -%>
|
|
next_steps.go();
|
|
});
|
|
}
|
|
|
|
function add_to_existing_container(next_steps) {
|
|
$('#<%= item_container_id(@todo) %>').append(html_for_todo());
|
|
<% if source_view_is_one_of(:project,:calendar) -%>
|
|
next_steps.go();
|
|
<% if (@target_context_count==1) || ( (@todo.deferred? || @todo.pending?) && @remaining_deferred_or_pending_count == 1) -%>
|
|
$("#<%= empty_container_msg_div_id %>").slideUp(100);
|
|
<% end -%>
|
|
<% else -%>
|
|
<% unless (@todo_hidden_state_changed && @todo.hidden?) || @todo_was_deferred_from_active_state -%>
|
|
$('#c<%= @todo.context_id %>').fadeIn(500, function() {
|
|
next_steps.go();
|
|
<% if @target_context_count==1 -%>
|
|
$("#<%= empty_container_msg_div_id %>").slideUp(100);
|
|
<% end -%>
|
|
});
|
|
<% else -%>
|
|
next_steps.go();
|
|
<% if (@target_context_count==1) || (@todo.deferred? && @remaining_deferred_or_pending_count == 1) || (@todo.hidden? && @remaining_hidden_count == 1) -%>
|
|
$("#<%= empty_container_msg_div_id %>").slideUp(100);
|
|
<% end -%>
|
|
<% end -%>
|
|
<% end -%>
|
|
}
|
|
|
|
function replace_todo(next_steps) {
|
|
$('#<%= dom_id(@todo) %>').html(html_for_todo());
|
|
next_steps.go();
|
|
}
|
|
|
|
function hide_context(next_steps) {
|
|
<% context_id = @context_changed ? @original_item_context_id : @todo.context_id -%>
|
|
$('#c<%= context_id %>').fadeOut(400, function(){ next_steps.go(); });
|
|
<%= "$('#tickler-empty-nd').slideDown(400);" if source_view_is(:deferred) && @down_count == 0 %>
|
|
}
|
|
|
|
function highlight_updated_todo(next_steps) {
|
|
$('#<%= dom_id(@todo)%>').effect('highlight', {}, 2000, function(){ });
|
|
next_steps.go();
|
|
}
|
|
|
|
function update_empty_container(next_steps) {
|
|
<% if @down_count==0 -%>
|
|
$('#no_todos_in_view').slideDown(400, function(){ next_steps.go(); });
|
|
<% else -%>
|
|
$('#no_todos_in_view').fadeOut(100, function(){ next_steps.go(); });
|
|
<% end -%>
|
|
}
|
|
|
|
function update_badge_count() {
|
|
<%
|
|
count = source_view_is(:context) ? @remaining_in_context : @down_count
|
|
count = @project_changed ? @remaining_undone_in_project : count
|
|
-%>
|
|
TracksPages.set_page_badge(<%= count %>);
|
|
}
|
|
|
|
function insert_new_context_with_updated_todo(next_steps) {
|
|
$('#display_box').prepend(html_for_new_context());
|
|
$('#c<%= @todo.context_id %>').fadeIn(500, function() { next_steps.go(); });
|
|
}
|
|
|
|
function html_for_todo() {
|
|
return "<%= @saved ? escape_javascript(render(:partial => @todo, :locals => { :parent_container_type => parent_container_type })) : "" %>";
|
|
}
|
|
|
|
function html_for_new_context() {
|
|
return "<%= @saved && @new_context_created ? escape_javascript(render(:partial => @new_context, :locals => { :collapsible => true })) : "" %>";
|
|
}
|
|
|
|
function html_for_error_messages() {
|
|
return "<%= escape_javascript(error_messages_for('todo')) %>";
|
|
}
|
|
|
|
function update_predecessors() {
|
|
<% @todo.uncompleted_predecessors.each do |p| -%>
|
|
if ($('#<%=item_container_id(p)%>')) {
|
|
$('#<%=dom_id(p)%>').html('<%=escape_javascript(render(:partial => p, :locals => { :parent_container_type => parent_container_type }))%>');
|
|
}
|
|
<% end -%>
|
|
<% if @removed_predecessors
|
|
@removed_predecessors.each do |p| -%>
|
|
if ($('#<%=item_container_id(p)%>')) {
|
|
$('#<%=dom_id(p)%>').html('<%=escape_javascript(render(:partial => p, :locals => { :parent_container_type => parent_container_type }))%>');
|
|
}
|
|
<% end -%>
|
|
<% end -%>
|
|
} |