Indent
[mkws-moved-to-github.git] / src / mkws-team.js
index b2bf974..0c373c0 100644 (file)
@@ -8,7 +8,10 @@
 // limitCategory(), delimitTarget(), delimitQuery(), showPage(),
 // pagerPrev(), pagerNext().
 //
-function team($, teamName) {
+// Before the team can be used for searching and related operations,
+// its pz2 object must be created by calling team.makePz2().
+//
+mkws.makeTeam = function($, teamName) {
   var that = {};
   var m_teamName = teamName;
   var m_submitted = false;
@@ -41,11 +44,13 @@ function team($, teamName) {
   that.submitted = function() { return m_submitted; };
   that.sortOrder = function() { return m_sortOrder; };
   that.perpage = function() { return m_perpage; };
+  that.query = function() { return m_query; };
   that.totalRecordCount = function() { return m_totalRecordCount; };
   that.currentPage = function() { return m_currentPage; };
   that.currentRecordId = function() { return m_currentRecordId; };
   that.currentRecordData = function() { return m_currentRecordData; };
   that.filters = function() { return m_filterSet; };
+  that.gotRecords = function() { return m_gotRecords; };
 
   // Accessor methods for individual widgets: writers
   that.set_sortOrder = function(val) { m_sortOrder = val };
@@ -89,23 +94,25 @@ function team($, teamName) {
 
   m_sortOrder = config.sort_default;
   m_perpage = config.perpage_default;
-
   // create a parameters array and pass it to the pz2's constructor
   // then register the form submit event with the pz2.search function
   // autoInit is set to true on default
-  m_paz = new pz2({ "windowid": teamName,
-                    "pazpar2path": config.pazpar2_url,
-                    "usesessions" : config.use_service_proxy ? false : true,
-                    "oninit": onInit,
-                    "onbytarget": onBytarget,
-                    "onstat": onStat,
-                    "onterm": (config.facets.length ? onTerm : undefined),
-                    "onshow": onShow,
-                    "onrecord": onRecord,
-                    "showtime": 500,            //each timer (show, stat, term, bytarget) can be specified this way
-                    "termlist": config.facets.join(',')
-                  });
-  log("created main pz2 object");
+  that.makePz2 = function() {
+    m_paz = new pz2({ "windowid": teamName,
+                      "pazpar2path": mkws.pazpar2_url(),
+                      "usesessions" : config.use_service_proxy ? false : true,
+                      "oninit": onInit,
+                      "onbytarget": onBytarget,
+                      "onstat": onStat,
+                      "onterm": (config.facets.length ? onTerm : undefined),
+                      "onshow": onShow,
+                      "onrecord": onRecord,
+                      "showtime": 500,            //each timer (show, stat, term, bytarget) can be specified this way
+                      "termlist": config.facets.join(',')
+                    });
+    log("created main pz2 object");
+  }
 
   // pz2.js event handlers:
   function onInit() {
@@ -149,6 +156,7 @@ function team($, teamName) {
     log("record");
     // FIXME: record is async!!
     clearTimeout(m_paz.recordTimer);
+    queue("record").publish(data);
     var detRecordDiv = findnode(recordDetailsId(data.recid[0]));
     if (detRecordDiv.length) {
       // in case on_show was faster to redraw element
@@ -293,7 +301,7 @@ function team($, teamName) {
     if (maxrecs) params.maxrecs = maxrecs;
     if (torusquery) {
       if (!mkws.config.use_service_proxy)
-        alert("can't narrow search by torusquery when Service Proxy is not in use");
+        alert("can't narrow search by torusquery when not authenticated");
       params.torusquery = torusquery;
     }
 
@@ -303,6 +311,12 @@ function team($, teamName) {
     m_paz.search(m_query, m_perpage, m_sortOrder, pp2filter, undefined, params);
   }
 
+  // fetch record details to be retrieved from the record queue
+  that.fetchDetails = function(recId) {
+    log("fetchDetails() requesting record '" + recId + "'");
+    m_paz.record(recId);
+  };
+
 
   // switching view between targets and records
   function switchView(view) {