This avoids an issue where, using a FilteringSelect dijit, sometimes you type a
couple letters, let's says "ABC", and you get a set of matches like this:
"ABCDE"
"ABCD"
"ABC"
just because there happens to be no specific ordering. If you click the ABC
match and tab away too quickly, the dijit will reset itself to the first match,
"ABCDE". This is probably a Dojo/Dijit bug, as I've been able to duplicate the
problem with other stores, but that's all murky.
This avoids the issue by making sure the shortest match is at the top of the
list.
git-svn-id: svn://svn.open-ils.org/ILS/trunk@19137
dcc99617-32d9-48b4-a31d-
7c20da2025e4
if (qkeys.length < 1)
throw new PCSError("Not enough meat on that query");
+ var first_term;
for (var qkey in req.query) {
var value = req.query[qkey];
var type = typeof value;
if (req.queryOptions && req.queryOptions.ignoreCase)
op = "ilike";
+ if (!first_term) first_term = key;
if (op) {
pcrud_query[key] = {};
pcrud_query[key][op] = term;
/* XXX not sure whether multiple columns will work as such. */
hashkey = "order_by:" + opts.order_by[this.fmclass] + ":" +
hashkey;
+ } else if (first_term) {
+ opts.order_by = {};
+ opts.order_by[this.fmclass] = first_term + " ASC";
}
opts.id_list = this.stubby;