diff options
Diffstat (limited to 'python/gras/query/chart_factory.js')
-rw-r--r-- | python/gras/query/chart_factory.js | 82 |
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); + }); } |