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)