Mercurial > hg > digilib-old
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; |