comparison client/digitallibrary/jquery/jquery.digilib.js @ 709:fca26721e8dd jquery

fixed some reset and cookie issues
author hertzhaft
date Sat, 29 Jan 2011 23:27:39 +0100
parents 120ace160386
children d533bdf0e64e
comparison
equal deleted inserted replaced
708:120ace160386 709:fca26721e8dd
282 // add buttons 282 // add buttons
283 for (var i = 0; i < elemSettings.visibleButtonSets; ++i) { 283 for (var i = 0; i < elemSettings.visibleButtonSets; ++i) {
284 showButtons(data, true, i); 284 showButtons(data, true, i);
285 } 285 }
286 // bird's eye view creation 286 // bird's eye view creation
287 if (elemSettings.isBirdDivVisible) { 287 if (elemSettings.isBirdDivVisible ) {
288 setupBirdDiv(data); 288 setupBirdDiv(data);
289 } 289 }
290 // about window creation - TODO: could be deferred? restrict to only one item? 290 // about window creation - TODO: could be deferred? restrict to only one item?
291 setupAboutDiv(data); 291 setupAboutDiv(data);
292 // TODO: the actual moving code 292 // TODO: the actual moving code
467 // reset image parameters to defaults 467 // reset image parameters to defaults
468 reset : function (data) { 468 reset : function (data) {
469 var settings = data.settings; 469 var settings = data.settings;
470 var paramNames = settings.digilibParamNames; 470 var paramNames = settings.digilibParamNames;
471 var params = data.queryParams; 471 var params = data.queryParams;
472 // resets zoomArea, marks, scalerflags
472 resetData(data); 473 resetData(data);
473 // delete all digilib parameters 474 // delete all digilib parameters
474 for (var i = 0; i < paramNames.length; i++) { 475 for (var i = 0; i < paramNames.length; i++) {
475 var paramName = paramNames[i]; 476 var paramName = paramNames[i];
476 delete settings[paramName]; 477 delete settings[paramName];
477 }; 478 };
478 // fullscreen: restore only fn/pn parameters 479 // fullscreen: restore only fn/pn parameters
479 if (settings.interactionMode === 'fullscreen') { 480 if (settings.interactionMode === 'fullscreen') {
480 settings['fn'] = params.fn; 481 settings['fn'] = params.fn || ''; // no default defined
481 settings['pn'] = params.pn; 482 settings['pn'] = params.pn || defaults.pn;
482 // embedded: restore original parameters 483 // embedded: restore original parameters
483 } else { 484 } else {
484 $.extend(settings, params); 485 $.extend(settings, params);
485 }; 486 };
487 // TODO: should we really reset all user preferences here?
488 settings.isBirdDivVisible = false;
489 settings.visibleButtonSets = 1;
486 redisplay(data); 490 redisplay(data);
487 }, 491 },
488 492
489 // presents a reference url (returns value if noprompt) 493 // presents a reference url (returns value if noprompt)
490 reference : function (data, noprompt) { 494 reference : function (data, noprompt) {
625 for (var i = 0; i < pa.length ; i++) { 629 for (var i = 0; i < pa.length ; i++) {
626 flags[pa[i]] = pa[i]; 630 flags[pa[i]] = pa[i];
627 } 631 }
628 } 632 }
629 data.scalerFlags = flags; 633 data.scalerFlags = flags;
630 // clop (digilib options) 634 retrieveOptionsCookie(data);
631 var opts = {};
632 if (jQuery.cookie) {
633 // read from cookie
634 var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
635 var cp = jQuery.cookie(ck);
636 console.debug("get cookie=", ck, " value=", cp);
637 // in query string format
638 opts = parseQueryString(cp);
639 }
640 /* read from parameter clop
641 * if (settings.clop) {
642 var pa = settings.clop.split(",");
643 for (var i = 0; i < pa.length ; i++) {
644 opts[pa[i]] = pa[i];
645 }
646 } */
647 data.dlOpts = opts;
648 // birdview option
649 if (opts.birdview != null) {
650 settings.isBirdDivVisible = opts.birdview;
651 }
652 // visible button sets
653 if (opts.buttons != null) {
654 settings.visibleButtonSets = opts.buttons;
655 }
656 }; 635 };
657 636
658 // put objects back into parameters 637 // put objects back into parameters
659 var packParams = function (data) { 638 var packParams = function (data) {
660 var settings = data.settings; 639 var settings = data.settings;
684 } 663 }
685 mo += f; 664 mo += f;
686 } 665 }
687 settings.mo = mo; 666 settings.mo = mo;
688 } 667 }
689 // save digilib settings in options 668 storeOptionsCookie(data);
690 data.dlOpts.birdview = settings.isBirdDivVisible ? 1 : 0; 669 };
691 data.dlOpts.buttons = settings.visibleButtonSets; 670
692 671 var storeOptionsCookie = function (data) {
693 // save digilib options in cookie 672 // save digilib options in cookie
694 // TODO: in embedded mode this is not called 673 // TODO: in embedded mode this is not called
695 if (data.dlOpts) {
696 var clop = '';
697 for (var o in data.dlOpts) {
698 if (clop) {
699 clop += '&';
700 }
701 clop += o + '=' + data.dlOpts[o];
702 }
703 var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
704 console.debug("set cookie=", ck, " value=", clop);
705 jQuery.cookie(ck, clop);
706 };
707 /* store in parameter clop 674 /* store in parameter clop
708 * if (data.dlOpts) { 675 * if (data.dlOpts) {
709 var clop = ''; 676 var clop = '';
710 for (var o in data.dlOpts) { 677 for (var o in data.dlOpts) {
711 if (clop) { 678 if (clop) {
713 } 680 }
714 clop += o; 681 clop += o;
715 } 682 }
716 settings.clop = clop; 683 settings.clop = clop;
717 } */ 684 } */
718 }; 685 var settings = data.settings;
686 if (data.dlOpts) {
687 // save digilib settings in options
688 data.dlOpts.birdview = settings.isBirdDivVisible ? 1 : 0;
689 data.dlOpts.buttons = settings.visibleButtonSets;
690 var clop = '';
691 for (var o in data.dlOpts) {
692 if (clop) {
693 clop += '&';
694 }
695 clop += o + '=' + data.dlOpts[o];
696 }
697 if (jQuery.cookie) {
698 var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
699 console.debug("set cookie=", ck, " value=", clop);
700 jQuery.cookie(ck, clop);
701 };
702 };
703 };
704
705 var retrieveOptionsCookie = function (data) {
706 // clop (digilib options)
707 var opts = {};
708 var settings = data.settings;
709 if (jQuery.cookie) {
710 /* read from parameter clop
711 * if (settings.clop) {
712 var pa = settings.clop.split(",");
713 for (var i = 0; i < pa.length ; i++) {
714 opts[pa[i]] = pa[i];
715 }
716 } */
717 // read from cookie
718 var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
719 var cp = jQuery.cookie(ck);
720 console.debug("get cookie=", ck, " value=", cp);
721 // in query string format
722 opts = parseQueryString(cp);
723 };
724 data.dlOpts = opts;
725 // birdview option
726 if (opts.birdview != null) {
727 settings.isBirdDivVisible = opts.birdview === '1';
728 };
729 // visible button sets
730 if (opts.buttons != null) {
731 settings.visibleButtonSets = opts.buttons;
732 };
733 }
719 734
720 // clear digilib data for reset 735 // clear digilib data for reset
721 var resetData = function (data) { 736 var resetData = function (data) {
722 if (data.zoomArea) delete data.zoomArea; 737 if (data.zoomArea) delete data.zoomArea;
723 if (data.marks) delete data.marks; 738 if (data.marks) delete data.marks;
724 if (data.scalerFlags) delete data.scalerFlags; 739 if (data.scalerFlags) delete data.scalerFlags;
725 if (data.dlOpts) delete data.dlOpts;
726 }; 740 };
727 741
728 // (re)load the img from a new scaler URL 742 // (re)load the img from a new scaler URL
729 var redisplay = function (data) { 743 var redisplay = function (data) {
730 var settings = data.settings; 744 var settings = data.settings;