e17ab1abdfd35d012ce831f46c24e972d52517db chmalee Thu Feb 16 16:20:49 2023 -0800 Strip hub_id when making api requests for hub tracks/genomes, refs #30024 diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 5eb2718..d0ecf9b 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -5128,31 +5128,31 @@ receiveTrackData: function(track, data) { downloadCurrentTrackData.downloadData[track] = data; }, convertJson: function(data, outType) { if (outType !== "tsv" && outType !== "csv") { alert("ERROR: incorrect output format option"); return null; } outSep = outType === "tsv" ? '\t' : ','; // TODO: someday we will probably want to include some of these fields // for each track downloaded, perhaps as an option ignoredKeys = new Set(["chrom", "dataTime", "dataTimeStamp", "downloadTime", "downloadTimeStamp", "start", "end", "track", "trackType", "genome", "itemsReturned", "columnTypes", - "bigDataUrl", "chromSize"]); + "bigDataUrl", "chromSize", "hubUrl"]); // first get rid of top level non track object keys _.each(data, function(val, key) { if (ignoredKeys.has(key)) {delete data[key];} }); // now go through each track and format it correctly str = ""; _.each(data, function(val, track) { str += "track name=\"" + track + "\"\n"; for (var row in val) { for (var i = 0; i < val[row].length; i++) { str += JSON.stringify(val[row][i]); if (i < val[row].length) { str += outSep; } } str += "\n"; } @@ -5189,36 +5189,36 @@ default: if (!fname.endsWith(".txt")) {fname += ".txt";} break; } anchor.download = fname; anchor.click(); window.URL.revokeObjectURL(anchor.href); downloadCurrentTrackData.downloadData = {}; } } }, startDownload: function() { trackList = []; $(".downloadTrackName:checked").each(function(i, elem) { - trackList.push(elem.id); + trackList.push(undecoratedTrack(elem.id)); }); chrom = hgTracks.chromName; start = hgTracks.winStart; end = hgTracks.winEnd; - db = getDb(); + db = undecoratedDb(getDb()); apiUrl = "../cgi-bin/hubApi/getData/track?"; apiUrl += "chrom=" + chrom; apiUrl += ";start=" + start; apiUrl += ";end=" + end; apiUrl += ";genome=" + db; apiUrl += ";jsonOutputArrays=1"; apiUrl += ";track=" + trackList.join(','); // strip off final comma: var xmlhttp = new XMLHttpRequest(); downloadCurrentTrackData.currentRequests[apiUrl] = true; xmlhttp.onreadystatechange = function() { if (4 === this.readyState && 200 === this.status) { var mapData = JSON.parse(this.responseText); downloadCurrentTrackData.receiveTrackData(apiUrl, mapData); delete downloadCurrentTrackData.currentRequests[apiUrl];