37aae4a2c5a919c329378f3da0792e168426537d chmalee Tue Aug 11 11:31:52 2026 -0700 hgMyData: a blank hub genome means unset, not a mismatch, refs #37964 Co-Authored-By: Claude Opus 5 (1M context) diff --git src/hg/js/hgMyData.js src/hg/js/hgMyData.js index 61279a1f70d..9cc198a57b4 100644 --- src/hg/js/hgMyData.js +++ src/hg/js/hgMyData.js @@ -1,3047 +1,3052 @@ /* jshint esversion: 8 */ var debugCartJson = true; function prettyFileSize(num) { if (!num) {return "0B";} if (num < (1024 * 1024)) { return `${(num/1024).toFixed(1)}KB`; } else if (num < (1024 * 1024 * 1024)) { return `${((num/1024)/1024).toFixed(1)}MB`; } else { return `${(((num/1024)/1024)/1024).toFixed(1)}GB`; } } function renderTimeCell(data, type) { // DataTables renderer for the two time columns. The server sends seconds since // the epoch, so the reader sees their own timezone rather than the server's, // while ordering stays on the number if (type !== "display") { return data; } if (!data) { return ""; } return new Date(data * 1000).toLocaleString(); } function cgiEncode(value) { // copy of cheapgi.c:cgiEncode except we are explicitly leaving '/' characters, and // space becomes '+': let splitVal = value.split('/'); splitVal.forEach((ele, ix) => { if (ele == " ") { splitVal[ix] = '+'; } else { splitVal[ix] = encodeURIComponent(ele); } }); return splitVal.join('/'); } function cgiDecode(value) { // decode an encoded value return decodeURIComponent(value); } function setDbSelectFromAutocomplete(selectEle, item) { // this has been bound to the