From bdbb1dd29d2d4f37e711bbfc9e658155188be5f7 Mon Sep 17 00:00:00 2001 From: Dan Rice Date: Wed, 14 Nov 2012 22:01:43 -0500 Subject: [PATCH] Render collapse/expand buttons using CSS instead of JS Fix #1354 Also clean up some dependent JS unused since c64e1bc --- app/assets/images/collapse.png | Bin 1138 -> 0 bytes app/assets/images/collapse_expand.png | Bin 0 -> 875 bytes app/assets/images/expand.png | Bin 1141 -> 0 bytes app/assets/javascripts/tracks.js | 43 ++----------------------- app/assets/stylesheets/tracks.css.scss | 9 ++++-- app/views/contexts/_context.html.erb | 4 +-- app/views/projects/_project.html.erb | 4 +-- app/views/todos/_completed.html.erb | 4 +-- app/views/todos/_deferred.html.erb | 2 +- app/views/todos/_hidden.html.erb | 4 +-- config/locales/en.yml | 1 + 11 files changed, 18 insertions(+), 53 deletions(-) delete mode 100644 app/assets/images/collapse.png create mode 100644 app/assets/images/collapse_expand.png delete mode 100644 app/assets/images/expand.png diff --git a/app/assets/images/collapse.png b/app/assets/images/collapse.png deleted file mode 100644 index c926682f06ba8823fab552850771d261d3fa12bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1138 zcmeH^+iTNs6vuyaD$cEVE1OP*&Z!I)9ik4!3)Ri7;O1`L1*bmvrh?mxf=*GyAv&jH zdr86IwrP?!Ns~0`&FDYji(feB%lEt-_9kM3i(X;yHiwSGGovM!2hVd@EEqY;2tH;Xezr)k-6yrH!b zfV0a1=)Meqs-3zc0CZIYKy?7HX%K+2(|1Q(HUm%yns>F=Vcu{qmz#7Gs+!JZvYLGU zNQ~wjPMqgOmgR#)OjXiqIvozP<1l6&$4HX#6KV(Jm0A;oy zHoMp3A!9L)q7ob@CK5?DF0iZ+Pb6X3JLwKuEU4Y#7sZq)rzA;nI{kKsk7l?imEbvv z2+^*|Kqy4VHV};2CVW=dphWB736-y+zq@t*zl(JYokOh%sMNG;x&B-YRMM<8QqEy`N zCWNHSFg!`JfdFN-dPtJS@o0!-5Hys{<}6kehA{|2WJ!S_G@Hxvf|N?B3?n3yGKPgE zF_p<=^7)+e7w$$hu$f#w?{WnRA{L3T+qP^mL&%-}NBO_f3i_{qNTB4y$QtcEVX8H@ zSG65~_TmfZDtXgYW$547_PVsO_e%ZBzT!Q@@2VcaYj@AD>up(D)Bfq(y@dyQTgEmV zxpi;+#~c&fvv1YTx~Aryhx&@|2TS`N(*uL;AIA#jtvZ3*NTO$LY2W(3;j1(DRu<@- z>vkE>i{-BiF?oQqQ-u?s7VbfMOGH`9j=8EE~>2o`a zh}X6n{Ydle*|Vk;U7WUFckIea_mUNz_GJ~v48{u|R-AmRuW36!IKQF#`uJzmY5Zz_ t|Kw}QP;2%5iqWwqL*etXmx~W|0#LbTVD;<;W$*vsHq|xN4sGwa^cz<|)^`8^ diff --git a/app/assets/images/collapse_expand.png b/app/assets/images/collapse_expand.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8efd14688435b6d8f234cde78e6bd59d36f43e GIT binary patch literal 875 zcmeAS@N?(olHy`uVBq!ia0vp^d_XM2!3-qRI_ipn6id3JuOkD)#(wTUiL5|AV{wqX z6T`Z5GB1G~g=CK)Uj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1JqX= z;1l9{>C%lYTla0=ym#ZKJr^%t|NsC0pFe+p{P^|h)3*&9cK`eL@AvON-@pC*`0?AT z*B{re+xh#~pKo7(eE9I?)vFJWpS)hZX8X@yzrTL{@&3b?moMKxdi?s%-DfLTZTtK8 z@6VsVKY#iD?%n4XFWxVT)1rR+(oly zE|@lL-jpeG4jept`pm7(TlW6`{rlUuA9wFPzjpoc#Y^|kox5}9%1q`O)K7 zckVp9e*MwKi}%i+yR%{A?sq`JN3U+*d3NFAy))--uUohC`SW)V9=yDD>* zd*g_95Ze6~7%hIKrmn_?S_T1G&2M?yEq)ePJapT5~dv@nAj(fSK*QpQsT2ld5X07{0TEsX5?_OXf9jHBl25A z*OvLF`^;mv3gkDYWu{0!fAQqm%7)q_Q~AI7J0=R=a6hU#ZRxSpZBIp~8pwxAhAaPG zv20ski2Tf1%a|Cfl^l)kZS_KdAa7#Ua@ tSXvpI=^B_?85k^?k-~zaAvZrIGp!Q0hO0;K>;P(D@O1TaS?83{1ORTZ$Ql3u literal 0 HcmV?d00001 diff --git a/app/assets/images/expand.png b/app/assets/images/expand.png deleted file mode 100644 index 848d8ff2ddd6a9ad3a76404014aa6495e23b1810..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1141 zcmeHE$!imF82xEgG;L9y_0 zRJQML?JnukKb&7yx|6-!-jd9^+}+j!UPE=!l9@Bu+|dlc+k54?6LU+x{?z{N4gjvL z17K(j0JRhi(Ewa+1b{gXK+{72YA!yS?AirD8R#?^^@Tzqo6XVDcrKTZu>v%Wg~*sB zDRz56Q8IxbO;H?d^Urw6ARgs;(doi5f5ZZz(=Zl^@T!{Sc+rcH5t_&RbW&Cvj==OZ zW_JW)F@a$cf{;uIav~uYibV+W@x0`61)a`dKA+F!a#ky9u_B_Fv{=w66X)YnDw$3z zs>OncQc4t4#bP0!FNi`aU&yPOY&;>Gt%#D&#N%=%qvCkf?IDt>w9OunWySBOSx!hQ zX)A;(sSHK22tsR^_R+I=aunluKgPs|}3i*=BbVkjRWX$0V zsM)N|;SW!%-%| zvI56RG|fx00>M6(6Zh`kZMGl}OwWsdQ5xkx{*eYUzi#xGUWv4~HXF5vPraP@0(vS; zJ=!UQbM!-1$GF#S9b3@@8y!&ni<=AdL3$2S=8D4$hc&bH_4T^VThZmKet;U;RPCMs?1KZXgiD}+Ey`dev{qcHTXXj9xzD7H*>dqDC;)X=1Oe2ns zj!lg$re+zsjz!yT!!3(+<4>Po&@JozIQpv5P_d>@dp}5+YLC_$yYPj*KbLQ&AAkFF gevYf$eRpFM*m={mcGGIlokqZQZaF^k8xC^Ko&W#< diff --git a/app/assets/javascripts/tracks.js b/app/assets/javascripts/tracks.js index 36e90ebd..5f93519e 100644 --- a/app/assets/javascripts/tracks.js +++ b/app/assets/javascripts/tracks.js @@ -328,51 +328,24 @@ var TodoItemsContainer = { ensureVisibleWithEffectAppear: function(elemId){ $('#'+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) { $(itemsElem).css({ height: '', overflow: '' }); }, - expandNextActionListingByContext: function(itemsElemId, skipAnimation){ - TodoItems.expandNextActionListing($('#'+itemsElemId).get(), skipAnimation); - }, setup_container_toggles: function(){ // bind handlers $('.container_toggle').click(function(evt){ var toggle_target = $(this.parentNode.parentNode).find('.toggle_target'); if(toggle_target.is(':visible')){ // 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); toggle_target.slideUp(500); // set parent class to 'context_collapsed' so we can hide/unhide all collapsed contexts toggle_target.parent().addClass("context_collapsed"); } else { // show it - imgSrc = $(this).find('img').attr('src'); - $(this).find('img').attr('src', imgSrc.replace('expand', 'collapse')); $.cookie(TodoItemsContainer.buildCookieName(this.parentNode.parentNode), null); toggle_target.slideDown(500); // remove class 'context_collapsed' from parent class @@ -383,12 +356,8 @@ var TodoItemsContainer = { // set to cookied state $('.container.context').each(function(){ if($.cookie(TodoItemsContainer.buildCookieName(this))=="true"){ - var imgSrc = $(this).find('.container_toggle img').attr('src'); - if (imgSrc) { - $(this).find('.container_toggle img').attr('src', imgSrc.replace('collapse', 'expand')); - $(this).find('.toggle_target').hide(); - $(this).find('.toggle_target').parent().addClass("context_collapsed"); - } + $(this).find('.toggle_target').hide(); + $(this).find('.toggle_target').parent().addClass("context_collapsed"); } }); }, @@ -397,14 +366,6 @@ var TodoItemsContainer = { buildCookieName: function(containerElem) { var tracks_login = $.cookie('tracks_login'); 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')); } } diff --git a/app/assets/stylesheets/tracks.css.scss b/app/assets/stylesheets/tracks.css.scss index f1e5b41f..bcd5d857 100644 --- a/app/assets/stylesheets/tracks.css.scss +++ b/app/assets/stylesheets/tracks.css.scss @@ -337,9 +337,12 @@ a.show_successors:hover, a.link_to_successors:hover {background-image: image-url } .container_toggle img { - height:14px; - width:14px; - border:0px; + height: 14px; + width: 14px; + border: 0px; + background: image-url('collapse_expand.png') no-repeat left top; + + .context_collapsed & { background-position: left bottom; } } h2 { diff --git a/app/views/contexts/_context.html.erb b/app/views/contexts/_context.html.erb index f6b940c9..6e7b6ee9 100644 --- a/app/views/contexts/_context.html.erb +++ b/app/views/contexts/_context.html.erb @@ -7,7 +7,7 @@ cache [context, @source_view, current_user.date.strftime("%Y%m%d")] do
">

