improve further select_experiments: add time range in link
This commit is contained in:
@ -78,15 +78,16 @@ new Settings()
|
|||||||
.treat("lazyPermission", "wr", to_bool, true);
|
.treat("lazyPermission", "wr", to_bool, true);
|
||||||
|
|
||||||
|
|
||||||
|
let args = '';
|
||||||
if (window.instrument) {
|
if (window.instrument) {
|
||||||
window.clientTags = "&instrument=" + window.instrument;
|
args += "&instrument=" + window.instrument;
|
||||||
} else {
|
} else {
|
||||||
let args = '';
|
let args = '';
|
||||||
if (window.stream) { args += "&stream=" + window.stream; }
|
if (window.stream) { args += "&stream=" + window.stream; }
|
||||||
if (window.device) { args += "&device=" + window.device; }
|
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);
|
// console.log('TAGS', window.clientTags);
|
||||||
|
|
||||||
|
37
webserver.py
37
webserver.py
@ -115,7 +115,7 @@ class Server:
|
|||||||
|
|
||||||
app.debug = True
|
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')
|
format='%(asctime)s %(levelname)s %(message)s')
|
||||||
|
|
||||||
# srv = gevent.wsgi.WSGIServer(('', port), app, keyfile='key.key', certfile='key.crt')
|
# srv = gevent.wsgi.WSGIServer(('', port), app, keyfile='key.key', certfile='key.crt')
|
||||||
@ -357,13 +357,18 @@ a {
|
|||||||
''']
|
''']
|
||||||
ONEMONTH = 30 * 24 * 3600
|
ONEMONTH = 30 * 24 * 3600
|
||||||
|
|
||||||
prevtitle = [None]
|
class prev: # just a namesapce
|
||||||
|
title = None
|
||||||
|
legend = None
|
||||||
|
|
||||||
def change_title(text):
|
def change_title(text):
|
||||||
if text == prevtitle[0]:
|
if text == prev.title:
|
||||||
return False
|
return False
|
||||||
prevtitle[0] = text
|
if prev.legend:
|
||||||
out.append(f'<tr><td colspan=3><h3>{text}</h3></td></tr>')
|
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
|
return True
|
||||||
|
|
||||||
# TODO: sort this by (instrument / device) and list dates
|
# TODO: sort this by (instrument / device) and list dates
|
||||||
@ -390,6 +395,9 @@ a {
|
|||||||
if key[0] == 'instrument':
|
if key[0] == 'instrument':
|
||||||
ins = key[1]
|
ins = key[1]
|
||||||
port = instruments.get(ins)
|
port = instruments.get(ins)
|
||||||
|
left = ins.upper()
|
||||||
|
else:
|
||||||
|
left = key[1] # shown in left column
|
||||||
args = ['='.join(key)]
|
args = ['='.join(key)]
|
||||||
remote = None if port is None else f'http://{ins}.psi.ch:{port}'
|
remote = None if port is None else f'http://{ins}.psi.ch:{port}'
|
||||||
history_only = bool(remote)
|
history_only = bool(remote)
|
||||||
@ -398,29 +406,34 @@ a {
|
|||||||
daterange = f'since {time.strftime("%H:%M", time.localtime(beg))}'
|
daterange = f'since {time.strftime("%H:%M", time.localtime(beg))}'
|
||||||
else:
|
else:
|
||||||
daterange = f'since {begdate}'
|
daterange = f'since {begdate}'
|
||||||
if change_title('currently running'):
|
change_title('currently running')
|
||||||
out.append('<tr><th>instrument</th><th>history only</th><td></td></tr>')
|
|
||||||
else:
|
else:
|
||||||
|
args.append(f'time={beg},{end}')
|
||||||
history_only = True
|
history_only = True
|
||||||
remote = None
|
remote = None
|
||||||
daterange = begdate if begdate == enddate else f'{begdate}...{enddate}'
|
daterange = begdate if begdate == enddate else f'{begdate}...{enddate}'
|
||||||
if end > now - ONEMONTH:
|
if end > now - ONEMONTH:
|
||||||
change_title('recently running')
|
change_title('recently running (history graphics only)')
|
||||||
else:
|
else:
|
||||||
change_title('older than 30 days')
|
change_title('older than 30 days')
|
||||||
if history_only:
|
if history_only:
|
||||||
args.append('hr=1')
|
args.append('hr=1')
|
||||||
link = f'<a href="/?{"&".join(args)}">'
|
|
||||||
|
def link(label):
|
||||||
|
return f'<a href="/?{"&".join(args)}">{label}</a>'
|
||||||
|
|
||||||
label = " ".join(devices)
|
label = " ".join(devices)
|
||||||
if remote:
|
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:
|
else:
|
||||||
out.append(f'<tr><td colspan=2>{link}{key[1]} {label}</a></td>')
|
out.append(f'<tr><td>{link(left)}</td><td colspan=2>{label}</td>')
|
||||||
out.append(f'<td>{daterange}</td></tr>')
|
out.append(f'<td>{daterange}</td></tr>')
|
||||||
if timerange:
|
if timerange:
|
||||||
out.append(f'<h3><a href="/select_experiment?time=all">earlier dates</a></h3><br>')
|
out.append(f'<h3><a href="/select_experiment?time=all">earlier dates</a></h3><br>')
|
||||||
out.append('</table>')
|
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> \n'
|
out.extend([f'<a href="http://{ins}.psi.ch:{port}/">{ins.upper()}</a> \n'
|
||||||
for ins, port in instruments.items()])
|
for ins, port in instruments.items()])
|
||||||
if server.db.has_local:
|
if server.db.has_local:
|
||||||
|
Reference in New Issue
Block a user