X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-widget.js;h=566f60404c5a44ecf2781c8cb5397b98a944f565;hb=refs%2Fheads%2Fmaster;hp=d254019cc8884f931feabecf0639ddad84cd1756;hpb=f56cbf9df50657048c566264ed241d25e2b1a574;p=mkws-moved-to-github.git diff --git a/src/mkws-widget.js b/src/mkws-widget.js index d254019..566f604 100644 --- a/src/mkws-widget.js +++ b/src/mkws-widget.js @@ -71,9 +71,13 @@ mkws.makeWidget = function($, team, type, node) { function expandValue(val) { if (val.match(/^!param!/)) { var param = val.replace(/^!param!/, ''); + var optional = param.match(/^\?/); + if (optional) { + param = param.replace(/^\?/, ''); + } val = mkws.getParameterByName(param); that.info("obtained val '" + val + "' from param '" + param + "'"); - if (!val) { + if (!val && !optional) { alert("This page has a MasterKey widget that needs a val specified by the '" + param + "' parameter"); } } else if (val.match(/^!path!/)) { @@ -100,42 +104,17 @@ mkws.makeWidget = function($, team, type, node) { var that = this; var query = this.config.autosearch; if (query) { - var old = this.team.config.query; - if (!old) { - // Stash this for subsequent inspection - this.team.config.query = query; - } else if (old === query) { - this.warn("duplicate autosearch: '" + query + "': ignoring"); - return; - } else { - this.warn("conflicting autosearch: '" + query + "' vs '" + old + "': ignoring"); - return; - } + // Should do this more elegantly with message passing + var widget = this.team.widget('query'); + if (widget) { widget.node.val(query); } this.team.queue("ready").subscribe(function() { - // Postpone testing for the configuration items: these are not - // yet set for Record subclass widgets that fill them in in the - // subclass, as widget.autosearch is called in the superclass, - // before the subclass fiddles with the configuration. - var sortOrder = that.config.sort; - var maxrecs = that.config.maxrecs; - var perpage = that.config.perpage; - var limit = that.config.limit; - var targets = that.config.targets; - var targetfilter = that.config.targetfilter; - var target = that.config.target; - if (target) targetfilter = 'udb=="' + target + '"'; - - var s = "running auto search: '" + query + "'"; - if (sortOrder) s += " sorted by '" + sortOrder + "'"; - if (maxrecs) s += " restricted to " + maxrecs + " records"; - 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 + "'"; - that.info(s); - - that.team.newSearch(query, sortOrder, maxrecs, perpage, limit, targets, targetfilter); + // Postpone search until the team is ready: configuration + // items are not yet set for Record subclass widgets that fill + // them in in the subclass, as widget.autosearch is called in + // the superclass, before the subclass fiddles with the + // configuration. + that.team.newSearch(that, query); }); } };