mirror of
https://github.com/TracksApp/tracks.git
synced 2026-01-02 23:38:50 +01:00
115 lines
4.7 KiB
Text
115 lines
4.7 KiB
Text
animate: function() {
|
|
<%-
|
|
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 << ( update_needs_to_add_new_container ? "insert_new_container_with_updated_todo" : "add_to_existing_container")
|
|
end
|
|
animation << "hide_container" if update_needs_to_hide_container
|
|
animation << "highlight_updated_todo"
|
|
animation << "update_empty_container" if source_view_is_one_of(:tag, :todo, :deferred, :project, :context)
|
|
animation << "update_predecessors"
|
|
-%>
|
|
TracksPages.page_inform('<%=escape_javascript @status_message%>');
|
|
TracksPages.set_page_badge(<%= @down_count %>);
|
|
<%= render_animation(animation, object_name) %>
|
|
},
|
|
remove_todo: function(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 on the page twice
|
|
-%>
|
|
$('#<%= dom_id(@todo) %>').remove();
|
|
<% end -%>
|
|
<%= show_empty_message_in_source_container -%>
|
|
next_steps.go();
|
|
});
|
|
},
|
|
add_to_existing_container: function(next_steps) {
|
|
$('#<%= item_container_id(@todo) %>_items').append(<%=object_name%>.html_for_todo());
|
|
<% if source_view_is_one_of(: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 -%>
|
|
$('#<%= item_container_id(@todo) %>').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? || @todo.pending?) && @remaining_deferred_or_pending_count == 1) ||
|
|
( @todo.hidden? && @remaining_hidden_count == 1)
|
|
-%>
|
|
$("#<%= empty_container_msg_div_id %>").slideUp(100);
|
|
<% end -%>
|
|
<% end -%>
|
|
<% end -%>
|
|
},
|
|
replace_todo: function(next_steps) {
|
|
$('#<%= dom_id(@todo) %>').html(<%=object_name%>.html_for_todo());
|
|
next_steps.go();
|
|
},
|
|
hide_container: function(next_steps) {
|
|
$('#<%= item_container_id(@original_item) %>').fadeOut(400, function(){ next_steps.go(); });
|
|
<%= "$('#deferred_pending_container_empty-nd').slideDown(400);".html_safe if source_view_is(:deferred) && @down_count == 0 %>
|
|
},
|
|
highlight_updated_todo: function(next_steps) {
|
|
$('#<%= dom_id(@todo)%>').effect('highlight', {}, 2000, function(){ });
|
|
next_steps.go();
|
|
},
|
|
update_empty_container: function(next_steps) {
|
|
<% if should_show_empty_container -%>
|
|
$('div#no_todos_in_view').slideDown(400, function(){ next_steps.go(); });
|
|
<% else -%>
|
|
$('div#no_todos_in_view').fadeOut(100, function(){ next_steps.go(); });
|
|
<% end -%>
|
|
},
|
|
update_badge_count: function() {
|
|
<%
|
|
count = source_view_is(:context) ? @remaining_in_context : @down_count
|
|
count = @project_changed ? @remaining_undone_in_project : count
|
|
-%>
|
|
TracksPages.set_page_badge(<%= count %>);
|
|
},
|
|
insert_new_container_with_updated_todo: function(next_steps) {
|
|
$('#display_box').prepend(<%=object_name%>.html_for_new_container());
|
|
$('#<%= item_container_id(@todo) %>').fadeIn(500, function() { next_steps.go(); });
|
|
},
|
|
html_for_todo: function() {
|
|
return "<%= escape_javascript(render(:partial => @todo, :locals => { :parent_container_type => parent_container_type })) %>";
|
|
},
|
|
html_for_new_container: function() {
|
|
return "<%= ( @new_context_created || @new_project_created ) ? escape_javascript(render(:partial => @new_container, :locals => { :settings => {:collapsible => true }})) : "" %>";
|
|
},
|
|
update_predecessors: function(next_steps) {
|
|
<%=object_name%>.regenerate_predecessor_family();
|
|
<% if @removed_predecessors
|
|
@removed_predecessors.each do |p| -%>
|
|
if ($('#<%=item_container_id(p)%>')) {
|
|
$('#<%=dom_id(p)%>').html('<%=escape_javascript(render(:partial => p, :locals => { :settings => {:parent_container_type => parent_container_type }}))%>');
|
|
}
|
|
<% end -%>
|
|
<% end -%>
|
|
next_steps.go();
|
|
},
|
|
regenerate_predecessor_family: function() {
|
|
<%
|
|
parents = @todo.predecessors.to_a
|
|
until parents.empty?
|
|
parent = parents.pop
|
|
parents += parent.predecessors
|
|
-%>
|
|
$('#<%= dom_id(parent) %>').html("<%= escape_javascript(render(:partial => parent, :locals => { :settings => {:parent_container_type => parent_container_type }})) %>");
|
|
<%
|
|
end
|
|
-%>
|
|
}
|