Mercurial > hg > digilib
comparison client/digitallibrary/jquery/jquery.digilib.js @ 610:2f2cd8c44a1c jquery
toggle view event handlers for bird's eye and 'about windows
| author | hertzhaft |
|---|---|
| date | Sun, 16 Jan 2011 22:24:50 +0100 |
| parents | e18dedef32fb |
| children | d332c61da1b0 |
comparison
equal
deleted
inserted
replaced
| 609:e18dedef32fb | 610:2f2cd8c44a1c |
|---|---|
| 49 onclick : "javascript:gotoPageWin()", | 49 onclick : "javascript:gotoPageWin()", |
| 50 tooltip : "specify image", | 50 tooltip : "specify image", |
| 51 img : "page.png" | 51 img : "page.png" |
| 52 }, | 52 }, |
| 53 bird : { | 53 bird : { |
| 54 onclick : "javascript:toggleBirdDiv()", | 54 onclick : "toggleBirdDiv", |
| 55 tooltip : "show bird's eye view", | 55 tooltip : "show bird's eye view", |
| 56 img : "birds-eye.png" | 56 img : "birds-eye.png" |
| 57 }, | 57 }, |
| 58 help : { | 58 help : { |
| 59 onclick : "javascript:toggleAboutDiv()", | 59 onclick : "toggleAboutDiv", |
| 60 tooltip : "about Digilib", | 60 tooltip : "about Digilib", |
| 61 img : "help.png" | 61 img : "help.png" |
| 62 }, | 62 }, |
| 63 reset : { | 63 reset : { |
| 64 onclick : "javascript:resetImage()", | 64 onclick : "javascript:resetImage()", |
| 132 }, | 132 }, |
| 133 SEP : { | 133 SEP : { |
| 134 img : "sep.png" | 134 img : "sep.png" |
| 135 } | 135 } |
| 136 }; | 136 }; |
| 137 | 137 |
| 138 var defaults = { | 138 var defaults = { |
| 139 // the root digilib element, for easy retrieval | |
| 140 'digilibRoot' : null, | |
| 139 // version of this script | 141 // version of this script |
| 140 'version' : 'jquery.digilib.js 1.0', | 142 'version' : 'jquery.digilib.js 1.0', |
| 141 // logo url | 143 // logo url |
| 142 'logoUrl' : '../img/digilib-logo-text1.png', | 144 'logoUrl' : '../img/digilib-logo-text1.png', |
| 143 // repository url | 145 // repository url |
| 194 if (isFullscreen) { | 196 if (isFullscreen) { |
| 195 elemSettings = $.extend({}, settings, queryParams); | 197 elemSettings = $.extend({}, settings, queryParams); |
| 196 } else { | 198 } else { |
| 197 elemSettings = $.extend({}, settings, parseImgParams($elem)); | 199 elemSettings = $.extend({}, settings, parseImgParams($elem)); |
| 198 }; | 200 }; |
| 201 // store $(this) element in the settings | |
| 202 elemSettings.digilibRoot = $elem; | |
| 199 // store in data element | 203 // store in data element |
| 200 $elem.data('digilib', { | 204 $elem.data('digilib', { |
| 201 target : $elem, | 205 target : $elem, |
| 202 settings : elemSettings | 206 settings : elemSettings |
| 203 }); | 207 }); |
| 204 } | 208 } |
| 205 // create HTML structure | 209 // create HTML structure |
| 206 setupScalerDiv($elem, elemSettings); | 210 setupScalerDiv($elem, elemSettings); |
| 207 setupButtons($elem, elemSettings, 'buttonsStandard'); | 211 setupButtons($elem, elemSettings, 'buttonsStandard'); |
| 212 // bird's eye view creation - could be deferred? | |
| 208 setupBirdviewDiv($elem, elemSettings); | 213 setupBirdviewDiv($elem, elemSettings); |
| 214 // about window creation - could be deferred? restrict to only one item? | |
| 209 setupAboutDiv($elem, elemSettings); | 215 setupAboutDiv($elem, elemSettings); |
| 210 }); | 216 }); |
| 211 }, | 217 }, |
| 212 | 218 |
| 213 // clean up digilib | 219 // clean up digilib |
| 218 // Namespacing FTW | 224 // Namespacing FTW |
| 219 $(window).unbind('.digilib'); // unbinds all digilibs(?) | 225 $(window).unbind('.digilib'); // unbinds all digilibs(?) |
| 220 data.digilib.remove(); | 226 data.digilib.remove(); |
| 221 $this.removeData('digilib'); | 227 $this.removeData('digilib'); |
| 222 }); | 228 }); |
| 229 }, | |
| 230 | |
| 231 // event handler: toggles the visibility of the 'about' window | |
| 232 toggleAboutDiv : function () { | |
| 233 var $elem = $(this); // the clicked button | |
| 234 var settings = $elem.data('digilib').settings; | |
| 235 var $root = settings.digilibRoot; | |
| 236 var $about = $root.find('div.about'); | |
| 237 settings.isAboutDivVisible = !settings.isAboutDivVisible; | |
| 238 if (settings.isAboutDivVisible) { | |
| 239 $about.fadeIn(); | |
| 240 } else { | |
| 241 $about.fadeOut(); | |
| 242 }; | |
| 243 return false; | |
| 244 }, | |
| 245 | |
| 246 // event handler: toggles the visibility of the bird's eye window | |
| 247 toggleBirdDiv : function () { | |
| 248 // xxx: red frame functionality still to be done! | |
| 249 var $elem = $(this); // the clicked button | |
| 250 var settings = $elem.data('digilib').settings; | |
| 251 var $root = settings.digilibRoot; | |
| 252 var $bird = $root.find('div.birdview'); | |
| 253 settings.isBirdDivVisible = !settings.isBirdDivVisible; | |
| 254 if (settings.isBirdDivVisible) { | |
| 255 $bird.fadeIn(); | |
| 256 } else { | |
| 257 $bird.fadeOut(); | |
| 258 }; | |
| 259 return false; | |
| 223 } | 260 } |
| 224 }; | 261 }; |
| 225 | 262 |
| 226 // returns parameters from page url | 263 // returns parameters from page url |
| 227 var parseQueryParams = function() { | 264 var parseQueryParams = function() { |
| 347 $a.data('digilib', { 'name' : buttonName, 'settings' : settings } ); | 384 $a.data('digilib', { 'name' : buttonName, 'settings' : settings } ); |
| 348 $a.bind('click', function() { | 385 $a.bind('click', function() { |
| 349 // get the context settings | 386 // get the context settings |
| 350 var data = $(this).data('digilib'); | 387 var data = $(this).data('digilib'); |
| 351 // find the action for the clicked element | 388 // find the action for the clicked element |
| 352 console.log(data.settings.buttons[data.name].onclick); | 389 var method = data.settings.buttons[data.name].onclick; |
| 390 // find the digilib object with methods | |
| 391 var $root = data.settings.digilibRoot; | |
| 392 // execute as a method | |
| 393 $a.digilib(method); | |
| 394 console.log(onclick); | |
| 353 }); | 395 }); |
| 354 // binding mit closure | 396 // binding mit closure |
| 355 //(function(){ var action = buttonSettings.onclick; | 397 //(function(){ var action = buttonSettings.onclick; |
| 356 // $a.bind('click', function(){ console.log( action )} ); | 398 // $a.bind('click', function(){ console.log( action )} ); |
| 357 //})(); | 399 //})(); |
