From e344e8da8af6c8c4612a6d932f5efad653b95d78 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Wed, 27 Mar 2013 03:09:31 -0500 Subject: gras: using jquery ui draggable and resizable --- python/gras/query/chart_factory.js | 35 ++++++++++++++++++++++++++- python/gras/query/chart_handler_breakdown.js | 2 +- python/gras/query/chart_overall_throughput.js | 2 +- python/gras/query/chart_overhead_compare.js | 2 +- python/gras/query/main.css | 8 +++++- python/gras/query/main.html | 2 +- python/gras/query/main.js | 5 +--- 7 files changed, 46 insertions(+), 10 deletions(-) (limited to 'python') diff --git a/python/gras/query/chart_factory.js b/python/gras/query/chart_factory.js index 7c7888d..6132ab2 100644 --- a/python/gras/query/chart_factory.js +++ b/python/gras/query/chart_factory.js @@ -11,6 +11,17 @@ var gras_chart_get_registry = function() ]; } +/*********************************************************************** + * update after new query event + **********************************************************************/ +function gras_chart_factory_update(registry, point) +{ + $.each(registry.active_charts, function(index, chart_info) + { + chart_info.chart.update(point); + }); +} + /*********************************************************************** * One time setup **********************************************************************/ @@ -131,7 +142,7 @@ function gras_chart_factory_make(registry, args) th_title.text(chart.title); //register the chart - var chart_info = {chart:chart,args:args}; + var chart_info = {chart:chart,args:args,panel:chart_box}; registry.active_charts.push(chart_info); $('#charts_panel').append(chart_box); @@ -154,6 +165,28 @@ function gras_chart_factory_make(registry, args) //finish gui building chart_box.append(tr_title); chart_box.append(tr); + + //implement draggable and resizable from jquery ui + var handle_stop = function(event, ui) + { + args['width'] = chart_box.width(); + args['height'] = chart_box.height(); + args['position'] = chart_box.offset() + gras_chart_save(registry); + }; + + if ('default_width' in chart) chart_box.width(chart.default_width); + chart_box.resizable({stop: handle_stop, create: function(event, ui) + { + if ('width' in args) chart_box.width(args.width); + if ('height' in args) chart_box.height(args.height); + }}); + + chart_box.css('position', 'absolute'); + chart_box.draggable({stop: handle_stop, create: function(event, ui) + { + if ('position' in args) chart_box.offset(args.position); + }}); } /*********************************************************************** diff --git a/python/gras/query/chart_handler_breakdown.js b/python/gras/query/chart_handler_breakdown.js index 8e90fc3..f897c5b 100644 --- a/python/gras/query/chart_handler_breakdown.js +++ b/python/gras/query/chart_handler_breakdown.js @@ -14,6 +14,7 @@ function GrasChartHandlerBreakdown(args) this.chart = new google.visualization.PieChart(args.panel); this.title = "Handler Breakdown - " + this.block_id; + this.default_width = GRAS_CHARTS_STD_WIDTH; } GrasChartHandlerBreakdown.prototype.update = function(point) @@ -29,7 +30,6 @@ GrasChartHandlerBreakdown.prototype.update = function(point) ]); var options = { - width:GRAS_CHARTS_STD_WIDTH, chartArea:{left:5,top:0,right:5,bottom:0,width:"100%",height:"100%"}, }; diff --git a/python/gras/query/chart_overall_throughput.js b/python/gras/query/chart_overall_throughput.js index 61361dc..7b99fa4 100644 --- a/python/gras/query/chart_overall_throughput.js +++ b/python/gras/query/chart_overall_throughput.js @@ -15,6 +15,7 @@ function GrasChartOverallThroughput(args) this.title = "Overall Throughput vs Time in MIps"; this.history = new Array(); + this.default_width = 2*GRAS_CHARTS_STD_WIDTH; } GrasChartOverallThroughput.prototype.update = function(point) @@ -38,7 +39,6 @@ GrasChartOverallThroughput.prototype.update = function(point) var chart_data = google.visualization.arrayToDataTable(data_set); var options = { - width:GRAS_CHARTS_STD_WIDTH*2, legend: {'position': 'bottom'}, }; this.chart.draw(chart_data, options); diff --git a/python/gras/query/chart_overhead_compare.js b/python/gras/query/chart_overhead_compare.js index c373142..f4771b6 100644 --- a/python/gras/query/chart_overhead_compare.js +++ b/python/gras/query/chart_overhead_compare.js @@ -14,6 +14,7 @@ function GrasChartOverheadCompare(args) this.chart = new google.visualization.PieChart(args.panel); this.title = "Overhead Comparison"; + this.default_width = GRAS_CHARTS_STD_WIDTH; } GrasChartOverheadCompare.prototype.update = function(point) @@ -29,7 +30,6 @@ GrasChartOverheadCompare.prototype.update = function(point) var data = google.visualization.arrayToDataTable(data_set) var options = { - width:GRAS_CHARTS_STD_WIDTH, chartArea:{left:5,top:0,right:5,bottom:0,width:"100%",height:"100%"}, }; diff --git a/python/gras/query/main.css b/python/gras/query/main.css index b5f62f1..2665e32 100644 --- a/python/gras/query/main.css +++ b/python/gras/query/main.css @@ -31,6 +31,12 @@ margin-right:10px; margin-left:2px; } +#charts_panel +{ +width:100%; +height:100%; +} + .chart_total_io_counts li { list-style-type:none; @@ -42,7 +48,7 @@ font-size:90%; .chart_container { -float:left; +float:none; } #page{ diff --git a/python/gras/query/main.html b/python/gras/query/main.html index a3864a2..04e5a49 100644 --- a/python/gras/query/main.html +++ b/python/gras/query/main.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <meta http-equiv="Content-Style-Type" content="text/css" /> - <title>GRAS Status Monitor</title> + <title>GRAS Query Client</title> <link rel="stylesheet" type="text/css" href="/main.css" /> <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" /> <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> diff --git a/python/gras/query/main.js b/python/gras/query/main.js index 5faf8fe..8a261f9 100644 --- a/python/gras/query/main.js +++ b/python/gras/query/main.js @@ -32,10 +32,7 @@ var gras_query_stats = function(registry) gras_chart_factory_online(registry); if (registry.overall_active) { - $.each(registry.active_charts, function(index, chart_info) - { - chart_info.chart.update(response); - }); + gras_chart_factory_update(registry, response); registry.timeout_handle = window.setTimeout(function() { -- cgit