4f491c033139d8b4f4a2b8b1c8fd76d0f775c090 hiram Mon Sep 2 17:00:03 2024 -0700 manage all the options in the html page URL and start providing a share this page link refs #32596 diff --git src/hg/js/assemblySearch.js src/hg/js/assemblySearch.js index 96f8ee9..f0eac76 100644 --- src/hg/js/assemblySearch.js +++ src/hg/js/assemblySearch.js @@ -11,30 +11,71 @@ // adjust default here and in assemblySearch.html var browserExist = "mayExist"; var betterCommonName = null; var comment = null; var stateObject = {}; // maintain page state 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 urlArgList = window.location.search.replaceAll(";", "&"); urlParams = new URLSearchParams(urlArgList); + if (urlParams.has('level')) { + let asmLevel = urlParams.get('level'); + document.getElementById('asmLevelAny').checked = true; // default + // only one of these four cases will be true + if (asmLevel === "complete") + document.getElementById('asmLevelComplete').checked = true; + if (asmLevel === "chromosome") + document.getElementById('asmLevelChromosome').checked = true; + if (asmLevel === "scaffold") + document.getElementById('asmLevelScaffold').checked = true; + if (asmLevel === "contig") + document.getElementById('asmLevelContig').checked = true; + } + if (urlParams.has('status')) { + let asmStatus = urlParams.get('status'); + document.getElementById('statusAny').checked = true; // default + // only one of these three cases will be true + if (asmStatus === "latest") + document.getElementById('statusLatest').checked = true; + if (asmStatus === "replaced") + document.getElementById('statusReplaced').checked = true; + if (asmStatus === "suppressed") + document.getElementById('statusSuppressed').checked = true; + } + if (urlParams.has('category')) { + let refSeqCategory = urlParams.get('category'); + document.getElementById('refSeqAny').checked = true; // default + // only one of these etwo cases will be true + if (refSeqCategory === "reference") + document.getElementById('refSeqReference').checked = true; + if (refSeqCategory === "representative") + document.getElementById('refSeqRepresentative').checked = true; + } + // default starts as hidden + stateObject.advancedSearchVisible = false; + advancedSearchVisible(false); + if (urlParams.has('advancedSearch')) { + let advancedSearch = urlParams.get('advancedSearch'); + advancedSearchVisible(advancedSearch) + stateObject.advancedSearchVisible = advancedSearch; + } 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) { @@ -58,33 +99,30 @@ } 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"; // Append the new list item to the ordered list searchTipList.appendChild(li); } - // default starts as hidden - stateObject.advancedSearchVisible = false; - advancedSearchVisible(false); var searchForm = document.getElementById('searchForm'); var advancedSearchButton = document.getElementById('advancedSearchButton'); var searchInput = document.getElementById('searchBox'); var clearButton = document.getElementById('clearSearch'); asmIdText = document.getElementById("formAsmId"); betterCommonName = document.getElementById("betterCommonName"); comment = document.getElementById("comment"); requestSubmitButton = document.getElementById("submitButton"); document.getElementById("modalFeedback").addEventListener("submit", checkForm, false); modalInit(); var tableBody = document.getElementById('tableBody'); tableBody.innerHTML = '