Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/mkws
authorJason Skomorowski <jason@indexdata.com>
Thu, 5 Feb 2015 15:58:28 +0000 (10:58 -0500)
committerJason Skomorowski <jason@indexdata.com>
Thu, 5 Feb 2015 15:58:28 +0000 (10:58 -0500)
doc/mkws-manual.markdown
src/mkws-widget-facets.js
src/mkws-widget-main.js
src/templates/pager.handlebars
tools/htdocs/progress.gif [new file with mode: 0755]

index 1066f63..e16fc72 100644 (file)
@@ -820,6 +820,11 @@ Name              Description
                   found for the current search, any diagnostics they
                   have returned, the number of records that have been
                   returned for display, and the connection state.
+
+`waiting`         An image, defaulting to <http://mkws.indexdata.com/progress.gif> unless overridden with the `src` configuration
+                  item, which is initially invisible, appears when a search is submitted, and disappears when the search is
+                  complete.
+
 ----
 
 
@@ -840,7 +845,7 @@ the relevant widgets are listed. All entries are optional, but if specified must
 default values are in footnotes to keep the table reasonably narrow.
 
 ----
-Element                   Widget    Type    Default   Description
+Setting                   Widget    Type    Default   Description
 --------                  ------    -----   --------- ------------
 autosearch                facet,    string            If provided, this setting contains a query which is immediately run on behalf
                           facets,                     of the team. Often used with an [indirect setting](#indirect-settings).
@@ -891,6 +896,10 @@ maxrecs                   facet,    int               Limits the metasearching m
                           records,
                           results
 
+newsearch_opacity         records,  float             If defined, a fractional value between in the range 0.0 (transparent) to 1.0
+                          facets                      (opaque). When a new search is submitted, the widget fades to that opacity
+                                                      (reverting to full opacity when data arrives).
+
 paragraphs                reference int               Limits the number of paragraphs rendered to the specified number. If
                                                       omitted, there is no limit.
 
@@ -980,6 +989,9 @@ sp_auth_path              _global_  string            Part of the URL used for a
 sp_auth_query             _global_  string  *Note 6*  Part of the URL used for authentication. See the [Assembling Pazpar2
                                                       URLs](#assembling-pazpar2-urls) section below.
 
+src                       waiting   url               The address of an image to use in the `waiting` widget in place of the
+                                                      default spinning wheel. Used to indicate that a search is in progress.
+
 target                    facet,    string            One of three ways to select which targets an auto-searching widgets uses. See
                           facets,                     the [Choosing targets from the library](#choosing-targets-from-the-library)
                           record,                     section above.
@@ -1177,7 +1189,7 @@ Popup windows can contain any HTML, not just MKWS widgets.
 The properties of the `popup` widget are as follows:
 
 ----
-Element         Type    Default             Description
+Setting         Type    Default             Description
 --------        -----   -------             ------------
 popup_width     int     880                 Width of the popup window, in pixels.
 
index fbf0e47..2eefb95 100644 (file)
@@ -2,7 +2,14 @@ mkws.registerWidgetType('facets', function() {
   // Initially hide the facets; display when we get results
   var that = this;
   var team = this.team;
+
+  this.team.queue("searchtriggered").subscribe(function() {
+    var op = that.config.newsearch_opacity;
+    if (op !== undefined) { that.node.fadeTo(500, op); }
+  });
+
   team.queue("facets").subscribe(function(data) {
+    that.node.css('opacity', 1);
     that.node.addClass("active");
   });
 
index 8fad7d9..2a68283 100644 (file)
@@ -114,7 +114,13 @@ mkws.registerWidgetType('records', function() {
   var that = this;
   var team = this.team;
 
+  this.team.queue("searchtriggered").subscribe(function() {
+    var op = that.config.newsearch_opacity;
+    if (op !== undefined) { that.node.fadeTo(500, op); }
+  });
+
   this.team.queue("records").subscribe(function(data) {
+    that.node.css('opacity', 1);
     for (var i = 0; i < data.hits.length; i++) {
       var hit = data.hits[i];
       hit.detailLinkId = team.recordElementId(hit.recid[0]);
@@ -378,6 +384,22 @@ mkws.registerWidgetType('progress', function() {
 });
 
 
+mkws.registerWidgetType('waiting', function() {
+  var that = this;
+
+  this.node.css("visibility", "hidden");
+  var src = this.config.src || "http://mkws.indexdata.com/progress.gif";
+  this.node.html('<img src="' + src + '"/>');
+
+  this.team.queue("searchtriggered").subscribe(function(data) {
+    that.node.css("visibility", "visible");
+  });
+  this.team.queue("complete").subscribe(function(n) {
+    that.node.css("visibility", "hidden");
+  });
+});
+
+
 // Some elements have mkws* classes that makes them appear as widgets
 // -- for example, because we want to style them using CSS -- but have
 // no actual functionality. We register these to prevent ignorable
index 0b3f953..16b29aa 100644 (file)
@@ -14,9 +14,13 @@ pages:
   click - script to go to this page unless it is the current one
 }}
 <div class="mkws-pager-desc">
+ {{#if found}}
   <span>{{mkws-translate "Displaying"}}</span>:
   {{first}} <span>{{mkws-translate "to"}}</span> {{last}}
   <span>{{mkws-translate "of"}}</span> {{count}} (<span>{{{mkws-translate "found"}}}</span>: {{found}})
+ {{else}}
+  No hits.
+ {{/if}}
 </div>
 
 <div class="mkws-pager-list">
diff --git a/tools/htdocs/progress.gif b/tools/htdocs/progress.gif
new file mode 100755 (executable)
index 0000000..529e72f
Binary files /dev/null and b/tools/htdocs/progress.gif differ