# get a config file
mkdir -m 750 /etc/bweb
chown root:www-data /etc/bweb
- echo "template_dir = /usr/share/bweb/tpl" > /etc/bweb/config
+ echo '$VAR1 = { template_dir => "/usr/share/bweb/tpl" };' > /etc/bweb/config
chown www-data /etc/bweb/config
# copy bweb template file
################ CONFIGURATION #################################
/etc/bweb/config looks like : (you can edit it inside bweb)
+$VAR1 = bless( {
+ 'graph_font' => '/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf',
+ 'name' => undef,
+ 'config_file' => '/etc/bweb/config',
+ 'bconsole' => '/usr/sbin/bconsole -n -c /etc/bacula/bconsole.conf',
+ 'ach_list' => {
+ 'S1_L80' => bless( {
+ 'info' => {
+ 'drive' => 0,
+ 'io' => 0,
+ 'slot' => 0
+ },
+ 'name' => 'S1_L80',
+ 'bweb' => undef,
+ 'device' => '/dev/changer',
+ 'drive' => [],
+ 'debug' => 0,
+ 'label' => {},
+ 'precmd' => 'sudo',
+ 'io' => [],
+ 'mtxcmd' => '/usr/sbin/mtx',
+ 'drive_name' => [
+ 'S1_L80_SDLT0',
+ 'S1_L80_SDLT1'
+ ],
+ 'slot' => []
+ }, 'Bweb::Autochanger' )
+ },
+ 'password' => 'xxx',
+ 'template_dir' => '/usr/share/bweb/tpl',
+ 'dbi' => 'DBI:mysql:database=bacula',
+ 'error' => '',
+ 'debug' => 0,
+ 'user' => 'bacula',
+ 'email_media' => 'eric@localhost'
+}, 'Bweb::Config' );
-dbi = DBI:Pg:database=bacula;host=192.168.1.2
-user = bacula
-password = test
-template_dir = /usr/share/bweb/tpl
-graph_font = /usr/share/fonts/truetype/msttcorefonts/Arial.ttf
-email_media = eric@localhost
-bconsole = /usr/local/bacula/sbin/bconsole -c /usr/local/bacula/etc/bconsole.conf
################ BRESTORE ######################################
################ BCONSOLE NOTES ################################
-You must use bconsole without conio/readline support ! You can have 2 bconsole
-binary at the same time.
-
-./configure <your-other-options> --disable-conio
-cd src/lib
-make
-cd ..
-cd console
-make
-cp bconsole <your_destination>
+You must use bconsole without conio/readline support. For that, use
+bconsole -n option.
################ BACULA LOG ####################################
################ SUDO CONFIGURATION ############################
-*** At this time, autochanger module works only at home :)
-
If you use sudo, put this on you /etc/sudoers
www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer transfer *
Release Notes for bweb 1.39.20
+
+2006/08/23:
+ - Add client/media search box (with regexp)
+ - Add menubar instead of plain menu
+ - Drop all <button> element (work now with IE)
+ - Fix big div
+
2006/08/22:
- Add autochanger module (add/del/mod)
- Add copyright notice
}
if ($action eq 'begin') { # main display
- print "<table border='0'><td valign='top' width='100%'>\n";
+ print "<div style='left=0;'><table border='0'><tr><td valign='top' width='100%'>\n";
$bweb->display_general(age => $arg->{age});
$bweb->display_running_jobs(0);
print "</td><td valign='top'>";
</div>
<div class='bodydiv'>
<a href='?action=job;age=172800;jobtype=B'>
-<img src='bgraph.pl?age=172800;width=450;height=250;graph=job_size;limit=100;action=graph;legend=off' alt='Nothing to display'>
+<img src='bgraph.pl?age=172800;width=600;height=250;graph=job_size;limit=100;action=graph;legend=off' alt='Nothing to display'>
</a>
</div>";
- print "</td></table>";
+ print "</td></tr></table></div>";
$bweb->display_job(limit => 10);
} elsif ($action eq 'view_conf') {
} elsif ($action eq 'location_add') {
$bweb->location_add();
-#} elsif ($action eq 'del_location') {
-# $bweb->del_location();
-#
+} elsif ($action eq 'location_del') {
+ $bweb->del_location();
+
} elsif ($action eq 'media') {
$bweb->display_media();
} elsif ($action eq 'job') {
- print "<table border='0'><td valign='top'>\n";
+ print "<div><table border='0'><tr><td valign='top'>\n";
my $fields = $bweb->get_form(qw/status level db_clients db_filesets
limit age offset qclients qfilesets
jobtype/);
$bweb->display_job(age => $arg->{age}, # last 7 days
offset => $arg->{offset},
limit => $arg->{limit});
- print "</td></table>";
+ print "</td></tr></table></div>";
} elsif ($action eq 'client_stats') {
foreach my $client (CGI::param('client')) {
o update d'un volume
o update d'un pool
- - Configuration des autochanger a la main dans un hash dumper
-
- {
- L10 => {
- name => 'L10',
- drive_name => ['SDLT-1', 'STLD-2'],
- login => 'bacula',
- host => 'storehost',
- device => '/dev/changer',
- },
- }
+ o Configuration des autochanger a la main dans un hash dumper
border: 1px solid #9d9d94;
}
-abutton.formulaire { font-size: 9; height: 48px; width: 80px; background-color: transparent; }
+abutton.formulaire { font-size: 9pt; height: 48px; width: 80px; background-color: transparent; }
-button.formulaire { border: 0px; font-size: 9; background-color: transparent; }
-
-td.joberr { background-color: red; font-color: white;}
+button.formulaire { border: 0px; font-size: 9pt; background-color: transparent; }
+td.joberr { background-color: red; color: white;}
.pSlice, .pSliceFull, .pSliceError, .pSliceAppend, .pSlicePurged, .pSliceRecycle,
.pSliceArchive, .pSliceUsed, .pSliceRead_Only, .pSliceDisabled,
border: solid 1px #009900;
background-color: #00FF00;
}
+
+input.button {
+ border: 0px;
+ margin-right: 5px;
+ margin-left: 5px;
+}
+
+#menu, #menu ul {
+ float: left;
+ list-style: none;
+ line-height: 1;
+ background:#eeeae6 ;
+ font-weight: bold;
+ padding: 0;
+ border: solid #999;
+ border-width: 1px 0;
+ margin: 0 0 1em 0;
+ width: 100%;
+ color: #7C6240;
+}
+
+#menu a {
+ display: block;
+ color: #7C6240;
+ text-decoration: none;
+ padding: 0.25em 2em;
+}
+
+#menu a.daddy {
+ background: url(right.gif) center right no-repeat;
+}
+
+#menu li {
+ float: left;
+ padding: 0;
+ width: 10em;
+}
+
+#menu li ul {
+ position: absolute;
+ left: -999em;
+ height: auto;
+ width: 14.4em;
+ font-weight: normal;
+ border-width: 1px;
+ margin: 0;
+}
+
+#logged {
+ padding: 0.25em 2em;
+ float: right;
+ clear: left;
+ text-align: right;
+
+}
+
+#menu li li {
+ padding-right: 1em;
+ width: 13em
+}
+
+#menu li ul a {
+ width: 13em;
+}
+
+#menu li ul ul {
+ margin: -1.75em 0 0 14em;
+}
+
+#menu li:hover ul ul, #menu li:hover ul ul ul,
+#menu li.sfhover ul ul, #menu li.sfhover ul ul ul {
+ left: -999em;
+}
+
+#menu li:hover ul, #menu li li:hover ul, #menu li li li:hover ul,
+#menu li.sfhover ul, #menu li li.sfhover ul, #menu li li li.sfhover ul {
+ left: auto;
+}
+
+#menu li:hover, #menu li.sfhover {
+ background: #eeeae6;
+}
+
return parent;
}
+function search_media()
+{
+ var what = document.getElementById('searchbox').value;
+ if (what) {
+ document.search.action.value='media';
+ document.search.re_media.value=what;
+ document.search.submit();
+ }
+}
+
+function search_client()
+{
+ var what = document.getElementById('searchbox').value;
+ if (what) {
+ document.search.action.value='client';
+ document.search.re_client.value=what;
+ document.search.submit();
+ }
+}
+
+sfHover = function() {
+ var sfEls = document.getElementById("menu").getElementsByTagName("LI");
+ for (var i=0; i<sfEls.length; i++) {
+ sfEls[i].onmouseover=function() {
+ this.className+=" sfhover";
+ }
+ sfEls[i].onmouseout=function() {
+ this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
+ }
+ }
+}
+
+if (window.attachEvent) window.attachEvent("onload", sfHover);
text-align: left;
padding: 0;
width: auto;
- background: transparent url('/images/search.png') 2px no-repeat;
+ background: transparent url('/bweb/add.png') 2px no-repeat;
padding-left:25px;
}
div.menusearch p {
{
my ($self) = @_ ;
+ if ($self->{ach_list}) {
+ # shortcut for display_begin
+ $self->{achs} = [ map {{ name => $_ }}
+ keys %{$self->{ach_list}}
+ ];
+ }
+
unless (open(FP, ">$self->{config_file}"))
{
return $self->error("$self->{config_file} : $!\n" .
sub view
{
my ($self) = @_ ;
- $self->{achs} = [ map { { name => $_ } } keys %{$self->{ach_list}} ];
$self->display($self, "config_view.tpl");
- delete $self->{achs};
}
sub modify
TO_SEC => " interval '1 second' * ",
SEC_TO_INT => "SEC_TO_INT",
SEC_TO_TIME => '',
+ MATCH => " ~ ",
},
mysql => {
UNIX_TIMESTAMP => 'UNIX_TIMESTAMP',
SEC_TO_INT => '',
TO_SEC => '',
SEC_TO_TIME => 'SEC_TO_TIME',
+ MATCH => " REGEXP ",
},
);
{
my ($self) = @_;
+ my $where='';
+ my $arg = $self->get_form("client", "qre_client");
+
+ if ($arg->{qre_client}) {
+ $where = "WHERE Name $self->{sql}->{MATCH} $arg->{qre_client} ";
+ } elsif ($arg->{client}) {
+ $where = "WHERE Name = '$arg->{client}' ";
+ }
+
my $query = "
SELECT Name AS name,
Uname AS uname,
AutoPrune AS autoprune,
FileRetention AS fileretention,
JobRetention AS jobretention
-
FROM Client
+$where
";
my $all = $self->dbh_selectall_hashref($query, 'name') ;
$_->{jobretention} = human_sec($_->{jobretention});
}
- my $arg = { ID => $cur_id++,
+ my $dsp = { ID => $cur_id++,
clients => [ values %$all] };
- $self->display($arg, "client_list.tpl") ;
+ $self->display($dsp, "client_list.tpl") ;
}
sub get_limit
precmd => 1,
device => 1,
);
-
+
foreach my $i (@what) {
if (exists $opt_i{$i}) {# integer param
my $value = CGI::param($i) || $opt_i{$i} ;
if ($value =~ /^([\w\d\.-]+)$/) {
$ret{$i} = $1;
}
+
} elsif ($i =~ /^j(\w+)s$/) { # quote join args
my @value = CGI::param($1) ;
if (@value) {
my ($where, %elt) = $self->get_param('pool',
'location');
- my $arg = $self->get_form('jmedias');
+ my $arg = $self->get_form('jmedias', 'qre_media');
if ($arg->{jmedias}) {
$where = "AND Media.VolumeName IN ($arg->{jmedias}) $where";
}
+ if ($arg->{qre_media}) {
+ $where = "AND Media.VolumeName $self->{sql}->{MATCH} $arg->{qre_media} $where";
+ }
my $query="
SELECT Media.VolumeName AS volumename,
my ($self, $ach) = @_;
$self->{info}->{ach_list}->{$ach->{name}} = $ach;
+
$self->{info}->save();
return 1;
</tr>
</TMPL_LOOP>
</table>
- <button name='action' value='ach_add' class='formulaire'>
- <img src='/bweb/save.png'>
- </button>
+ <input type="image" name='action' value='ach_add' src='/bweb/save.png'>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
<TMPL_IF name>
for (var i=0; i < document.form1.ach.length; ++i) {
if (document.form1.ach[i].value == '<TMPL_VAR name>') {
Tools
</div>
<div class='otherbox'>
-<button type='submit' name='action' value='label_barcodes' class='formulaire'
- title='run label barcodes'>Label<br/><img src='/bweb/label.png'>
-</button>
+<label>
+<input type="image" name='action' value='label_barcodes'
+ title='run label barcodes' src='/bweb/label.png'>Label
+</label>
<TMPL_IF NAME=nb_io>
-<button type='submit' name='action' value='eject' class='formulaire'
- title='put selected media on i/o'>Eject<br/>
- <img src='/bweb/extern.png'>
-</button>
-<button type='submit' name='action' value='clear_io' class='formulaire'
- title='Clear i/o'>Clear I/O<br/>
- <img src='/bweb/intern.png'>
-</button>
+<label>
+<input type="image" name='action' value='eject'
+ title='put selected media on i/o' src='/bweb/extern.png'>
+Eject
+</label>
+<label>
+<input type="image" name='action' value='clear_io'
+ title='Clear i/o' src='/bweb/intern.png'>
+Clear I/O
+</label>
</TMPL_IF>
-<button type='submit' name='action' value='update_slots' class='formulaire'
- title='run update slots'>Update<br/>
- <img src='/bweb/update.png'>
-</button>
+<label>
+<input type="image" name='action' value='update_slots'
+ title='run update slots' src='/bweb/update.png'>
+Update
+</label>
<br/><br/>
-<button type='submit' name='action' value='ach_load' class='formulaire'
- title='mount drive'>Mount<br/>
- <img src='/bweb/load.png'>
-</button>
-<button type='submit' name='action' value='ach_unload' class='formulaire'
- title='umount drive'>Umount<br/>
- <img src='/bweb/unload.png'>
-</button>
+<label>
+<input type="image" name='action' value='ach_load'
+ title='mount drive' src='/bweb/load.png'>
+Mount
+</label>
+<label>
+<input type="image" name='action' value='ach_unload'
+ title='umount drive' src='/bweb/unload.png'>
+Umount
+</label>
</div>
<td width='200'/>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Real Slot", "Slot", "Volume Name","Vol Bytes","Vol Status",
"Media Type","Pool Name","Last Written",
odd_cell_color: odd_cell_color,
header_color: header_color,
// page_nav: true,
- padding: 3,
// rows_per_page: rows_per_page,
// disable_sorting: new Array(5,6)
+ padding: 3
}
);
odd_cell_color: odd_cell_color,
header_color: header_color,
// page_nav: true,
- padding: 3,
// rows_per_page: rows_per_page,
-// disable_sorting: new Array(5,6)
+// disable_sorting: new Array(5,6),
+ padding: 3
}
);
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
-<title>Bweb</title>
-<script language="JavaScript" src="/bweb/natcompare.js"></script>
-<script language="JavaScript" src="/bweb/nrs_table.js"></script>
-<script language="JavaScript" src="/bweb/bweb.js"></script>
+<title>Bweb - Bacula Web Interface</title>
+<script type="text/javascript" language="JavaScript" src="/bweb/natcompare.js"></script>
+<script type="text/javascript" language="JavaScript" src="/bweb/nrs_table.js"></script>
+<script type="text/javascript" language="JavaScript" src="/bweb/bweb.js"></script>
<link type="text/css" rel="stylesheet" href="/bweb/style.css"/>
<link type="text/css" rel="stylesheet" href="/bweb/kaiska.css"/>
<link type="text/css" rel="stylesheet" href="/bweb/bweb.css"/>
</head>
<body>
- <div class="menubar">
-<a href="?"> Main </a>[
-<a href="?action=client"> Clients </a>|
-<a href="?action=run_job"> Jobs </a>|
-<a href="?action=running"> Running jobs </a>|
-<a href="?action=job"> Old Jobs </a>|
-<a href="?action=next_job"> Next jobs </a|>|
-<a href="?action=restore" title="Launch brestore"> Restore </a>|
-<a href="?action=graph"> Statistics </a>] [
-<a href="?action=pool"> Pools </a>|
-<a href="?action=location"> Locations </a>|
-<a href="?action=media"> Medias </a>|
-<a href="?action=extern_media"> Eject media </a>|
-<a href="?action=intern_media"> Load media </a>
-<!--| <a href="?action=ach_view"> View Autochanger </a> -->
-] [
-<a href="?action=view_conf"> Configuration </a>|
-<a href="?action=about"> About </a>]
-Logged as <TMPL_VAR NAME=loginname>
- </div>
-
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
if (navigator.appName == 'Konqueror') {
alert("Sorry at this moment, bweb works only with mozilla.");
}
</script>
+<ul id="menu">
+ <li><a href="?">Main</a> </li>
+ <li><a href="?action=client">Clients</a></li>
+ <li><a href="?action=run_job">Jobs</a>
+ <ul>
+ <li><a href="?action=next_job">Next Jobs</a> </li>
+ <li><a href="?action=job">Old Jobs</a> </li>
+ <li><a href="?action=restore" title="Launch brestore">Restore</a> </li>
+ <li><a href="?action=run_job">Defined Jobs</a>
+ </ul>
+ </li>
+ <li style="padding: 0.25em 2em;">Media
+ <ul>
+ <li><a href="?action=pool">Pools</a> </li>
+ <li><a href="?action=location">Locations</a> </li>
+ <li><a href="?action=media">All Medias</a> </li>
+ <li><hr></li>
+ <li><a href="?action=extern_media">Eject Medias</a> </li>
+ <li><a href="?action=intern_media">Load Medias</a> </li>
+ </ul>
+ </li>
+<TMPL_IF achs>
+ <li style="padding: 0.25em 2em;">Autochanger
+ <ul>
+<TMPL_LOOP achs>
+ <li><a href="?action=ach_view;ach=<TMPL_VAR name>"><TMPL_VAR name></a></li>
+</TMPL_LOOP>
+ </ul>
+ </li>
+</TMPL_IF>
+ <li><a href="?action=graph"> Statistics </a></li>
+ <li> <a href="?action=view_conf"> Configuration </a> </li>
+ <li> <a href="?action=about"> About </a> </li>
+ <li style="padding: 0.25em 2em;float: right;"> Logged as <TMPL_VAR NAME=loginname> </li>
+ <li style="float: right;padding-right: 1em;white-space: nowrap;">
+<input type="image" class="button" title="search media" onclick="search_media();" src="/bweb/tape.png"><input type="image" title="search client" onclick="search_client();" src="/bweb/client.png"> <input class='formulaire' id='searchbox' type='text' size='8' value="search..." onclick="this.value='';" title="search media or client"></li>
+</ul>
+
+<form name="search" action="?" method='GET'>
+ <input type="hidden" name="action" value="">
+ <input type="hidden" name="re_media" value="">
+ <input type="hidden" name="re_client" value="">
+</form>
+
+<div style="clear: left;">
+<div style="float: left;">
</div>
<form name='form1' action='?' method='GET'>
-<button name='action' value='dsp_cur_job' class='formulaire'>
-<img src='/bweb/update.png' title='refresh'>
-</button>
+<input type="image" name='action' value='dsp_cur_job'
+ src='/bweb/update.png' title='refresh'>
<input type='hidden' name='client' value='<TMPL_VAR Client>'>
<input type='hidden' name='jobid' value='<TMPL_VAR JobId>'>
-<button type='submit' name='action' value='cancel_job' class='formulaire'
- title='Cancel job'><img src='/bweb/cancel.png'>
-</button>
+<input type="image" name='action' value='cancel_job'
+ title='Cancel job' src='/bweb/cancel.png'>
</form>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
bweb_add_refresh();
</script>
</div>
<div class="otherbox">
<!-- <h1>Actions</h1> -->
- <button class='formulaire' name='action' value='job' title='Show last job'><img src='/bweb/zoom.png'>Last jobs</button>
- <button class='formulaire' name='action' value='dsp_cur_job' title='Show current job'><img src='/bweb/zoom.png'>Current jobs</button>
- <button class='formulaire' name='action' value='client_status' title='Show client status'><img src='/bweb/zoom.png'>Status</button>
- <button class='formulaire' name='action' value='client_stats' title='Client stats'><img src='/bweb/chart.png'>Stats</button>
+ <label>
+ <input type="image" name='action' value='job' title='Show last job' src='/bweb/zoom.png'>Last jobs</label>
+ <label>
+ <input type="image" name='action' value='dsp_cur_job' title='Show current job' src='/bweb/zoom.png'>Current jobs</label>
+ <label>
+ <input type="image" name='action' value='client_status' title='Show client status' src='/bweb/zoom.png'>Status</label>
+ <label>
+ <input type="image" name='action' value='client_stats' title='Client stats' src='/bweb/chart.png'>Stats</label>
+ </label>
</div>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Name", "Select", "Desc", "Auto Prune", "File Retention", "Job Retention");
var data = new Array();
</div>
<form name='form1' action='?' method='GET'>
-<button name='action' value='dsp_cur_job' class='formulaire'>
-<img src='/bweb/update.png' title='refresh'>
-</button>
+<input type="image" name='action' value='dsp_cur_job'
+ src='/bweb/update.png' title='refresh'>
<input type='hidden' name='client' value='<TMPL_VAR Client>'>
<input type='hidden' name='jobid' value='<TMPL_VAR JobId>'>
-<button type='submit' name='action' value='cancel_job' class='formulaire'
- title='Cancel job'><img src='/bweb/cancel.png'>
-</button>
+<input type="image" name='action' value='cancel_job'
+ title='Cancel job' src='/bweb/cancel.png'>
</form>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
bweb_add_refresh();
</script>
<td> <input class="formulaire" type='checkbox' name='debug'>
</td></tr>
</table>
- <button name='action' value='apply_conf' class='formulaire'>
- <img src='/bweb/save.png'>
- </button>
+ <input type="image" name='action' value='apply_conf' src='/bweb/save.png'>
</form>
</div>
<table border='0'>
<TMPL_LOOP achs>
<tr>
- <td><input type='radio' name='ach' value='<TMPL_VAR name>'><TMPL_VAR name></td>
+ <td>
+<label>
+ <input type='radio' name='ach' value='<TMPL_VAR name>'><TMPL_VAR name>
+</label>
+ </td>
</tr>
</TMPL_LOOP>
</table>
<td>
- <button class='formulaire' type='submit' name='action' value='ach_edit' title='edit'><img src='/bweb/edit.png'></button>
- <button class='formulaire' type='submit' name='action' value='ach_del' title='delete'><img src='/bweb/remove.png'></button>
- <button class='formulaire' type='submit' name='action' value='ach_view' title='view'><img src='/bweb/zoom.png'></button>
+
+ <input type="image" name="action" value="ach_edit" title="edit" src='/bweb/edit.png'>
+ <input type="image" name='action' value='ach_del' title='delete' src='/bweb/remove.png'>
+ <input type='image' name='action' value='ach_view' title='view' src='/bweb/zoom.png'>
</form>
</td>
</tr>
</TMPL_IF achs>
+ <tr>
+ <td><hr></td><td></td>
+ </tr>
</table>
<form action='?' method='GET'>
- <button name='action' value='edit_conf' class='formulaire'>
- Edit<br/><img title='Edit' src='/bweb/edit.png'>
- </button>
- <button name='action' value='ach_add' class='formulaire'>
- Add autochanger<br/><img title='Add an autochanger' src='/bweb/add.png'>
- </button>
+ <label>
+ <input name='action' value='edit_conf' type="image" title='Edit' src='/bweb/edit.png'> Edit
+ </label>
+ <label>
+ <input name='action' value='ach_add' type="image" title='Add an autochanger' src='/bweb/add.png'> Add autochanger
+ </label>
</form>
+ <TMPL_IF error>
info : <TMPL_VAR error> </br>
-
+ </TMPL_IF>
</div>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("JobId", "Job Name", "File Set", "Level", "Start Time",
"Job Files", "Job Bytes", "Errors");
</div>
<div class="otherbox">
<h1>Actions</h1>
- <button name='action' value='job' title='Show last job'><img src='/bweb/zoom.png'></button>
- <button name='action' value='dsp_cur_job' title='Show current job'><img src='/bweb/zoom.png'></button>
- <button name='action' value='client_stat' title='Client stats'><img src='/bweb/zoom.png'></button>
+ <input type="image" name='action' value='job' title='Show last job'
+ src='/bweb/zoom.png'>
+ <input type="image" name='action' value='dsp_cur_job' title='Show current job' src='/bweb/zoom.png'>
+ <input type="image" name='action' value='client_stat' title='Client stats' src='/bweb/zoom.png'>
</div>
-->
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Name", "Nb Jobs", "Nb Bytes", "Nb Files", "Nb Errors");
var data = new Array();
<br/>
-
<div class="otherboxtitle">
Filter
</div>
</tr>
-->
</table>
- <button name='action' value='job' class='formulaire'>
- <img src='/bweb/update.png'>
- </button>
+ <input type="image" name='action' value='job' src='/bweb/update.png'>
-</div>
</form>
-<script language="JavaScript">
+</div>
+<script type="text/javascript" language="JavaScript">
<TMPL_LOOP qclients>
document.getElementById('client_' + <TMPL_VAR name>).selected = true;
-<br/>
<div class='titlediv'>
<h1 class='newstitle'> Last Jobs (<TMPL_VAR Filter>)</h1>
</div>
<table id='id<TMPL_VAR ID>'></table>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
<TMPL_IF status>
document.getElementById('status_<TMPL_VAR status>').checked = true;
</TMPL_IF>
<table><td>
<form action='?'>
<input type='hidden' name='jobid' value='<TMPL_VAR jobid>'>
- <button class='formulaire' name='action' value='delete' title='delete this job'> Delete<br/>
- <img src='/bweb/purge.png'>
- </button>
+ <label>
+ <input type="image" name='action' value='delete' title='delete this job'
+ src='/bweb/purge.png'> Delete
+ </label>
</form>
</td><td>
<form action='?'>
<TMPL_LOOP volumes>
<input type='hidden' name='media' value='<TMPL_VAR VolumeName>'>
</TMPL_LOOP>
- <button class='formulaire' name='action' value='media' title='view media'>
- View media<br/>
- <img src='/bweb/zoom.png'>
- </button>
+ <label>
+ <input type="image" name='action' value='media' title='view media'
+ src='/bweb/zoom.png'>View media
+ </label>
</form>
</td>
<td>
<form action='?'>
<input type='hidden' name='client' value='<TMPL_VAR Client>'>
- <button class='formulaire' name='action' value='job' title='view <TMPL_VAR Client> jobs'>
- View jobs<br/>
- <img src='/bweb/zoom.png'>
- </button>
+ <label>
+ <input type="image" name='action' value='job' title='view <TMPL_VAR Client> jobs' src='/bweb/zoom.png'>View jobs
+ </label>
</form>
</td>
<td>
<input type='hidden' name='age' value='2678400'>
<input type='hidden' name='client' value='<TMPL_VAR Client>'>
<input type='hidden' name='jobname' value='<TMPL_VAR jobname>'>
- <button class='formulaire' name='action' value='graph' title='view trends'>
- View stats<br/>
- <img src='/bweb/chart.png'>
- </button>
+ <label>
+ <input type="image" name='action' value='graph' title='view trends'
+ src='/bweb/chart.png'> View stats
+ </label>
</form>
</td>
</table>
</div>
-<script language='JavaScript'>
+<script type="text/javascript" language='JavaScript'>
var header = new Array("JobId",
"Client",
"Job Name",
<div class="bodydiv">
<form action='?' method='get'>
<table id='id<TMPL_VAR ID>'></table>
- <button class='formulaire' type='submit' name='action' value='location_add' title='Add a location'>
- <img src='/bweb/add.png'>
- </button>
- <button class='formulaire' type='submit' name='action' value='location_del' title='Remove a location'>
- <img src='/bweb/remove.png'>
- </button>
- <button class='formulaire' type='submit' name='action' value='location_edit' title='Edit a location'>
- <img src='/bweb/edit.png'>
- </button>
+ <input type="image" name='action' value='location_add' title='Add a location' src='/bweb/add.png'>
+ <input type="image" name='action' value='location_del' title='Remove a location' src='/bweb/remove.png'>
+ <input type="image" name='action' value='location_edit' title='Edit a location' src='/bweb/edit.png'>
- <button class='formulaire' type='submit' name='action' value='media' title='Show content'>
- <img src='/bweb/zoom.png'>
- </button>
+ <input type="image" name='action' value='media' title='Show content'
+ src='/bweb/zoom.png'>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Name","Enabled", "Cost", "Nb volumes", "Select");
<form action='?action=test' method='get'>
<table id='id_pool_<TMPL_VAR ID>'></table>
- <button class='formulaire' type='submit' name='action' value='extern' title='Move out'><img src='/bweb/extern.png'></button>
- <button class='formulaire' type='submit' name='action' value='intern' title='Move in'><img src='/bweb/intern.png'></button>
- <button class='formulaire' type='submit' name='action' value='update_media' title='Update media'><img src='/bweb/edit.png'></button>
- <button class='formulaire' type='submit' name='action' value='media_zoom' title='Informations'><img src='/bweb/zoom.png'></button>
+ <input type="image" name='action' value='extern' title='Move out' src='/bweb/extern.png'>
+ <input type="image" name='action' value='intern' title='Move in' src='/bweb/intern.png'>
+ <input type="image" name='action' value='update_media' title='Update media' src='/bweb/edit.png'>
+ <input type="image" name='action' value='media_zoom' title='Informations' src='/bweb/zoom.png'>
<!--
- <button class='formulaire' type='submit' name='action' value='purge' title='Purge'><img src='/bweb/purge.png'></button>
+ <input type="image" name='action' value='purge' title='Purge' src='/bweb/purge.png'>
-->
- <button class='formulaire' type='submit' name='action' value='prune' title='Prune'><img src='/bweb/prune.png'></button>
+ <input type="image" name='action' value='prune' title='Prune' src='/bweb/prune.png'>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Volume Name","Online","Vol Bytes", "Vol Usage", "Vol Status",
"Pool", "Media Type",
<b> Actions </b></br>
<form action='?' method='get'>
<input type='hidden' name='media' value='<TMPL_VAR volumename>'>
-<TMPL_IF online>
- <button class='formulaire' type='submit' name='action' value='extern' title='move out'><img src='/bweb/extern.png'></button>
+<TMPL_IF online>
+ <input type="image" name='action' value='extern' title='move out' src='/bweb/extern.png'>
<TMPL_ELSE>
- <button class='formulaire' type='submit' name='action' value='intern' title='move in'><img src='/bweb/intern.png'></button>
+ <input type="image" name='action' value='intern' title='move in' src='/bweb/intern.png'>
</TMPL_IF>
- <button class='formulaire' type='submit' name='action' value='update_media' title='Update'><img src='/bweb/edit.png'></button>
- <button class='formulaire' type='submit' name='action' value='purge' title='Purge'><img src='/bweb/purge.png'></button>
- <button class='formulaire' type='submit' name='action' value='prune' title='Prune'><img src='/bweb/prune.png'></button>
+ <input type="image" name='action' value='update_media' title='Update' src='/bweb/edit.png'>
+ <input type="image" name='action' value='purge' title='Purge' src='/bweb/purge.png'>
+ <input type="image" name='action' value='prune' title='Prune' src='/bweb/prune.png'>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Pool","Online","Location","Vol Status", "Vol Bytes", "Expire",
"Retention","Max use duration", "Max jobs" );
<div class="bodydiv">
<form action='?' method='get'>
<table id='id<TMPL_VAR ID>'></table>
- <button class='formulaire' type='submit' name='action' value='media' title='Show content'>
- <img src='/bweb/zoom.png'>
- </button>
+ <input type="image" type='submit' name='action' value='media' title='Show content' src='/bweb/zoom.png'>
</form>
<br/>
Tips: To modify pool properties, you have to edit your bacula configuration
and reload it. After, you have to run "update pool=mypool" on bconsole.
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Name","Recycle","Retention","Use Duration",
"Max job per volume","Max file per volume",
+</div>
+<div style="float: right;"></div>
+</div>
</body>
</html>
-<script language="JavaScript">
+
+<script type="text/javascript" language="JavaScript">
bweb_add_refresh();
</script>
<div class='titlediv'>
</table>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
<TMPL_LOOP qclients>
document.getElementById('client_' + <TMPL_VAR name>).selected = true;
value='10'> </td>
</tr>
<tr>
- <td><button class='formulaire' name='action' value='compute_extern_media' title='Next'>
- <img src='/bweb/next.png'>
+ <td><input type="image" name='action' value='compute_extern_media' title='Next' src='/bweb/next.png'>
</td><td/>
</tr>
</table>
<table id='compute'></table>
<table><tr>
<td style='align: left;'>
- <button onclick='javascript:window.history.go(-2);' class='formulaire' title='Back'>
- <img src='/bweb/prev.png'>
- </button>
+ <input type="image" onclick='javascript:window.history.go(-2);' title='Back' src='/bweb/prev.png'>
</td><td style='align: right;'>
- <button name='action' value='extern' class='formulaire'>
- <img src='/bweb/extern.png'>
- </button>
+ <input type="image" name='action' value='extern' src='/bweb/extern.png'>
</td></tr>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Volume Name","Vol Status",
"Media Type","Pool Name","Last Written",
size='3' value='10'> </td>
</tr>
<tr>
- <td><button name='action' value='compute_intern_media'
- class='formulaire' title='Next'>
- <img src='/bweb/next.png'>
+ <td><input type="image" name='action' value='compute_intern_media'
+ title='Next' src='/bweb/next.png'>
</td><td/>
</tr>
</table>
<table id='compute'></table>
<table><tr>
<td style='align: left;'>
- <button onclick='javascript:window.history.go(-2);' class='formulaire' title='Back'>
- <img src='/bweb/prev.png'>
- </button>
+ <input type="image" onclick='javascript:window.history.go(-2);' title='Back' src='/bweb/prev.png'>
</td><td style='align: right;'>
- <button name='action' value='move_media' class='formulaire'>
- <img src='/bweb/intern.png'>
- </button>
+ <input type="image" name='action' value='move_media'
+ src='/bweb/intern.png'>
</td></tr>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Volume Name","Vol Status",
"Media Type","Pool Name","Last Written",
+++ /dev/null
- <div class='otherboxtitle'>
- Find
- </div>
- <div class='otherbox'>
- <form action='?' method='GET' id='form1'>
- <table border='0'>
- <tr>
- <td>
- Clients:
- </td>
- <td>
- <select name='client'>
-<TMPL_LOOP NAME=db_clients>
-<option value='<TMPL_VAR NAME=clientname>'><TMPL_VAR NAME=clientname></option>
-</TMPL_LOOP>
- </select>
- </td>
- <td>
- Level:
- </td>
- <td>
- <select name='level'>
- <option id='level_any' value='Any'>Any</option>
- <option id='level_F' value='F'>Full</option>
- <option id='level_F' value='D'>Diff</option>
- <option id='level_I' value='I'>Incr</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>
- Status:
- </td>
- <td>
- <select name='status'>
- <option id='status_any' value='Any'>Any</option>
- <option id='status_A' value='T'>Ok</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>
- JobId:
- </td>
- <td>
- <input type='text' name='jobid' size='4'
- value='<TMPL_VAR NAME=jobid>'>
- </td>
- <td>
- Start Time:
- </td>
- <td>
- <input type='text' name='jobid' title='DD/MM/YYYY' size='7'>
- </td>
- </tr>
- <tr>
- <td>
- Limit:
- </td>
- <td>
- <input type='text' name='limit' title='number of result' size='2'
- value='<TMPL_VAR NAME=limit>'>
- </td>
- </tr>
- <tr>
- <td>
- <button name='action' value='job'>Search</button>
- </td>
- <td>
- </td>
- <td>
- </td>
- </tr>
-
- </table>
- </form>
- </div>
</td>
</tr>
</table>
- <button name='action' value='location_add' class='formulaire'>
- <img src='/bweb/save.png'>
- </button>
+ <input type="image" name='action' value='location_add' title="save"
+ src='/bweb/save.png'>
</form>
</div>
</td>
</tr>
</table>
- <button name='action' value='location_save' class='formulaire'>
- <img src='/bweb/save.png'>
- </button>
+ <input type="image" name='action' value='location_save'
+ src='/bweb/save.png'>
</form>
</div>
<textarea name="comment" class='formulaire'> </textarea>
</td></tr>
</table>
- <button class='formulaire' type='submit' name='action' value='change_location'>
- <img src='/bweb/apply.png'> Move
- </button>
+ <label>
+ <input type="image" class='formulaire' type='submit' name='action' value='change_location' src='/bweb/apply.png'> Move
+ </label>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Volume Name", "Location", "Select");
</td></tr>
</table>
<br/>
- <button class='formulaire' name='action' value='enable_job' title='Enable'>
- Enable<br/>
- <img src='/bweb/inflag1.png'>
- </button>
- <button class='formulaire' name='action' value='disable_job' title='Disable'>
- Disable<br/>
- <img src='/bweb/inflag0.png'>
- </button>
- <button name='action' value='run_job_mod' title='Run now' class='formulaire'>
- Run now <br/><img src='/bweb/R.png'>
- </button>
+ <label>
+ <input type="image" name='action' value='enable_job' title='Enable'
+ src='/bweb/inflag1.png'> Enable
+ </label>
+ <label>
+ <input type="image" name='action' value='disable_job' title='Disable'
+ src='/bweb/inflag0.png'> Disable
+ </label>
+ <label>
+ <input type="image" name='action' value='run_job_mod' title='Run now'
+ src='/bweb/R.png'> Run now
+ </label>
</form>
</div>
</td></tr>
</table>
<br/>
- <button name='action' value='run_job_now' title='Run job' class='formulaire'>
- <img src='/bweb/R.png'>
- </button>
+ <label>
+ <input type="image" name='action' value='run_job_now' title='Run job'
+ src='/bweb/R.png'>Run now
+ </label>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
<TMPL_IF job>
ok=1;
for(var i=0; ok && i < document.form1.job.length; i++) {
<form action='?' method='GET'>
<table id='id<TMPL_VAR NAME=ID>'></table>
<br/>
-<button type='submit' name='action' value='cancel_job'
- class='formulaire'
- title='Cancel job'><img src='/bweb/cancel.png'>
-</button>
-<button type='submit' name='action' value='dsp_cur_job'
- class='formulaire'
- title='View job'><img src='/bweb/zoom.png'>
-</button>
+<label>
+<input type="image" type='submit' name='action' value='cancel_job'
+ title='Cancel job' src='/bweb/cancel.png'>
+</label>
+<label>
+<input type='image' name='action' value='dsp_cur_job'
+ title='View job' src='/bweb/zoom.png'>
+</label>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("JobId",
"Client",
"Job Name",
<div class='bodydiv'>
<form action='?' method='GET'>
<table id='id<TMPL_VAR ID>'></table>
- <button class='formulaire' name='action' value='run_job_mod'>
- Run now<br/>
- <img src='/bweb/R.png' title='Run now'>
- </button>
-<!-- <button class='formulaire' name='action' value='enable_job'>
- Enable<br/>
- <img src='/bweb/inflag1.png' title='Enable'>
- </button>
--->
- <button class='formulaire' name='action' value='disable_job'>
- Disable<br/>
- <img src='/bweb/inflag0.png' title='Disable'>
- </button>
+ <label>
+ <input type="image" name='action' value='run_job_mod'
+ src='/bweb/R.png' title='Run now'> Run now
+ </label>
+ <label>
+ <input type="image" name='action' value='disable_job'
+ src='/bweb/inflag0.png' title='Disable'> Disable
+ </label>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Scheduled",
"Level",
<option id='loc_<TMPL_VAR NAME=location>' value='<TMPL_VAR NAME=location>'><TMPL_VAR NAME=location></option>
</TMPL_LOOP>
</select>
- <button class='formulaire' type='submit' name='action' value='save_location'>
- <img src='/bweb/apply.png'>
- </button>
+ <input type="image" name='action' value='save_location' src='/bweb/apply.png'>
</form>
</div>
-<script language="JavaScript">
+<script type="text/javascript" language="JavaScript">
var header = new Array("Volume Name", "Location", "Select");
</table>
<table>
<td>
- <button class='formulaire' name='action' value='do_update_media'>Apply<br/>
- <img src='/bweb/apply.png'>
- </button>
- <button class='formulaire' name='action' title='Update from pool'
- value='update_from_pool'>Update<br/>
- <img src='/bweb/update.png' title='Update from pool'>
- </button>
+ <label>
+ <input type="image" name='action' value='do_update_media' src='/bweb/apply.png'> Apply
+ </label>
+ <label>
+ <input type="image" name='action' title='Update from pool'
+ value='update_from_pool' src='/bweb/update.png'> Update
+ </label>
</form>
</td>
<td>
<form action='?' method='GET'>
<input type='hidden' name='pool' value='<TMPL_VAR poolname>'>
- <button class='formulaire' name='action' value='media'>View Pool<br/>
- <img src='/bweb/zoom.png'>
- </button>
+ <label>
+ <input type="image" name='action' value='media'
+ src='/bweb/zoom.png'>View Pool
+ </label>
</form>
</td>
</table>
</div>
-<script language='JavaScript'>
+<script type="text/javascript" language='JavaScript'>
var ok=1;
for (var i=0; ok && i < document.form1.pool.length; ++i) {
if (document.form1.pool[i].value == '<TMPL_VAR poolname>') {