From 96be60ef2db75495b5aa3822bef3f5090100c37f Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Tue, 5 Sep 2006 18:55:28 +0000 Subject: [PATCH] ebl use human_size/sec in tpl (with javascript) this is more clean in Bweb.pm git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3413 91ce42f0-d328-0410-95d8-f526ca767f89 --- gui/bweb/cgi/bweb.pl | 1 - gui/bweb/html/bweb.js | 46 +++++++++++++++++++ gui/bweb/lib/Bweb.pm | 63 +++------------------------ gui/bweb/tpl/ach_content.tpl | 42 +++++++++--------- gui/bweb/tpl/client_list.tpl | 4 +- gui/bweb/tpl/display_client_job.tpl | 32 +++++++------- gui/bweb/tpl/display_client_stats.tpl | 2 +- gui/bweb/tpl/display_job.tpl | 2 +- gui/bweb/tpl/display_job_zoom.tpl | 2 +- gui/bweb/tpl/display_media.tpl | 2 +- gui/bweb/tpl/display_media_zoom.tpl | 12 ++--- gui/bweb/tpl/display_pool.tpl | 6 +-- 12 files changed, 104 insertions(+), 110 deletions(-) diff --git a/gui/bweb/cgi/bweb.pl b/gui/bweb/cgi/bweb.pl index 83cbab6852..9363a28721 100755 --- a/gui/bweb/cgi/bweb.pl +++ b/gui/bweb/cgi/bweb.pl @@ -31,7 +31,6 @@ use Bweb; use CGI; my $client_re = qr/^([\w\d\.-]+)$/; -my $pool_re = $client_re; my $action = CGI::param('action') || 'begin'; diff --git a/gui/bweb/html/bweb.js b/gui/bweb/html/bweb.js index 091eb991d0..16b8979925 100644 --- a/gui/bweb/html/bweb.js +++ b/gui/bweb/html/bweb.js @@ -70,6 +70,52 @@ function bweb_add_refresh(){ window.setInterval("bweb_refresh()",refresh_time); } +function human_size(val) +{ + if (!val) { + val = 0; + } + var unit = ['b', 'Kb', 'Mb', 'Gb', 'Tb']; + var i=0; + var format; + while (val /1024 > 1) { + i++; + val /= 1024; + } + + var format = (i>0)?1:0; + return val.toFixed(format) + ' ' + unit[i]; +} + +function human_sec(val) +{ + if (!val) { + val = 0; + } + val /= 60; // sec -> min + + if ((val / 60) <= 1) { + return val.toFixed(0) + ' mins'; + } + + val /= 60; // min -> hour + + if ((val / 24) <= 1) { + return val.toFixed(0) + ' hours'; + } + + val /= 24; // hour -> day + + if ((val / 365) < 2) { + return val.toFixed(0) + ' days'; + } + + val /= 365; + + return val.toFixed(0) + ' years'; +} + + // // percent_display("row2", [ { nb: 1, name: "Full" }, // { nb: 2, name: "Error" }, diff --git a/gui/bweb/lib/Bweb.pm b/gui/bweb/lib/Bweb.pm index 0f90520ad3..aad116b595 100644 --- a/gui/bweb/lib/Bweb.pm +++ b/gui/bweb/lib/Bweb.pm @@ -952,8 +952,7 @@ WHERE Media.VolumeName IN ($media_list) } $all->{$vol}->{realslot} = $slot; - $all->{$vol}->{volbytes} = Bweb::human_size($all->{$vol}->{volbytes}) ; - + push @{ $param }, $all->{$vol}; } else { # empty or no label @@ -1239,11 +1238,6 @@ $where my $all = $self->dbh_selectall_hashref($query, 'name') ; - foreach (values %$all) { - $_->{fileretention} = human_sec($_->{fileretention}); - $_->{jobretention} = human_sec($_->{jobretention}); - } - my $dsp = { ID => $cur_id++, clients => [ values %$all] }; @@ -1533,10 +1527,6 @@ SELECT DISTINCT Job.JobId AS jobid, my $all = $self->dbh_selectall_hashref($query, 'jobid') ; - foreach (values %$all) { - $_->{jobbytes} = human_size($_->{jobbytes}) ; - } - $self->display({ clientname => $arg{clientname}, Filter => $label, ID => $cur_id++, @@ -1846,25 +1836,6 @@ sub get_param get last backup -SELECT DISTINCT Job.JobId AS jobid, - Client.Name AS client, - FileSet.FileSet AS fileset, - Job.Name AS jobname, - Level AS level, - StartTime AS starttime, - JobFiles AS jobfiles, - JobBytes AS jobbytes, - VolumeName AS volumename, - JobStatus AS jobstatus, - JobErrors AS joberrors - - FROM Client,Job,JobMedia,Media,FileSet - WHERE Client.ClientId=Job.ClientId - AND Job.FileSetId=FileSet.FileSetId - AND JobMedia.JobId=Job.JobId - AND JobMedia.MediaId=Media.MediaId - $limit - =cut sub display_job @@ -1909,10 +1880,6 @@ SELECT Job.JobId AS jobid, my $all = $self->dbh_selectall_hashref($query, 'jobid') ; - foreach (values %$all) { - $_->{jobbytes} = human_size($_->{jobbytes}) ; - } - $self->display({ Filter => $label, ID => $cur_id++, Jobs => @@ -1954,8 +1921,6 @@ SELECT DISTINCT Job.JobId AS jobid, my $row = $self->dbh_selectrow_hashref($query) ; - $row->{jobbytes} = human_size($row->{jobbytes}) ; - # display all volumes associate with this job $query=" SELECT Media.VolumeName as volumename @@ -2016,9 +1981,6 @@ $where "; my $all = $self->dbh_selectall_hashref($query, 'volumename') ; - foreach (values %$all) { - $_->{volbytes} = human_size($_->{volbytes}) ; - } $self->display({ ID => $cur_id++, Pool => $elt{pool}, @@ -2081,11 +2043,6 @@ SELECT InChanger AS online, my $all = $self->dbh_selectall_hashref($query, 'volumename') ; foreach my $media (values %$all) { - $media->{nb_bytes} = human_size($media->{nb_bytes}) ; - $media->{voluseduration} = human_sec($media->{voluseduration}); - $media->{volretention} = human_sec($media->{volretention}); - $media->{volreadtime} = human_sec($media->{volreadtime}); - $media->{volwritetime} = human_sec($media->{volwritetime}); my $mq = $self->dbh_quote($media->{volumename}); $query = " @@ -2105,10 +2062,6 @@ SELECT DISTINCT Job.JobId AS jobid, my $jobs = $self->dbh_selectall_hashref($query, 'jobid') ; - foreach (values %$jobs) { - $_->{bytes} = human_size($_->{bytes}) ; - } - $query = " SELECT LocationLog.Date AS date, Location.Location AS location, @@ -2384,8 +2337,7 @@ WHERE Media.VolumeName = $media->{qmedia} $self->display({ %$elt, %$row, - }, - "update_media.tpl"); + }, "update_media.tpl"); } sub save_location @@ -2483,7 +2435,6 @@ GROUP BY Client.Name $row->{ID} = $cur_id++; $row->{label} = $label; - $row->{nb_bytes} = human_size($row->{nb_bytes}) ; $self->display($row, "display_client_stats.tpl"); } @@ -2530,10 +2481,6 @@ GROUP BY subq.PoolId my $all = $self->dbh_selectall_hashref($query, 'name') ; foreach my $p (values %$all) { - $p->{maxvolbytes} = human_size($p->{maxvolbytes}) ; - $p->{volretention} = human_sec($p->{volretention}) ; - $p->{voluseduration} = human_sec($p->{voluseduration}) ; - if ($p->{volmax}) { $p->{poolusage} = sprintf('%.2f', $p->{voltotal} * 100/ $p->{volmax}) ; } else { @@ -2826,8 +2773,10 @@ sub update_slots return $self->error("Bad autochanger name"); } - my $b = $self->get_bconsole(); - print "
" . $b->update_slots($ach) . "
"; + print "
";
+    my $b = new Bconsole(pref => $self->{info},timeout => 60,log_stdout => 1);
+    $b->update_slots($ach);
+    print "
\n" } sub get_job_log diff --git a/gui/bweb/tpl/ach_content.tpl b/gui/bweb/tpl/ach_content.tpl index 689f71548c..08952b62a7 100644 --- a/gui/bweb/tpl/ach_content.tpl +++ b/gui/bweb/tpl/ach_content.tpl @@ -1,13 +1,13 @@

-Autochanger : ( Drives - IMPORT/EXPORT)

+Autochanger : ( Drives + IMPORT/EXPORT)
- - + + You must run update slot, Autochanger status is different from bacula slots
@@ -22,7 +22,7 @@ Autochanger : ( Drives Label - +