101cc7763481532964c3d20de72539527c0cbf18 hiram Wed Aug 21 09:18:30 2024 -0700 now jshint clean refs #32596 diff --git src/hg/js/assemblySearch.js src/hg/js/assemblySearch.js index 461353b..55a1ba9 100644 --- src/hg/js/assemblySearch.js +++ src/hg/js/assemblySearch.js @@ -57,31 +57,31 @@ }); var tableHeader = document.getElementById('tableHeader'); headerRefresh(tableHeader); if (urlParams.has('maxItemsOutput')) { maxItemsOutput = parseInt(urlParams.get('maxItemsOutput'), 10); if (maxItemsOutput < 1) { maxItemsOutput = 1; } else if (maxItemsOutput > 1000) { maxItemsOutput = 1000; } document.getElementById('maxItemsOutput').value = maxItemsOutput; } if (urlParams.has('searchFor')) { - searchFor = urlParams.get('searchFor') + searchFor = urlParams.get('searchFor'); if (searchFor.length > 0) { searchInput.value = searchFor; document.getElementById('submitSearch').click(); } } document.getElementById("measureTiming").style.display = "none"; }); // refresh the thead columns in the specified table function headerRefresh(tableHead) { // clear existing content tableHead.innerHTML = ''; // re-populate header row - the sortable system added a class to // the last sorted column, need to rebuild the headerRow to get the // header back to pristine condition for the next sort @@ -98,85 +98,85 @@ // Function to generate the table and extra information function populateTableAndInfo(jsonData) { var tableHeader = document.getElementById('tableHeader'); var tableBody = document.getElementById('tableBody'); var metaData = document.getElementById('metaData'); document.getElementById('resultCounts').innerHTML = ""; document.getElementById('elapsedTime').innerHTML = "0"; // Clear existing table content tableHeader.innerHTML = ''; tableBody.innerHTML = ''; metaData.innerHTML = ''; // Extract the genomic entries and the extra info - const genomicEntries = {}; - const extraInfo = {}; + var genomicEntries = {}; + var extraInfo = {}; - for (const key in jsonData) { + for (var key in jsonData) { if (jsonData[key].scientificName) { genomicEntries[key] = jsonData[key]; } else { extraInfo[key] = jsonData[key]; } } headerRefresh(tableHeader); var count = 0; - for (const id in genomicEntries) { + for (var id in genomicEntries) { var dataRow = '<tr>'; var browserUrl = id; var ncbiUrl = id; if (genomicEntries[id].browserExists) { if (id.startsWith("GC")) { browserUrl = "<a href='/h/" + id + "?position=lastDbPos' target=_blank>view</a>"; - ncbiUrl = "<a href='https://www.ncbi.nlm.nih.gov/assembly/" + id + "' target=_blank>" + id + "</a>" + ncbiUrl = "<a href='https://www.ncbi.nlm.nih.gov/assembly/" + id + "' target=_blank>" + id + "</a>"; } else { browserUrl = "<a href='/cgi-bin/hgTracks?db=" + id + "' target=_blank>view</a>"; } dataRow += "<th>" + browserUrl + "</th>"; } else { dataRow += "<th><button type=button' onclick='asmOpenModal(this)' name=" + id + "'>request</button></th>"; } dataRow += "<td>" + genomicEntries[id].scientificName + "</td>"; dataRow += "<td>" + genomicEntries[id].commonName + "</td>"; dataRow += "<th>" + ncbiUrl + "</th>"; dataRow += "<td>" + genomicEntries[id].clade + "</td>"; dataRow += "<td>" + genomicEntries[id].description + "</td>"; dataRow += '</tr>'; tableBody.innerHTML += dataRow; } var dataTable = document.getElementById('dataTable'); sorttable.makeSortable(dataTable); - var itemCount = parseInt(extraInfo['itemCount'], 10); - var totalMatchCount = parseInt(extraInfo['totalMatchCount'], 10); - var availableAssemblies = parseInt(extraInfo['availableAssemblies'], 10); + var itemCount = parseInt(extraInfo.itemCount, 10); + var totalMatchCount = parseInt(extraInfo.totalMatchCount, 10); + var availableAssemblies = parseInt(extraInfo.availableAssemblies, 10); - var resultCounts = "<em>results for search string: </em><b>'" + extraInfo['genomeSearch'] + "'</b>, "; + var resultCounts = "<em>results for search string: </em><b>'" + extraInfo.genomeSearch + "'</b>, "; if ( itemCount === totalMatchCount ) { resultCounts += "<em>showing </em><b>" + itemCount.toLocaleString() + "</b> <em>match results</em>, "; } else { resultCounts += "<em>showing </em><b>" + itemCount.toLocaleString() + "</b> <em>match results</em> "; resultCounts += "<em>from </em><b>" + totalMatchCount.toLocaleString() + "</b> <em>total matches,</em> "; } resultCounts += "<em>out of </em><b>" + availableAssemblies.toLocaleString() + "</b> <em>total number of assemblies</em>"; document.getElementById('resultCounts').innerHTML = resultCounts; if (measureTiming) { - var etMs = extraInfo['elapsedTimeMs']; + var etMs = extraInfo.elapsedTimeMs; var elapsedTime = "<b>" + etMs.toLocaleString() + "</b> <em>milliseconds</em>"; if ( etMs > 1000 ) { var etSec = etMs/1000; elapsedTime = "<b>" + etSec.toFixed(2) + "</b> <em>seconds</em>"; } document.getElementById('elapsedTime').innerHTML = elapsedTime.toLocaleString(); document.getElementById("measureTiming").style.display = "inline"; } else { document.getElementById("measureTiming").style.display = "none"; } } // function populateTableAndInfo(jsonData) function enableButtons() { document.getElementById('submitSearch').disabled = false; document.getElementById('clearSearch').disabled = false; @@ -373,50 +373,50 @@ modalWindow.style.marginLeft = (-modalWindow.offsetWidth)/2 + "px"; } if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } } function makeRequest(query, browserExist, resultLimit, wordMatch) { // Disable the submit button disableButtons(); var queryString = query; // for allWords, place + sign in front of each word if not already there if (wordMatch === "allWords") { - const words = query.split(/\s+/); + var words = query.split(/\s+/); if (words.length > 1) { // not needed on only one word var queryPlus = ""; // compose new query string - words.forEach(word => { + words.forEach(function(word) { if (word.startsWith("+")) { - queryPlus += " " + word; // space separated each word + queryPlus += " " + word; // space separates each word } else { queryPlus += " +" + word; } }); queryString = queryPlus.trimStart(); // remove first space character } } // Show the wait spinner document.querySelector(".submitContainer").classList.add("loading"); document.getElementById("loadingSpinner").style.display = "block"; var xhr = new XMLHttpRequest(); - var urlPrefix = "/cgi-bin/hubApi" + var urlPrefix = "/cgi-bin/hubApi"; var url = "/findGenome?genomeSearch=" + encodeURIComponent(queryString); url += ";browser=" + browserExist; url += ";maxItemsOutput=" + resultLimit; var apiUrl = "<a href='" + urlPrefix + url + "' target=_blank>" + url + "</a>"; document.getElementById("recentAjax").innerHTML = apiUrl; xhr.open('GET', urlPrefix + url, true); xhr.onload = function() { if (xhr.status === 200) { // Hide the wait spinner once the AJAX request is complete document.querySelector(".submitContainer").classList.remove("loading"); document.getElementById("loadingSpinner").style.display = "none"; enableButtons();