]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Add FileSet view action
authorEric Bollengier <eric@eb.homelinux.org>
Thu, 31 Aug 2006 19:10:03 +0000 (19:10 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Thu, 31 Aug 2006 19:10:03 +0000 (19:10 +0000)
ebl  Add view fileset to job_zoom

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3390 91ce42f0-d328-0410-95d8-f526ca767f89

gui/bweb/ReleaseNotes
gui/bweb/cgi/bweb.pl
gui/bweb/lib/Bconsole.pm
gui/bweb/lib/Bweb.pm
gui/bweb/tpl/display_job_zoom.tpl
gui/bweb/tpl/fileset_view.tpl [new file with mode: 0644]

index 4b67fcc462ee854e07beaca35e31b6c1e9581651..2a0d9c1e61ae25d7e2d80238b4f69b00644de6c6 100644 (file)
@@ -1,5 +1,9 @@
           Release Notes for bweb 1.39.20
 
+2006/08/31:
+ - Add FileSet view action
+ - Add view fileset to job_zoom
+
 2006/08/26:
  - Add more graphics
    o job avg size/days
index 2ca7f820e837de9edbf411dde78c3a814b976919..83cbab68522d7084060c021de086ca14a1200249 100755 (executable)
@@ -355,6 +355,9 @@ if ($action eq 'begin') {           # main display
 } elsif ($action eq 'delete') {
     $bweb->delete();
 
+} elsif ($action eq 'fileset_view') {
+    $bweb->fileset_view();
+
 } else {
     $bweb->error("Sorry, this action don't exist");
 }
index 6594384ea948b1ee5a2906cac6ee7238f2147316..4c61330c2eaf45874c94b3bc2759986b283cfd0d 100644 (file)
@@ -277,6 +277,24 @@ sub update_slots
     return $self->send_cmd_with_drive("update slots storage=$storage", $drive);
 }
 
+sub get_fileset
+{
+    my ($self, $fs) = @_;
+
+    my $out = $self->send_cmd("show fileset=\"$fs\"");
+    
+    my $ret = {};
+
+    foreach my $l (split(/\r\n/, $out)) { 
+        #              I /usr/local
+       if ($l =~ /^\s+([I|E])\s+(.+)$/) { # include
+           push @{$ret->{$1}}, { file => $2 };
+       }
+    }
+
+    return $ret;
+}
+
 sub list_job
 {
     my ($self) = @_;
index 627a1149ab7d0d45e5c717c80d61b149e84a102f..d056cae53de045018b1e481056211233e55f00a9 100644 (file)
@@ -1351,6 +1351,7 @@ sub get_form
                  type   => 1,
                 );
     my %opt_p = (              # option with path
+                fileset=> 1,
                 mtxcmd => 1,
                 precmd => 1,
                 device => 1,
@@ -1449,7 +1450,6 @@ FROM FileSet
 
        $ret{db_filesets} = [sort {lc($a->{fileset}) cmp lc($b->{fileset}) } 
                               values %$filesets] ;
-
     }
 
     if ($what{db_jobnames}) {
@@ -1462,7 +1462,6 @@ FROM Job
 
        $ret{db_jobnames} = [sort {lc($a->{jobname}) cmp lc($b->{jobname}) } 
                               values %$jobnames] ;
-
     }
 
     if ($what{db_devices}) {
@@ -1475,7 +1474,6 @@ FROM Device
 
        $ret{db_devices} = [sort {lc($a->{name}) cmp lc($b->{name}) } 
                               values %$devices] ;
-
     }
 
     return \%ret;
@@ -1485,9 +1483,10 @@ sub display_graph
 {
     my ($self) = @_;
 
-    my $fields = $self->get_form(qw/age level status clients filesets graph gtype type
-                                  db_clients limit db_filesets width height
-                                  qclients qfilesets qjobnames db_jobnames/);
+    my $fields = $self->get_form(qw/age level status clients filesets 
+                                    graph gtype type
+                                   db_clients limit db_filesets width height
+                                   qclients qfilesets qjobnames db_jobnames/);
                                
 
     my $url = CGI::url(-full => 0,
@@ -2728,7 +2727,8 @@ sub ach_edit
     $ach->{drives} = 
        [ map { { name => $_, index => $i++ } } @{$ach->{drive_name}} ] ;
 
-    my $b = new Bconsole(pref => $self->{info});    
+    my $b = $self->get_bconsole();
+
     my @storages = $b->list_storage() ;
 
     $ach->{devices} = [ map { { name => $_ } } @storages ];
@@ -2762,7 +2762,7 @@ sub ach_add
     my ($self) = @_;
     my $arg = $self->get_form('ach', 'mtxcmd', 'device', 'precmd');
 
-    my $b = new Bconsole(pref => $self->{info});    
+    my $b = $self->get_bconsole();
     my @storages = $b->list_storage() ;
 
     unless ($arg->{ach}) {
@@ -2805,9 +2805,10 @@ sub delete
     my ($self) = @_;
     my $arg = $self->get_form('jobid');
 
-    my $b = new Bconsole(pref => $self->{info});
-
     if ($arg->{jobid}) {
+       my $b = $self->get_bconsole();
+       my $ret = $b->send_cmd("delete jobid=\"$arg->{jobid}\"");
+
        $self->display({
            content => $b->send_cmd("delete jobid=\"$arg->{jobid}\""),
            title => "Delete a job ",
@@ -2825,7 +2826,7 @@ sub update_slots
        return $self->error("Bad autochanger name");
     }
 
-    my $b = new Bconsole(pref => $self->{info});
+    my $b = $self->get_bconsole();
     print "<pre>" . $b->update_slots($ach) . "</pre>";
 }
 
@@ -2904,6 +2905,7 @@ sub label_barcodes
                       pool  => 'Scratch',
                       slots => $slots) ;
     print "</pre>";
+    $b->close();
 }
 
 sub purge
@@ -2912,6 +2914,10 @@ sub purge
 
     my @volume = CGI::param('media');
 
+    unless (@volume) {
+       return $self->error("Can't get media selection");
+    }
+
     my $b = new Bconsole(pref => $self->{info}, timeout => 60);
 
     $self->display({
@@ -2919,20 +2925,27 @@ sub purge
        title => "Purge media",
        name => "purge volume=" . join(' volume=', @volume),
     }, "command.tpl"); 
+    $b->close();
 }
 
 sub prune
 {
     my ($self) = @_;
 
+    my @volume = CGI::param('media');
+    unless (@volume) {
+       return $self->error("Can't get media selection");
+    }
+
     my $b = new Bconsole(pref => $self->{info}, timeout => 60);
 
-    my @volume = CGI::param('media');
     $self->display({
        content => $b->prune_volume(@volume),
        title => "Prune media",
        name => "prune volume=" . join(' volume=', @volume),
     }, "command.tpl"); 
+
+    $b->close();
 }
 
 sub cancel_job
@@ -2941,10 +2954,10 @@ sub cancel_job
 
     my $arg = $self->get_form('jobid');
     unless ($arg->{jobid}) {
-       return $self->error('Bad jobid');
+       return $self->error("Can't get jobid");
     }
 
-    my $b = new Bconsole(pref => $self->{info});
+    my $b = $self->get_bconsole();
     $self->display({
        content => $b->cancel($arg->{jobid}),
        title => "Cancel job",
@@ -2952,14 +2965,31 @@ sub cancel_job
     }, "command.tpl"); 
 }
 
