719242bfb0576b7c86c3accf65e2ef3cbb756a81 larrym Mon Apr 4 13:25:40 2011 -0700 make sure that appropriate track is visible when user selects something via gene suggest box (see redmine #3484) diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 0fa0053..210361d 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -1195,42 +1195,44 @@ $(document).ready(function() { var db = getDb(); if(document.getElementById("hgt.newJQuery") != null) { newJQuery = true; } if(jQuery.fn.autocomplete && $('input#suggest') && db) { if(newJQuery) { $('input#suggest').autocomplete({ delay: 500, minLength: 2, source: ajaxGet(function () {return db;}, new Object, true), select: function (event, ui) { setPosition(ui.item.id, commify(getSizeFromCoordinates(ui.item.id))); + makeSureSuggestTrackIsVisible(); // jQuery('body').css('cursor', 'wait'); // document.TrackHeaderForm.submit(); } }); } else { $('input#suggest').autocomplete({ delay: 500, minchars: 2, ajax_get: ajaxGet(function () {return db;}, new Object, false), callback: function (obj) { setPosition(obj.id, commify(getSizeFromCoordinates(obj.id))); + makeSureSuggestTrackIsVisible(); // 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. // $('input#suggest').focus(); } initVars(); if(jQuery.jStore) { // Experimental (currently dead) code to handle "user hits back button" problem. if(false) { jQuery.extend(jQuery.jStore.defaults, { @@ -2413,30 +2415,55 @@ // Updates visibility state in trackDbJson and any visible elements on the page. // returns true if we modify at least one select in the group list var rec = trackDbJson[track]; var selectUpdated = false; $("select[name=" + track + "]").each(function(t) { $(this).attr('class', visibility == 'hide' ? 'hiddenText' : 'normalText'); $(this).val(visibility); selectUpdated = true; }); if(rec) { rec.localVisibility = visibility; } return selectUpdated; } +function getVisibility(track) +{ +// return current visibility for given track + var rec = trackDbJson[track]; + if(rec) { + if(rec.localVisibility) { + return rec.localVisibility; + } else { + return visibilityStrsOrder[rec.visibility]; + } + } else { + return null; + } +} + +function makeSureSuggestTrackIsVisible() +{ +// make sure to show knownGene/refGene track is in at least pack (redmine #3484). + var track = $("#suggestTrack").val(); + if(track != null && getVisibility(track) != "full") { + updateVisibility(track, 'pack'); + $("<input type='hidden' name='" + track + "'value='pack'>").appendTo($(document.TrackHeaderForm)); + } +} + function reloadFloatingItem() { // currently dead (experimental code) if(floatingMenuItem) { $('#img_data_' + floatingMenuItem).parent().makeFloat({x:"current",y:"current", speed: 'fast', alwaysVisible: true, alwaysTop: true}); } } function handleZoomCodon(response, status) { var json = eval("(" + response + ")"); if(json.pos) { setPosition(json.pos, 3); if(document.TrackForm) document.TrackForm.submit();