Render collapse/expand buttons using CSS instead of JS

Fix #1354
Also clean up some dependent JS unused since c64e1bc
This commit is contained in:
Dan Rice 2012-11-14 22:01:43 -05:00
parent 416a8699d5
commit bdbb1dd29d
11 changed files with 18 additions and 53 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -328,51 +328,24 @@ var TodoItemsContainer = {
ensureVisibleWithEffectAppear: function(elemId){ ensureVisibleWithEffectAppear: function(elemId){
$('#'+elemId).fadeIn(500); $('#'+elemId).fadeIn(500);
}, },
expandNextActionListing: function(itemsElem, skipAnimation) {
itemsElem = $(itemsElem);
if(skipAnimation == true) {
itemsElem.show();
}
else {
itemsElem.show('blind', 400);
}
TodoItems.showContainer(itemsElem.parentNode);
},
collapseNextActionListing: function(itemsElem, skipAnimation) {
itemsElem = $(itemsElem);
if(skipAnimation == true) {
itemsElem.hide();
}
else {
itemsElem.hide('blind', 400);
}
TodoItems.hideContainer(itemsElem.parentNode);
},
ensureContainerHeight: function(itemsElem) { ensureContainerHeight: function(itemsElem) {
$(itemsElem).css({ $(itemsElem).css({
height: '', height: '',
overflow: '' overflow: ''
}); });
}, },
expandNextActionListingByContext: function(itemsElemId, skipAnimation){
TodoItems.expandNextActionListing($('#'+itemsElemId).get(), skipAnimation);
},
setup_container_toggles: function(){ setup_container_toggles: function(){
// bind handlers // bind handlers
$('.container_toggle').click(function(evt){ $('.container_toggle').click(function(evt){
var toggle_target = $(this.parentNode.parentNode).find('.toggle_target'); var toggle_target = $(this.parentNode.parentNode).find('.toggle_target');
if(toggle_target.is(':visible')){ if(toggle_target.is(':visible')){
// hide it // hide it
var imgSrc = $(this).find('img').attr('src');
$(this).find('img').attr('src', imgSrc.replace('collapse', 'expand'));
$.cookie(TodoItemsContainer.buildCookieName(this.parentNode.parentNode), true); $.cookie(TodoItemsContainer.buildCookieName(this.parentNode.parentNode), true);
toggle_target.slideUp(500); toggle_target.slideUp(500);
// set parent class to 'context_collapsed' so we can hide/unhide all collapsed contexts // set parent class to 'context_collapsed' so we can hide/unhide all collapsed contexts
toggle_target.parent().addClass("context_collapsed"); toggle_target.parent().addClass("context_collapsed");
} else { } else {
// show it // show it
imgSrc = $(this).find('img').attr('src');
$(this).find('img').attr('src', imgSrc.replace('expand', 'collapse'));
$.cookie(TodoItemsContainer.buildCookieName(this.parentNode.parentNode), null); $.cookie(TodoItemsContainer.buildCookieName(this.parentNode.parentNode), null);
toggle_target.slideDown(500); toggle_target.slideDown(500);
// remove class 'context_collapsed' from parent class // remove class 'context_collapsed' from parent class
@ -383,12 +356,8 @@ var TodoItemsContainer = {
// set to cookied state // set to cookied state
$('.container.context').each(function(){ $('.container.context').each(function(){
if($.cookie(TodoItemsContainer.buildCookieName(this))=="true"){ if($.cookie(TodoItemsContainer.buildCookieName(this))=="true"){
var imgSrc = $(this).find('.container_toggle img').attr('src'); $(this).find('.toggle_target').hide();
if (imgSrc) { $(this).find('.toggle_target').parent().addClass("context_collapsed");
$(this).find('.container_toggle img').attr('src', imgSrc.replace('collapse', 'expand'));
$(this).find('.toggle_target').hide();
$(this).find('.toggle_target').parent().addClass("context_collapsed");
}
} }
}); });
}, },
@ -397,14 +366,6 @@ var TodoItemsContainer = {
buildCookieName: function(containerElem) { buildCookieName: function(containerElem) {
var tracks_login = $.cookie('tracks_login'); var tracks_login = $.cookie('tracks_login');
return 'tracks_'+tracks_login+'_context_' + containerElem.id + '_collapsed'; return 'tracks_'+tracks_login+'_context_' + containerElem.id + '_collapsed';
},
showContainer: function(containerElem) {
var imgSrc = $(containerElem).find('.container_toggle img').attr('src');
$(containerElem).find('.container_toggle img').attr('src', imgSrc.replace('expand', 'collapse'));
},
hideContainer: function (containerElem) {
var imgSrc = $(containerElem).find('.container_toggle img').attr('src');
$(containerElem).find('.container_toggle img').attr('src', imgSrc.replace('collapse', 'expand'));
} }
} }

View file

@ -337,9 +337,12 @@ a.show_successors:hover, a.link_to_successors:hover {background-image: image-url
} }
.container_toggle img { .container_toggle img {
height:14px; height: 14px;
width:14px; width: 14px;
border:0px; border: 0px;
background: image-url('collapse_expand.png') no-repeat left top;
.context_collapsed & { background-position: left bottom; }
} }
h2 { h2 {

View file

@ -7,7 +7,7 @@ cache [context, @source_view, current_user.date.strftime("%Y%m%d")] do
<div id="c<%= context.id %>" class="container context" style="display:<%= (collapsible && @not_done.empty?) ? "none" : "block" %>"> <div id="c<%= context.id %>" class="container context" style="display:<%= (collapsible && @not_done.empty?) ? "none" : "block" %>">
<h2> <h2>
<% if collapsible -%> <% if collapsible -%>
<a href="#" class="container_toggle" id="toggle_c<%= context.id %>"><%= image_tag("collapse.png") %></a> <a href="#" class="container_toggle" id="toggle_c<%= context.id %>"><%= image_tag("blank.png", :alt => t('common.collapse_expand')) %></a>
<% end -%> <% end -%>
<% if source_view_is :context %> <% if source_view_is :context %>
<span id="context_name"><%= context.name %></span> <span id="context_name"><%= context.name %></span>
@ -23,4 +23,4 @@ cache [context, @source_view, current_user.date.strftime("%Y%m%d")] do
<%= render :partial => "todos/todo", :collection => @not_done, :locals => { :parent_container_type => "context" } %> <%= render :partial => "todos/todo", :collection => @not_done, :locals => { :parent_container_type => "context" } %>
</div> </div>
</div> </div>
<% end %> <% end %>

View file

@ -5,7 +5,7 @@ cache [project, current_user.date.strftime("%Y%m%d")] do %>
<div class="container"> <div class="container">
<h2 id="project_name_container"> <h2 id="project_name_container">
<% if collapsible -%> <% if collapsible -%>
<a href="#" class="container_toggle" id="toggle_p<%= project.id %>"><%= image_tag("collapse.png") %></a> <a href="#" class="container_toggle" id="toggle_p<%= project.id %>"><%= image_tag("blank.png", :alt => t('common.collapse_expand')) %></a>
<% end -%> <% end -%>
<div id="project_name" style="width: 100%;"><%= project.name -%></div> <div id="project_name" style="width: 100%;"><%= project.name -%></div>
</h2> </h2>
@ -23,4 +23,4 @@ cache [project, current_user.date.strftime("%Y%m%d")] do %>
<%= render :partial => "todos/todo", :collection => @not_done, :locals => { :parent_container_type => "project" } %> <%= render :partial => "todos/todo", :collection => @not_done, :locals => { :parent_container_type => "project" } %>
</div> </div>
</div> </div>
<% end %> <% end %>

View file

@ -6,7 +6,7 @@
<div class=add_note_link><%= link_to t('common.show_all'), determine_done_path%></div> <div class=add_note_link><%= link_to t('common.show_all'), determine_done_path%></div>
<h2> <h2>
<% if collapsible %> <% if collapsible %>
<a href="#" class="container_toggle" id="toggle_completed"><%= image_tag("collapse.png") %></a> <a href="#" class="container_toggle" id="toggle_completed"><%= image_tag("blank.png", :alt => t('common.collapse_expand')) %></a>
<% end %> <% end %>
<%= t('todos.completed_actions') %> <%= raw suffix %> <%= t('todos.completed_actions') %> <%= raw suffix %>
</h2> </h2>
@ -18,4 +18,4 @@
<%= render :partial => "todos/todo", :collection => completed, :locals => { :parent_container_type => "completed", :suppress_context => suppress_context, :suppress_project => suppress_project } %> <%= render :partial => "todos/todo", :collection => completed, :locals => { :parent_container_type => "completed", :suppress_context => suppress_context, :suppress_project => suppress_project } %>
</div> </div>
</div> </div>

View file

@ -1,7 +1,7 @@
<div class="container tickler" id="tickler"> <div class="container tickler" id="tickler">
<h2> <h2>
<% if collapsible %> <% if collapsible %>
<a href="#" class="container_toggle" id="toggle_deferred"><%= image_tag("collapse.png") %></a> <a href="#" class="container_toggle" id="toggle_deferred"><%= image_tag("blank.png", :alt => t('common.collapse_expand')) %></a>
<% end %> <% end %>
<%= t('todos.deferred_pending_actions') %> <%= raw(append_descriptor ? append_descriptor : '') %> <%= t('todos.deferred_pending_actions') %> <%= raw(append_descriptor ? append_descriptor : '') %>
</h2> </h2>

View file

@ -1,7 +1,7 @@
<div class="container hidden" id="hidden"> <div class="container hidden" id="hidden">
<h2> <h2>
<% if collapsible %> <% if collapsible %>
<a href="#" class="container_toggle" id="toggle_deferred"><%= image_tag("collapse.png") %></a> <a href="#" class="container_toggle" id="toggle_deferred"><%= image_tag("blank.png", :alt => t('common.collapse_expand')) %></a>
<% end %> <% end %>
<%= t('todos.hidden_actions') %> <%= raw(append_descriptor ? append_descriptor : '') %> <%= t('todos.hidden_actions') %> <%= raw(append_descriptor ? append_descriptor : '') %>
</h2> </h2>
@ -14,4 +14,4 @@
<%= render :partial => "todos/todo", :collection => hidden, :locals => { :parent_container_type => 'tag' } %> <%= render :partial => "todos/todo", :collection => hidden, :locals => { :parent_container_type => 'tag' } %>
</div><!-- [end:items] --> </div><!-- [end:items] -->
</div><!-- [end:tickler] --> </div><!-- [end:tickler] -->

View file

@ -158,6 +158,7 @@ en:
other: days other: days
deferred: deferred deferred: deferred
not_available_abbr: "n/a" not_available_abbr: "n/a"
collapse_expand: Collapse/expand
data: data:
import_successful: Import was successful. import_successful: Import was successful.
import_errors: Some errors occurred during import import_errors: Some errors occurred during import