diff client/digitallibrary/jquery/jquery.digilib.js @ 644:ee8ccd84c5f8 jquery

reload doesn't take list of changed parameters any more changed parameters detected by comparison with defaults (data.queryParams mostly useless now)
author robcast
date Wed, 19 Jan 2011 20:18:59 +0100
parents c108607e1bc0
children 91d168f7dd0d
line wrap: on
line diff
--- a/client/digitallibrary/jquery/jquery.digilib.js	Wed Jan 19 20:03:44 2011 +0100
+++ b/client/digitallibrary/jquery/jquery.digilib.js	Wed Jan 19 20:18:59 2011 +0100
@@ -174,7 +174,10 @@
         'ddpi' : null,
         'ddpix' : null,
         'ddpiy' : null,
-        // digilib defaults
+        // list of digilib parameters
+        'digilibParamNames' : ['fn','pn','ww','wh','wx','wy','ws','mo','rot','cont','brgt','rgbm','rgba',
+                               'mk'],
+        // digilib parameter defaults
         'mk' : '',
         // mode of operation: 
         // fullscreen = take parameters from page URL, keep state in page URL
@@ -297,11 +300,11 @@
                         return false;
                         }
                     }
-                // add pn to param list and reset mk and others(?)
+                // reset mk and others(?)
                 data.marks = [];
                 data.zoomArea = MAX_ZOOMAREA;
                 // then reload
-                redisplay(data, ['pn']);
+                redisplay(data);
             },
             
             // zoom by a given factor
@@ -389,26 +392,10 @@
     };
 
     // returns URL and query string for current digilib
-    var getDigilibUrl = function (data, changedParams) {
+    var getDigilibUrl = function (data) {
         packParams(data);
         var settings = data.settings;
-        var queryParams = data.queryParams;
-        // add changedParams
-        if (changedParams != null) {
-            for (var i=0; i < changedParams.length; ++i) {
-                var k = changedParams[i];
-                if (queryParams[k] == null) {
-                    // add param (value doesn't matter)
-                    queryParams[k] = k;
-                }
-            }
-        }
-        // make list from queryParams keys
-        var keys = [];
-        for (var k in data.queryParams) {
-            keys.push(k);
-        }
-        var queryString = getParamString(settings, keys, defaults);
+        var queryString = getParamString(settings, settings.digilibParamNames, defaults);
         var url = window.location.toString();
         var pos = url.indexOf('?');
         var baseUrl = url.substring(0, pos);
@@ -468,11 +455,11 @@
     };
     
     // (re)load the img from a new scaler URL
-    var redisplay = function (data, changedParams) {
+    var redisplay = function (data) {
         var settings = data.settings; 
         if (settings.interactionMode === 'fullscreen') {
             // update location.href (browser URL) in fullscreen mode
-            var url = getDigilibUrl(data, changedParams);
+            var url = getDigilibUrl(data);
             var history = window.history;
             if (typeof(history.pushState) === 'function') {
                 console.debug("we could modify history, but we don't...");
@@ -687,7 +674,7 @@
         newarea.y -= 0.5 * (newarea.height - area.height);
         newarea = MAX_ZOOMAREA.fit(newarea);
         data.zoomArea = newarea;
-        redisplay(data, ['wx', 'wy', 'ww', 'wh']);
+        redisplay(data);
     };
 
     // auxiliary function (from Douglas Crockford, A.10)