<% if collapsible -%> - <%= image_tag("collapse.png") %> + <%= image_tag("blank.png", :alt => t('common.collapse_expand')) %> <% end -%> <% if source_view_is :context %> <%= context.name %> @@ -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" } %>

-<% end %> \ No newline at end of file +<% end %> diff --git a/app/views/projects/_project.html.erb b/app/views/projects/_project.html.erb index 0f93bd8f..48ac6815 100644 --- a/app/views/projects/_project.html.erb +++ b/app/views/projects/_project.html.erb @@ -5,7 +5,7 @@ cache [project, current_user.date.strftime("%Y%m%d")] do %>

<% if collapsible -%> - <%= image_tag("collapse.png") %> + <%= image_tag("blank.png", :alt => t('common.collapse_expand')) %> <% end -%>
<%= project.name -%>

@@ -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" } %>
-<% end %> \ No newline at end of file +<% end %> diff --git a/app/views/todos/_completed.html.erb b/app/views/todos/_completed.html.erb index 354a03f6..e59107c4 100644 --- a/app/views/todos/_completed.html.erb +++ b/app/views/todos/_completed.html.erb @@ -6,7 +6,7 @@

<% if collapsible %> - <%= image_tag("collapse.png") %> + <%= image_tag("blank.png", :alt => t('common.collapse_expand')) %> <% end %> <%= t('todos.completed_actions') %> <%= raw suffix %>

