Changeset 278 in t29-www for shared/js-v6/modules/menu.js
- Timestamp:
- Jul 18, 2012, 2:55:44 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
shared/js-v6/modules/menu.js
r277 r278 47 47 48 48 // default values 49 if(!this.button) 49 if(!this.button) // button widget 50 50 this.button = $('<span class="button collapse-menu"></span>') 51 51 .addClass('for-'+this.id).appendTo("nav.side"); 52 53 // constants for the 'set' method 54 this.FOLD = true; this.EXPAND = false; 55 this.QUICK = true; this.ANIMATE = false; 52 if(!this.label) { // button label 53 this.label = {}; 54 this.label[t29c.FOLD] = t29._("js-menu-collapse-out"); 55 this.label[t29c.EXPAND] = t29._("js-menu-collapse-in"); 56 } 57 if(!this.initial) // initial state 58 this.initial = t29.prefs.get(this.store_key, t29c.FOLD); 56 59 57 60 // set initial state 58 this.set(t 29.prefs.get(this.store_key, this.FOLD), this.QUICK);61 this.set(this.initial, t29c.QUICK); 59 62 60 63 // set button callback 61 64 this.button.click($.proxy(function(){ this.set(); }, this)); 62 65 } 66 67 // Constants: 68 if(!window.t29c) window.t29c = {}; // namespace for t29 contstants 69 t29c.FOLD = true; // state: folded menu (small) 70 t29c.EXPAND = false; // state: expanded menu (big) 71 t29c.QUICK = true; // action: quick crossover (no animation, instantanous) 72 t29c.ANIMATE = false; // action: animated crossover (visible to user) 63 73 64 74 /** … … 71 81 if(collapse == undefined) 72 82 collapse = ! this.is_collapsed(); 73 log("Collapsing "+this.id+" to " +(collapse==this.FOLD ? "klein (fold)" : "gross (expand)")+" quick = " + (quick==this.QUICK ? "quick!" : "animated")); 74 if(quick) collapse ? this.lists.hide() : this.lists.show(); 75 else collapse ? this.lists.slideUp() : this.lists.slideDown(); 76 this.button.text(t29._(collapse ? "js-menu-collapse-out" : "js-menu-collapse-in")); 77 //collapse ? $("html").addClass("collapsed-menu") : $("html").removeClass("collapsed-menu"); 83 log("Collapse: "+this.id+" FOLD " +(collapse==t29c.FOLD ? "<=" : "=>")+" EXPAND " + (quick==t29c.QUICK ? "[quick!]" : "")); 84 if(this.set_pre) 85 this.set_pre(collapse, quick); // execute some callback 86 if(quick) this.lists[collapse ? 'hide' : 'show'](); 87 else this.lists[collapse ? 'slideUp' : 'slideDown'](); 88 this.button.text(this.label[collapse]); 89 // body CSS class shall only be used for CSS interaction, not for JS readout. Use is_collapsed() instead. 90 $("body")[collapse ? 'addClass' : 'removeClass']("collapsed-menu-"+this.id); 78 91 t29.prefs.set(this.store_key, collapse); 79 92 } 80 93 81 94 // returns whether menu is collapsed (boolean). 82 t29.menu.Collapsible.prototype.is_collapsed = function() { return t29.prefs.get(this.store_key) == t his.FOLD; }95 t29.menu.Collapsible.prototype.is_collapsed = function() { return t29.prefs.get(this.store_key) == t29c.FOLD; } 83 96 84 97 t29.menu.collapsed.setup = function() { … … 88 101 lists: $("nav.side .u3").not("nav.side li.active > .u3, .geraete"), 89 102 }); 90 91 /*t29.menu.collapsed.geraete = new t29.menu.Collapsible({ 103 104 // check if we want mini menu for the beginning 105 if( $("body").hasClass("in-geraete") ) { 106 t29.menu.collapsed.u3.button.hide(); 107 // mini doesn't care about cookie settings. 108 t29.menu.collapsed.mini = new t29.menu.Collapsible({ 109 id: 'mini', 110 lists: $("nav.side li").not('.guide-only').not("li.active, li.active > ul.u3 > li, li.active > ul.u4 > li"), 111 initial: t29c.FOLD, 112 set_pre: function(collapse) { 113 if(collapse == t29c.EXPAND) { 114 // after first expanding, disable system and enable rest of systems 115 this.button.hide(); 116 t29.menu.collapsed.u3.button.show(); 117 } 118 } 119 }); 120 } 121 122 /* 123 t29.menu.collapsed.geraete = new t29.menu.Collapsible({ 92 124 id: 'geraete', 93 125 lists: $("nav.side ul.geraete"), 94 });*/ 126 label: (function(){ l = {}; l[t29c.FOLD] = '(+ extra)'; l[t29c.EXPAND] = '(- extra)'; return l; })(), 127 }); 128 */ 129 130 // special situation on gerate pages (body.in-geraete): only active li's are shown there 131 // by default. This is a third state next to FOLDed and EXPANDed menu: super-FOLDED. 132 // Clicking the 'details' button yields ordinary FOLDed state. 95 133 96 134 // hide geraete 97 135 //t29.menu.collapsed.geraete.button.hide(); 98 $("ul.geraete").hide();136 //$("ul.geraete").hide(); 99 137 }; 100 138 … … 135 173 case t29.menu.scroll.States.STATIC: 136 174 // die CSS-Klassen regeln eigentlich alles. 137 t29.menu.collapsed.u3.button.show();175 //CSS// t29.menu.collapsed.u3.button.show(); 138 176 t29.menu.scroll.but.text(t29._("js-menu-scroll-show")); 139 177 t29.menu.side.show(); … … 159 197 160 198 t29.menu.collapsed.u3.set(true, true); // Sicherstellen, dass Navi eingeklappt. 161 t29.menu.collapsed.u3.button.hide(); // Ausgeklappte Navi passt auf keinen Bildschirm.199 //CSS// t29.menu.collapsed.u3.button.hide(); // Ausgeklappte Navi passt auf keinen Bildschirm. 162 200 t29.menu.scroll.but.text(t29._("js-menu-scroll-hide")); 163 201 break; … … 289 327 // Texte ersetzen durch laengere verstaendlichere Beschreibungen im title 290 328 g.find("a[title]").each(function(){ 291 $(this).text( $(this).attr('title') ) ;329 $(this).text( $(this).attr('title') ).attr('title',''); // title attribut entfernen 292 330 }); 293 331
Note: See TracChangeset
for help on using the changeset viewer.