6b26b62fafdca469034bc9ebc18e7f620ba57090
kent
  Fri Mar 6 09:54:47 2015 -0800
Some tinkering, but generally looks like won't be using this module for long.  Most of the logic has moved.

diff --git src/hg/js/cdwSuggest.js src/hg/js/cdwSuggest.js
index ce1083c..449a095 100644
--- src/hg/js/cdwSuggest.js
+++ src/hg/js/cdwSuggest.js
@@ -1,85 +1,86 @@
 // support stuff for auto-complete using jQuery UI's autocomplete widget
 // Based on Genome Browser code by Larry Meyers.  Adapted by Jim Kent
 //
 // requires ajax.js
 // requires utils.js
 
 var cdwSuggest = {
     ajaxGet: function ajaxGet(fieldName) {
         // Returns autocomplete source function
 	// FieldName is a field in the cdwFileTags table
         var cache = {}; // cache is is used as a hash to cache responses from the server.
         return function(request, callback) {
             var key = request.term;
             if (!cache[key]) {
                 $.ajax({
                     url: "../cgi-bin/cdwSuggest",
                     data: "field=" + fieldName + "&prefix=" + encodeURIComponent(key),
                     // dataType: "json",  // XXXX this doesn't work under IE, so we retrieve as text and do an eval to force to an object.
                     trueSuccess: function(response, status) {
                         // We get a lot of duplicate requests (especially the first letters of words),
                         // so we keep a cache of the suggestions lists we've retreived.
                         cache[this.key] = response;
                         this.cont(JSON.parse(response));
                     },
                     success: catchErrorOrDispatch,
                     error: function(request, status, errorThrown) {
                         // tolerate errors (i.e. don't report them) to avoid spamming people on flaky network connections
                         // with tons of error messages (#8816).
                     },
                     key: key,
                     cont: callback
                 });
             } else {
                 callback(JSON.parse(cache[key]));
             }
             // warn(request.term);
         };
     },
 
     // init function,  parameters are
     // fieldName - the name of the field we are working on
     // widget - Recommend using a "#id" string here.  Id of text input control
     init: function(fieldName, textInput) {
         var lastSelected = null; // this is the last value entered by the user via a suggestion (used to distinguish manual entry in the same field)
         // $(textInput).val("");
 	$(textInput).autocomplete({
 	    delay: 500,
 	    minLength: 0,
 	    source: this.ajaxGet(fieldName),
 	    open: function(event, ui) {
 		var pos = $(this).offset().top + $(this).height();
 		if (!isNaN(pos)) {
 		    var maxHeight = $(window).height() - pos - 30; // take off a little more because IE needs it
 		    var auto = $('.ui-autocomplete');
 		    var curHeight = $(auto).children().length * 21;
 		    if (curHeight > maxHeight) $(auto).css({
 			maxHeight: maxHeight + 'px',
 			overflow: 'scroll',
 			zIndex: 12
 		    });
 		    else $(auto).css({
 			maxHeight: 'none',
 			overflow: 'hidden',
 			zIndex: 12
 		    });
 		}
 	    },
 	    select: function(event, ui) {
 		lastSelected = ui.item.value;
 	    }
 	});
 
         // I want to set focus to the suggest element, but unforunately that prevents PgUp/PgDn from
         // working, which is a major annoyance.
         // $(textInput).focus();
         $(textInput).change(function(event) {
             if (!lastSelected || lastSelected !== $(textInput).val()) {
+		$.submit();
                 // This handles case where user typed or edited something rather than choosing from a suggest list;
 //                var val = $(textInput).val();
 //		alert("cdwSuggest.js changed to " + val);
                 // Needed??? $(hiddenWidget).val(val);
             }
         });
     }
 };