From b847bde6b78ea36e2dd749ddadad63c163a23c47 Mon Sep 17 00:00:00 2001 From: martin speleo <martin.speleo@gmail.com> Date: Sun, 28 Jun 2009 19:33:24 +0100 Subject: [PATCH] [svn] Fixed small semantics issues stopping base.js working with IE. Made toggle eyecandy persistent (using a cookie) Made toggle eyecandy turn off footer menu images Only load footer menu images if the eyecandy is being used. --- expo/views_other.py | 5 ++- media/js/base.js | 91 ++++++++++++++++++++++++++++++++--------- templates/base.html | 21 +++++----- templates/eyecandy.html | 3 ++ urls.py | 7 ++-- 5 files changed, 92 insertions(+), 35 deletions(-) create mode 100644 templates/eyecandy.html diff --git a/expo/views_other.py b/expo/views_other.py index f56f8bc..790c779 100644 --- a/expo/views_other.py +++ b/expo/views_other.py @@ -149,4 +149,7 @@ def downloadQMs(request): def ajax_test(request): post_text = request.POST['post_data'] return HttpResponse("{'response_text': '"+post_text+" recieved.'}", - mimetype="application/json") \ No newline at end of file + mimetype="application/json") + +def eyecandy(request): + return render_response(request,'eyecandy.html', {}) diff --git a/media/js/base.js b/media/js/base.js index 62a72f4..91305a2 100644 --- a/media/js/base.js +++ b/media/js/base.js @@ -10,34 +10,40 @@ function setMaxHeight(group, target) { thisHeight = $(this).height(); if(thisHeight > tallest) { tallest = thisHeight; - } + }; }); target.height(tallest); -} +}; + /*This is the jquery stuff */ -$(document).ready(function() { +$(document).ready(function() { $('.searchable li').quicksearch({ position: 'before', attached: 'ul.searchable', labelText: '', loaderText: '', - delay: 100 -}) + delay: 100}); $('table.searchable tr').quicksearch({ position: 'before', - attached: 'table.searchable:first', -}); + attached: 'table.searchable:first'}); -$(".toggleEyeCandy").click(function () { - $(".leftMargin,.rightMargin").toggle("fade"); - $(".toggleEyeCandy").toggle(); - }); +$(".killEyeCandy").click(function () { + killEyeCandy(); + setCookie("eyeCandy", "False", 100); + } + ); -$(".toggleMenu").click(function () { +$(".showEyeCandy").click(function () { + showEyeCandy(); + setCookie("eyeCandy", "True", 100); + } + ); + +$(".toggleMenu").click(function () { $("ul.dropdown li:not(.toggleMenu)").toggle(); $(".toggleMenu").toggle(); }); @@ -52,30 +58,50 @@ $("a.closeDiv").click(function () { /*$("#footerLinks").hover( function() {$(".footer").fadeIn("slow")}, - function() {$(".footer").fadeOut("slow")} + function() {$(".footer").fadeOut("slow")} );*/ function linkHover(hoverLink,image){ -$(hoverLink).hover( +$(hoverLink).bind('mouseover', function() { - $(image).fadeIn("slow"); + $(image).stop().css("opacity", "1.0").fadeIn("slow"); /* $(hoverLink).css("background","gray");*/ - }, + }); +$(hoverLink).bind('mouseout', function() { - $(image).fadeOut("slow"); + $(image).stop().fadeOut("slow"); /* $(hoverLink).css("background","black");*/ - } + } ); }; +function showEyeCandy(){ +$("#eyeCandyFooterPopUps").load("/eyecandy"); +$(".leftMargin,.rightMargin").show(); +$(".showEyeCandy").hide(); +$(".killEyeCandy").show(); linkHover("#cavesLink","#richardBanner"); linkHover("#caversLink","#timeMachine"); linkHover("#surveyBinderLink","#surveyHover"); -linkHover("#troggle","#timeMachine"); +linkHover("#troggle","#timeMachine");}; + +function killEyeCandy(){ +$(".leftMargin,.rightMargin").hide(); +$(".showEyeCandy").show(); +$(".killEyeCandy").hide(); +$("#cavesLink").unbind('mouseover').unbind('mouseout'); +$("#caversLink").unbind('mouseover').unbind('mouseout'); +$("#surveyBinderLink").unbind('mouseover').unbind('mouseout'); +$("#troggle").unbind('mouseover').unbind('mouseout');}; + +if (getCookie("eyeCandy") == "False") + {killEyeCandy();} +else + {showEyeCandy();} /*dropdown (well, up actually) menu code from http://css-tricks.com/simple-jquery-dropdowns/*/ $("ul.dropdown li").hover( @@ -83,7 +109,7 @@ $("ul.dropdown li").hover( $(this).addClass("hover"); $('ul:first',this).css('visibility','visible') }, - + function(){ $(this).removeClass("hover"); $('ul:first',this).css('visibility', 'hidden'); @@ -94,3 +120,28 @@ $("ul.dropdown li").hover( }); + +/* Cookies */ +function setCookie(c_name,value,expiredays) +{ +var exdate=new Date(); +exdate.setDate(exdate.getDate()+expiredays); +document.cookie=c_name + "=" +escape(value) + +((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) + ";path=/"; +} + +function getCookie(c_name) +{ +if (document.cookie.length>0) + { + c_start=document.cookie.indexOf(c_name + "="); + if (c_start!=-1) + { + c_start=c_start + c_name.length+1; + c_end=document.cookie.indexOf(";",c_start); + if (c_end==-1) c_end=document.cookie.length; + return unescape(document.cookie.substring(c_start,c_end)); + } + } +return ""; +}; \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index ff06ebf..6fc3e30 100644 --- a/templates/base.html +++ b/templates/base.html @@ -27,9 +27,9 @@ window.onload = contentHeight; {% endif %}. | <a href="{% url auth_logout %}">Log out</a> {% else %} <a href="{% url registration_register %}">Sign up</a> | <a href="{% url auth_login %}">Log in</a> {% endif %} {% endblock%} - | <a href="{{ settings.URL_ROOT }}">Home</a> | <a class="toggleEyeCandy">Kill Eyecandy</a><a class="toggleEyeCandy" style="display: none;">Show Eyecandy</a> + | <a href="{{ settings.URL_ROOT }}">Home</a> | <a class="killEyeCandy">Kill Eyecandy</a><a class="showEyeCandy" style="display: none;">Show Eyecandy</a> {% block editLink %} - + {% endblock %} </div> </div> @@ -42,19 +42,18 @@ window.onload = contentHeight; <div id="content" > - + {% block contentheader %} {% endblock %} - + {% block content %} REPLACE : The content {% endblock %} - - </div> -<img id="richardBanner" class="footer eyeCandy" src="{{ settings.MEDIA_URL }}expoBanner.gif"/> -<img id="timeMachine" class="footer eyeCandy" src="{{ settings.MEDIA_URL }}timemachine.gif"/> -<img id="surveyHover" class="footer eyeCandy" src="{{ settings.MEDIA_URL }}surveyHover.gif"/> + </div> +<div id="eyeCandyFooterPopUps" class = "eyeCandy"> + +</div> {% block margins %} <img class="leftMargin eyeCandy" src="{{ settings.MEDIA_URL }}eieshole.jpg"> <img class="rightMargin eyeCandy" src="{{ settings.MEDIA_URL }}goesser.jpg"> @@ -90,9 +89,9 @@ window.onload = contentHeight; <li><a id="cuccLink" href="{% url controlpanel %}">Import / export data</a></li> <li><a id="expoWebsiteLink" href="{{ settings.URL_ROOT }}admin">Troggle administration pages</a></li> </ul> - <li class="toggleMenu"><a href="#">hide menu</a></li> + <li class="toggleMenu"><a href="#">hide menu</a></li> </ul> - <div class="toggleMenu" style="display:none; position:fixed; bottom:0; right:130px"><a href="#">Show menu</a></li> + <div class="toggleMenu" style="display:none; position:fixed; bottom:0; right:130px"><a href="#">Show menu</a></li> </body> </html> diff --git a/templates/eyecandy.html b/templates/eyecandy.html new file mode 100644 index 0000000..a1b9b3f --- /dev/null +++ b/templates/eyecandy.html @@ -0,0 +1,3 @@ +<img id="richardBanner" class="footer" src="{{ settings.MEDIA_URL }}expoBanner.gif" style="display: none;"/> +<img id="timeMachine" class="footer" src="{{ settings.MEDIA_URL }}timemachine.gif" style="display: none;"/> +<img id="surveyHover" class="footer" src="{{ settings.MEDIA_URL }}surveyHover.gif" style="display: none;"/> \ No newline at end of file diff --git a/urls.py b/urls.py index d888e9d..5f0822a 100644 --- a/urls.py +++ b/urls.py @@ -65,8 +65,9 @@ urlpatterns = patterns('', url(r'^logbook(?P<year>\d\d\d\d)\.(?P<extension>.*)/?$',views_other.downloadLogbook), url(r'^logbook/?$',views_other.downloadLogbook, name="downloadlogbook"), url(r'^cave/(?P<cave_id>[^/]+)/qm\.csv/?$', views_other.downloadQMs, name="downloadqms"), - (r'^downloadqms$', views_other.downloadQMs), - url(r'^cave/(?P<cave_id>[^/]+)(?P<subcave>/.*)/?$', subcave, name="subcave"), + (r'^downloadqms$', views_other.downloadQMs), + url(r'^cave/(?P<cave_id>[^/]+)(?P<subcave>/.*)/?$', subcave, name="subcave"), + url(r'^eyecandy$', views_other.eyecandy), (r'^admin/doc/?', include('django.contrib.admindocs.urls')), (r'^admin/(.*)/?', admin.site.root), @@ -74,7 +75,7 @@ urlpatterns = patterns('', (r'^accounts/', include('registration.urls')), (r'^profiles/', include('profiles.urls')), - + # (r'^personform/(.*)$', personForm), (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',