comparison client/digitallibrary/jquery/jquery.digilib.js @ 691:fe2bb8f926be jquery

merge with f5f2b262be07f41fa6c8d2f60332b198eaa2d603
author robcast
date Wed, 26 Jan 2011 23:43:39 +0100
parents 7c8d5bfc5243 f5f2b262be07
children ab8054bba8d3
comparison
equal deleted inserted replaced
690:7c8d5bfc5243 691:fe2bb8f926be
32 } 32 }
33 33
34 (function($) { 34 (function($) {
35 var buttons = { 35 var buttons = {
36 reference : { 36 reference : {
37 onclick : "javascript:getRefWin()", 37 onclick : "reference",
38 tooltip : "get a reference URL", 38 tooltip : "get a reference URL",
39 img : "reference.png" 39 img : "reference.png"
40 }, 40 },
41 zoomin : { 41 zoomin : {
42 onclick : ["zoomBy", 1.4], 42 onclick : ["zoomBy", 1.4],
87 onclick : "showAboutDiv", 87 onclick : "showAboutDiv",
88 tooltip : "about Digilib", 88 tooltip : "about Digilib",
89 img : "help.png" 89 img : "help.png"
90 }, 90 },
91 reset : { 91 reset : {
92 onclick : "javascript:resetImage()", 92 onclick : "reset",
93 tooltip : "reset image", 93 tooltip : "reset image",
94 img : "reset.png" 94 img : "reset.png"
95 }, 95 },
96 mark : { 96 mark : {
97 onclick : "setMark", 97 onclick : "setMark",
210 // defaults for digilib buttons 210 // defaults for digilib buttons
211 'buttonSettings' : { 211 'buttonSettings' : {
212 'fullscreen' : { 212 'fullscreen' : {
213 // path to button images (must end with a slash) 213 // path to button images (must end with a slash)
214 'imagePath' : 'img/fullscreen/', 214 'imagePath' : 'img/fullscreen/',
215 //'standardSet' : ["reference","zoomin","zoomout","zoomarea","zoomfull","pagewidth","mark","delmark","hmir","vmir","back","fwd","page","rot","brgt","cont","rgb","quality","size","calibrationx","scale","bird","help","options"],
216 'standardSet' : ["reference","zoomin","zoomout","zoomarea","zoomfull","pagewidth","back","fwd","page","bird","SEP","help","reset","moreoptions"], 215 'standardSet' : ["reference","zoomin","zoomout","zoomarea","zoomfull","pagewidth","back","fwd","page","bird","SEP","help","reset","moreoptions"],
217 'specialSet' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","size","calibrationx","scale","SEP","lessoptions"], 216 'specialSet' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","size","calibrationx","scale","SEP","lessoptions"],
218 'buttonSets' : ['standardSet', 'specialSet'] 217 'buttonSets' : ['standardSet', 'specialSet']
219 }, 218 },
220 'embedded' : { 219 'embedded' : {
221 'imagePath' : 'img/embedded/16/', 220 'imagePath' : 'img/embedded/16/',
222 'standardSet' : ["reference","zoomin","zoomout","zoomarea","zoomfull","hmir","vmir","back","fwd","page","rot","brgt","cont","rgb","quality","size","scale","bird","help","options"], 221 'standardSet' : ["reference","zoomin","zoomout","zoomarea","zoomfull","hmir","vmir","back","fwd","page","rot","brgt","cont","rgb","quality","size","scale","bird","help","reset","options"],
223 'specialSet' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","size","calibrationx","scale","SEP","options"], 222 'specialSet' : ["mark","delmark","hmir","vmir","rot","brgt","cont","rgb","quality","size","calibrationx","scale","options"],
224 'buttonSets' : ['standardSet', 'specialSet'] 223 'buttonSets' : ['standardSet', 'specialSet']
225 } 224 }
226 }, 225 },
227 // button groups 226 // button groups
228 // is birdView shown? 227 // is birdView shown?
268 } 267 }
269 } 268 }
270 return this.each(function() { 269 return this.each(function() {
271 var $elem = $(this); 270 var $elem = $(this);
272 var data = $elem.data('digilib'); 271 var data = $elem.data('digilib');
273 var elemSettings; 272 var params, elemSettings;
274 // if the plugin hasn't been initialized yet 273 // if the plugin hasn't been initialized yet
275 if (!data) { 274 if (!data) {
276 // merge query parameters 275 // merge query parameters
277 if (isFullscreen) { 276 if (isFullscreen) {
278 elemSettings = $.extend({}, settings, queryParams); 277 params = queryParams;
279 } else { 278 } else {
280 elemSettings = $.extend({}, settings, parseImgParams($elem)); 279 params = parseImgParams($elem);
281 } 280 };
282 // store $(this) element in the settings 281 // store $(this) element in the settings
282 elemSettings = $.extend({}, settings, params);
283 data = { 283 data = {
284 $elem : $elem, 284 $elem : $elem,
285 settings : elemSettings, 285 settings : elemSettings,
286 queryParams : queryParams 286 queryParams : params
287 }; 287 };
288 // store in data element 288 // store in data element
289 $elem.data('digilib', data); 289 $elem.data('digilib', data);
290 } 290 }
291 unpackParams(data); 291 unpackParams(data);
476 // move remaining sets left and show new set 476 // move remaining sets left and show new set
477 $oldSets.animate({left : '-='+btnWidth+'px'}, 477 $oldSets.animate({left : '-='+btnWidth+'px'},
478 function () {$newSet.show();}); 478 function () {$newSet.show();});
479 data.visibleButtonSets += 1; 479 data.visibleButtonSets += 1;
480 } 480 }
481 },
482
483 reset : function (data) {
484 var settings = data.settings;
485 var paramNames = settings.digilibParamNames;
486 var params = data.queryParams;
487 resetData(data);
488 // delete all digilib parameters
489 for (var i = 0; i < paramNames.length; i++) {
490 var paramName = paramNames[i];
491 delete settings[paramName];
492 };
493 // fullscreen: restore only fn/pn parameters
494 if (settings.interactionMode === 'fullscreen') {
495 settings['fn'] = params.fn;
496 settings['pn'] = params.pn;
497 // embedded: restore original parameters
498 } else {
499 $.extend(settings, params);
500 };
501 redisplay(data);
502 },
503
504 reference : function (data) {
505 var settings = data.settings;
506 var url;
507 if (settings.interactionMode === 'fullscreen') {
508 url = getDigilibUrl(data);
509 } else {
510 url = getScalerUrl(data);
511 };
512 window.prompt("URL reference to the current view", url);
481 } 513 }
482 }; 514 };
483 515
484 // returns parameters from page url 516 // returns parameters from page url
485 var parseQueryParams = function() { 517 var parseQueryParams = function() {
636 } 668 }
637 mo += f; 669 mo += f;
638 } 670 }
639 settings.mo = mo; 671 settings.mo = mo;
640 } 672 }
641 // digilib option birdview 673 // digilib option birdview TODO: replace with cookie
642 if (settings.isBirdDivVisible) { 674 //if (settings.isBirdDivVisible) {
643 data.dlOpts.birdview = 1; 675 // data.dlOpts.birdview = 1;
644 } else { 676 //} else {
645 delete data.dlOpts.birdview; 677 // delete data.dlOpts.birdview;
646 } 678 //}
679
647 // digilib options 680 // digilib options
648 if (data.dlOpts) { 681 if (data.dlOpts) {
649 var clop = ''; 682 var clop = '';
650 for (var o in data.dlOpts) { 683 for (var o in data.dlOpts) {
651 if (clop) { 684 if (clop) {
653 } 686 }
654 clop += o; 687 clop += o;
655 } 688 }
656 settings.clop = clop; 689 settings.clop = clop;
657 } 690 }
691 };
692
693 // clear digilib data for reset
694 var resetData = function (data) {
695 if (data.zoomArea) delete data.zoomArea;
696 if (data.marks) delete data.marks;
697 if (data.scalerFlags) delete data.scalerFlags;
698 if (data.dlOpts) delete data.dlOpts;
658 }; 699 };
659 700
660 // (re)load the img from a new scaler URL 701 // (re)load the img from a new scaler URL
661 var redisplay = function (data) { 702 var redisplay = function (data) {
662 var settings = data.settings; 703 var settings = data.settings;