Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkdru
[mkdru-moved-to-drupal.org.git] / mkdru.client.js
index 88c09d5..dae3fa7 100644 (file)
@@ -33,7 +33,8 @@ var mkdru = {
     query:'',
     recid:null
   },
-  state: {}
+  state: {},
+  realm: ''
 };
 
 
@@ -305,7 +306,7 @@ $(document).ready(function () {
 
   mkdru.pz2 = new pz2( { "onshow": mkdru.pz2Show,
               "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way
-              "pazpar2path": mkdru.pazpar2path,
+              "pazpar2path": mkdru.pazpar2Path,
               "oninit": mkdru.pz2Init,
               "onstat": mkdru.pz2Status,
               "onterm": mkdru.pz2Term,
@@ -325,14 +326,49 @@ $(document).ready(function () {
   if (typeof(Drupal.settings.mkdru.query) !== "undefined") {
     mkdru.state.query = Drupal.settings.mkdru.query
   }
-
+  //not running against SP? init, otherwise authenticate
   if (mkdru.useSessions) {
     mkdru.pz2.init();
+  } else {
+    //runnin against SP
+    var user = Drupal.settings.mkdru.sp_user;
+    var pass = Drupal.settings.mkdru.sp_pass;
+    var params = {};
+    params['command'] = 'auth';
+    if (user && pass) {
+      params['action'] = 'login';
+      params['username'] = user;
+      params['password'] = pass;
+    } else {
+      params['action'] = 'ipauth';
+    }
+    var authReq = new pzHttpRequest(mkdru.pazpar2Path, 
+      function (err) {
+        alert("Authentication against metasearch gateway failed: " +err);
+      }
+    );
+    authReq.get(params,
+      function (data) {
+        var s = data.getElementsByTagName('status');          
+        if (s.length && Element_getTextContent(s[0]) == "OK") {
+          mkdru.realm = data.getElementsByTagName('realm');
+          mkdru.pz2Init();
+        } else {
+          alert("Malformed response when authenticating against the metasearch"
+            + " gateway");
+        }
+      }
+    );
   }
-  else if (mkdru.state.recid) {
-    mkdru.pz2.record(mkdru.state.recid);
-  }
-  else if (mkdru.state.query) {
-    mkdru.search();
-  }
+  //i'm not sure how this can work, does it assume the results set is active?
+  //what if no search has been executed?
+  //if (mkdru.state.recid) {
+  //  mkdru.pz2.record(mkdru.state.recid);
+  //}
+  //'mkdru.onInit/ deals with the following properly 
+  /// -- waiting for Pz2/SP to init first
+  //else if (mkdru.state.query) {
+  //  mkdru.search();
+  //}
 });