Skip to content
Snippets Groups Projects
Commit 104c4cbd authored by Patrick Godwin's avatar Patrick Godwin
Browse files

remove dataserver and most of vis from gstlal-ugly/share, remove gviz_api.py...

remove dataserver and most of vis from gstlal-ugly/share, remove gviz_api.py from gstlal-ugly/python
parent fe467061
No related branches found
No related tags found
No related merge requests found
Showing
with 3 additions and 6705 deletions
......@@ -22,7 +22,6 @@ AC_CONFIG_FILES([ \
python/Makefile \
share/Makefile \
share/vis/Makefile \
share/dataserver/Makefile \
gst/Makefile \
gst/nds/Makefile \
gst/lal/Makefile \
......@@ -471,30 +470,6 @@ AC_DEFINE([HAVE_WEBDIR], [test "x{HAVE_WEBDIR}" == "xyes"], [Defined if you are
AM_CONDITIONAL([COND_WEBDIR], [test "x${HAVE_WEBDIR}" == "xyes"])
#
# Check for dataserver, this enables installation of data server for web
# visualization
#
AC_ARG_WITH(
[dataserver],
[AS_HELP_STRING([--with-dataserver], [specify location of directory for data server tools [$HOME/public_html/cgi-bin]])],
[],
[with_dataserver=no]
)
AS_IF([test "x$with_dataserver" != "xno"], [
AC_MSG_WARN([copying data server tools to $with_dataserver])
AC_SUBST([DATASRVDEST],["$with_dataserver"])
HAVE_DATASERVER="yes"
],[
AC_MSG_WARN([disabling installation of data server tools])
HAVE_DATASERVER="no"
])
AC_DEFINE([HAVE_DATASERVER], [test "x{HAVE_DATASERVER}" == "xyes"], [Defined if you are enabling web data server])
AM_CONDITIONAL([COND_DATASERVER], [test "x${HAVE_DATASERVER}" == "xyes"])
#
# Output configure information
#
......
......@@ -10,7 +10,6 @@ pkgpythondir = $(pkgpyexecdir)
pkgpython_PYTHON = \
aggregator.py \
gviz_api.py \
metric.py \
tree.py
......
This diff is collapsed.
......@@ -4,10 +4,4 @@ else
WEBDIR_SUBDIRS =
endif
if COND_DATASERVER
DATASERVER_SUBDIR = dataserver
else
DATASERVER_SUBDIR =
endif
SUBDIRS = $(WEBDIR_SUBDIRS) $(DATASERVER_SUBDIR)
SUBDIRS = $(WEBDIR_SUBDIRS)
#
# This folder contains a couple javascript and cgi scripts, which just get copied
# to the $WEBDIR directory. I'm going to separate them into two categories, ones
# that get copied to $WEBDIR and ones that get copied to $WEBDIR/cgi-bin
#
dataserverdir = $(DATASRVDEST)
dataserver_SCRIPTS = \
gstlal_data_server \
gstlal
#!/usr/bin/python
import os,sys
import cgi
import cgitb
cgitb.enable()
form = cgi.parse()
import time
from collections import namedtuple
def charts_named_tuple():
ChartInfo = namedtuple("ChartInfo", ["div", "drawfunc", "name"])
def toCamelCase(x):
return x.replace("_", " ").title().replace(" ","")
def toName(x):
return x.replace("_", " ").title()
out = {}
# omitted horizon_table, and all gauges
for tag in ("latency_status_by_nodes", "latency_history", "snr_status_by_nodes", "snr_history", "likelihood_status_by_nodes", "likelihood_history", "far_status_by_nodes", "far_history", "horizon", "psd", "noise", "up_time", "dropped", "ram_status", "time_since_last", "time_since_trigger", "vt", "far_inj_history"):
out[tag] = ChartInfo(tag + "_wrapper", "draw" + toCamelCase(tag), toName(tag))
return out
def parse_form(form = form):
if "GPS" in form:
gps = form["GPS"][0]
if float(gps) > 0:
refresh = 0
longrefresh = 0
else:
refresh = 5
longrefresh = 30
else:
gps = "-1"
refresh = 5
longrefresh = 30
if "Duration" in form:
duration = form["Duration"][0]
else:
duration = "3600"
#if "dir" in form:
if "Directory" in form:
#analysis_path = form["dir"][0]
analysis_path = form["Directory"][0]
else:
analysis_path = "/home/gstlalcbc/observing/3/online/sept_opa/trigs"
if "id" in form:
job_ids = form["id"][0]
else:
job_ids = "0000,0033"
if "livecharts" in form:
chart_divs = form["livecharts"]
else:
chart_divs = ["latency_status_by_nodes", "time_since_last"]
ifos = "H1,L1,V1"
return gps, refresh, longrefresh, duration, analysis_path, job_ids, chart_divs, ifos
def doc_header():
return "Content-type: text/html\nCache-Control: max-age=10\n"
def google_onload(gps, duration, refresh, analysis_path, job_ids, func, ifos):
return " google.charts.setOnLoadCallback(function(){ %s(%s,%s,%d,'%s','%s','%s') });" % (func, gps, duration, refresh, analysis_path, job_ids, ifos)
def html_head(gps, duration, refresh, longrefresh, analysis_path, job_ids, functions = []):
out ="""
<head>
<title>gstlal CBC</title>
<link href="https://fonts.googleapis.com/css?family=M+PLUS+Rounded+1c" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="../gstlal.css">
<script type="text/javascript">var refresh=%f; var longrefresh=%f;</script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="../jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="../gstlal.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart', 'table', 'gauge']});""" % (refresh, longrefresh)
out +="\n"
for func in functions:
out += "\t\t\t%s\n" % google_onload(gps, duration, refresh, analysis_path, job_ids, func, ifos)
out += "\t\t</script>\n\t</head>"
return out
def nav_bar(gps, duration, analysis_path, chart_wrappers = []):
chart_string = ", ".join(chart_wrappers)
selected_option = {"/home/gstlalcbc/observing/3/online/sept_opa/trigs": ["selected", "", "", ""], "/home/gstlalcbc/observing/3/online/trigs.firwhitener": ["", "selected", "", ""], "/home/gstlalcbc/observing/2/online/trigs_feb_release": ["", "", "selected", ""], "/home/gstlalcbc/observing/2/online/test_virgo/trigs": ["", "", "", "selected"]}
return """
<form>
<ul class="tab">
<li><img style="margin-left:-40px; margin-top:5px; width:100" src="../gstlal.png"></li>
<li><a href="#summary" class="tablinks" onclick="openGstlalTab(event, 'Summary')">Results</a></li>
<li><a href="#status" class="tablinks" onclick="openGstlalTab(event, 'LiveCharts', %s)">Live Charts</a></li>
<li><a href="#shifts" class="tablinks" onclick="openGstlalTab(event, 'Shifts')">Shifts</a></li>
<li><a href="#doc" class="tablinks" onclick="openGstlalTab(event, 'About')">About</a></li>
<li>
<input type="text" name="GPS" value="%s" size=10 >
<input type="text" name="Duration" value="%s" size=10 >
<select value="Directory" name="Directory" class="styled-select blue semi-square">
<option value="/home/gstlalcbc/observing/3/online/sept_opa/trigs" %s>/home/gstlalcbc/observing/3/online/sept_opa/trigs</option>
<option value="/home/gstlalcbc/observing/3/online/trigs.firwhitener" %s>/home/gstlalcbc/observing/3/online/trigs.firwhitener</option>
<option value="/home/gstlalcbc/observing/2/online/trigs_feb_release" %s>/home/gstlalcbc/observing/2/online/trigs_feb_release</option>
<option value="/home/gstlalcbc/observing/2/online/test_virgo/trigs" %s>/home/gstlalcbc/observing/2/online/test_virgo/trigs</option>
</select>
<input type="submit" value="Submit" class="styled-select blue semi-square" style="width:100px;">
</li>
<div id="clock" style="padding-top: 15px; text-align: right; color: darkblue"></div>
</ul>
""" % (chart_string, gps, duration, selected_option[analysis_path][0], selected_option[analysis_path][1], selected_option[analysis_path][2], selected_option[analysis_path][3])
#FIXME Have dropdown menu default to directory webpage currently showing
#FIXME The directory currently gets reset when picking new live charts
def charts_div(charts, gps, duration, analysis_path, selected_chart_divs = []):
out = '\t\t<div id="LiveCharts", class="tabcontent">\n'
for chart_div in selected_chart_divs:
out += '\t\t\t<div class=gchart id="%s"></div><br>\n' % chart_div
for key, chart in charts.items():
if chart.div in selected_chart_divs:
out += '\t\t\t\t<input type="checkbox" name="livecharts" value="%s" checked>%s\n' % (key, chart.name)
else:
out += '\t\t\t\t<input type="checkbox" name="livecharts" value="%s">%s\n' % (key, chart.name)
#out += '\t\t\t\t<input type="hidden" name="GPS=%s&Duration=%s&Directory=%s">' % (gps, duration, analysis_path)
out += '\t\t\t\t<input type="hidden" name="GPS" value="%s">' % gps
out += '\t\t\t\t<input type="hidden" name="Duration" value="%s">' % duration
out += '\t\t\t\t<input type="hidden" name="Directory" value="%s">' % analysis_path
out += '\t\t</div>'
out += '\t\t</form>\n'
return out
gps, refresh, longrefresh, duration, analysis_path, job_ids, selected_charts, ifos = parse_form(form)
#selected_charts = ["latency_status_by_nodes", "time_since_last"]
charts = charts_named_tuple()
chart_wrappers = [charts[x].div for x in selected_charts]
print doc_header()
print "<html>"
print html_head(gps, duration, refresh, longrefresh, analysis_path, job_ids, functions = [charts[x].drawfunc for x in selected_charts])
print """\t<body onload="openGstlalTab(event, 'LiveCharts', %s)">""" % ", ".join(chart_wrappers)
print nav_bar(gps, duration, analysis_path, chart_wrappers = chart_wrappers)
print charts_div(charts, gps, duration, analysis_path, selected_chart_divs = [charts[x].div for x in selected_charts])
print """
<div id="Summary" class="tabcontent" style="padding-top: 0px; padding-bottom: 0px; padding-right: 0px; padding-left: 0px; box-shadow: none; width: 100%; height: 100%">
<iframe src="https://ldas-jobs.ligo.caltech.edu/~gstlalcbc/observing/3_lite" width=100% height=100%></iframe>
</div>
<div id="About" class="tabcontent">
<iframe width=100% height=100% src="https://docs.google.com/document/d/12wJjCz8L1UczqRm86q3-EFnpnIZ2FHPSwKR_kym2L5g/pub?embedded=true"></iframe>
</div>
"""
print "\t</body>\n</html>"
This diff is collapsed.
#
# This folder contains a couple javascript and cgi scripts, which just get copied
# to the $WEBDIR directory. I'm going to separate them into two categories, ones
# that get copied to $WEBDIR and ones that get copied to $WEBDIR/cgi-bin
# to the $WEBDIR directory.
#
webvisdir = $(WEBDEST)
webviscgidir = ${webvisdir}/cgi-bin
webvis_SCRIPTS = \
gstlal.css \
gstlal.html \
gstlal.js \
gstlal.png \
jquery-3.1.1.min.js
webviscgi_SCRIPTS = \
gstlal \
mobile
gstlal.png
#!/usr/bin/python
import os,sys
import cgi
import cgitb
cgitb.enable()
form = cgi.parse()
import time
if "GPS" in form:
gps = form["GPS"][0]
if float(gps) > 0:
refresh = 0
longrefresh = 0
else:
refresh = 5
longrefresh = 30
else:
gps = "-1"
refresh = 5
longrefresh = 30
if "Duration" in form:
duration = form["Duration"][0]
else:
duration = "3600"
if "dir" in form:
analysis_path = form["dir"][0]
else:
analysis_path = "/home/gstlalcbctest/engineering/10/S6/bns"
if "id" in form:
job_ids = form["id"][0]
else:
job_ids = "0000,0009"
print "Content-type: text/html"
print "Cache-Control: max-age=10"
print
print '''
<html>
<head>
<title>gstlal CBC</title>
<link rel="stylesheet" type="text/css" href="../gstlal.css">
<script type="text/javascript">var refresh=%f; var longrefresh=%f;</script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="../jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="../gstlal.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart', 'table', 'gauge']});
''' % (refresh, longrefresh)
print " google.charts.setOnLoadCallback(function(){ drawLatencyStatusByNodes(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
#print " google.charts.setOnLoadCallback(function(){ drawLatencyHistory(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
#print " google.charts.setOnLoadCallback(function(){ drawLatencyGauge(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print ""
print " google.charts.setOnLoadCallback(function(){ drawSNRStatusByNodes(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawSNRHistory(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawLikelihoodStatusByNodes(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawLikelihoodHistory(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawFARStatusByNodes(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawFARHistory(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print ""
print " google.charts.setOnLoadCallback(function(){ drawHorizon(%s,%s,%d,'%s','%s') });" % (gps, duration, refresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawVT(%s,%s,%d,'%s','%s') });" % (gps, duration, refresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawNoise(%s,%s,%d,'%s','%s') });" % (gps, duration, refresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawPSD(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
#print " google.charts.setOnLoadCallback(function(){ drawNoiseGauge(%s,%s,%d,'%s','%s') });" % (gps, duration, refresh, analysis_path, job_ids)
#print " google.charts.setOnLoadCallback(function(){ drawRangeGauge(%s,%s,%d,'%s','%s') });" % (gps, duration, refresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawUpTime(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
#print " google.charts.setOnLoadCallback(function(){ drawUpTimeGauge(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawDroppedData(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawRAMStatus(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawTimeSinceLast(%s,%s,%d,'%s','%s') });" % (gps, duration, refresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawTimeSinceTrigger(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print '''
</script>
</head>
<body>
<form>
<ul class="tab">
<li><img style="margin-left:-40px; margin-top:5px; width:100" src="../gstlal.png"></li>
<li><a href="#summary" class="tablinks" onclick="openGstlalTab(event, 'Summary')">Results</a></li>
<li><a href="#status" class="tablinks" onclick="openGstlalTab(event, 'Status', time_since_last_wrapper, latency_status_by_nodes_wrapper, time_since_trigger_wrapper, up_time_wrapper, dropped_wrapper, ram_status_wrapper)">Status</a></li>
<li><a href="#sens" class="tablinks" onclick="openGstlalTab(event, 'Data', horizon_wrapper, psd_wrapper, noise_wrapper, vt_wrapper)">Data</a></li>
<li><a href="#snr" class="tablinks" onclick="openGstlalTab(event, 'SNR', snr_status_by_nodes_wrapper, snr_history_wrapper, likelihood_status_by_nodes_wrapper, likelihood_history_wrapper, far_status_by_nodes_wrapper, far_history_wrapper, noise_wrapper_2)">Triggers</a></li>
<li><a href="#shifts" class="tablinks" onclick="openGstlalTab(event, 'Shifts')">Shifts</a></li>
<li><a href="#doc" class="tablinks" onclick="openGstlalTab(event, 'About')">About</a></li>
<li><a href="#offline" class="tablinks" onclick="openGstlalTab(event, 'Offline')">Offline Schedule</a></li>
<li><a href="#detchar" class="tablinks" onclick="openGstlalTab(event, 'Detchar')">Detchar</a></li>
<li><a href="#logs" class="tablinks" onclick="openGstlalTab(event, 'Logs')">Logs</a></li>
<li>
'''
print ' <input type="text" name="GPS" value="%s" size=8 ><input type="submit" value="GPS" >' % (gps,)
print ' <input type="text" name="Duration" value="%s" size=4 >' % (duration,)
print ' <input type="submit" value="Duration" >'
print '''
</li>
<div id="clock" style="padding-top: 15px; text-align: right;"></div>
</ul>
</form>
<div id="Logs" class="tabcontent">
<table width=100% height=100%>
<tr><td><iframe src="https://alog.ligo-wa.caltech.edu/aLOG/iframeSrc.php?authExpired=&content=1&step=&callRep=&startPage=&preview=&printCall=&callUser=&addCommentTo=&callHelp=&callFileType=#&reportSection=8&reportTask=General" width=100% height=100%></iframe></td>
<td><iframe src="https://alog.ligo-la.caltech.edu/aLOG/iframeSrc.php?authExpired=&content=1&step=&callRep=&startPage=&preview=&printCall=&callUser=&addCommentTo=&callHelp=&callFileType=#&reportSection=6&reportTask=General" width=100% height=100%></iframe></td></tr>
</table>
</div>
<div id="Detchar" class="tabcontent">
'''
if gps =="-1":
print ''' <iframe src="https://ldas-jobs.ligo.caltech.edu/~detchar/summary/" width=100% height=100%></iframe>'''
else:
date = "%04d%02d%02d" % time.gmtime(int(gps)+ 315964785)[0:3]
print ''' <iframe src="https://ldas-jobs.ligo.caltech.edu/~detchar/summary/day/%s/" width=100%% height=100%%></iframe>''' % (date,)
print '''
</div>
<div id="Data" class="tabcontent">
<div class=gchart id="horizon_wrapper"></div><br>
<div class=gchart id="vt_wrapper"></div><br>
<div class=gchart id="psd_wrapper"></div><br>
<div id="noise_wrapper"></div><br>
<!-- <div id="noise_table_wrapper"></div> -->
</div>
<div id="SNR" class="tabcontent">
<div class=gchart id="snr_status_by_nodes_wrapper"></div><br>
<div id="noise_wrapper_2"></div><br>
<div class=gchart id="snr_history_wrapper"></div><br>
<div class=gchart id="likelihood_status_by_nodes_wrapper"></div><br>
<div class=gchart id="likelihood_history_wrapper"></div><br>
<div class=gchart id="far_status_by_nodes_wrapper"></div><br>
<div class=gchart id="far_history_wrapper"></div>
</div>
<div id="Status" class="tabcontent">
<div class=gchart id="time_since_last_wrapper"></div><br>
<div class=gchart id="latency_status_by_nodes_wrapper"></div><br>
<div class=gchart id="time_since_trigger_wrapper"></div><br>
<div class=gchart id="up_time_wrapper"></div><br>
<div class=gchart id="dropped_wrapper"></div><br>
<div class=gchart id="ram_status_wrapper"></div><br>
<div><iframe style="background-color:#ecf0f1;" width=100% height=1000 src="https://ldas-jobs.ligo.caltech.edu/~patrick.brockill/llstatus-gstlal/index_auto_reload.html"></iframe></div>
</div>
<div id="Summary" class="tabcontent">
<iframe src="https://ldas-jobs.ligo.caltech.edu/~gstlalcbc/observing/2/" width=100% height=100%></iframe>
</div>
<div id="About" class="tabcontent">
<iframe width=100% height=100% src="https://docs.google.com/document/d/12wJjCz8L1UczqRm86q3-EFnpnIZ2FHPSwKR_kym2L5g/pub?embedded=true"></iframe>
</div>
<div id="Shifts" class="tabcontent">
<iframe src="https://calendar.google.com/calendar/embed?src=ligo.org_070l9orc9lisqgcf2q1arp1ig0%40group.calendar.google.com&ctz=America/New_York" style="border: 0" width=100% height=100% frameborder="0" scrolling="no"></iframe>
</div>
<div id="Offline" class="tabcontent">
<iframe width=100% height=100% src="https://docs.google.com/spreadsheets/d/e/2PACX-1vR1XwazhZYoVbMXFZCq_s2rlzyNwcF0xC4kyhnKrCeXFSWte-2jRodL590RU3PsoX4OVypYyAZ7Nl_8/pubhtml?widget=true&amp;headers=false"></iframe>
</div>
</body>
</html>
'''
body {
font-family: 'M PLUS Rounded 1c', sans-serif;
color: #ecf0f1;
background-color: #D4E6F1;
overflow-y: hidden;
margin: 0px;
padding-top: 0px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 10px;
}
summary {
font-family: 'M PLUS Rounded 1c', sans-serif;
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 10px;
outline-color: #2c3e50;
}
table {
color: black;
}
caption {
color: #2c3e50;
}
img {
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
div.gchart {
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
font-size: 8pt;
}
div.google-visualization-tooltip {
color: black;
width: 200px;
}
/* Style the list */
ul.tab {
list-style-type: none;
}
/* Float the list items side by side */
ul.tab li {float: left;}
/* Style the links inside the list items */
ul.tab li a {
display: inline-block;
color: #2c3e50;
vertical-align: middle;
text-align: center;
line-height: 50px;
padding: 0px 10px 0px 10px;
text-decoration: none;
transition: 0.3s;
font-size: 10pt;
}
/* Style the links inside the list items */
ul.tab li div {
display: inline-block;
color: #ecf0f1;
vertical-align: middle;
text-align: center;
line-height: 50px;
padding: 0px 20px 0px 20px;
text-decoration: none;
font-size: 10pt;
}
/* Style the form inside the list items */
input {
display: inline-block;
color: #2c3e50;
font-size: 10pt;
vertical-align: middle;
margin-top: 15px;
margin-bottom: 15px;
margin-left: 0px;
margin-right: 0px;
}
/* Change background color of links on hover */
ul.tab li a:hover {background-color: #FDEBD0;}
/* Create an active/current tablink class */
ul.tab li a:focus, .active {background-color: #FDEBD0;}
/* Style the tab content */
.tabcontent {
display: none;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
background-color: #FDEBD0;
color: #2c3e50;
width: 98.5%;
overflow-y: scroll;
height: 90%;
}
div.tabcontent {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 10px;
overflow-y: scroll;
overflow-x: visible;
}
.tabcontent {
-webkit-animation: fadeEffect 1s;
animation: fadeEffect 1s; /* Fading effect takes 1 second */
}
@-webkit-keyframes fadeEffect {
from {opacity: 0;}
to {opacity: 1;}
}
::-webkit-scrollbar {
width: 0px; /* remove scrollbar space */
background: transparent; /* optional: just make scrollbar invisible */
}
@keyframes fadeEffect {
from {opacity: 0;}
to {opacity: 1;}
}
/* -------------------- Select Box Styles: bavotasan.com Method (with special adaptations by ericrasch.com) */
/* -------------------- Source: http://bavotasan.com/2011/style-select-box-using-only-css/ */
.styled-select {
height: 29px;
overflow: hidden;
width: 400px;
font-family: 'M PLUS Rounded 1c', sans-serif;
}
.styled-select select {
background: transparent;
border: none;
font-size: 14px;
height: 29px;
padding: 5px; /* If you add too much padding here, the options won't show in IE */
width: 268px;
}
.styled-select.slate {
background: url(http://i62.tinypic.com/2e3ybe1.jpg) no-repeat right center;
height: 34px;
width: 240px;
}
.styled-select.slate select {
border: 1px solid #ccc;
font-size: 16px;
height: 34px;
width: 268px;
}
/* -------------------- Rounded Corners */
.rounded {
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
}
.semi-square {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
/* -------------------- Colors: Background */
.slate { background-color: #ddd; }
.green { background-color: #779126; }
.blue { background-color: #D4E6F1; }
.yellow { background-color: #eec111; }
.black { background-color: #000; }
/* -------------------- Colors: Text */
.slate select { color: #000; }
.green select { color: #fff; }
.blue select { color: #fff; }
.yellow select { color: #000; }
.black select { color: #fff; }
/* -------------------- Select Box Styles: danielneumann.com Method */
/* -------------------- Source: http://danielneumann.com/blog/how-to-style-dropdown-with-css-only/ */
#mainselection select {
border: 0;
color: #EEE;
background: transparent;
font-size: 20px;
font-weight: bold;
padding: 2px 10px;
width: 378px;
*width: 350px;
*background: #58B14C;
-webkit-appearance: none;
}
#mainselection {
overflow:hidden;
width:350px;
-moz-border-radius: 9px 9px 9px 9px;
-webkit-border-radius: 9px 9px 9px 9px;
border-radius: 9px 9px 9px 9px;
box-shadow: 1px 1px 11px #330033;
background: #58B14C url("http://i62.tinypic.com/15xvbd5.png") no-repeat scroll 319px center;
}
/* -------------------- Select Box Styles: stackoverflow.com Method */
/* -------------------- Source: http://stackoverflow.com/a/5809186 */
select#soflow, select#soflow-color {
-webkit-appearance: button;
-webkit-border-radius: 2px;
-webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
-webkit-padding-end: 20px;
-webkit-padding-start: 2px;
-webkit-user-select: none;
background-image: url(http://i62.tinypic.com/15xvbd5.png), -webkit-linear-gradient(#FAFAFA, #F4F4F4 40%, #E5E5E5);
background-position: 97% center;
background-repeat: no-repeat;
border: 1px solid #AAA;
color: #555;
font-size: inherit;
margin: 20px;
overflow: hidden;
padding: 5px 10px;
text-overflow: ellipsis;
white-space: nowrap;
width: 300px;
}
select#soflow-color {
color: #fff;
background-image: url(http://i62.tinypic.com/15xvbd5.png), -webkit-linear-gradient(#779126, #779126 40%, #779126);
background-color: #779126;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
padding-left: 15px;
}
<!DOCTYPE html>
<html>
<head>
<title>gstlal CBC Latency</title>
<link rel="stylesheet" type="text/css" href="gstlal.css">
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="gstlal.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawLatencyStatusByNodes);
google.charts.setOnLoadCallback(drawLatencyHistory);
google.charts.setOnLoadCallback(drawLatencyGauge);
google.charts.setOnLoadCallback(drawSNRStatusByNodes);
google.charts.setOnLoadCallback(drawSNRHistory);
google.charts.setOnLoadCallback(drawHorizon);
google.charts.setOnLoadCallback(drawNoise);
google.charts.setOnLoadCallback(drawPSD);
google.charts.setOnLoadCallback(drawNoiseGauge);
google.charts.setOnLoadCallback(drawRangeGauge);
</script>
</head>
<body>
<div class=topbox>
<table>
<tr><td><img width=100px src="http://www.lsc-group.phys.uwm.edu/cgit/gstlal/plain/gstlal/doc/gstlal.png"></td>
<td><ul class="tab">
<!-- <li><a href="#ldg" class="tablinks" onclick="openGstlalTab(event, 'LDG')">LDG</a></li> -->
<li><a href="#dashboard" class="tablinks" onclick="openGstlalTab(event, 'Dashboard')">Dashboard</a></li>
<!-- <li><a href="#events" class="tablinks" onclick="openGstlalTab(event, 'Events')">Events</a></li> -->
<li><a href="#detchar" class="tablinks" onclick="openGstlalTab(event, 'Detchar')">Detchar</a></li>
<li><a href="#logs" class="tablinks" onclick="openGstlalTab(event, 'Logs')">Logs</a></li>
<li><a href="#noise" class="tablinks" onclick="openGstlalTab(event, 'Noise')">Noise</a></li>
<li><a href="#sens" class="tablinks" onclick="openGstlalTab(event, 'Sensitivity')">Sensitivity</a></li>
<li><a href="#latency" class="tablinks" onclick="openGstlalTab(event, 'Latency')">Latency</a></li>
<li><a href="#snr" class="tablinks" onclick="openGstlalTab(event, 'SNR')">SNR</a></li>
</ul></td>
<td>
<form>
<table>
<tr><td><input type="text" name="GPS" value=""><input type="submit" value="GPS"></td><tr>
<tr><td><input type="text" name="Duration" value=""><input type="submit" value="Duration"></td><tr>
</table>
</form>
</td>
<td><div id="clock"></div></td>
</tr>
</table>
</div>
<br>
<!--
<div id="LDG" class="tabcontent">
<iframe src="https://monitor.ligo.org/gwstatus" width=100% height=675></iframe>
</div>
-->
<div id="Dashboard" class="tabcontent">
<div id="noise_gauge"></div>
<div id="range_gauge"></div>
<div id="latency_gauge_wrapper"></div>
</div>
<div id="Logs" class="tabcontent">
<table width=100%>
<tr><td><iframe src="https://alog.ligo-wa.caltech.edu/aLOG/iframeSrc.php?authExpired=&content=1&step=&callRep=&startPage=&preview=&printCall=&callUser=&addCommentTo=&callHelp=&callFileType=#&reportSection=8&reportTask=General" width=100% height=675></iframe></td>
<td><iframe src="https://alog.ligo-la.caltech.edu/aLOG/iframeSrc.php?authExpired=&content=1&step=&callRep=&startPage=&preview=&printCall=&callUser=&addCommentTo=&callHelp=&callFileType=#&reportSection=6&reportTask=General" width=100% height=675></iframe></td></tr>
</table>
</div>
<div id="Detchar" class="tabcontent">
<iframe src="https://ldas-jobs.ligo.caltech.edu/~detchar/summary/" width=100% height=675></iframe>
</div>
<!--
<div id="Events" class="tabcontent">
<iframe src="https://gracedb.ligo.org/latest/?query=gstlal" width=100% height=675></iframe>
</div>
-->
<div id="Noise" class="tabcontent">
<div id="noise"></div>
</div>
<div id="Sensitivity" class="tabcontent">
<div id="horizon"></div>
<div id="psd"></div>
</div>
<div id="Latency" class="tabcontent">
<div id="latency_status_by_nodes_wrapper"></div>
<div id="latency_history_wrapper"></div>
</div>
<div id="SNR" class="tabcontent">
<div id="snr_status_by_nodes_wrapper"></div>
<div id="snr_history_wrapper"></div>
</div>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
.fancybox-wrap,
.fancybox-skin,
.fancybox-outer,
.fancybox-inner,
.fancybox-image,
.fancybox-wrap iframe,
.fancybox-wrap object,
.fancybox-nav,
.fancybox-nav span,
.fancybox-tmp
{
padding: 0;
margin: 0;
border: 0;
outline: none;
vertical-align: top;
}
.fancybox-wrap {
position: absolute;
top: 0;
left: 0;
z-index: 8020;
}
.fancybox-skin {
position: relative;
background: #f9f9f9;
color: #444;
text-shadow: none;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.fancybox-opened {
z-index: 8030;
}
.fancybox-opened .fancybox-skin {
-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
}
.fancybox-outer, .fancybox-inner {
position: relative;
}
.fancybox-inner {
overflow: hidden;
}
.fancybox-type-iframe .fancybox-inner {
-webkit-overflow-scrolling: touch;
}
.fancybox-error {
color: #444;
font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
margin: 0;
padding: 15px;
white-space: nowrap;
}
.fancybox-image, .fancybox-iframe {
display: block;
width: 100%;
height: 100%;
}
.fancybox-image {
max-width: 100%;
max-height: 100%;
}
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
background-image: url('fancybox_sprite.png');
}
#fancybox-loading {
position: fixed;
top: 50%;
left: 50%;
margin-top: -22px;
margin-left: -22px;
background-position: 0 -108px;
opacity: 0.8;
cursor: pointer;
z-index: 8060;
}
#fancybox-loading div {
width: 44px;
height: 44px;
background: url('fancybox_loading.gif') center center no-repeat;
}
.fancybox-close {
position: absolute;
top: -18px;
right: -18px;
width: 36px;
height: 36px;
cursor: pointer;
z-index: 8040;
}
.fancybox-nav {
position: absolute;
top: 0;
width: 40%;
height: 100%;
cursor: pointer;
text-decoration: none;
background: transparent url('blank.gif'); /* helps IE */
-webkit-tap-highlight-color: rgba(0,0,0,0);
z-index: 8040;
}
.fancybox-prev {
left: 0;
}
.fancybox-next {
right: 0;
}
.fancybox-nav span {
position: absolute;
top: 50%;
width: 36px;
height: 34px;
margin-top: -18px;
cursor: pointer;
z-index: 8040;
visibility: hidden;
}
.fancybox-prev span {
left: 10px;
background-position: 0 -36px;
}
.fancybox-next span {
right: 10px;
background-position: 0 -72px;
}
.fancybox-nav:hover span {
visibility: visible;
}
.fancybox-tmp {
position: absolute;
top: -99999px;
left: -99999px;
visibility: hidden;
max-width: 99999px;
max-height: 99999px;
overflow: visible !important;
}
/* Overlay helper */
.fancybox-lock {
overflow: hidden !important;
width: auto;
}
.fancybox-lock body {
overflow: hidden !important;
}
.fancybox-lock-test {
overflow-y: hidden !important;
}
.fancybox-overlay {
position: absolute;
top: 0;
left: 0;
overflow: hidden;
display: none;
z-index: 8010;
background: url('fancybox_overlay.png');
}
.fancybox-overlay-fixed {
position: fixed;
bottom: 0;
right: 0;
}
.fancybox-lock .fancybox-overlay {
overflow: auto;
overflow-y: scroll;
}
/* Title helper */
.fancybox-title {
visibility: hidden;
font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
position: relative;
text-shadow: none;
z-index: 8050;
}
.fancybox-opened .fancybox-title {
visibility: visible;
}
.fancybox-title-float-wrap {
position: absolute;
bottom: 0;
right: 50%;
margin-bottom: -35px;
z-index: 8050;
text-align: center;
}
.fancybox-title-float-wrap .child {
display: inline-block;
margin-right: -100%;
padding: 2px 20px;
background: transparent; /* Fallback for web browsers that doesn't support RGBa */
background: rgba(0, 0, 0, 0.8);
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
text-shadow: 0 1px 2px #222;
color: #FFF;
font-weight: bold;
line-height: 24px;
white-space: nowrap;
}
.fancybox-title-outside-wrap {
position: relative;
margin-top: 10px;
color: #fff;
}
.fancybox-title-inside-wrap {
padding-top: 10px;
}
.fancybox-title-over-wrap {
position: absolute;
bottom: 0;
left: 0;
color: #fff;
padding: 10px;
background: #000;
background: rgba(0, 0, 0, .8);
}
/*Retina graphics!*/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min--moz-device-pixel-ratio: 1.5),
only screen and (min-device-pixel-ratio: 1.5){
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
background-image: url('fancybox_sprite@2x.png');
background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/
}
#fancybox-loading div {
background-image: url('fancybox_loading@2x.gif');
background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/
}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
#!/usr/bin/python
import os,sys
import cgi
import cgitb
cgitb.enable()
form = cgi.parse()
import time
if "GPS" in form:
gps = form["GPS"][0]
refresh = 1000000
longrefresh = 1000000
else:
gps = "-1"
refresh = 5
longrefresh = 30
if "Duration" in form:
duration = form["Duration"][0]
else:
duration = "600"
if "dir" in form:
analysis_path = form["dir"][0]
else:
analysis_path = "/home/gstlalcbctest/engineering/10/S6/bns"
if "id" in form:
job_ids = form["id"][0]
else:
job_ids = "0000,0009"
print "Content-type: text/html"
print "Cache-Control: max-age=10"
print
print '''
<html>
<head>
<title>gstlal CBC Latency</title>
<link rel="stylesheet" type="text/css" href="../gstlal.css">
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="../jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="../gstlal.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart', 'table', 'gauge']});
'''
print " google.charts.setOnLoadCallback(function(){ drawLatencyGauge(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print ""
print " google.charts.setOnLoadCallback(function(){ drawNoiseGauge(%s,%s,%d,'%s','%s') });" % (gps, duration, refresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawRangeGauge(%s,%s,%d,'%s','%s') });" % (gps, duration, refresh, analysis_path, job_ids)
print " google.charts.setOnLoadCallback(function(){ drawUpTimeGauge(%s,%s,%d,'%s','%s') });" % (gps, duration, longrefresh, analysis_path, job_ids)
print '''
</script>
</head>
<body>
<div id="Dashboard">
<div id="range_gauge_wrapper"></div>
<div id="noise_gauge_wrapper"></div>
<table><tr> <td><div id="uptime_gauge_wrapper"></div></td>
<td><div id="latency_gauge_wrapper"></div></td>
</tr></table>
</div>
<body>
</html>
'''
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment