perpage: 20,
sort: 'relevance',
filter: null,
- query:null,
+ query:'',
recid:null
},
- state: {}
+ state: {},
+ realm: ''
};
mkdru.pz2Record = function (data) {
clearTimeout(mkdru.pz2.showTimer);
$('.mkdru-results').hide();
- $('.mkdru-detail').html(Drupal.theme('mkdruDetail', data));
- $('.mkdru-detail-back').bind('click', function () {$.bbq.removeState('recid');});
+ $('.mkdru-detail').html(Drupal.theme('mkdruDetail', data,
+ mkdru.hashAddDelOne(null, null, 'recid')));
$('.mkdru-detail').show();
clearTimeout(mkdru.pz2.recordTimer);
};
}
// Other internal link
else {
- // need to run search again to limit targets
+ // may need to run search again to limit targets
for (key in mkdru.state) {
if (key.substring(0,5) === 'limit') {
mkdru.search();
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,
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();
+ //}
});