+sub fileset_view
+{
+    # Warning, we display current fileset
+    my ($self) = @_;
+
+    my $arg = $self->get_form('fileset');
+
+    if ($arg->{fileset}) {
+       my $b = $self->get_bconsole();
+       my $ret = $b->get_fileset($arg->{fileset});
+       $self->display({ fileset => $arg->{fileset},
+                        %$ret,
+                    }, "fileset_view.tpl");
+    } else {
+       $self->error("Can't get fileset name");
+    }
+}
+
 sub director_show_sched
 {
     my ($self) = @_ ;
 
     my $arg = $self->get_form('days');
 
-    my $b = new Bconsole(pref => $self->{info}) ;
-    
+    my $b = $self->get_bconsole();
     my $ret = $b->director_get_sched( $arg->{days} );
 
     $self->display({
@@ -2977,7 +3007,7 @@ sub enable_disable_job
        return $self->error("Can't find job name");
     }
 
-    my $b = new Bconsole(pref => $self->{info}) ;
+    my $b = $self->get_bconsole();
 
     my $cmd;
     if ($what) {
@@ -2993,10 +3023,16 @@ sub enable_disable_job
     }, "command.tpl"); 
 }
 
+sub get_bconsole
+{
+    my ($self) = @_;
+    return new Bconsole(pref => $self->{info});
+}
+
 sub run_job_select
 {
     my ($self) = @_;
-    $b = new Bconsole(pref => $self->{info});
+    my $b = $self->get_bconsole();
 
     my $joblist = [ map { { name => $_ } } $b->list_job() ];
 
@@ -3031,7 +3067,7 @@ sub run_parse_job
 sub run_job_mod
 {
     my ($self) = @_;
-    $b = new Bconsole(pref => $self->{info});
+    my $b = $self->get_bconsole();
     
     my $job = CGI::param('job') || '';
 
@@ -3058,7 +3094,7 @@ sub run_job_mod
 sub run_job
 {
     my ($self) = @_;
-    $b = new Bconsole(pref => $self->{info});
+    my $b = $self->get_bconsole();
     
     my $jobs   = [ map {{ name => $_ }} $b->list_job() ];
 
@@ -3070,7 +3106,7 @@ sub run_job
 sub run_job_now
 {
     my ($self) = @_;
-    $b = new Bconsole(pref => $self->{info});
+    my $b = $self->get_bconsole();
     
     # TODO: check input (don't use pool, level)
 
index 0e11d747f8af8afd9bfffebde9935e86affccc28..5a37874acd7256579209bc7507cb63486dda1cf9 100644 (file)
   </label>
  </form>
  </td>
+ <td>
+ <form action='?'>
+  <input type='hidden' name='fileset' value='<TMPL_VAR FileSet>'>
+  <label>
+  <input type="image" name='action' value='fileset_view' title='view fileset'
+   src='/bweb/zoom.png'> View FileSet
+  </label>
+ </form>
+ </td>
  </table>
 </div>
 
diff --git a/gui/bweb/tpl/fileset_view.tpl b/gui/bweb/tpl/fileset_view.tpl
new file mode 100644 (file)
index 0000000..68f4343
--- /dev/null
@@ -0,0 +1,20 @@
+ <div class='titlediv'>
+  <h1 class='newstitle'> 
+   FileSet <TMPL_VAR fileset>
+  </h1>
+ </div>
+ <div class='bodydiv'>
+
+ <img src="/bweb/add.png" alt="included"> What is included :
+ <pre>
+<TMPL_LOOP I><TMPL_VAR file>
+</TMPL_LOOP></pre>
+
+ <img src="/bweb/remove.png" alt="excluded"> What is excluded :
+ <pre>
+<TMPL_LOOP E><TMPL_VAR file>
+</TMPL_LOOP></pre>
+
+Tips: Warning, this is the current fileset, it could have change...
+
+ </div>