108ce8a6eca325ddc6e949e271e262e91b596fd9 tdreszer Mon Nov 22 12:02:43 2010 -0800 Made freeText search instead of drop downs for track search advanced when cv.ra reports 'searchable freeText'. This is useful for labVersion among others. diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 1256431..cddd131 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -2082,31 +2082,31 @@ if(a && a[1]) { // $('#tr_' + id).html(); // $('#tr_' + id).empty(); $('#tr_' + id).html(a[1]); // XXXX move following to a shared method parseMap(null, true); $("map[name!=ideoMap]").each( function(t) { parseMap($(this, false));}); initImgTblButtons(); loadImgAreaSelect(false); // Do NOT reload context menu (otherwise we get the "context menu sticks" problem). // loadContextMenu($('#tr_' + id)); if(trackImgTbl.tableDnDUpdate) trackImgTbl.tableDnDUpdate(); } else { showWarning("Couldn't parse out new image for id: " + id); - //showWarning(response); + //alert("Couldn't parse out new image for id: " + id+"BR"+response); // Very helpful } } else { if(imageV2) { a= /]*>([\S\s]+?)<\/TABLE>/.exec(response); if(a[1]) { // This doesn't work (much weirdness ensues). $('#imgTbl').html(a[1]); } else { showWarning("Couldn't parse out new image"); } } else { a= /]+SRC[^>]+id='trackMap[^>]*)>/.exec(response); // Deal with a is null if(a[1]) { var b = /WIDTH\s*=\s*['"]?(\d+)['"]?/.exec(a[1]); @@ -2225,42 +2225,85 @@ url: "../cgi-bin/hgApi", data: "db=" + getDb() + "&cmd=metaDb&var=" + newVar, trueSuccess: findTracksHandleNewMdbVals, success: catchErrorOrDispatch, error: errorHandler, cache: true, cmd: "hgt_mdbVal" + num, // NOTE must match METADATA_VALUE_PREFIX in hg/hgTracks/searchTracks.c num: num }); } //findTracksSearchButtonsEnable(true); } function findTracksHandleNewMdbVals(response, status) // Handle ajax response (repopulate a metadata val select) -{ +{ // TODO Support for returning whole control, not list of values. var list = eval(response); var ele = $('select[name=' + this.cmd + ']'); ele.empty(); ele.append(""); for (var i = 0; i < list.length; i++) { var pair = list[i]; ele.append(""); } updateMetaDataHelpLinks(this.num); } +// TODO: Replace findTracksMdbVarChanged() and findTracksHandleNewMdbVals() +function findTracksMdbVarChanged2(obj) +{ // Ajax call to repopulate a metadata vals select when mdb var changes + var newVar = $(obj).val(); + var a = /hgt_mdbVar(\d+)/.exec(obj.name); // NOTE must match METADATA_NAME_PREFIX in hg/hgTracks/searchTracks.c + if(newVar != undefined && a && a[1]) { + var num = a[1]; + $.ajax({ + type: "GET", + url: "../cgi-bin/hgApi", + data: "db=" + getDb() + "&cmd=hgt_mdbVal" + num + "&var=" + newVar, + trueSuccess: findTracksHandleNewMdbVals2, + success: catchErrorOrDispatch, + error: errorHandler, + cache: true, + cmd: "hgt_mdbVal" + num, // NOTE must match METADATA_VALUE_PREFIX in hg/hgTracks/searchTracks.c + num: num + }); + } + //findTracksSearchButtonsEnable(true); +} + +function findTracksHandleNewMdbVals2(response, status) +// Handle ajax response (repopulate a metadata val select) +{ // TODO Support for returning whole control, not list of values. + //var list = eval(response); + var td = $('td#' + this.cmd ); + if (td != undefined) { + td.empty(); + td.append(response); + var inp = $(td).find('.mdbVal'); + var tdIsLike = $('td#isLike'+this.num); + if (inp != undefined && tdIsLike != undefined) { + if ($(inp).hasClass('freeText')) { + $(tdIsLike).text('contains'); + } else { + $(tdIsLike).text('is'); + } + } + } + updateMetaDataHelpLinks(this.num); +} + function searchKeydown(event) { if (event.which == 13) { // Required to fix problem on IE and Safari where value of hgt_tSearch is "-" (i.e. not "Search"). $("input[name=hgt_tsPage]").val(0); // NOTE: must match TRACK_SEARCH_PAGER in hg/inc/searchTracks.h $('#trackSearch').submit(); // This doesn't work with IE or Safari. // $('#searchSubmit').click(); } } function findTracksChangeVis(seenVis) { // called by onchange of vis var visName = $(seenVis).attr('id'); var trackName = visName.substring(0,visName.length - "_id".length)