summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJosh Blum2013-03-30 01:19:19 -0500
committerJosh Blum2013-03-30 01:19:19 -0500
commit8fc23dc97c52747790b429dda214042746c9ff17 (patch)
tree7807a8f6f36fd06b9842980b4fa973a2bebf29b8 /python
parent93ae4dae9c6e91ce92046e4905d08bc8d033347f (diff)
downloadsandhi-8fc23dc97c52747790b429dda214042746c9ff17.tar.gz
sandhi-8fc23dc97c52747790b429dda214042746c9ff17.tar.bz2
sandhi-8fc23dc97c52747790b429dda214042746c9ff17.zip
query: rework init logic + save other gui settings
Diffstat (limited to 'python')
-rw-r--r--python/gras/query/chart_factory.js55
-rw-r--r--python/gras/query/main.js2
2 files changed, 33 insertions, 24 deletions
diff --git a/python/gras/query/chart_factory.js b/python/gras/query/chart_factory.js
index ae23728..2109976 100644
--- a/python/gras/query/chart_factory.js
+++ b/python/gras/query/chart_factory.js
@@ -81,15 +81,25 @@ function gras_chart_save(registry)
{
all_args.push(info.args);
});
- localStorage.setItem(registry.top_id, JSON.stringify(all_args));
+ localStorage.setItem(registry.top_id, JSON.stringify({
+ chart_args: all_args,
+ overall_rate: registry.overall_rate,
+ overall_active: registry.overall_active,
+ }));
}
function gras_chart_load(registry)
{
if (typeof(Storage) === "undefined") return;
- var chart_args = JSON.parse(localStorage.getItem(registry.top_id));
- if (!chart_args) return;
- $.each(chart_args, function(args_i, args)
+ var storage = JSON.parse(localStorage.getItem(registry.top_id));
+ if (!storage) return;
+
+ //restore misc settings in storage
+ registry.overall_rate = storage.overall_rate;
+ registry.overall_active = storage.overall_active;
+
+ //rebuild all charts from args
+ $.each(storage.chart_args, function(args_i, args)
{
//check that the blocks saved in the args actually exist
var do_make = true;
@@ -196,7 +206,7 @@ function gras_chart_factory_make(registry, args)
/***********************************************************************
* chart factory init
**********************************************************************/
-function gras_chart_factory_init(registry, done_cb)
+function gras_chart_factory_init(registry)
{
//init registry containers
registry.active_charts = new Array();
@@ -217,27 +227,24 @@ function gras_chart_factory_init(registry, done_cb)
$('#chart_type_selector').append(option);
});
- //init overall config gui element for rate
- var overall_rate = $('#chart_update_rate').attr({size:3});
- overall_rate.spinner({
- min: 1, max: 10, stop: function(event, ui){$(this).change();}
- });
- overall_rate.val(registry.overall_rate);
- overall_rate.change(function()
- {
- registry.overall_rate = overall_rate.val();
- });
-
- //init overall config gui element for activity
- registry.overall_active = true;
- var overall_active = $('#chart_active_state');
- overall_active.attr('checked', registry.overall_active);
- overall_active.change(function()
+ //callback for overall gui events
+ function handle_gui_event()
{
registry.overall_active = overall_active.is(':checked');
if (registry.overall_active) gras_query_stats(registry);
else window.clearInterval(registry.timeout_handle);
+ registry.overall_rate = overall_rate.val();
+ gras_chart_save(registry);
+ }
+
+ //init chart overall gui controls
+ var overall_rate = $('#chart_update_rate').attr({size:3});
+ overall_rate.spinner({
+ min: 1, max: 10, stop: function(event, ui){$(this).change();}
});
+ overall_rate.change(handle_gui_event);
+ var overall_active = $('#chart_active_state');
+ overall_active.change(handle_gui_event);
//block registry and checkboxes init
$.getJSON('/blocks.json', function(data)
@@ -260,7 +267,9 @@ function gras_chart_factory_init(registry, done_cb)
//try to load last settings
try{gras_chart_load(registry);}catch(e){}
- //done callback because getJSON was async
- done_cb(registry);
+ //init gui elements after settings restore
+ overall_rate.val(registry.overall_rate);
+ overall_active.attr('checked', registry.overall_active);
+ handle_gui_event();
});
}
diff --git a/python/gras/query/main.js b/python/gras/query/main.js
index a9c255b..a25979f 100644
--- a/python/gras/query/main.js
+++ b/python/gras/query/main.js
@@ -77,5 +77,5 @@ var gras_stats_main = function()
});
//initialize the charts factory
- gras_chart_factory_init(registry, gras_query_stats);
+ gras_chart_factory_init(registry);
}