b1ea00a1ea5559c4f27b00da2f90493bd8a3a88e max Wed Aug 26 00:57:26 2026 -0700 hgBlat: reorder the search-form checkboxes to Keep results, Show rearrangements, No min. score, Search many genomes. refs #37893 diff --git src/hg/js/hgBlat.js src/hg/js/hgBlat.js index 6b78ff212a3..72889cd77bc 100644 --- src/hg/js/hgBlat.js +++ src/hg/js/hgBlat.js @@ -745,60 +745,60 @@ '</span>' + '<div id="blatGenomeSlot"></div></div>' + `<label class="blatField"><span>Query type</span><select name="type">${blatOpts(cfg.types, cfg.type)}</select></label>` + // Sort and output are submitted but not offered: sorting by anything other than score // is rarely useful, and this page always wants the hyperlink (results table) output. // Kept as hidden fields so the request hgBlat receives is unchanged. `<input type="hidden" name="sort" value="${htmlEncode(cfg.sort)}">` + `<input type="hidden" name="output" value="${htmlEncode(cfg.output)}">` + '</div>' + '<div class="blatChecks">' + // The mouseover popup keeps itself open while the pointer is inside it (see the // mouseoverContainer mouseenter handler in utils.js), and renders its text as HTML, so // a link in the tip is genuinely clickable. htmlEncode keeps the title attribute // well-formed; the browser decodes it back to markup before it is injected. - check('allGenomes', cfg.allGenomes, 'Search many genomes', - 'Runs the same query against every default assembly and attached hub that has a ' + - 'dedicated BLAT server. Dynamic BLAT servers are skipped and listed as such in the ' + - "output. See our <a target='_blank' href='../FAQ/FAQblat.html#blat9'>BLAT All FAQ</a> " + - 'for more information.') + - check('allResults', cfg.allResults, 'No min. score', - 'Turns off minimum-match filtering so every alignment is returned. A human DNA search ' + - 'normally requires 20 matching bases, based on the genome size, to filter out ' + - 'lower-quality results; useful for short queries and the tiny genomes of ' + - 'microorganisms.') + - check('autoRearr', cfg.autoRearr, 'Show rearrangements', - 'Shows duplications of the query sequence using multiple lines with connecting lines ' + - 'between fragments, and displays inversions better (the "snakes" display). Can also ' + - 'be switched on or off from the BLAT track configuration page.') + // Only offered where hg.conf blatOldTracks=delete, i.e. where there is something to opt - // out of. Unlike the three above (which keep the classic form's plain-checkbox + // out of. Unlike the three below (which keep the classic form's plain-checkbox // behaviour), this one is submitted through an explicit hidden field: a checkbox sends // nothing when unticked, so cartUsualBoolean would never see it go back to false and // "Keep results" could not be switched off again once used. (cfg.showKeepResults ? '<span class="blatCheck">' + `<input type="hidden" name="blatKeepResults" id="blatKeepResultsVal" value="${keepResultsInit ? 1 : 0}">` + `<label><input type="checkbox" id="blat_keepResults"${keepResultsInit ? ' checked' : ''}>` + 'Keep results</label>' + `<span class="blatInfo" title="${htmlEncode( 'A new BLAT search always overrides your previous BLAT results: each search ' + 'replaces the result track of the one before it in the Genome Browser. Check ' + 'this box to keep earlier results instead, so every search adds its own track ' + 'and results accumulate. Your choice is remembered for next time.')}">` + `${BLAT_INFO_SVG}</span></span>` : '') + + check('autoRearr', cfg.autoRearr, 'Show rearrangements', + 'Shows duplications of the query sequence using multiple lines with connecting lines ' + + 'between fragments, and displays inversions better (the "snakes" display). Can also ' + + 'be switched on or off from the BLAT track configuration page.') + + check('allResults', cfg.allResults, 'No min. score', + 'Turns off minimum-match filtering so every alignment is returned. A human DNA search ' + + 'normally requires 20 matching bases, based on the genome size, to filter out ' + + 'lower-quality results; useful for short queries and the tiny genomes of ' + + 'microorganisms.') + + check('allGenomes', cfg.allGenomes, 'Search many genomes', + 'Runs the same query against every default assembly and attached hub that has a ' + + 'dedicated BLAT server. Dynamic BLAT servers are skipped and listed as such in the ' + + "output. See our <a target='_blank' href='../FAQ/FAQblat.html#blat9'>BLAT All FAQ</a> " + + 'for more information.') + '</div>' + '<div class="gbSection">Query sequence</div>' + '<div class="blatTabs">' + '<button type="button" class="blatTab on" id="blatTabPaste">Paste sequence</button>' + '<button type="button" class="blatTab" id="blatTabUpload">Upload file</button>' + '</div>' + '<div id="blatPanePaste">' + '<div class="blatPaneHint"><span>Separate multiple sequences with a >name line. ' + 'Up to 25 sequences.</span>' + `<a href="#" id="blatExample">${htmlEncode(cfg.exampleLabel)}</a></div>` + '<textarea class="blatSeq" name="userSeq" id="blatUserSeq" spellcheck="false" ' + 'aria-label="Paste in a query sequence"></textarea>' + '<div class="blatCount"><span id="blatCountText"></span>' +