8c908f948b09826c6cb4452ee5b282aca41be85e galt Tue Dec 8 21:52:59 2015 -0800 Multi-region (exonMostly). This work allows people to look at virtual chromosomes from a list of regions and then navigate and perform all of the usual functions on it. diff --git src/hg/js/autocomplete.js src/hg/js/autocomplete.js index 86b336c..161514a 100644 --- src/hg/js/autocomplete.js +++ src/hg/js/autocomplete.js @@ -38,33 +38,36 @@ // warn(request.term); }; }, clearFindMatches: function() { // clear any hgFind.matches set by a previous user selection (e.g. when user directly edits the search box) if ($('#hgFindMatches').length) $('#hgFindMatches').remove(); }, 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 waterMark; if (assemblySupportsGeneSuggest) { waterMark = "enter position, gene symbol or search terms"; } else { waterMark = "enter position or search terms"; } $('#positionInput').val(""); $('#positionInput').Watermark(waterMark, '#686868'); if (assemblySupportsGeneSuggest) { $('#positionInput').autocomplete({ delay: 500, minLength: 2, source: this.ajaxGet(db), open: function(event, ui) { @@ -91,30 +94,34 @@ suggestBox.updateFindMatches(ui.item.internalId); // 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 (!lastSelected || lastSelected !== $('#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. var val = $('#positionInput').val(); - if (!val || val.length === 0 || val === waterMark) // handles case where users zeroes out positionInput; in that case we revert to currently displayed position + if (!val || val.length === 0 || val === waterMark) val = $('#positionDisplay').text(); $('#position').val(val); suggestBox.clearFindMatches(); } }); $("#positionDisplay").click(function(event) { // this let's the user click on the genomic position (e.g. if they want to edit it) clickCallback($(this).text()); $('#positionInput').val($(this).text()); suggestBox.clearFindMatches(); + if (hgTracks.windows) + { + genomePos.positionDisplayDialog(); + } }); } };