comparison client/digitallibrary/jquery/jquery.digilib.js @ 694:53c75b4bc358 jquery

cookie handling now just in pack/unpackParameters
author robcast
date Thu, 27 Jan 2011 19:45:26 +0100
parents dbd7c7aa575f
children 09e06aa12c0d
comparison
equal deleted inserted replaced
693:dbd7c7aa575f 694:53c75b4bc358
311 showBirdDiv : function (data, show) { 311 showBirdDiv : function (data, show) {
312 if (data.$birdDiv == null) { 312 if (data.$birdDiv == null) {
313 // no bird div -> create 313 // no bird div -> create
314 setupBirdDiv(data); 314 setupBirdDiv(data);
315 } 315 }
316 // TODO: keep bird view visible after reload (parameter, cookie?)
317 data.settings.isBirdDivVisible = showDiv(data.settings.isBirdDivVisible, data.$birdDiv, show); 316 data.settings.isBirdDivVisible = showDiv(data.settings.isBirdDivVisible, data.$birdDiv, show);
318 cookie(data, 'birdview', data.settings.isBirdDivVisible ? "1" : "0");
319 data.$birdImg.triggerHandler('load'); 317 data.$birdImg.triggerHandler('load');
320 }, 318 },
321 319
322 // goto given page nr (+/-: relative) 320 // goto given page nr (+/-: relative)
323 gotoPage : function (data, pageNr) { 321 gotoPage : function (data, pageNr) {
516 return params; 514 return params;
517 }; 515 };
518 516
519 // parses query parameter string into parameter object 517 // parses query parameter string into parameter object
520 var parseQueryString = function(query) { 518 var parseQueryString = function(query) {
519 var params = {};
520 if (query == null) return params;
521 var pairs = query.split("&"); 521 var pairs = query.split("&");
522 var params = {};
523 //var keys = []; 522 //var keys = [];
524 for (var i = 0; i < pairs.length; i++) { 523 for (var i = 0; i < pairs.length; i++) {
525 var pair = pairs[i].split("="); 524 var pair = pairs[i].split("=");
526 if (pair.length === 2) { 525 if (pair.length === 2) {
527 params[pair[0]] = pair[1]; 526 params[pair[0]] = pair[1];
548 paramString += key + '=' + settings[key]; 547 paramString += key + '=' + settings[key];
549 } 548 }
550 } 549 }
551 return paramString; 550 return paramString;
552 }; 551 };
553
554 // set/get cookie for current image
555 var cookie = function (data, key, value) {
556 var settings = data.settings;
557 var fn = settings.fn;
558 var pn = settings.pn;
559 var name = key + ":fn:" + fn + ":pn:" + pn;
560 var result = (typeof value === 'undefined') ? $.cookie(name) : $.cookie(name, value, 7);
561 console.log("cookie=", name, " value=", $.cookie(name));
562 return result;
563 };
564 552
565 // returns URL and query string for Scaler 553 // returns URL and query string for Scaler
566 var getScalerUrl = function (data) { 554 var getScalerUrl = function (data) {
567 var settings = data.settings; 555 var settings = data.settings;
568 if (settings.scalerBaseUrl == null) { 556 if (settings.scalerBaseUrl == null) {
619 } 607 }
620 } 608 }
621 data.scalerFlags = flags; 609 data.scalerFlags = flags;
622 // clop (digilib options) 610 // clop (digilib options)
623 var opts = {}; 611 var opts = {};
624 if (settings.clop) { 612 if (jQuery.cookie) {
613 // read from cookie
614 var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
615 var cp = jQuery.cookie(ck);
616 console.debug("get cookie=", ck, " value=", cp);
617 // in query string format
618 opts = parseQueryString(cp);
619 }
620 /* read from parameter clop
621 * if (settings.clop) {
625 var pa = settings.clop.split(","); 622 var pa = settings.clop.split(",");
626 for (var i = 0; i < pa.length ; i++) { 623 for (var i = 0; i < pa.length ; i++) {
627 opts[pa[i]] = pa[i]; 624 opts[pa[i]] = pa[i];
628 } 625 }
629 } 626 } */
630 data.dlOpts = opts; 627 data.dlOpts = opts;
631 // birdview option 628 // birdview option
632 if (cookie(data, 'birdview') === '1') { 629 if (opts.birdview != null) {
633 settings.isBirdDivVisible = 1; 630 settings.isBirdDivVisible = opts.birdview;
634 } 631 }
632 // visible button sets
633 if (opts.buttons != null) {
634 settings.visibleButtonSets = opts.buttons;
635 }
635 }; 636 };
636 637
637 // put objects back into parameters 638 // put objects back into parameters
638 var packParams = function (data) { 639 var packParams = function (data) {
639 var settings = data.settings; 640 var settings = data.settings;
663 } 664 }
664 mo += f; 665 mo += f;
665 } 666 }
666 settings.mo = mo; 667 settings.mo = mo;
667 } 668 }
668 // digilib option birdview 669 // save digilib settings in options
669 // cookie(data, 'birdview', settings.isBirdDivVisible ? "1" : "0"); 670 data.dlOpts.birdview = settings.isBirdDivVisible ? 1 : 0;
670 671 data.dlOpts.buttons = settings.visibleButtonSets;
671 // digilib options 672
673 // save digilib options in cookie
672 if (data.dlOpts) { 674 if (data.dlOpts) {
673 var clop = ''; 675 var clop = '';
674 for (var o in data.dlOpts) { 676 for (var o in data.dlOpts) {
675 if (clop) { 677 if (clop) {
678 clop += '&';
679 }
680 clop += o + '=' + data.dlOpts[o];
681 }
682 var ck = "digilib:fn:" + escape(settings.fn) + ":pn:" + settings.pn;
683 console.debug("set cookie=", ck, " value=", clop);
684 jQuery.cookie(ck, clop);
685 };
686 /* store in parameter clop
687 * if (data.dlOpts) {
688 var clop = '';
689 for (var o in data.dlOpts) {
690 if (clop) {
676 clop += ','; 691 clop += ',';
677 } 692 }
678 clop += o; 693 clop += o;
679 } 694 }
680 settings.clop = clop; 695 settings.clop = clop;
681 } 696 } */
682 }; 697 };
683 698
684 // clear digilib data for reset 699 // clear digilib data for reset
685 var resetData = function (data) { 700 var resetData = function (data) {
686 if (data.zoomArea) delete data.zoomArea; 701 if (data.zoomArea) delete data.zoomArea;
919 // move remaining sets left and show new set 934 // move remaining sets left and show new set
920 if (animated) { 935 if (animated) {
921 $otherSets.animate({left : '-='+btnWidth+'px'}, 'fast', 936 $otherSets.animate({left : '-='+btnWidth+'px'}, 'fast',
922 function () {$set.show();}); 937 function () {$set.show();});
923 } else { 938 } else {
924 $otherSets.css({left : '-='+btnWidth+'px'}); 939 var oldpos = $otherSets.position();
940 if (oldpos) {
941 $otherSets.css({left : oldpos.left-btnWidth+'px'});
942 }
925 $set.show(); 943 $set.show();
926 } 944 }
927 } else { 945 } else {
928 // remove set 946 // remove set
929 var $set = data.$buttonSets[setIdx]; 947 var $set = data.$buttonSets[setIdx];