summaryrefslogtreecommitdiff
path: root/python/gras/query/chart_factory.js
diff options
context:
space:
mode:
Diffstat (limited to 'python/gras/query/chart_factory.js')
-rw-r--r--python/gras/query/chart_factory.js82
1 files changed, 43 insertions, 39 deletions
diff --git a/python/gras/query/chart_factory.js b/python/gras/query/chart_factory.js
index 5b3239a..ae23728 100644
--- a/python/gras/query/chart_factory.js
+++ b/python/gras/query/chart_factory.js
@@ -1,4 +1,9 @@
/***********************************************************************
+ * Some constants
+ **********************************************************************/
+var GRAS_CHARTS_STD_WIDTH = 250;
+
+/***********************************************************************
* Chart registry for now chart types
**********************************************************************/
var gras_chart_get_registry = function()
@@ -12,43 +17,28 @@ var gras_chart_get_registry = function()
}
/***********************************************************************
- * update after new query event
+ * get blocks that need active querying
**********************************************************************/
-function gras_chart_factory_update(registry, point)
+function gras_chart_factory_active_blocks(registry)
{
+ var block_ids = new Array();
$.each(registry.active_charts, function(index, chart_info)
{
- chart_info.point = point; //store last data point
- chart_info.chart.update(point);
+ $.merge(block_ids, chart_info.args.block_ids);
});
+ return $.unique(block_ids);
}
/***********************************************************************
- * One time setup
+ * update after new query event
**********************************************************************/
-function gras_chart_factory_setup(registry, point)
+function gras_chart_factory_update(registry, point)
{
- //gui init for factory controls
- gras_chart_factory_init(registry);
-
- //block registry and checkboxes init
- $.each(point.blocks, function(id, block)
+ registry.point = point; //store last data point
+ $.each(registry.active_charts, function(index, chart_info)
{
- registry.block_ids.push(id);
- var container = $('#chart_designer_blocks');
- var div = $('<div />');
- $(div).append('<label>' + id + '</label>');
- var input = $('<input />').attr({
- type: 'checkbox',
- name: id
- });
- input.attr('checked', false);
- $(div).append(input);
- $(container).append(div);
+ chart_info.chart.update(point);
});
-
- //try to load last settings
- try{gras_chart_load(registry);}catch(e){}
}
/***********************************************************************
@@ -174,7 +164,7 @@ function gras_chart_factory_make(registry, args)
args['height'] = chart_box.height();
args['position'] = chart_box.offset();
chart.gc_resize = false;
- chart.update(chart_info.point);
+ chart.update(registry.point);
gras_chart_save(registry);
};
@@ -187,7 +177,7 @@ function gras_chart_factory_make(registry, args)
start: function(event, ui)
{
chart.gc_resize = true;
- chart.update(chart_info.point);
+ chart.update(registry.point);
}});
chart_box.css('position', 'absolute');
@@ -204,20 +194,9 @@ function gras_chart_factory_make(registry, args)
}
/***********************************************************************
- * chart factory handle online/offline
- **********************************************************************/
-function gras_chart_factory_online(registry)
-{
- if (!registry.online) registry.offline_count++;
- if (registry.online) $('#page').css('background-color', '#EEEEFF');
- else if (registry.offline_count%2 == 0) $('#page').css('background-color', '#FF4848');
- else if (registry.offline_count%2 == 1) $('#page').css('background-color', '#EEEEFF');
-}
-
-/***********************************************************************
* chart factory init
**********************************************************************/
-function gras_chart_factory_init(registry)
+function gras_chart_factory_init(registry, done_cb)
{
//init registry containers
registry.active_charts = new Array();
@@ -259,4 +238,29 @@ function gras_chart_factory_init(registry)
if (registry.overall_active) gras_query_stats(registry);
else window.clearInterval(registry.timeout_handle);
});
+
+ //block registry and checkboxes init
+ $.getJSON('/blocks.json', function(data)
+ {
+ $.each(data.blocks, function(index, id)
+ {
+ registry.block_ids.push(id);
+ var container = $('#chart_designer_blocks');
+ var div = $('<div />');
+ $(div).append('<label>' + id + '</label>');
+ var input = $('<input />').attr({
+ type: 'checkbox',
+ name: id
+ });
+ input.attr('checked', false);
+ $(div).append(input);
+ $(container).append(div);
+ });
+
+ //try to load last settings
+ try{gras_chart_load(registry);}catch(e){}
+
+ //done callback because getJSON was async
+ done_cb(registry);
+ });
}