]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl use human_size/sec in tpl (with javascript) this is more clean in Bweb.pm
authorEric Bollengier <eric@eb.homelinux.org>
Tue, 5 Sep 2006 18:55:28 +0000 (18:55 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Tue, 5 Sep 2006 18:55:28 +0000 (18:55 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3413 91ce42f0-d328-0410-95d8-f526ca767f89

12 files changed:
gui/bweb/cgi/bweb.pl
gui/bweb/html/bweb.js
gui/bweb/lib/Bweb.pm
gui/bweb/tpl/ach_content.tpl
gui/bweb/tpl/client_list.tpl
gui/bweb/tpl/display_client_job.tpl
gui/bweb/tpl/display_client_stats.tpl
gui/bweb/tpl/display_job.tpl
gui/bweb/tpl/display_job_zoom.tpl
gui/bweb/tpl/display_media.tpl
gui/bweb/tpl/display_media_zoom.tpl
gui/bweb/tpl/display_pool.tpl

index 83cbab68522d7084060c021de086ca14a1200249..9363a287213db3f2b9a2b8b52fab43ceca19757c 100755 (executable)
@@ -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';
 
index 091eb991d0183d955dccdb5698419ed1ded4e085..16b897992534e7afaca0df186eecba8aa4a92644 100644 (file)
@@ -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"  },
index 0f90520ad3b954326c88281d1c0b435976a39afd..aad116b59589aa8858308000861f1ec7f373cef1 100644 (file)
@@ -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 "<pre>" . $b->update_slots($ach) . "</pre>";
+    print "<pre>";
+    my $b = new Bconsole(pref => $self->{info},timeout => 60,log_stdout => 1);
+    $b->update_slots($ach);
+    print "</pre>\n" 
 }
 
 sub get_job_log
index 689f71548cdfaa44bd9791bf888128dc73a0e55a..08952b62a770f3f982b564095a02313953bd4dbd 100644 (file)
@@ -1,13 +1,13 @@
 <br/>
  <div class='titlediv'>
   <h1 class='newstitle'> 
-Autochanger : <TMPL_VAR NAME=Name> (<TMPL_VAR NAME=nb_drive> Drives
-<TMPL_IF NAME=nb_io><TMPL_VAR NAME=nb_io> IMPORT/EXPORT</TMPL_IF>)</h1>
+Autochanger : <TMPL_VAR Name> (<TMPL_VAR nb_drive> Drives
+<TMPL_IF nb_io><TMPL_VAR nb_io> IMPORT/EXPORT</TMPL_IF>)</h1>
  </div>
  <div class='bodydiv'>
    <form action='?' method='get'>
-    <input type='hidden' name='ach' value='<TMPL_VAR NAME=name>'>
-    <TMPL_IF NAME="Update">
+    <input type='hidden' name='ach' value='<TMPL_VAR name>'>
+    <TMPL_IF "Update">
     <font color='red'> You must run update slot, Autochanger status is different from bacula slots </font>
     <br/>
     </TMPL_IF>
@@ -22,7 +22,7 @@ Autochanger : <TMPL_VAR NAME=Name> (<TMPL_VAR NAME=nb_drive> Drives
 <input type="image" name='action' value='label_barcodes'
         title='run label barcodes' src='/bweb/label.png'>Label
 </label>
-<TMPL_IF NAME=nb_io>
+<TMPL_IF nb_io>
 <label>
 <input type="image" name='action' value='eject'
         title='put selected media on i/o' src='/bweb/extern.png'>
@@ -73,22 +73,22 @@ var header = new Array("Real Slot", "Slot", "Volume Name","Vol Bytes","Vol Statu
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=Slots>
+<TMPL_LOOP Slots>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.name = 'slot';
-chkbox.value = '<TMPL_VAR NAME=realslot>';
+chkbox.value = '<TMPL_VAR realslot>';
 
 data.push( new Array(
-"<TMPL_VAR NAME=realslot>",
-"<TMPL_VAR NAME=slot>",
-"<TMPL_VAR NAME=volumename>",
-"<TMPL_VAR NAME=volbytes>",
-"<TMPL_VAR NAME=volstatus>",
-"<TMPL_VAR NAME=mediatype>",
-"<TMPL_VAR NAME=name>",
-"<TMPL_VAR NAME=lastwritten>",
-"<TMPL_VAR NAME=expire>",
+"<TMPL_VAR realslot>",
+"<TMPL_VAR slot>",
+"<TMPL_VAR volumename>",
+human_size(<TMPL_VAR volbytes>),
+"<TMPL_VAR volstatus>",
+"<TMPL_VAR mediatype>",
+"<TMPL_VAR name>",
+"<TMPL_VAR lastwritten>",
+"<TMPL_VAR expire>",
 chkbox
  )
 );
@@ -121,16 +121,16 @@ var header = new Array("Index", "Drive Name", "Volume Name", "Select");
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=Drives>
+<TMPL_LOOP Drives>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.name = 'drive';
-chkbox.value = '<TMPL_VAR NAME=index>';
+chkbox.value = '<TMPL_VAR index>';
 
 data.push( new Array(
-"<TMPL_VAR NAME=index>",
-"<TMPL_VAR NAME=name>",
-"<TMPL_VAR NAME=load>",
+"<TMPL_VAR index>",
+"<TMPL_VAR name>",
+"<TMPL_VAR load>",
 chkbox
  )
 );
index 8f5a34442970b4f3f44758630c85a48077c142b0..c5da53edae6198009a2aff3aea8a676e1d1fcc11 100644 (file)
@@ -41,8 +41,8 @@ data.push(
              chkbox,
             "<TMPL_VAR NAME=Uname>",
             "<TMPL_VAR NAME=AutoPrune>",
-            "<TMPL_VAR NAME=FileRetention>",
-            "<TMPL_VAR NAME=JobRetention>"
+            human_sec(<TMPL_VAR NAME=FileRetention>),
+            human_sec(<TMPL_VAR NAME=JobRetention>)
               )
 ) ; 
 </TMPL_LOOP>
index fbdc04b6fb422bb358660fbce6ee1adeabd62071..33199f279fa5322d83791d06838ba78443fd9727 100644 (file)
@@ -1,19 +1,19 @@
 <br/>
  <div class='titlediv'>
-  <h1 class='newstitle'> Last jobs for <TMPL_VAR NAME=clientname> (<TMPL_VAR NAME=Filter>)
+  <h1 class='newstitle'> Last jobs for <TMPL_VAR clientname> (<TMPL_VAR Filter>)
   </h1>
  </div>
  <div class='bodydiv'>
 
-   <table id='id<TMPL_VAR NAME=ID>'></table>
+   <table id='id<TMPL_VAR ID>'></table>
 
-<a href="bgraph.pl?client=<TMPL_VAR NAME=clientname>;action=job_size;status=T">
+<a href="bgraph.pl?client=<TMPL_VAR clientname>;action=job_size;status=T">
     <img src="/bweb/chart.png" alt="backup size" title="backup size evolution"/>
     </a>
-<a href="bgraph.pl?client=<TMPL_VAR NAME=clientname>;action=job_duration;status=T">
+<a href="bgraph.pl?client=<TMPL_VAR clientname>;action=job_duration;status=T">
     <img src="/bweb/chart.png" alt="backup duration" title="backup time evolution"/>
     </a>
-<a href="bgraph.pl?client=<TMPL_VAR NAME=clientname>;action=job_rate;status=T">
+<a href="bgraph.pl?client=<TMPL_VAR clientname>;action=job_rate;status=T">
     <img src="/bweb/chart.png" alt="backup rate" title="backup rate evolution"/>
     </a>                               
  </div>
@@ -25,23 +25,23 @@ var header = new Array("JobId", "Job Name", "File Set", "Level", "Start Time",
 
 var data = new Array();
 
-<TMPL_LOOP NAME=Jobs>
+<TMPL_LOOP Jobs>
 data.push( new Array(
-"<TMPL_VAR NAME=JobId>",
-"<TMPL_VAR NAME=JobName>",    
-"<TMPL_VAR NAME=FileSet>",    
-"<TMPL_VAR NAME=Level>",      
-"<TMPL_VAR NAME=StartTime>",
-"<TMPL_VAR NAME=JobFiles>",   
-"<TMPL_VAR NAME=JobBytes>",   
-"<TMPL_VAR NAME=JobErrors>"   
+"<TMPL_VAR JobId>",
+"<TMPL_VAR JobName>",    
+"<TMPL_VAR FileSet>",
+"<TMPL_VAR Level>",
+"<TMPL_VAR StartTime>",
+"<TMPL_VAR JobFiles>",   
+human_size(<TMPL_VAR JobBytes>),
+"<TMPL_VAR JobErrors>"   
  )
 );
 </TMPL_LOOP>
 
 nrsTable.setup(
 {
- table_name:     "id<TMPL_VAR NAME=ID>",
+ table_name:     "id<TMPL_VAR ID>",
  table_header: header,
  table_data: data,
  up_icon: up_icon,
@@ -61,5 +61,5 @@ nrsTable.setup(
 );
 
 // get newest job first
-nrsTables['id<TMPL_VAR NAME=ID>'].fieldSort(0);
+nrsTables['id<TMPL_VAR ID>'].fieldSort(0);
 </script>
index 17b0fe76a23d216a498380c0eb11e1e5d1464b91..19a7c4df350847852e4ba8105e4f9879ac042376 100644 (file)
@@ -30,7 +30,7 @@ var data = new Array();
 data.push( 
   new Array( "<TMPL_VAR NAME=clientname>", 
             "<TMPL_VAR NAME=nb_jobs>",
-            "<TMPL_VAR NAME=nb_bytes>",
+            human_size(<TMPL_VAR NAME=nb_bytes>),
             "<TMPL_VAR NAME=nb_files>",
             "<TMPL_VAR NAME=nb_err>"
              )
index 49955b0d57db8f2f9419fbe37f0390d9eaa7aa8c..07166751db4ca5c5f7713d54ccf09c461baaec14 100644 (file)
@@ -47,7 +47,7 @@ data.push( new Array(
 "<TMPL_VAR StartTime>",
 "<TMPL_VAR Duration>",
 "<TMPL_VAR JobFiles>",   
-"<TMPL_VAR JobBytes>",
+human_size(<TMPL_VAR JobBytes>),
 "<TMPL_VAR joberrors">",   
 a
  )
index 5a37874acd7256579209bc7507cb63486dda1cf9..078dda6f35f92e6be445087404152ea8aa1e7ae1 100644 (file)
@@ -82,7 +82,7 @@ data.push( new Array(
 "<TMPL_VAR StartTime>",
 "<TMPL_VAR duration>",
 "<TMPL_VAR JobFiles>",   
-"<TMPL_VAR JobBytes>",
+human_size(<TMPL_VAR JobBytes>),
 "<TMPL_VAR poolname>",
 "<TMPL_LOOP volumes><TMPL_VAR VolumeName>\n</TMPL_LOOP>",   
 img
index dfa9e2bb062ccf68d82926005516c3b91aa435a4..7295cea9362ae0179587b42b799e99a553c85901 100644 (file)
@@ -57,7 +57,7 @@ chkbox.value = '<TMPL_VAR volumename>';
 data.push( new Array(
 "<TMPL_VAR volumename>",
 img,
-"<TMPL_VAR volbytes>",
+human_size(<TMPL_VAR volbytes>),
 d,
 "<TMPL_VAR volstatus>",
 "<TMPL_VAR poolname>",
index 83b9e6496b1f5f8111063aaf16b09fe17e563fec..be24f3176d8d2f4fbd1a7d1099db4ccb6d68be3d 100644 (file)
@@ -54,10 +54,10 @@ data.push( new Array(
 img,
 "<TMPL_VAR location>",
 "<TMPL_VAR volstatus>",
-"<TMPL_VAR nb_bytes>",
+human_size(<TMPL_VAR nb_bytes>),
 "<TMPL_VAR expire>",
-"<TMPL_VAR volretention>",
-"<TMPL_VAR voluseduration>",
+human_sec(<TMPL_VAR volretention>),
+human_sec(<TMPL_VAR voluseduration>),
 "<TMPL_VAR maxvoljobs>"
  )
 );
@@ -84,8 +84,8 @@ var header = new Array( "Vol Mounts", "Read time", "Write time", "Errors");
 var data = new Array();
 data.push( new Array(
 "<TMPL_VAR nb_mounts>",
-"<TMPL_VAR volreadtime>",
-"<TMPL_VAR volwritetime>",
+human_sec(<TMPL_VAR volreadtime>),
+human_sec(<TMPL_VAR volwritetime>),
 "<TMPL_VAR nb_errors>"
  )
 );
@@ -132,7 +132,7 @@ data.push( new Array(
 "<TMPL_VAR type>",
 "<TMPL_VAR level>",
 "<TMPL_VAR files>",
-"<TMPL_VAR bytes>",
+human_size(<TMPL_VAR bytes>),
 a
  )
 );
index 37eae35bbeb962b5e0afca24ba9f80cf72c3a4a3..6285daf9f42b2cb696b9f3f3283bba38b3e87232 100644 (file)
@@ -48,11 +48,11 @@ img2 = percent_usage(<TMPL_VAR poolusage>);
 data.push( new Array(
 "<TMPL_VAR Name>",
 "<TMPL_VAR Recycle>",
-"<TMPL_VAR VolRetention>",
-"<TMPL_VAR VolUseDuration>",
+human_sec(<TMPL_VAR VolRetention>),
+human_sec(<TMPL_VAR VolUseDuration>),
 "<TMPL_VAR MaxVolJobs>",
 "<TMPL_VAR MaxVolFiles>",
-"<TMPL_VAR MaxVolBytes>",
+human_size(<TMPL_VAR MaxVolBytes>),
 "<TMPL_VAR VolNum>",
 img,
 img2,