From 4d1cabf10e654faa3017225bc47763a1b80aab0f Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Thu, 28 Mar 2013 22:30:42 -0500 Subject: gras: cleanup factory and init ordering --- python/gras/query/chart_factory.js | 67 +++++++++++++++----------------------- python/gras/query/main.js | 25 ++++++++------ 2 files changed, 41 insertions(+), 51 deletions(-) diff --git a/python/gras/query/chart_factory.js b/python/gras/query/chart_factory.js index bd51c53..20715a6 100644 --- a/python/gras/query/chart_factory.js +++ b/python/gras/query/chart_factory.js @@ -16,7 +16,6 @@ var gras_chart_get_registry = function() **********************************************************************/ function gras_chart_factory_active_blocks(registry) { - if (!('active_charts' in registry)) return ""; var block_ids = new Array(); $.each(registry.active_charts, function(index, chart_info) { @@ -37,34 +36,6 @@ function gras_chart_factory_update(registry, point) }); } -/*********************************************************************** - * One time setup - **********************************************************************/ -function gras_chart_factory_setup(registry, data) -{ - //gui init for factory controls - gras_chart_factory_init(registry); - - //block registry and checkboxes init - $.each(data.blocks, function(index, id) - { - registry.block_ids.push(id); - var container = $('#chart_designer_blocks'); - var div = $('
'); - $(div).append(''); - var 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){} -} - /*********************************************************************** * chart factory input handler **********************************************************************/ @@ -217,21 +188,10 @@ 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(); @@ -273,4 +233,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).append(''); + var 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); + }); } diff --git a/python/gras/query/main.js b/python/gras/query/main.js index ff05b15..a12457e 100644 --- a/python/gras/query/main.js +++ b/python/gras/query/main.js @@ -16,6 +16,17 @@ var GrasStatsRegistry = function() this.offline_count = 0; } +/*********************************************************************** + * Server offline animation + **********************************************************************/ +function gras_handle_offline(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'); +} + /*********************************************************************** * Query stats **********************************************************************/ @@ -31,7 +42,7 @@ var gras_query_stats = function(registry) success: function(response) { registry.online = true; - gras_chart_factory_online(registry); + gras_handle_offline(registry); if (registry.overall_active) { gras_chart_factory_update(registry, response); @@ -45,7 +56,7 @@ var gras_query_stats = function(registry) error: function() { registry.online = false; - gras_chart_factory_online(registry); + gras_handle_offline(registry); registry.timeout_handle = window.setTimeout(function() { gras_query_stats(registry); @@ -70,12 +81,6 @@ var gras_stats_main = function() document.title += ' - ' + registry.top_id; }); - //query the stats for initial setup - $.getJSON('/blocks.json', function(data) - { - gras_chart_factory_setup(registry, data); - }); - - //start the query loop in the background - gras_query_stats(registry); + //initialize the charts factory + gras_chart_factory_init(registry, gras_query_stats); } -- cgit