156e33d1f6639d0923249d8dfa300b0cec522ff4 larrym Thu Jun 28 10:45:25 2012 -0700 change selectCallback so callback has more info diff --git src/hg/js/autocomplete.js src/hg/js/autocomplete.js index 379144c..6b46ac2 100644 --- src/hg/js/autocomplete.js +++ src/hg/js/autocomplete.js @@ -73,59 +73,59 @@ var obj = eval(str); if(obj.length == 1) { return obj[0].id; } } return null; } /* suggest (aka gene search) Requires three elements on page: positionDisplay (static display), positionInput (input textbox) and position (hidden). */ var suggestBox = { init: function (db, assemblySupportsGeneSuggest, selectCallback, clickCallback) { - // selectCallback: called when the user selects a new genomic position from the list - // clickCallback: called when the user clicks on positionDisplay + // selectCallback(item): called when the user selects a new genomic position from the list + // clickCallback(position): called when the user clicks on positionDisplay var lastEntered = null; // this is the last value entered by the user via a suggestion (used to distinguish manual entry in the same field) var str; if(assemblySupportsGeneSuggest) { str = "enter new position, gene symbol or annotation search terms"; } else { str = "enter new position or annotation search terms"; } $('#positionInput').Watermark(str, '#686868'); if(assemblySupportsGeneSuggest) { $('#positionInput').autocomplete({ delay: 500, minLength: 2, source: ajaxGet(db, new Object), 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'}); else $(auto).css({maxHeight: 'none', overflow:'hidden'}); } }, select: function (event, ui) { - selectCallback(ui.item.id); + selectCallback(ui.item); lastEntered = ui.item.value; // jQuery('body').css('cursor', 'wait'); // document.TrackHeaderForm.submit(); } }); } // I want to set focus to the suggest element, but unforunately that prevents PgUp/PgDn from // working, which is a major annoyance. // $('#positionInput').focus(); $("#positionInput").change(function(event) { if(!lastEntered || lastEntered != $('#positionInput').val()) { // This handles case where user typed or edited something rather than choosing from a suggest list; // in this case, we only change the position hidden; we do NOT update the displayed coordinates.