28bdadf237c69b5f8bd7ff2128210c82dddbd653 hiram Mon Aug 26 08:25:37 2024 -0700 coordinate the findGenome arguments with the assemblySearch javaScript refs #32596 diff --git src/hg/js/assemblySearch.js src/hg/js/assemblySearch.js index 30b4e45..055445c 100644 --- src/hg/js/assemblySearch.js +++ src/hg/js/assemblySearch.js @@ -1,43 +1,65 @@ // global variables: var debug = false; var measureTiming = false; var urlParams; -var searchFor = ""; +var query = ""; var maxItemsOutput = 500; var asmIdText = null; +// adjust default here and in assemblySearch.html +var browserExist = "mayExist"; var betterCommonName = null; var comment = null; var requestSubmitButton = null; var completedAsmId = new Map(); // keep track of requests completed // so they won't be repeated // This function is called on DOMContentLoaded as the initialization // procedure for first time page draw document.addEventListener('DOMContentLoaded', function() { // allow semi colon separators as well as ampersand - var queryString = window.location.search.replaceAll(";", "&"); - urlParams = new URLSearchParams(queryString); + var urlArgList = window.location.search.replaceAll(";", "&"); + urlParams = new URLSearchParams(urlArgList); if (urlParams.has('measureTiming')) { // accepts no value or other string var measureValue = urlParams.get('measureTiming'); if ("0" === measureValue | "off" === measureValue) { measureTiming = false; } else { // any other string turns it on measureTiming = true; } } + if (urlParams.has('browser')) { + var browserValue = urlParams.get('browser'); + if ("mayExist" === browserValue) { + browserExist = "mayExist"; + document.getElementById('mustExist').checked = true; + document.getElementById('notExist').checked = true; + } else if ("mustExist" === browserValue) { + browserExist = "mustExist"; + document.getElementById('mustExist').checked = true; + document.getElementById('notExist').checked = false; + } else if ("notExist" === browserValue) { + browserExist = "notExist"; + document.getElementById('mustExist').checked = false; + document.getElementById('notExist').checked = true; +// } else { + // not going to worry about this here today, but there should be + // a non-obtrusive dialog pop-up message about illegal arguments +// alert("warning: illegal value for browser=... must be one of: mayExist, mustExist, notExist"); + } + } if (urlParams.has('debug')) { // accepts no value or other string var debugValue = urlParams.get('debug'); if ("0" === debugValue | "off" === debugValue) { debug = false; } else { // any other string turns it on debug = true; } } // add extra element to the help text bullet list for API example if (debug) { var searchTipList = document.getElementById("searchTipList"); // Create a new list item var li = document.createElement("li"); li.innerHTML = "example API call: n/a"; @@ -54,31 +76,31 @@ comment = document.getElementById("comment"); requestSubmitButton = document.getElementById("submitButton"); document.getElementById("modalFeedback").addEventListener("submit", checkForm, false); modalInit(); clearButton.addEventListener('click', function() { searchInput.value = ''; // Clear the search input field }); searchForm.addEventListener('submit', function(event) { event.preventDefault(); // Prevent form submission var searchTerm = document.getElementById('searchBox').value; var resultCountLimit = document.getElementById('maxItemsOutput'); - var browserExist = "mustExist"; + browserExist = "mayExist"; var mustExist = document.getElementById('mustExist').checked; var notExist = document.getElementById('notExist').checked; if (mustExist && notExist) { browserExist = "mayExist"; } else if (notExist) { browserExist = "notExist"; } var wordMatch = document.querySelector('input[name="wordMatch"]:checked').value; makeRequest(searchTerm, browserExist, resultCountLimit.value, wordMatch); }); advancedSearchButton.addEventListener('click', function() { var advancedSearchOptions = document.getElementById("advancedSearchOptions"); // I don't know why it is false the first time ? if (! advancedSearchOptions.style.display || @@ -91,34 +113,34 @@ } }); 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'); - if (searchFor.length > 0) { - searchInput.value = searchFor; + if (urlParams.has('q')) { + query = urlParams.get('q'); + if (query.length > 0) { + searchInput.value = query; 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 var headerRow = '