@@ -18,4 +18,4 @@ <%= render :partial => "todos/todo", :collection => completed, :locals => { :parent_container_type => "completed", :suppress_context => suppress_context, :suppress_project => suppress_project } %> - \ No newline at end of file + diff --git a/app/views/todos/_deferred.html.erb b/app/views/todos/_deferred.html.erb index cab8f027..95c7ce02 100644 --- a/app/views/todos/_deferred.html.erb +++ b/app/views/todos/_deferred.html.erb @@ -1,7 +1,7 @@

<% if collapsible %> - <%= image_tag("collapse.png") %> + <%= image_tag("blank.png", :alt => t('common.collapse_expand')) %> <% end %> <%= t('todos.deferred_pending_actions') %> <%= raw(append_descriptor ? append_descriptor : '') %>

diff --git a/app/views/todos/_hidden.html.erb b/app/views/todos/_hidden.html.erb index 4f7e581f..a95b70d6 100644 --- a/app/views/todos/_hidden.html.erb +++ b/app/views/todos/_hidden.html.erb @@ -1,7 +1,7 @@ -
\ No newline at end of file + diff --git a/config/locales/en.yml b/config/locales/en.yml index 72b15e2b..ee968060 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -158,6 +158,7 @@ en: other: days deferred: deferred not_available_abbr: "n/a" + collapse_expand: Collapse/expand data: import_successful: Import was successful. import_errors: Some errors occurred during import