Auto-searching code is now part of the Records widget.
authorMike Taylor <mike@indexdata.com>
Tue, 1 Apr 2014 11:26:29 +0000 (12:26 +0100)
committerMike Taylor <mike@indexdata.com>
Tue, 1 Apr 2014 11:26:29 +0000 (12:26 +0100)
src/mkws-widgets.js

index c3a309d..3ffb150 100644 (file)
@@ -265,6 +265,41 @@ mkws.registerWidgetType('Records', function() {
            return template(hit);
        }
     });
+
+    this.team.queue("ready").subscribe(function() {
+       var node = $(that.node);
+       var query = node.attr('autosearch');
+       if (!query)
+           return;
+
+       if (query.match(/^!param!/)) {
+           var param = query.replace(/^!param!/, '');
+           query = getParameterByName(param);
+           that.log("obtained query '" + query + "' from param '" + param + "'");
+           if (!query) {
+               alert("This page has a MasterKey widget that needs a query specified by the '" + param + "' parameter");
+           }
+       } else if (query.match(/^!path!/)) {
+           var index = query.replace(/^!path!/, '');
+           var path = window.location.pathname.split('/');
+           query = path[path.length - index];
+           that.log("obtained query '" + query + "' from path-component '" + index + "'");
+           if (!query) {
+               alert("This page has a MasterKey widget that needs a query specified by the path-component " + index);
+           }
+       }
+
+       that.log("node=" + node + ", class='" + node.className + "', query=" + query);
+
+       var sortOrder = node.attr('sort');
+       var targets = node.attr('targets');
+       var s = "running auto search: '" + query + "'";
+       if (sortOrder) s += " sorted by '" + sortOrder + "'";
+       if (targets) s += " in targets '" + targets + "'";
+       that.log(s);
+
+       that.team.newSearch(query, sortOrder, targets);
+    });
 });