Try the cache_digests gem for Tracks

cache_digests will be part of Rails 4
This commit is contained in:
Reinier Balt 2012-08-27 21:00:51 +02:00
parent 8b1fc99b72
commit 8a8dc47ab8
9 changed files with 134 additions and 105 deletions

View file

@ -6,30 +6,33 @@ parameters = "_source_view=#{@source_view}"
parameters += "&_tag_name=#{@tag_name}" if @source_view == 'tag'
@z_index_counter = @z_index_counter - 1 # for IE z-index bug
@rec_depth ||= 0
cache successor do
%>
<div id="<%= dom_id(successor, 'successor') %>" class="item-container">
<div id="<%= dom_id(successor, 'successor_line') %>">
<div class="description<%= staleness_class( successor ) %>" style="margin-left: 20px">
<span class="todo.descr"><%= h sanitize(successor.description) %></span>
<%= remote_delete_dependency(successor, predecessor) %>
<% unless successor.pending_successors.empty?
if @rec_depth < 8
@rec_depth+=1 %>
<div class="todo_successors" id="<%= dom_id(successor, 'successors') %>">
<%= render :partial => "todos/successor",
:collection => successor.pending_successors,
:locals => { :todo => successor,
:parent_container_type => parent_container_type,
:suppress_dependencies => true,
:predecessor => successor }
%>
</div>
<% else %>
<a title="There are more dependencies that are not shown">[...]</a>
<div id="<%= dom_id(successor, 'successor') %>" class="item-container">
<div id="<%= dom_id(successor, 'successor_line') %>">
<div class="description<%= staleness_class( successor ) %>" style="margin-left: 20px">
<span class="todo.descr"><%= h sanitize(successor.description) %></span>
<%= remote_delete_dependency(successor, predecessor) %>
<% unless successor.pending_successors.empty?
if @rec_depth < 8
@rec_depth+=1 %>
<div class="todo_successors" id="<%= dom_id(successor, 'successors') %>">
<%= render :partial => "todos/successor",
:collection => successor.pending_successors,
:locals => { :todo => successor,
:parent_container_type => parent_container_type,
:suppress_dependencies => true,
:predecessor => successor }
%>
</div>
<% else %>
<a title="There are more dependencies that are not shown">[...]</a>
<% end %>
<% end %>
<% end %>
</div>
</div>
</div>
</div>
<% end %>

View file

@ -6,40 +6,43 @@ parameters = "_source_view=#{@source_view}"
parameters += "&_tag_name=#{@tag_name}" if @source_view == 'tag'
@z_index_counter = @z_index_counter - 1 # for IE z-index bug
@rec_depth=0 # to prevent stack overflow on large dependency trees, see _successor.html.erb
cache todo do
%>
<div id="<%= dom_id(todo) %>" class="item-container">
<div id="<%= dom_id(todo, 'line') %>" class="item-show">
<%= remote_star_icon(todo) %>
<%= remote_toggle_checkbox(todo) %>
<%= remote_edit_button(todo) unless suppress_edit_button %>
<ul class="sf-menu sf-item-menu">
<li style="z-index:<%=@z_index_counter%>"><%= image_tag "downarrow.png", :class => "todo-submenu", :alt=> "" %>
<ul id="ul<%= dom_id(todo) %>" class="todo-submenu">
<li><%= remote_delete_menu_item(todo) %></li>
<% unless todo.completed? || todo.deferred? -%>
<li><%= remote_defer_menu_item(1, todo) %></li>
<li><%= remote_defer_menu_item(2, todo) %></li>
<li><%= remote_defer_menu_item(3, todo) %></li>
<li><%= remote_defer_menu_item(7, todo) %></li>
<li><%= remote_promote_to_project_menu_item(todo) %></li>
<% end -%>
</ul>
</li>
</ul>
<%= grip_span(todo) %>
<div class="description<%= staleness_class( todo ) %>">
<%= date_span(todo) -%>
<span class="todo.descr"><%= h todo.description %></span>
<%= image_tag_for_recurring_todo(todo) if todo.from_recurring_todo? %>
<%= tag_list(todo) %>
<%= deferred_due_date(todo) %>
<%= project_and_context_links( todo, parent_container_type, :suppress_context => suppress_context, :suppress_project => suppress_project ) %>
<%= collapsed_notes_image(todo) unless todo.notes.blank? %>
<%= collapsed_successors_image(todo) if todo.has_pending_successors %>
<div id="<%= dom_id(todo) %>" class="item-container">
<div id="<%= dom_id(todo, 'line') %>" class="item-show">
<%= remote_star_icon(todo) %>
<%= remote_toggle_checkbox(todo) %>
<%= remote_edit_button(todo) unless suppress_edit_button %>
<ul class="sf-menu sf-item-menu">
<li style="z-index:<%=@z_index_counter%>"><%= image_tag "downarrow.png", :class => "todo-submenu", :alt=> "" %>
<ul id="ul<%= dom_id(todo) %>" class="todo-submenu">
<li><%= remote_delete_menu_item(todo) %></li>
<% unless todo.completed? || todo.deferred? -%>
<li><%= remote_defer_menu_item(1, todo) %></li>
<li><%= remote_defer_menu_item(2, todo) %></li>
<li><%= remote_defer_menu_item(3, todo) %></li>
<li><%= remote_defer_menu_item(7, todo) %></li>
<li><%= remote_promote_to_project_menu_item(todo) %></li>
<% end -%>
</ul>
</li>
</ul>
<%= grip_span(todo) %>
<div class="description<%= staleness_class( todo ) %>">
<%= date_span(todo) -%>
<span class="todo.descr"><%= h todo.description %></span>
<%= image_tag_for_recurring_todo(todo) if todo.from_recurring_todo? %>
<%= tag_list(todo) %>
<%= deferred_due_date(todo) %>
<%= project_and_context_links( todo, parent_container_type, :suppress_context => suppress_context, :suppress_project => suppress_project ) %>
<%= collapsed_notes_image(todo) unless todo.notes.blank? %>
<%= collapsed_successors_image(todo) if todo.has_pending_successors %>
</div>
</div>
<div id="<%= dom_id(todo, 'edit') %>" class="edit-form" style="display:none">
<% #note: edit form will load here remotely -%>
<div class="placeholder"> </div>
</div>
</div>
<div id="<%= dom_id(todo, 'edit') %>" class="edit-form" style="display:none">
<% #note: edit form will load here remotely -%>
<div class="placeholder"> </div>
</div>
</div>
<% end %>