Changeset 26085


Ignore:
Timestamp:
12/22/13 17:06:43 (6 years ago)
Author:
mistic100
Message:

rewrite elegant javascript : use session storage instead of cookies, factorize jQuery variables, remove unecessary event handlers, wrap into anonymous function

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/themes/elegant/scripts.js

    r23535 r26085  
    1 /** 
    2  * Cookie plugin 
    3  * Copyright (c) 2006 Klaus Hartl (stilbuero.de) 
    4  * Dual licensed under the MIT and GPL licenses: 
    5  */ 
    6 jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options=jQuery.extend({},options);options.expires=-1;} 
    7 var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;} 
    8 expires='; expires='+date.toUTCString();} 
    9 var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}} 
    10 return cookieValue;}}; 
     1(function() { 
     2  var session_storage = window.sessionStorage || {}; 
    113 
    12 if (jQuery.cookie('page-menu') == 'hidden') { 
    13         jQuery("head").append("<style type=\"text/css\">#the_page #menubar {display:none;} #content.contentWithMenu, #the_page > .content {margin-left:35px;}</style>"); 
    14 } else { 
    15         jQuery("head").append("<style type=\"text/css\">#content.contentWithMenu, #the_page > .content {margin-left:240px;}</style>"); 
    16 } 
     4  var menubar=jQuery("#menubar"), 
     5      menuswitcher=jQuery("#menuSwitcher"), 
     6      content=jQuery("#the_page > .content"), 
     7      pcontent=jQuery("#content"); 
    178 
    18 function hideMenu(delay) { 
    19         var menubar=jQuery("#menubar"); 
    20         var menuswitcher=jQuery("#menuSwitcher"); 
    21         var content=jQuery("#the_page > .content"); 
    22         var pcontent=jQuery("#content"); 
    23          
    24         menubar.hide(delay); 
    25         menuswitcher.addClass("menuhidden").removeClass("menushown"); 
    26         content.addClass("menuhidden").removeClass("menushown"); 
    27         pcontent.addClass("menuhidden").removeClass("menushown"); 
    28         jQuery.cookie('page-menu', 'hidden', {path: "/"}); 
    29          
    30 } 
     9  if (session_storage['page-menu'] == 'hidden') { 
     10    jQuery("head").append('<style>#the_page #menubar {display:none;} #content.contentWithMenu, #the_page > .content {margin-left:35px;}</style>'); 
     11  } 
     12  else { 
     13    jQuery("head").append('<style>#content.contentWithMenu, #the_page > .content {margin-left:240px;}</style>'); 
     14  } 
    3115 
    32 function showMenu(delay) { 
     16  function hideMenu(delay) { 
     17    menubar.hide(delay); 
     18    menuswitcher.addClass("menuhidden").removeClass("menushown"); 
     19    content.addClass("menuhidden").removeClass("menushown"); 
     20    pcontent.addClass("menuhidden").removeClass("menushown"); 
     21    session_storage['page-menu'] = 'hidden'; 
     22  } 
    3323 
    34         var menubar=jQuery("#menubar"); 
    35         var menuswitcher=jQuery("#menuSwitcher"); 
    36         var content=jQuery("#the_page > .content"); 
    37         var pcontent=jQuery("#content"); 
     24  function showMenu(delay) { 
     25    menubar.show(delay); 
     26    menuswitcher.addClass("menushown").removeClass("menuhidden"); 
     27    content.addClass("menushown").removeClass("menuhidden"); 
     28    pcontent.addClass("menushown").removeClass("menuhidden"); 
     29    session_storage['page-menu'] = 'visible'; 
     30  } 
    3831 
    39         menubar.show(delay); 
    40         menuswitcher.addClass("menushown").removeClass("menuhidden"); 
    41         content.addClass("menushown").removeClass("menuhidden"); 
    42         pcontent.addClass("menushown").removeClass("menuhidden"); 
    43         jQuery.cookie('page-menu', 'visible', {path: "/"}); 
    44          
    45 } 
     32  jQuery(function(){ 
     33    if (menubar.length == 1 && p_main_menu!="disabled") { 
     34      menuswitcher.html('<div class="switchArrow">&nbsp;</div>'); 
    4635 
    47 jQuery("document").ready(function(jQuery){ 
     36      if (session_storage['page-menu'] == 'hidden' || p_main_menu == 'off') { 
     37        hideMenu(0); 
     38      } 
     39      else { 
     40        showMenu(0); 
     41      } 
    4842 
    49         var sidemenu = jQuery.cookie('page-menu'); 
    50         var menubar=jQuery("#menubar"); 
    51  
    52         if (menubar.length == 1 && p_main_menu!="disabled") { 
    53  
    54                 jQuery("#menuSwitcher").html("<div class=\"switchArrow\">&nbsp;</div>"); 
    55  
    56                 // if cookie says the menu is hiding, keep it hidden! 
    57                 if (sidemenu == 'hidden') { 
    58                         hideMenu(0); 
    59                 } else if (sidemenu == 'visible') { 
    60                         showMenu(0); 
    61                 } else if (p_main_menu == 'off') { 
    62                         hideMenu(0); 
    63                 }       else { 
    64                         showMenu(0); 
    65                 } 
    66      
    67                 jQuery("#menuSwitcher").click(function(){ 
    68                         if (jQuery("#menubar").is(":hidden")) { 
    69                                 showMenu(0); 
    70                                 return false; 
    71                         } else { 
    72                                 hideMenu(0); 
    73                                 return false; 
    74                         } 
    75                 }); 
    76         } 
    77   else if (menubar.length == 1 && p_main_menu=="disabled") { 
    78     showMenu(0); 
    79   } 
    80          
    81 }); 
    82  
    83  
     43      menuswitcher.click(function(e){ 
     44        if (menubar.is(":hidden")) { 
     45          showMenu(0); 
     46        } 
     47        else { 
     48          hideMenu(0); 
     49        } 
     50        e.preventDefault(); 
     51      }); 
     52    } 
     53    else if (menubar.length == 1 && p_main_menu=="disabled") { 
     54      showMenu(0); 
     55    } 
     56  }); 
     57}()); 
Note: See TracChangeset for help on using the changeset viewer.