Rename local variable.
[mkws-moved-to-github.git] / src / mkws-widgets.js
index 3ffb150..3020ef9 100644 (file)
@@ -2,7 +2,7 @@
 function widget($, team, type, node) {
     // Static register of attributes that do not contribute to config
     var ignoreAttrs = {
-       id:1, class:1, style:1, name:1, action:1, type:1, size:1,
+       id:1, 'class':1, style:1, name:1, action:1, type:1, size:1,
        value:1, width:1, valign:1
     };
 
@@ -257,8 +257,7 @@ mkws.registerWidgetType('Records', function() {
        }
        $(that.node).html(html.join(''));
 
-       function renderSummary(hit)
-       {
+       function renderSummary(hit) {
            var template = team.loadTemplate("Summary");
            hit._id = team.recordElementId(hit.recid[0]);
            hit._onclick = "mkws.showDetails('" + team.name() + "', '" + hit.recid[0] + "');return false;"
@@ -266,16 +265,17 @@ mkws.registerWidgetType('Records', function() {
        }
     });
 
-    this.team.queue("ready").subscribe(function() {
-       var node = $(that.node);
-       var query = node.attr('autosearch');
-       if (!query)
-           return;
+    mkws.maybeAutosearch(that);
+});
 
+
+mkws.maybeAutosearch = function(widget) {
+    var query = widget.config.autosearch;
+    if (query) {
        if (query.match(/^!param!/)) {
            var param = query.replace(/^!param!/, '');
-           query = getParameterByName(param);
-           that.log("obtained query '" + query + "' from param '" + param + "'");
+           query = mkws.getParameterByName(param);
+           widget.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");
            }
@@ -283,24 +283,30 @@ mkws.registerWidgetType('Records', function() {
            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 + "'");
+           widget.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);
-    });
-});
+       widget.team.queue("ready").subscribe(function() {
+           var sortOrder = widget.config.sort;
+           var perpage = widget.config.perpage;
+           var limit = widget.config.limit;
+           var targets = widget.config.targets;
+           var targetfilter = widget.config.targetfilter;
+           var s = "running auto search: '" + query + "'";
+           if (sortOrder) s += " sorted by '" + sortOrder + "'";
+           if (perpage) s += " with " + perpage + " per page";
+           if (limit) s += " limited by '" + limit + "'";
+           if (targets) s += " in targets '" + targets + "'";
+           if (targetfilter) s += " constrained by targetfilter '" + targetfilter + "'";
+           widget.log(s);
+
+           widget.team.newSearch(query, sortOrder, perpage, limit, targets, targetfilter);
+       });
+    }
+};
 
 
 mkws.registerWidgetType('Navi', function() {