changeset 1187:647e8676c8ac

auth plugin switches back to error image mode.
author robcast
date Sun, 14 Apr 2013 19:33:58 +0200
parents 7f7e31a4a71e
children ddab72e483e7
files webapp/src/main/webapp/jquery/jquery.digilib.auth.js
diffstat 1 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.auth.js	Sun Apr 14 18:48:18 2013 +0200
+++ b/webapp/src/main/webapp/jquery/jquery.digilib.auth.js	Sun Apr 14 19:33:58 2013 +0200
@@ -37,7 +37,9 @@
             // URL of Scaler servlet that does authentication
             'authScalerBaseUrl' : null,
             // URL of Scaler servlet that does not do authentication
-            'unauthScalerBaseUrl' : null
+            'unauthScalerBaseUrl' : null,
+            // try to switch back to error image mode after authentication
+            'returnToErrorImgMode' : true
     };
     
     /**
@@ -67,12 +69,21 @@
         console.debug("auth: handleImgerror");
         var data = this;
         var settings = data.settings;
-        if (settings.scalerBaseUrl != settings.authScalerBaseUrl && settings.authScalerBaseUrl != null) {
-            // not using authScalerBaseUrl -- change
+        if (settings.authScalerBaseUrl == null) return;
+        if (settings.scalerBaseUrl != settings.authScalerBaseUrl) {
+            // not using authScalerBaseUrl -- change URL
             console.debug("auth: switching to authenticated scaler.");
             settings.noauthScalerBaseUrl = settings.scalerBaseUrl;
             settings.scalerBaseUrl = settings.authScalerBaseUrl;
             digilib.fn.redisplay(data);            
+        } else {
+            // we are authenticated, it must be a different kind of error
+            if (settings.returnToErrorImgMode && settings.noauthScalerBaseUrl != null) {
+                // remove error code flag and switch to noauth URL
+                delete data.scalerFlags['errcode'];
+                settings.scalerBaseUrl = settings.noauthScalerBaseUrl;
+                digilib.fn.redisplay(data);
+            }
         }
     };