fad9127b4977c8da308a4c972f4a3497dfd695dd angie Fri Oct 27 16:09:39 2017 -0700 On load, don't reset position/search input value and add 'enter position, ...' watermark if the input is in focus, i.e. the user is already trying to type something there. refs #20426 diff --git src/hg/js/autocomplete.js src/hg/js/autocomplete.js index ddb181f..cd5e98d 100644 --- src/hg/js/autocomplete.js +++ src/hg/js/autocomplete.js @@ -47,44 +47,48 @@ }, updateFindMatches: function(val) { // highlight genes choosen from suggest list (#6330) if ($('#hgFindMatches').length) $('#hgFindMatches').val(val); else $('#positionInput').parents('form').append("<input type='hidden' id='hgFindMatches' name='hgFind.matches' " + "value='" + val + "'>"); }, initialized: false, init: function(db, assemblySupportsGeneSuggest, selectCallback, clickCallback) { // selectCallback(item): called when the user selects a new genomic position from the list // clickCallback(position): called when the user clicks on positionDisplay this.initialized = true; var lastSelected = null; // this is the last value entered by the user via a suggestion (used to distinguish manual entry in the same field) + var $posInput = $('#positionInput'); var waterMark; if (assemblySupportsGeneSuggest) { if (db.match(/^hg[0-9]+/)) { // Mention HGVS variant notation for human assemblies only, although it should work // with any assembly that has refGene or ncbiRefSeq. waterMark = "enter position, gene symbol, HGVS or search terms"; } else { waterMark = "enter position, gene symbol or search terms"; } } else { waterMark = "enter position or search terms"; } - $('#positionInput').val(""); - $('#positionInput').Watermark(waterMark, '#686868'); + if ($posInput[0] != document.activeElement) { + // Reset value before adding watermark -- only if user is not already typing here + $posInput.val(""); + } + $posInput.Watermark(waterMark, '#686868'); if (assemblySupportsGeneSuggest) { $('#positionInput').autocomplete({ delay: 500, minLength: 2, source: this.ajaxGet(db), 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