mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-25 11:38:49 +01:00
77 lines
No EOL
2.7 KiB
Text
77 lines
No EOL
2.7 KiB
Text
<% if @saved -%>
|
|
set_notification();
|
|
hide_empty_message();
|
|
TracksPages.hide_errors();
|
|
TracksPages.set_page_badge(<%= @down_count %>);
|
|
<% if should_show_new_item -%>
|
|
<% if @new_context_created -%>
|
|
insert_new_context_with_new_todo();
|
|
<% else -%>
|
|
add_todo_to_existing_context();
|
|
<% end -%>
|
|
<% end -%>
|
|
clear_form();
|
|
<% else -%>
|
|
TracksPages.show_errors_for_multi_add(html_for_error_messages());
|
|
<% end -%>
|
|
|
|
<% if @saved
|
|
# the following functions assume a todo is saved or at least not nil,
|
|
# so leave them out in case of an error
|
|
-%>
|
|
|
|
function set_notification() {
|
|
TracksPages.page_notify('notice', "<%=@status_message%>", 5);
|
|
}
|
|
|
|
function clear_form() {
|
|
$('#todo-form-multi-new-action').clearForm();
|
|
TracksForm.set_context_name_for_multi_add('<%=escape_javascript @initial_context_name%>');
|
|
TracksForm.set_project_name_for_multi_add('<%=escape_javascript @initial_project_name%>');
|
|
TracksForm.set_tag_list_for_multi_add('<%=escape_javascript @initial_tags%>');
|
|
$('#todo-form-multi-new-action input:text:first').focus();
|
|
}
|
|
|
|
function insert_new_context_with_new_todo() {
|
|
$('#display_box').prepend(html_for_new_context());
|
|
}
|
|
|
|
function hide_empty_message() {
|
|
$('#<%=empty_container_msg_div_id%>').hide();
|
|
<% if (source_view_is :project and @todo.pending?) or (source_view_is :deferred) -%>
|
|
$('#tickler-empty-nd').hide();
|
|
<% end -%>
|
|
}
|
|
|
|
function add_todo_to_existing_context() {
|
|
<% if source_view_is_one_of(:todo, :deferred, :tag) -%>
|
|
TodoItemsContainer.ensureVisibleWithEffectAppear("c<%=@todo.context_id%>");
|
|
<% end
|
|
show = should_show_new_item # to hide html if not necessary
|
|
@todos.each do |todo|
|
|
html = show ? escape_javascript(render(:partial => todo, :locals => { :parent_container_type => parent_container_type, :source_view => @source_view })) : "" -%>
|
|
$('#<%=item_container_id(todo)%>').append('<%= html %>');
|
|
$('#<%= dom_id(todo)%>').effect('highlight', {}, 3000);
|
|
<% end %>
|
|
}
|
|
|
|
function html_for_new_context() {
|
|
return "<%= @saved && @new_context_created ? escape_javascript(render(:partial => @todo.context, :locals => { :collapsible => true })) : "" %>";
|
|
}
|
|
|
|
<% else # if @saved -%>
|
|
|
|
function html_for_error_messages() {
|
|
<%
|
|
# add error about missing todo description that is not available in @todos
|
|
@multiple_error = content_tag(:div, content_tag(:p, @multiple_error), {:class => 'errorExplanation', :id => 'errorExplanation'}) unless @multiple_error.blank?
|
|
error_messages = @multiple_error || ""
|
|
# add errors of individual @todos
|
|
@todos.each do |todo|
|
|
error_messages += get_list_of_error_messages_for(todo)
|
|
end
|
|
-%>
|
|
return "<%= escape_javascript(error_messages.html_safe)%>";
|
|
}
|
|
|
|
<% end # if @saved -%> |