summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/gras/stats/CMakeLists.txt1
-rw-r--r--python/gras/stats/chart_factory.js28
-rw-r--r--python/gras/stats/charts.js2
-rw-r--r--python/gras/stats/main.css13
-rw-r--r--python/gras/stats/main.html30
-rw-r--r--python/gras/stats/main.js4
6 files changed, 74 insertions, 4 deletions
diff --git a/python/gras/stats/CMakeLists.txt b/python/gras/stats/CMakeLists.txt
index a8e4828..9aa2ace 100644
--- a/python/gras/stats/CMakeLists.txt
+++ b/python/gras/stats/CMakeLists.txt
@@ -17,6 +17,7 @@ INSTALL(
registry.js
utils.js
charts.js
+ chart_factory.js
main.css
DESTINATION ${GR_PYTHON_DIR}/gras/stats
COMPONENT ${GRAS_COMP_PYTHON}
diff --git a/python/gras/stats/chart_factory.js b/python/gras/stats/chart_factory.js
new file mode 100644
index 0000000..04f0965
--- /dev/null
+++ b/python/gras/stats/chart_factory.js
@@ -0,0 +1,28 @@
+/***********************************************************************
+ * One time setup
+ **********************************************************************/
+var gras_chart_factory_setup = function(registry)
+{
+ if (registry.history.length != 1) return;
+ var id = $('gras_stats:first', registry.history[0]).attr('id');
+ $('#top_name').append(' - ' + id);
+ $.each(registry.getBlockIds(), function(index, id)
+ {
+ var div = $('.chart_designer_blocks').get(index%2);
+ $(div).append('<label>' + id + '</label>');
+ var input = $('<input />').attr({
+ type: 'checkbox',
+ name: id
+ });
+ input.attr('checked', false);
+ $(div).append(input);
+ });
+}
+
+/***********************************************************************
+ * chart factory dispatcher
+ **********************************************************************/
+var gras_chart_factory_dispatcher = function()
+{
+ alert('foo');
+}
diff --git a/python/gras/stats/charts.js b/python/gras/stats/charts.js
index 0fb6952..ed264ad 100644
--- a/python/gras/stats/charts.js
+++ b/python/gras/stats/charts.js
@@ -13,8 +13,6 @@ var gras_update_throughput_chart = function(registry)
{
if (registry.history.length == 1)
{
- var id = $('gras_stats:first', registry.history[0]).attr('id');
- $('h1:first').append(' - ' + id);
gras_setup_individual_charts(registry);
return;
}
diff --git a/python/gras/stats/main.css b/python/gras/stats/main.css
index 43ecae1..0f05cef 100644
--- a/python/gras/stats/main.css
+++ b/python/gras/stats/main.css
@@ -10,6 +10,19 @@ color:black;
background-color:white;
}
+.chart_designer_blocks label
+{
+float:left;
+text-decoration:underline;
+}
+
+.chart_designer_blocks input
+{
+float:left;
+margin-right:7px;
+margin-left:3px;
+}
+
#overall_chart_pie table
{
float:left;
diff --git a/python/gras/stats/main.html b/python/gras/stats/main.html
index 9217847..5ad40f6 100644
--- a/python/gras/stats/main.html
+++ b/python/gras/stats/main.html
@@ -5,11 +5,13 @@
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>GRAS Status Monitor</title>
<link rel="stylesheet" type="text/css" href="/main.css" />
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+ <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
+ <script type="text/javascript" src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript" src="/registry.js"></script>
<script type="text/javascript" src="/utils.js"></script>
<script type="text/javascript" src="/charts.js"></script>
+ <script type="text/javascript" src="/chart_factory.js"></script>
<script type="text/javascript" src="/main.js"></script>
<script type="text/javascript">
google.load('visualization', '1.0', {'packages':['corechart']});
@@ -18,7 +20,31 @@
</head>
<body id='page'>
- <h1>GRAS Status Monitor</h1>
+ <div id="chart_designer">
+ <table>
+ <tr>
+ <th id="top_name">Blocks Available</th>
+ <th>Chart Types</th>
+ <th>Global Options</th>
+ </tr>
+ <tr>
+ <td class="chart_designer_blocks"></td>
+ <td>
+ <select>
+ <option value="overhead_compare">Overhead Compare</option>
+ <option value="overall_throughput">Overall Throughput</option>
+ <option value="handler_breakdown">Handler Breakdown</option>
+ </select>
+ </td>
+ <td>Updates/sec: <input type="number" name="rate" min="1" max="10" size="4" /></td>
+ </tr>
+ <tr>
+ <td class="chart_designer_blocks"></td>
+ <td><input type="submit" value="Create New Chart" id="chart_factory_button" /></td>
+ <td><label>Active?</label><input type="checkbox" name="active" /></td>
+ </tr>
+ </table>
+ </div>
<div id="overall_config">
<table>
<tr><th colspan="2">Throughput options</th></tr>
diff --git a/python/gras/stats/main.js b/python/gras/stats/main.js
index dc04e73..5b27099 100644
--- a/python/gras/stats/main.js
+++ b/python/gras/stats/main.js
@@ -15,6 +15,7 @@ var gras_query_stats = function(registry)
if ($(xml, "gras_stats") !== undefined)
{
registry.appendPoint(xml);
+ gras_chart_factory_setup(registry);
gras_update_throughput_chart(registry);
gras_update_time_compare_chart(registry);
gras_update_per_block_charts(registry);
@@ -40,6 +41,9 @@ var gras_stats_main = function()
gras_setup_overall_chart(registry);
gras_setup_overall_chart_pie(registry);
+ //install callback for chart factory
+ $('#chart_factory_button').click(gras_chart_factory_dispatcher);
+
//init overall config gui element for rate
var overall_rate = $('input[name="rate"]', overall_config);
overall_rate.val(registry.overall_rate);