improve further select_experiments: add time range in link

This commit is contained in:
2025-05-21 15:37:19 +02:00
parent e136b66732
commit b24384f387
2 changed files with 29 additions and 15 deletions

View File

@ -78,15 +78,16 @@ new Settings()
.treat("lazyPermission", "wr", to_bool, true);
let args = '';
if (window.instrument) {
window.clientTags = "&instrument=" + window.instrument;
args += "&instrument=" + window.instrument;
} else {
let args = '';
if (window.stream) { args += "&stream=" + window.stream; }
if (window.device) { args += "&device=" + window.device; }
if (window.hideRightPart) { args += "&history_only=1"; }
window.clientTags = args;
}
if (window.hideRightPart) { args += "&history_only=1"; }
window.clientTags = args;
// console.log('TAGS', window.clientTags);

View File

@ -115,7 +115,7 @@ class Server:
app.debug = True
logging.basicConfig(filename='webserver.log', filemode='w', level=logging.INFO,
logging.basicConfig(filename='logifle.log', filemode='w', level=logging.INFO,
format='%(asctime)s %(levelname)s %(message)s')
# srv = gevent.wsgi.WSGIServer(('', port), app, keyfile='key.key', certfile='key.crt')
@ -357,13 +357,18 @@ a {
''']
ONEMONTH = 30 * 24 * 3600
prevtitle = [None]
class prev: # just a namesapce
title = None
legend = None
def change_title(text):
if text == prevtitle[0]:
if text == prev.title:
return False
prevtitle[0] = text
out.append(f'<tr><td colspan=3><h3>{text}</h3></td></tr>')
if prev.legend:
out.append(f'<tr>{prev.legend}</tr>')
prev.legend = None
prev.title = text
out.append(f'<tr><td colspan=3><br><i>{text}:</i></td></tr>')
return True
# TODO: sort this by (instrument / device) and list dates
@ -390,6 +395,9 @@ a {
if key[0] == 'instrument':
ins = key[1]
port = instruments.get(ins)
left = ins.upper()
else:
left = key[1] # shown in left column
args = ['='.join(key)]
remote = None if port is None else f'http://{ins}.psi.ch:{port}'
history_only = bool(remote)
@ -398,29 +406,34 @@ a {
daterange = f'since {time.strftime("%H:%M", time.localtime(beg))}'
else:
daterange = f'since {begdate}'
if change_title('currently running'):
out.append('<tr><th>instrument</th><th>history only</th><td></td></tr>')
change_title('currently running')
else:
args.append(f'time={beg},{end}')
history_only = True
remote = None
daterange = begdate if begdate == enddate else f'{begdate}...{enddate}'
if end > now - ONEMONTH:
change_title('recently running')
change_title('recently running (history graphics only)')
else:
change_title('older than 30 days')
if history_only:
args.append('hr=1')
link = f'<a href="/?{"&".join(args)}">'
def link(label):
return f'<a href="/?{"&".join(args)}">{label}</a>'
label = " ".join(devices)
if remote:
out.append(f'<tr><td><a href="{remote}">{ins.upper()}</a></td><td>{link}{label}</a></td>')
prev.legend = '<td></td><td></td><td colspan=2>linse-c*: <i>history graphics only</i></td>'
out.append(f'<tr><td><a href="{remote}">{ins.upper()}</a></td>'
f'<td>{label}</td><td>{link("linse-c*")}</td>')
else:
out.append(f'<tr><td colspan=2>{link}{key[1]}&nbsp;{label}</a></td>')
out.append(f'<tr><td>{link(left)}</td><td colspan=2>{label}</td>')
out.append(f'<td>{daterange}</td></tr>')
if timerange:
out.append(f'<h3><a href="/select_experiment?time=all">earlier dates</a></h3><br>')
out.append('</table>')
out.append('<h3>direct link to instruments:</h3>')
out.append('<br><i>direct link to instruments:</i><br>')
out.extend([f'<a href="http://{ins}.psi.ch:{port}/">{ins.upper()}</a>&nbsp;\n'
for ins, port in instruments.items()])
if server.db.has_local: