diff --git a/lib/admin/Controller/dashboard.pm b/lib/admin/Controller/dashboard.pm index b2fe464..7418001 100644 --- a/lib/admin/Controller/dashboard.pm +++ b/lib/admin/Controller/dashboard.pm @@ -60,6 +60,7 @@ sub system : Local { $c->stash->{ctx} = "system"; $c->stash->{plotdata} = \@plotdata; + $c->stash->{tz_offset} = admin::Utils::tz_offset(); return 1; } @@ -80,6 +81,7 @@ sub voip : Local { $c->stash->{ctx} = "voip"; $c->stash->{plotdata} = \@plotdata; + $c->stash->{tz_offset} = admin::Utils::tz_offset(); return 1; } diff --git a/lib/admin/Utils.pm b/lib/admin/Utils.pm index ed25881..5c020cf 100644 --- a/lib/admin/Utils.pm +++ b/lib/admin/Utils.pm @@ -544,4 +544,9 @@ sub addel_iplist { return 1; } +# returns the offset in localhost's timezone to GMT +sub tz_offset { + return strftime ("%z", localtime(time)); +} + 1; diff --git a/root/js/jsrrd/jsrrd/rrdFlot.js b/root/js/jsrrd/jsrrd/rrdFlot.js index ba6bf15..a5ab22c 100644 --- a/root/js/jsrrd/jsrrd/rrdFlot.js +++ b/root/js/jsrrd/jsrrd/rrdFlot.js @@ -26,11 +26,18 @@ function suffixFormatter(val, axis) { return val.toFixed(axis.tickDecimals) + " B"; } -function rrdFlot(html_id, rrd_file, graph_options, ds_graph_options, si_suffix) { +function rrdFlot(html_id, rrd_file, graph_options, ds_graph_options, si_suffix, tz_offset) { if(si_suffix==null) - this.si_suffix = false; + this.si_suffix = false; else - this.si_suffix = si_suffix; + this.si_suffix = si_suffix; + + // tz_offset: offset of timezone in hours + if(tz_offset==null) + this.tz_offset = 0; + else + this.tz_offset = tz_offset; + this.html_id=html_id; this.rrd_file=rrd_file; this.graph_options=graph_options; @@ -182,7 +189,8 @@ rrdFlot.prototype.drawFlotGraph = function() { } var flot_obj=rrdRRAStackFlotObj(this.rrd_file,rra_idx, - ds_positive_stack_list,ds_negative_stack_list,ds_single_list); + ds_positive_stack_list,ds_negative_stack_list,ds_single_list, + this.tz_offset); for (var i=0; i function update_fname(rrd_data_arr, args) { - var graph_opts={}; - var ds_graph_opts={}; - if (rrd_data_arr.length == 1) - var f=new rrdFlot(args['plot_id'],rrd_data_arr[0],graph_opts,ds_graph_opts, args['si_suffix']); - else { - var t = new RRDFileSum(rrd_data_arr, false); - var f=new rrdFlot(args['plot_id'],t,graph_opts,ds_graph_opts, args['si_suffix']); - } + var graph_opts = {}; + var ds_graph_opts = {}; + var tz_offset = [% tz_offset %]; + if (rrd_data_arr.length == 1) + var f = new rrdFlot(args['plot_id'],rrd_data_arr[0],graph_opts,ds_graph_opts,args['si_suffix'],tz_offset); + else { + var t = new RRDFileSum(rrd_data_arr, false); + var f = new rrdFlot(args['plot_id'],t,graph_opts,ds_graph_opts,args['si_suffix'],tz_offset); + } } function update_fname_handler(bf, args) { @@ -50,7 +51,7 @@ alert("File "+fname+" is not a valid RRD archive!"); } if (rrd_data!=undefined) { - output.push(rrd_data); + output.push(rrd_data); if (output.length >= args['rrd_count']) { update_fname(output, args); } @@ -58,7 +59,7 @@ } function fname_update(fname, plot_id, si_suffix) { - var o = new Array(); + var o = new Array(); for (var i = 0; i < fname.length; i++) { try { FetchBinaryURLAsync(fname[i], update_fname_handler, {plot_id: plot_id,