Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkws
authorMike Taylor <mike@indexdata.com>
Tue, 7 Oct 2014 16:21:33 +0000 (17:21 +0100)
committerMike Taylor <mike@indexdata.com>
Tue, 7 Oct 2014 16:21:33 +0000 (17:21 +0100)
examples/htdocs/mike.html
src/mkws-core.js
src/mkws-team.js
src/mkws-widget.js

index b854aa8..51d683f 100644 (file)
@@ -4,9 +4,10 @@
     <title>MKWS demo</title>
     <script type="text/javascript">
       var mkws_config = {
+        sp_auth_credentials: "mkwstest/mkwstest"
       }
     </script>
-    <link rel="stylesheet" type="text/css" href="tools/htdocs/mkws.css" />
+    <link rel="stylesheet" type="text/css" href="mkws-widget-reference.css" />
     <script type="text/javascript" src="tools/htdocs/jquery-1.10.0.min.js"></script>
     <script type="text/javascript" src="tools/htdocs/jquery.json-2.4.js"></script>
     <script type="text/javascript" src="tools/htdocs/handlebars-v1.3.0.js"></script>
     <script type="text/javascript" src="src/mkws-templates.js"></script>
   </head>
   <body>
-    <div class="mkwsAuthname"></div>
-    <div class="mkwsSwitch"></div>
-    <div class="mkwsLang"></div>
-    <div class="mkwsProgress"></div>
-    <div class="mkwsSearch"></div>
-    <div class="mkwsResults"></div>
-    <div class="mkwsTargets"></div>
-    <div class="mkwsStat"></div>
-    <div class="mkwsBuilder"></div>
+    <div class='mkwsReference' autosearch='!param!q' sentences='1'>result will appear here</div>
   </body>
 </html>
index 73f2b8d..eba71fd 100644 (file)
@@ -461,7 +461,7 @@ mkws.log("Using window.name '" + window.name + "'");
       handleNodeWithTeam(this, function(tname, type) {
         var myTeam = mkws.teams[tname];
         if (!myTeam) {
-          myTeam = mkws.teams[tname] = team($, tname);
+          myTeam = mkws.teams[tname] = mkws.makeTeam($, tname);
           log("made MKWS team '" + tname + "'");
         }
 
@@ -567,16 +567,16 @@ mkws.log("Using window.name '" + window.name + "'");
     var now = $.now();
 
     log("walking MKWS nodes took " + (now-then) + " ms");
-
-    /*
-      for (var tName in mkws.teams) {
+    for (var tName in mkws.teams) {
       var myTeam = mkws.teams[tName]
-      log("team '" + tName + "' = " + myTeam + " ...");
-      myTeam.visitWidgets(function(t, w) {
-      log("  has widget of type '" + t + "': " + w);
-      });
-      }
-    */
+      myTeam.makePz2();
+      log("made PZ2 object for team '" + tName + "'");
+      /*
+        myTeam.visitWidgets(function(t, w) {
+          log("  has widget of type '" + t + "': " + w);
+        });
+      */
+    }
 
     function sp_auth_url(config) {
       if (config.service_proxy_auth) {
index 92536f1..070f21d 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;
@@ -61,17 +64,17 @@ function team($, teamName) {
   //    team.queue("eventName").subscribe(function(param1, param2 ...) { ... });
   //    team.queue("eventName").publish(arg1, arg2, ...);
   //
-  var queues = {};
+  var m_queues = {};
   function queue(id) {
-    if (!queues[id]) {
+    if (!m_queues[id]) {
       var callbacks = $.Callbacks();
-      queues[id] = {
+      m_queues[id] = {
         publish: callbacks.fire,
         subscribe: callbacks.add,
         unsubscribe: callbacks.remove
       };
     }
-    return queues[id];
+    return m_queues[id];
   };
   that.queue = queue;
 
@@ -91,24 +94,7 @@ 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": 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() {
     log("init");
@@ -164,6 +150,31 @@ function team($, teamName) {
   }
 
 
+  // 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
+  that.makePz2 = function() {
+    log("m_queues=" + $.toJSON(m_queues));
+    var params = {
+      "windowid": teamName,
+      "pazpar2path": mkws.pazpar2_url(),
+      "usesessions" : config.use_service_proxy ? false : true,
+      "showtime": 500,            //each timer (show, stat, term, bytarget) can be specified this way
+      "termlist": config.facets.join(',')
+    };
+
+    params.oninit = onInit;
+    params.onbytarget = onBytarget;
+    params.onstat = onStat;
+    params.onterm = (config.facets.length ? onTerm : undefined);
+    params.onshow = onShow;
+    params.onrecord = onRecord;
+
+    m_paz = new pz2(params);
+    log("ccreated main pz2 object");
+  }
+
+
   // Used by the Records widget and onRecord()
   function recordElementId(s) {
     return 'mkwsRec_' + s.replace(/[^a-z0-9]/ig, '_');
index 9a3a7f7..d57620b 100644 (file)
@@ -66,8 +66,7 @@ function widget($, team, type, node) {
     return s.join('');
   };
 
-  // ### why is this a member function? It's never called from outside this file.
-  that.expandValue = function(val) {
+  function expandValue(val) {
     if (val.match(/^!param!/)) {
       var param = val.replace(/^!param!/, '');
       val = mkws.getParameterByName(param);
@@ -153,7 +152,7 @@ function widget($, team, type, node) {
 
   for (var i = 0; i < node.attributes.length; i++) {
     var a = node.attributes[i];
-    var val = that.expandValue(a.value);
+    var val = expandValue(a.value);
     if (a.name === 'data-mkws-config') {
       // Treat as a JSON fragment configuring just this widget
       log(node + ": parsing config fragment '" + val + "'");