1 |
/* from example at http://people.iola.dk/olau/flot/examples/turning-series.html */ |
2 |
|
3 |
// hard-code color indices to prevent them from shifting as |
4 |
// countries are turned on/off |
5 |
var i = 0; |
6 |
$.each(datasets, function(key, val) { |
7 |
val.color = i; |
8 |
++i; |
9 |
}); |
10 |
|
11 |
// insert checkboxes |
12 |
var choiceContainer = $("#choices"); |
13 |
$.each(datasets, function(key, val) { |
14 |
choiceContainer.append('<br/><input type="checkbox" name="' + key + |
15 |
'" checked="checked" >' + val.label + '</input>'); |
16 |
}); |
17 |
choiceContainer.find("input").click(plotAccordingToChoices); |
18 |
|
19 |
|
20 |
function plotAccordingToChoices() { |
21 |
var data = []; |
22 |
|
23 |
choiceContainer.find("input:checked").each(function () { |
24 |
var key = $(this).attr("name"); |
25 |
if (key && datasets[key]) |
26 |
data.push(datasets[key]); |
27 |
}); |
28 |
|
29 |
var placeholder = $('#placeholder'); |
30 |
if ( ! placeholder ) alert("can't find #placeholder"); |
31 |
|
32 |
if (data.length > 0) |
33 |
$.plot( placeholder, data, options); |
34 |
|
35 |
placeholder.bind("plotselected", function (event,ranges) { |
36 |
|
37 |
function DateTimeStr(t) { |
38 |
var d = new Date( parseInt(t) ); |
39 |
|
40 |
function pad2(n) { |
41 |
var s = new String(n); |
42 |
if ( s.length == 1 ) { |
43 |
return '0' + s; |
44 |
} else { |
45 |
return s; |
46 |
} |
47 |
} |
48 |
|
49 |
var str = |
50 |
pad2( d.getUTCFullYear() ) + '-' + |
51 |
pad2( d.getUTCMonth() + 1 ) + '-' + |
52 |
pad2( d.getUTCDate() ) + ' ' + |
53 |
pad2( d.getUTCHours() ) + ':' + |
54 |
pad2( d.getUTCMinutes() ) + ':' + |
55 |
pad2( d.getUTCSeconds() ) ; |
56 |
|
57 |
return str; |
58 |
} |
59 |
|
60 |
var from = DateTimeStr( ranges.xaxis.from.toFixed(1) ); |
61 |
var to = DateTimeStr( ranges.xaxis.to.toFixed(1) ); |
62 |
|
63 |
$('#selection').html( |
64 |
from + ' → ' + to + ' ' + |
65 |
'<a target="Frey::Shell::Log" href="/Frey::Shell::Log/as_sponge?from_datetime='+from+'&to_datetime='+to+'">see log</a>' |
66 |
); |
67 |
}); |
68 |
|
69 |
} |
70 |
|
71 |
plotAccordingToChoices(); |
72 |
|