aeaebac6e25be25c1205747abf248fd7092ebdb3 hiram Sat May 2 14:53:35 2026 -0700 add a reset button and outlinks to browsers refs #31811 diff --git src/hg/utils/otto/userRequests/ottoRequestView.cgi src/hg/utils/otto/userRequests/ottoRequestView.cgi index c918d8e69af..add167a7d1e 100644 --- src/hg/utils/otto/userRequests/ottoRequestView.cgi +++ src/hg/utils/otto/userRequests/ottoRequestView.cgi @@ -141,78 +141,86 @@ 'body{font-family:sans-serif;margin:1em;font-size:13px}\n' 'h2{margin:.2em 0}\n' 'table{border-collapse:collapse;width:100%;margin-top:.5em}\n' 'th,td{border:1px solid #ccc;padding:3px 6px;vertical-align:top;' 'font-size:12px}\n' 'th{background:#eee;text-align:left;position:sticky;top:0}\n' 'tr:nth-child(even){background:#f8f8f8}\n' 'td.comment{max-width:28em;white-space:pre-wrap;' 'word-break:break-word}\n' 'tr.s7 td{background:#ffe0e0}\n' 'tr.s8 td{background:#e0f0e0;color:#555}\n' 'select,button{font-size:12px}\n' '.banner{padding:.5em;margin:.4em 0;border-radius:4px}\n' '.info {background:#dfd;border:1px solid #5a5}\n' '.error{background:#fdd;border:1px solid #a55}\n' - '.legend{font-size:12px;color:#555;margin:.4em 0}\n' - '.legend code{background:#eee;padding:0 3px}\n' + '.legend{font-size:15px;color:#333;margin:.4em 0}\n' + '.legend code{background:#eee;padding:0 3px;font-size:14px}\n' + '.refreshBtn{font-size:14px;padding:3px 10px;margin-left:6px;' + 'cursor:pointer}\n' '\n') out(f'

{DB}.{TABLE}

\n') if galaxyStatus: staleNote = ' [stale]' if galaxyStatus.get('stale') else '' out('
Galaxy queue: ' f'{galaxyStatus.get("running", "?")} running · ' f'{galaxyStatus.get("queued", "?")} queued · ' f'{galaxyStatus.get("new", "?")} new ' f'(as of {html.escape(galaxyStatus.get("ts", ""))})' f'{staleNote}
\n') else: out('
Galaxy queue: ' 'status unavailable
\n') if info: out(f'\n') if error: out(f'\n') out('
status: ') out(' · '.join(f'{k}={html.escape(v)}' for k, v in STATUS_NAMES.items())) - out(f' · {len(rows)} row(s) · ' - f'refresh
\n') + out(f' · {len(rows)} row(s)' + '\n') out('\n') for c in COLS: out(f'') out('\n') for r in rows: rid = r[0] try: stnum = int(r[7]) except (ValueError, IndexError): stnum = -1 cls = f's{stnum}' if stnum in (7, 8) else '' out(f'') for i, c in enumerate(COLS): cell = r[i] if i < len(r) else '' if c == 'comment': out(f'') elif c == 'status': label = STATUS_NAMES.get(stnum, '?') out(f'') + elif c in ('fromDb', 'toDb') and cell: + href = ('https://genome-test.gi.ucsc.edu/cgi-bin/hgTracks?db=' + + urllib.parse.quote(cell, safe='')) + out(f'') else: out(f'') # reset form out('') out('\n') out('
{c}set status
{html.escape(cell)}{html.escape(cell)} ' f'{html.escape(label)}' + f'{html.escape(cell)}{html.escape(cell)}
' '' f'' '
\n')