--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'> A propos </h1>
+</div>
+<div class='bodydiv'>
+<pre>
+ Bweb Copyright (C) 2006 Eric Bollengier
+ All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+ Bacula Copyright 2000-2006 Kern Sibbald (GPL)
+ nrsTable Copyright 2005 New Roads School (GPL)
+ kaiska css Copyright Willy Morin (BWL)
+</pre>
+</div>
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'><TMPL_UNLESS name>Nouvelle</TMPL_UNLESS> Robotique (Autochanger) </h1>
+</div>
+<div class='bodydiv'>
+ <form name='form1' action="?" method='get'>
+ <table>
+ <tr><td>Nom :</td>
+ <td>
+ <select name='ach' class='formulaire' id='ach'>
+<TMPL_LOOP devices><option value='<TMPL_VAR name>'><TMPL_VAR name></option></TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr><td>Pre-commande :</td>
+ <td> <input class="formulaire" type='text' id='precmd' value='sudo'
+ title='peut être "sudo" ou "ssh storage@storagehost"...' name='precmd'>
+ </td>
+ </tr>
+ <tr><td>commande mtx :</td>
+ <td> <input class="formulaire" type='text' name='mtxcmd' size='32'
+ value='/usr/sbin/mtx' id='mtxcmd'>
+ </td>
+ </tr>
+ <tr><td>Périphérique :</td>
+ <td> <input class="formulaire" type='text' name='device'
+ value='/dev/changer' id='device'>
+ </td>
+ </tr>
+ <tr><td><b>Lecteurs</b></td><td/></tr>
+ <TMPL_LOOP devices>
+ <tr>
+ <td><input class='formulaire' type='checkbox' id='drive_<TMPL_VAR name>'
+ name='drives' value='<TMPL_VAR name>'><TMPL_VAR name>
+ </td>
+ <td>index <input type='text' title='drive index' class='formulaire'
+ id='index_<TMPL_VAR name>' value=''
+ name='index_<TMPL_VAR name>' size='3'>
+ </td>
+ </tr>
+ </TMPL_LOOP>
+ </table>
+ <input type="image" name='action' value='ach_add' src='/bweb/save.png'>
+ </form>
+</div>
+
+<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>') {
+ document.form1.ach[i].selected = true;
+ }
+ }
+ </TMPL_IF>
+ <TMPL_IF mtxcmd>
+ document.getElementById('mtxcmd').value='<TMPL_VAR mtxcmd>';
+ </TMPL_IF>
+ <TMPL_IF precmd>
+ document.getElementById('precmd').value='<TMPL_VAR precmd>';
+ </TMPL_IF>
+ <TMPL_IF device>
+ document.getElementById('device').value='<TMPL_VAR device>';
+ </TMPL_IF>
+ <TMPL_IF drives>
+ <TMPL_LOOP drives>
+ document.getElementById('drive_<TMPL_VAR name>').checked=true;
+ document.getElementById('index_<TMPL_VAR name>').value=<TMPL_VAR index>;
+ </TMPL_LOOP>
+ </TMPL_IF>
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'>
+Robotique : <TMPL_VAR Name> (<TMPL_VAR nb_drive> Lecteurs
+<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>'>
+ <TMPL_IF "Update">
+ <font color='red'> Vous devez lancer la mise à jour des slots, le contenu de la robotique est différent de ce qui est indiqué dans la base de bacula. </font>
+ <br/>
+ </TMPL_IF>
+ <table border='0'>
+ <tr>
+ <td valign='top'>
+ <div class='otherboxtitle'>
+ Tools
+ </div>
+ <div class='otherbox'>
+<label>
+<input type="image" name='action' value='label_barcodes'
+ title='Labélisation des médias, (label barcodes)' src='/bweb/label.png'>Label
+</label>
+<TMPL_IF nb_io>
+<label>
+<input type="image" name='action' value='eject'
+ title='Mettre les médias sélectionnés dans le guichet' src='/bweb/extern.png'>
+Eject
+</label>
+<label>
+<input type="image" name='action' value='clear_io'
+ title='Vider le guichet' src='/bweb/intern.png'>
+Vider le guichet
+</label>
+</TMPL_IF>
+<label>
+<input type="image" name='action' value='update_slots'
+ title='Mettre à jour la base bacula, (update slots)' src='/bweb/update.png'>
+Update
+</label>
+<br/><br/>
+<label>
+<input type="image" name='action' value='ach_load'
+ title='Charger un lecteur' src='/bweb/load.png'>
+Mount
+</label>
+<label>
+<input type="image" name='action' value='ach_unload'
+ title='Décharger un lecteur' src='/bweb/unload.png'>
+Umount
+</label>
+
+ </div>
+ <td width='200'/>
+ <td>
+ <b> Lecteurs : </b><br/>
+ <table id='id_drive'></table> <br/>
+ </td>
+ </tr>
+ </table>
+ <b> Contenu : </b><br/>
+ <table id='id_ach'></table>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Slot réel", "Slot", "Nom de volume","Taille","Statut",
+ "Type","Pool","Dernière écriture",
+ "Expiration", "Sélection");
+
+var data = new Array();
+var chkbox;
+
+<TMPL_LOOP Slots>
+chkbox = document.createElement('INPUT');
+chkbox.type = 'checkbox';
+chkbox.name = 'slot';
+chkbox.value = '<TMPL_VAR realslot>';
+
+data.push( new Array(
+"<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
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id_ach",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+// page_nav: true,
+// rows_per_page: rows_per_page,
+// disable_sorting: new Array(5,6)
+ padding: 3
+}
+);
+
+var header = new Array("Index", "Nom du lecteur", "Nom de volume", "Sélection");
+
+var data = new Array();
+var chkbox;
+
+<TMPL_LOOP Drives>
+chkbox = document.createElement('INPUT');
+chkbox.type = 'checkbox';
+chkbox.name = 'drive';
+chkbox.value = '<TMPL_VAR index>';
+
+data.push( new Array(
+"<TMPL_VAR index>",
+"<TMPL_VAR name>",
+"<TMPL_VAR load>",
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id_drive",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+// page_nav: true,
+// rows_per_page: rows_per_page,
+// disable_sorting: new Array(5,6),
+ padding: 3
+}
+);
+
+</script>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+<head>
+<title>Bweb - Interface Web de Bacula</title>
+<link rel="SHORTCUT ICON" href="/bweb/favicon.ico">
+<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>
+
+<script type="text/javascript" language="JavaScript">
+if (navigator.appName == 'Konqueror') {
+ alert("Désolé, bweb fonctionne seulement avec mozilla.");
+}
+</script>
+
+<ul id="menu">
+ <li><a href="?">Accueil</a> </li>
+ <li><a href="?action=client">Clients</a></li>
+ <li><a href="?action=run_job">Jobs</a>
+ <ul>
+ <li><a href="?action=run_job">Jobs définis</a>
+ <li><a href="?action=job">Historique</a> </li>
+ <li><a href="?action=running">Jobs en cours</a>
+ <li><a href="?action=next_job">Prochains Jobs</a> </li>
+ <li><a href="?action=restore" title="Lancer brestore">Restaure</a> </li>
+ </ul>
+ </li>
+ <li style="padding: 0.25em 2em;">Medias
+ <ul>
+ <li><a href="?action=pool">Pools</a> </li>
+ <li><a href="?action=location">Localisations</a> </li>
+ <li><a href="?action=media">Tous les Medias</a><hr></li>
+ <li><a href="?action=extern_media">Externaliser</a> </li>
+ <li><a href="?action=intern_media">Internaliser</a> </li>
+ </ul>
+ </li>
+<TMPL_IF achs>
+ <li style="padding: 0.25em 2em;">Robotique
+ <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"> Statistiques </a></li>
+ <li> <a href="?action=view_conf"> Configuration </a> </li>
+ <li> <a href="?action=about"> A propos </a> </li>
+ <li style="padding: 0.25em 2em;float: right;"> Logged as <TMPL_VAR NAME=loginname> </li>
+ <li style="float: right;white-space: nowrap;">
+<input type="image" class="button" title="chercher un media" onclick="search_media();" src="/bweb/tape.png"><input type="image" title="chercher un client" onclick="search_client();" src="/bweb/client.png"> <input class='formulaire' style="margin: 0 2px 0 2px; padding: 0 0 0 0;" id='searchbox' type='text' size='8' value="rechercher..." onclick="this.value='';" title="chercher un media ou un 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;">
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'>
+ Déplacer des médias
+ </h1>
+ </div>
+ <div class='bodydiv'>
+
+<form action="?" method='GET'>
+<table>
+<tr>
+<td><b>To: </b></td><td><input class='formulaire' name='email' value='<TMPL_VAR email>'></td>
+</tr><tr>
+<td><b>Subject: </b></td><td><input class='formulaire' name='subject' value='[BACULA] Deplacement des medias vers <TMPL_VAR newlocation>' size='80'></td>
+</tr><tr>
+<td></td>
+<td>
+<textarea name='content' class='formulaire' cols='80' rows='32'>
+Bonjour,
+
+Pouvez vous déplacer ces médias vers <TMPL_VAR newlocation> ?
+Média :
+<TMPL_LOOP Medias>
+ - <TMPL_VAR VolumeName> (<TMPL_VAR location>)
+</TMPL_LOOP>
+
+Quand cela sera terminé, pouvez vous mettre à jour la localisation ?
+(Vous pouvez utiliser ce lien : <TMPL_VAR url>).
+
+Merci
+</textarea>
+</td></tr></table>
+<input class='formulaire' type='submit' name='action' value='move_email'>
+</form>
+<br>
+<a href="<TMPL_VAR url>"><img alt='update now' src='/bweb/update.png'>Mettre à jour maintenant</a>
+</div>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'>
+ Job <TMPL_VAR JobName> en cours sur <TMPL_VAR Client>
+ </h1>
+ </div>
+ <div class='bodydiv'>
+
+<table>
+ <tr>
+ <td> <b> Nom du job : </b> <td> <td> <TMPL_VAR jobname> (<TMPL_VAR jobid>) <td>
+ </tr>
+ <tr>
+ <td> <b> Fichier en cours : </b> <td> <td> <TMPL_VAR "processing file"> </td>
+ </tr>
+ <tr>
+ <td> <b> Vitesse : </b> <td> <td> <TMPL_VAR "bytes/sec"> B/s</td>
+ </tr>
+ <tr>
+ <td> <b> Fichiers vus : </b> <td> <td> <TMPL_VAR "files examined"></td>
+ </tr>
+ <tr>
+ <td> <b> Taille : </b> <td> <td> <TMPL_VAR bytes></td>
+ </tr>
+</table>
+<form name='form1' action='?' method='GET'>
+<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>'>
+<input type="image" name='action' value='cancel_job'
+ onclick="return confirm('Vous voulez annuler ce job ?')"
+ title='Annuler ce job' src='/bweb/cancel.png'>
+</form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+ bweb_add_refresh();
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Clients</h1>
+ </div>
+ <div class='bodydiv'>
+<form action='?' method='GET'>
+ <table id='id<TMPL_VAR NAME=ID>'></table>
+ <div class="otherboxtitle">
+ Actions
+ </div>
+ <div class="otherbox">
+<!-- <h1>Actions</h1> -->
+ <label>
+ <input type="image" name='action' value='job' title='Voir l'historique' src='/bweb/zoom.png'>Historique</label>
+ <label>
+ <input type="image" name='action' value='dsp_cur_job' title='Voir les jobs courants' src='/bweb/zoom.png'>Jobs courants</label>
+ <label>
+ <input type="image" name='action' value='client_status' title='Statut' src='/bweb/zoom.png'>Statut</label>
+ <label>
+ <input type="image" name='action' value='client_stats' title='Statistiques' src='/bweb/chart.png'>Statistiques</h1></label>
+ </label>
+ </div>
+
+</form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+var header = new Array("Nom", "Sélection", "Description", "Purge automatique", "Rétention des fichiers", "Rétention des jobs");
+
+var data = new Array();
+var chkbox ;
+
+<TMPL_LOOP NAME=Clients>
+chkbox = document.createElement('INPUT');
+chkbox.type = 'checkbox';
+chkbox.name = 'client';
+chkbox.value = '<TMPL_VAR NAME=Name>';
+
+data.push(
+ new Array( "<TMPL_VAR NAME=Name>",
+ chkbox,
+ "<TMPL_VAR NAME=Uname>",
+ "<TMPL_VAR NAME=AutoPrune>",
+ human_sec(<TMPL_VAR NAME=FileRetention>),
+ human_sec(<TMPL_VAR NAME=JobRetention>)
+ )
+) ;
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR NAME=ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ rows_per_page: rows_per_page,
+ disable_sorting: new Array(1)
+}
+);
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> <TMPL_VAR title> : <TMPL_VAR name></h1>
+ </div>
+ <div class='bodydiv'>
+ <pre id='log' style='font-size: 10px'>
+<TMPL_VAR content>
+ </pre>
+ </div>
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'> Configuration </h1>
+</div>
+<div class='bodydiv'>
+ <form action="?" method='post'>
+ <table>
+ <tr> <td><b>Connexion SQL</b></td> <td/></tr>
+
+ <tr><td>DBI :</td>
+ <td>
+ <input class="formulaire" type='text' value='<TMPL_VAR NAME=dbi>' size='64' name='dbi'>
+ </td>
+ </tr>
+ <tr><td>user :</td>
+ <td> <input class="formulaire" type='text' value='<TMPL_VAR NAME=user>' name='user'>
+ </td>
+ </tr>
+ <tr><td>password :</td>
+ <td> <input class="formulaire" type='text' value='<TMPL_VAR NAME=password>' name='password'>
+ </td></tr>
+
+ <tr> <td><b>Options Générales</b></td> <td/></tr>
+
+ <tr><td>email_media :</td>
+ <td> <input class="formulaire" type='text' value='<TMPL_VAR NAME=email_media>' name='email_media'>
+ </td></tr>
+ </td></tr>
+
+ <tr> <td><b>Configuration Bweb</b></td> <td/></tr>
+
+ <tr><td>graph_font :</td>
+ <td> <input class="formulaire" title="/chemin/vers/une/font.ttf" type='text' value='<TMPL_VAR NAME=graph_font>' size='64' name='graph_font'>
+ </td></tr>
+ <tr><td>template_dir :</td>
+ <td> <input class="formulaire" title="/chemin/vers/votre/template_dir" type='text' value='<TMPL_VAR NAME=template_dir>' size='64' name='template_dir'>
+ </td></tr>
+ <tr><td>bconsole :</td>
+ <td> <input class="formulaire" title="/chemin/vers/bconsole -n -c /chemin/vers/bconsole.conf" type='text' value='<TMPL_VAR NAME=bconsole>' size='64' name='bconsole'>
+ </td></tr>
+ <tr><td>debug :</td>
+ <td> <input class="formulaire" type='checkbox' name='debug'>
+ </td></tr>
+ </table>
+ <input type="image" name='action' value='apply_conf' src='/bweb/save.png'>
+ </form>
+</div>
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'> Configuration </h1>
+</div>
+<div class='bodydiv'>
+ <table>
+ <tr> <td><b>Connexion SQL</b></td> <td/></tr>
+ <tr><td>DBI :</td> <td> <TMPL_VAR dbi> </td></tr>
+ <tr><td>user :</td> <td> <TMPL_VAR user> </td></tr>
+ <tr><td>password :</td> <td> <TMPL_VAR password> </td></tr>
+ <tr> <td><b>Options Générales</b></td> <td/></tr>
+ <tr><td>email_media :</td> <td> <TMPL_VAR email_media> </td></tr>
+ <tr> <td><b>Configuration Bweb</b></td> <td/></tr>
+ <tr><td title="/chemin/vers/votre/template_dir">template_dir :</td> <td> <TMPL_VAR template_dir> </td></tr>
+ <tr><td title="/chemin/vers/une/font.ttf">graph_font :</td> <td> <TMPL_VAR graph_font> </td></tr>
+ <tr><td title="/chemin/vers/bconsole -n -c /chemin/vers/bconsole.conf">bconsole :</td> <td> <TMPL_VAR bconsole> </td></tr>
+ <tr><td>debug :</td> <td> <TMPL_VAR debug> </td></tr>
+ <TMPL_IF achs>
+ <tr> <td><b>Robotique (Autochanger)</b></td> <td/></tr>
+ <tr>
+ <td>
+ <form action='?' method='GET'>
+ <table border='0'>
+ <TMPL_LOOP achs>
+ <tr>
+ <td>
+<label>
+ <input type='radio' name='ach' value='<TMPL_VAR name>'><TMPL_VAR name>
+</label>
+ </td>
+ </tr>
+ </TMPL_LOOP>
+ </table>
+ <td>
+
+ <input type="image" name="action" value="ach_edit" title="modifier" src='/bweb/edit.png'>
+ <input type="image" name='action' value='ach_del' title='supprimer' src='/bweb/remove.png'>
+ <input type='image' name='action' value='ach_view' title='voir' src='/bweb/zoom.png'>
+ </form>
+ </td>
+ </tr>
+ </TMPL_IF achs>
+ <tr>
+ <td><hr></td><td></td>
+ </tr>
+ </table>
+
+ <form action='?' method='GET'>
+ <label>
+ <input name='action' value='edit_conf' type="image" title='Modifier' src='/bweb/edit.png'> Modifier
+ </label>
+ <label>
+ <input name='action' value='ach_add' type="image" title='Ajouter une robotique' src='/bweb/add.png'> Ajouter une robotique
+ </label>
+ </form>
+
+ <TMPL_IF error>
+ info : <TMPL_VAR error> </br>
+ </TMPL_IF>
+</div>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Historique de <TMPL_VAR clientname> (<TMPL_VAR Filter>)
+ </h1>
+ </div>
+ <div class='bodydiv'>
+
+ <table id='id<TMPL_VAR ID>'></table>
+
+<a href="bgraph.pl?client=<TMPL_VAR clientname>;action=job_size;status=T">
+ <img src="/bweb/chart.png" alt="taille des sauvegardes" title="évolution de la taille des sauvegardes"/>
+ </a>
+<a href="bgraph.pl?client=<TMPL_VAR clientname>;action=job_duration;status=T">
+ <img src="/bweb/chart.png" alt="durée des sauvegardes" title="évolution de la durée des sauvegardes"/>
+ </a>
+<a href="bgraph.pl?client=<TMPL_VAR clientname>;action=job_rate;status=T">
+ <img src="/bweb/chart.png" alt="vitesse des sauvegardes" title="évolution de la vitesse des sauvegardes"/>
+ </a>
+ </div>
+
+
+<script type="text/javascript" language="JavaScript">
+var header = new Array("JobId", "Nom du Job", "File Set", "Niveau", "Début",
+ "Nb fichiers", "Taille", "Erreurs");
+
+var data = new Array();
+
+<TMPL_LOOP Jobs>
+data.push( new Array(
+"<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 ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: true,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ rows_per_page: rows_per_page,
+ disable_sorting: new Array(5,6)
+}
+);
+
+// get newest job first
+nrsTables['id<TMPL_VAR ID>'].fieldSort(0);
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Client : <TMPL_VAR NAME=clientname> (<TMPL_VAR NAME=label>)</h1>
+ </div>
+ <div class='bodydiv'>
+<form action='?'
+ <table id='id<TMPL_VAR NAME=ID>'></table>
+ <img src="bgraph.pl?client=<TMPL_VAR NAME=clientname>;graph=job_duration;age=2592000;width=420;height=200" alt='Données insufisantes' >
+ <img src="bgraph.pl?client=<TMPL_VAR NAME=clientname>;graph=job_rate;age=2592000;width=420;height=200" alt='Données insufisantes'>
+ <img src="bgraph.pl?client=<TMPL_VAR NAME=clientname>;graph=job_size;age=2592000;width=420;height=200" alt='Données insufisantes'>
+<!-- <div class="otherboxtitle">
+ Actions
+ </div>
+ <div class="otherbox">
+ <h1>Actions</h1>
+ <input type="image" name='action' value='job' title="Voir l'historique"
+ src='/bweb/zoom.png'>
+ <input type="image" name='action' value='dsp_cur_job' title='Voir les job en cours' src='/bweb/zoom.png'>
+ <input type="image" name='action' value='client_stat' title='Statistiques' src='/bweb/zoom.png'>
+ </div>
+-->
+</form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+var header = new Array("Nom", "Nb Jobs", "Taille", "Nb Fichiers", "Nb Erreurs");
+
+var data = new Array();
+
+data.push(
+ new Array( "<TMPL_VAR NAME=clientname>",
+ "<TMPL_VAR NAME=nb_jobs>",
+ human_size(<TMPL_VAR NAME=nb_bytes>),
+ "<TMPL_VAR NAME=nb_files>",
+ "<TMPL_VAR NAME=nb_err>"
+ )
+) ;
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR NAME=ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ rows_per_page: rows_per_page,
+// disable_sorting: new Array(1)
+}
+);
+</script>
--- /dev/null
+<br/>
+<div class="otherboxtitle">
+ Filtre
+</div>
+<div class="otherbox">
+<form name='form1' action='?' method='GET'>
+<table border='0'>
+<tr>
+ <td valign='top'>
+ <h2>Niveau</h2>
+ <select name='level' class='formulaire'>
+ <option id='level_Any' value='Any'>Tous</option>
+ <option id='level_F' value='F'>Full</option>
+ <option id='level_D' value='D'>Différentielle</option>
+ <option id='level_I' value='I'>Incrémentale</option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td valign='top'>
+ <h2>Statut</h2>
+ <select name='status' class='formulaire'>
+ <option id='status_Any' value='Any'>Tous</option>
+ <option id='status_T' value='T'>Ok</option>
+ <option id='status_f' value='f'>Erreur</option>
+ <option id='status_A' value='A'>Annulé</option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td valign='top'>
+ <h2>Période</h2>
+ <select name='age' class='formulaire'>
+ <option id='age_604800' value='604800'>Cette semaine</option>
+ <option id='age_2678400' value='2678400'>30 derniers jours</option>
+ <option id='age_15552000' value='15552000'>6 derniers mois</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td valign='bottom'>
+ <h2>Nombre d'élément</h2>
+ <input type='text' name='limit' value='<TMPL_VAR NAME=limit>'
+ class='formulaire' size='4'>
+ </td>
+</tr>
+<tr>
+ <td valign='top'>
+ <h2>Type</h2>
+ <select name='jobtype' class='formulaire'>
+ <option id='jobtype_any' value='all type'>Tous</option>
+ <option id='jobtype_B' value='B'>Backup</option>
+ <option id='jobtype_R' value='R'>Restauration</option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td valign='top'>
+ <h2>Clients</h2>
+ <select name='client' size='15' class='formulaire' multiple>
+<TMPL_LOOP NAME=db_clients>
+ <option id='client_<TMPL_VAR clientname>'><TMPL_VAR clientname></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+</tr>
+<!--
+<tr>
+ <td valign='top'>
+ <h2>File Set</h2>
+ <select name='fileset' size='15' class='formulaire' multiple>
+<TMPL_LOOP NAME=db_filesets>
+ <option id='client_<TMPL_VAR fileset>'><TMPL_VAR NAME=fileset></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+</tr>
+-->
+</table>
+ <input type="image" name='action' value='job' src='/bweb/update.png'>
+
+</form>
+</div>
+<script type="text/javascript" language="JavaScript">
+
+ <TMPL_LOOP qclients>
+ document.getElementById('client_' + <TMPL_VAR name>).selected = true;
+ </TMPL_LOOP>
+
+ <TMPL_IF status>
+ document.getElementById('status_<TMPL_VAR status>').selected=true;
+ </TMPL_IF>
+
+ <TMPL_IF level>
+ document.getElementById('level_<TMPL_VAR level>').selected=true;
+ </TMPL_IF>
+
+ <TMPL_IF age>
+ document.getElementById('age_<TMPL_VAR age>').selected=true;
+ </TMPL_IF>
+
+ <TMPL_IF jobtype>
+ document.getElementById('jobtype_<TMPL_VAR jobtype>').selected=true;
+ </TMPL_IF>
+
+ <TMPL_LOOP qfilesets>
+ document.getElementById('fileset_' + <TMPL_VAR name>).selected = true;
+ </TMPL_LOOP>
+
+</script>
+
--- /dev/null
+ <div class='titlediv'>
+ <h1 class='newstitle'> Historique des Jobs (<TMPL_VAR Filter>)</h1>
+ </div>
+ <div class='bodydiv'>
+ <table id='id<TMPL_VAR ID>'></table>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+<TMPL_IF status>
+document.getElementById('status_<TMPL_VAR status>').checked = true;
+</TMPL_IF>
+
+
+
+var header = new Array("JobId",
+ "Client",
+ "Nom du Job",
+ "FileSet",
+// "Pool",
+ "Niveau",
+ "Début",
+ "Durée",
+ "Nb Fichier",
+ "Taille",
+ "Erreurs",
+ "Statut");
+
+var data = new Array();
+
+<TMPL_LOOP Jobs>
+a = document.createElement('A');
+a.href='?action=job_zoom;jobid=<TMPL_VAR JobId>';
+
+img = document.createElement("IMG");
+img.src="/bweb/<TMPL_VAR JobStatus>.png";
+img.title=jobstatus['<TMPL_VAR JobStatus>'];
+
+a.appendChild(img);
+
+data.push( new Array(
+"<TMPL_VAR JobId>",
+"<TMPL_VAR Client>",
+"<TMPL_VAR JobName>",
+"<TMPL_VAR FileSet>",
+//"<TMPL_VAR Pool>",
+"<TMPL_VAR Level>",
+"<TMPL_VAR StartTime>",
+"<TMPL_VAR Duration>",
+"<TMPL_VAR JobFiles>",
+human_size(<TMPL_VAR JobBytes>),
+"<TMPL_VAR joberrors">",
+a
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: true,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ rows_per_page: rows_per_page,
+// disable_sorting: new Array(6)
+ padding: 3
+}
+);
+
+// get newest backup first
+nrsTables['id<TMPL_VAR ID>'].fieldSort(0);
+</script>
--- /dev/null
+ <div class='titlediv'>
+ <h1 class='newstitle'>Information sur un job</h1>
+ </div>
+ <div class="bodydiv">
+ <table id='id0'></table>
+ <table><td>
+ <form action='?'>
+ <input type='hidden' name='jobid' value='<TMPL_VAR jobid>'>
+ <label>
+ <input type="image" name='action' value='delete' title='Supprimer ce job'
+ onclick="return confirm('Voulez vous vraiment supprimer ce job du catalogue ?');"
+ 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>
+ <label>
+ <input type="image" name='action' value='media' title='Voir les médias associés'
+ src='/bweb/zoom.png'>Voir les médias
+ </label>
+ </form>
+ </td>
+ <td>
+ <form action='?'>
+ <input type='hidden' name='client' value='<TMPL_VAR Client>'>
+ <label>
+ <input type="image" name='action' value='job' title='Voir les jobs de <TMPL_VAR Client>' src='/bweb/zoom.png'>Voir les jobs
+ </label>
+ </form>
+ </td>
+ <td>
+ <form action='?'>
+ <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>'>
+ <label>
+ <input type="image" name='action' value='graph' title='Voir les tendances'
+ src='/bweb/chart.png'> Voir les stats
+ </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'> Voir le FileSet
+ </label>
+ </form>
+ </td>
+ </table>
+</div>
+
+<script type="text/javascript" language='JavaScript'>
+var header = new Array("JobId",
+ "Client",
+ "Nom du Job",
+ "FileSet",
+ "Niveau",
+ "Début",
+ "Durée",
+ "Fichiers",
+ "Taille",
+ "Pool",
+ "Volumes utilisés",
+ "Statut");
+
+var data = new Array();
+
+img = document.createElement("IMG");
+img.src="/bweb/<TMPL_VAR JobStatus>.png";
+img.title=jobstatus['<TMPL_VAR JobStatus>'];
+
+data.push( new Array(
+"<TMPL_VAR JobId>",
+"<TMPL_VAR Client>",
+"<TMPL_VAR JobName>",
+"<TMPL_VAR FileSet>",
+"<TMPL_VAR Level>",
+"<TMPL_VAR StartTime>",
+"<TMPL_VAR duration>",
+"<TMPL_VAR JobFiles>",
+human_size(<TMPL_VAR JobBytes>),
+"<TMPL_VAR poolname>",
+"<TMPL_LOOP volumes><TMPL_VAR VolumeName>\n</TMPL_LOOP>",
+img
+ )
+);
+
+nrsTable.setup(
+{
+ table_name: "id0",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: true,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ rows_per_page: rows_per_page,
+// disable_sorting: new Array(6)
+ padding: 3
+}
+);
+
+</script>
\ No newline at end of file
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'>Localisation</h1>
+ </div>
+ <div class="bodydiv">
+ <form action='?' method='get'>
+ <table id='id<TMPL_VAR ID>'></table>
+ <input type="image" name='action' value='location_add' title='Ajouter' src='/bweb/add.png'>
+ <input type="image" name='action' value='location_del' title='Supprimer' src='/bweb/remove.png'>
+ <input type="image" name='action' value='location_edit' title='Modifier' src='/bweb/edit.png'>
+
+ <input type="image" name='action' value='media' title='Voir les médias'
+ src='/bweb/zoom.png'>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Nom","Enabled", "Coût", "Nb de volumes", "Sélection");
+
+var data = new Array();
+var chkbox;
+
+var img;
+
+<TMPL_LOOP Locations>
+img = document.createElement('IMG');
+img.src = '/bweb/inflag<TMPL_VAR enabled>.png';
+
+chkbox = document.createElement('INPUT');
+chkbox.type = 'radio';
+chkbox.name = 'location';
+chkbox.value = '<TMPL_VAR Location>';
+
+data.push( new Array(
+"<TMPL_VAR Location>",
+img,
+"<TMPL_VAR Cost>",
+"<TMPL_VAR name=volnum>",
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ padding: 3,
+// disable_sorting: new Array(5,6),
+ rows_per_page: rows_per_page
+}
+);
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Log : <TMPL_VAR name> sur <TMPL_VAR client> (<TMPL_VAR jobid>)</h1>
+ </div>
+ <div class='bodydiv'>
+ <pre id='log'>
+<TMPL_VAR lines>
+ </pre>
+ </div>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'>
+ Médias
+ </h1>
+ </div>
+ <div class='bodydiv'>
+
+<TMPL_IF Pool>
+<h2>
+Pool : <a href="?action=pool;pool=<TMPL_VAR Pool>">
+ <TMPL_VAR Pool>
+ </a>
+</h2>
+</TMPL_IF>
+<TMPL_IF Location>
+<h2>
+Localisation : <TMPL_VAR location>
+</h2>
+</TMPL_IF>
+
+ <form action='?action=test' method='get'>
+ <table id='id_pool_<TMPL_VAR ID>'></table>
+ <input type="image" name='action' value='extern' title='Externaliser' src='/bweb/extern.png' onclick='return confirm("Voulez vous vraiment éjecter les médias sélectionnés ?");'>
+ <input type="image" name='action' value='intern' title='Internaliser' src='/bweb/intern.png'>
+ <input type="image" name='action' value='update_media' title='Mettre à jour' src='/bweb/edit.png'>
+ <input type="image" name='action' value='media_zoom' title='Informations' src='/bweb/zoom.png'>
+<!--
+ <input type="image" name='action' value='purge' title='Purger' src='/bweb/purge.png'>
+-->
+ <input type="image" name='action' value='prune' title='Prune' src='/bweb/prune.png'>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Nom du volume","En ligne","Taille", "Utilisation", "Statut",
+ "Pool", "Type",
+ "Dernière écriture", "Expiration", "Sélection");
+
+var data = new Array();
+var img;
+var chkbox;
+var d;
+
+<TMPL_LOOP Medias>
+d = percent_usage(<TMPL_VAR volusage>);
+
+img = document.createElement('IMG');
+img.src = '/bweb/inflag<TMPL_VAR online>.png';
+
+chkbox = document.createElement('INPUT');
+chkbox.type = 'checkbox';
+chkbox.name = 'media';
+chkbox.value = '<TMPL_VAR volumename>';
+
+data.push( new Array(
+"<TMPL_VAR volumename>",
+img,
+human_size(<TMPL_VAR volbytes>),
+d,
+"<TMPL_VAR volstatus>",
+"<TMPL_VAR poolname>",
+"<TMPL_VAR mediatype>",
+"<TMPL_VAR lastwritten>",
+"<TMPL_VAR expire>",
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id_pool_<TMPL_VAR ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+ even_cell_color: even_cell_color,
+ 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(1,8)
+}
+);
+</script>
--- /dev/null
+<table>
+<td valign='top'>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Media : <TMPL_VAR volumename></h1>
+ </div>
+ <div class='bodydiv'>
+ <b> Informations </b><br/>
+ <table id='id_info_<TMPL_VAR volumename>'></table>
+ <b> Statistiques </b><br/>
+ <table id='id_media_<TMPL_VAR volumename>'></table>
+ <b> Contenu </b></br>
+ <table id='id_jobs_<TMPL_VAR volumename>'></table>
+ <b> Actions </b></br>
+ <form action='?' method='get'>
+ <input type='hidden' name='media' value='<TMPL_VAR volumename>'>
+<TMPL_IF online>
+ <input type="image" name='action' value='extern' onclick='return confirm("Voulez vous vraiment éjecter ce média ?");' title='Externaliser' src='/bweb/extern.png'>
+<TMPL_ELSE>
+ <input type="image" name='action' value='intern' title='Internaliser' src='/bweb/intern.png'>
+</TMPL_IF>
+ <input type="image" name='action' value='update_media' title='Mettre à jour' src='/bweb/edit.png'>
+ <input type="image" name='action' value='purge' title='Purger' src='/bweb/purge.png' onclick="return confirm('Vous voulez vraiment purger ce volume ?')">
+ <input type="image" name='action' value='prune' title='Prune' src='/bweb/prune.png'>
+<TMPL_IF Locationlog>
+ <a href='#' onclick='document.getElementById("locationlog").style.visibility="visible";'><img title='Voir les déplacements' src='/bweb/zoom.png'></a>
+</TMPL_IF>
+ </form>
+ </div>
+</td>
+<td valign='top'style="visibility:hidden;" id='locationlog'>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Log sur les déplacements </h1>
+ </div>
+ <div class='bodydiv'>
+<pre>
+ <TMPL_VAR LocationLog>
+</pre>
+ </div>
+</td>
+</table>
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Pool","En ligne","Localisation","Statut", "Taille", "Expiration",
+ "Rétention","Temps maxi d'utilisation", "Nb de job maxi" );
+
+var data = new Array();
+var img;
+
+img = document.createElement('IMG');
+img.src = '/bweb/inflag<TMPL_VAR online>.png';
+
+data.push( new Array(
+"<TMPL_VAR poolname>",
+img,
+"<TMPL_VAR location>",
+"<TMPL_VAR volstatus>",
+human_size(<TMPL_VAR nb_bytes>),
+"<TMPL_VAR expire>",
+human_sec(<TMPL_VAR volretention>),
+human_sec(<TMPL_VAR voluseduration>),
+"<TMPL_VAR maxvoljobs>"
+ )
+);
+
+nrsTable.setup(
+{
+ table_name: "id_info_<TMPL_VAR volumename>",
+ table_header: header,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+ table_data: data,
+ header_color: header_color,
+ padding: 3,
+ disable_sorting: new Array(1)
+}
+);
+
+var header = new Array( "Nombre de montage", "Temps de lecture", "Temps d'écriture", "Erreurs");
+
+var data = new Array();
+data.push( new Array(
+"<TMPL_VAR nb_mounts>",
+human_sec(<TMPL_VAR volreadtime>),
+human_sec(<TMPL_VAR volwritetime>),
+"<TMPL_VAR nb_errors>"
+ )
+);
+
+nrsTable.setup(
+{
+ table_name: "id_media_<TMPL_VAR volumename>",
+ table_header: header,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+ table_data: data,
+ header_color: header_color,
+// disable_sorting: new Array()
+ padding: 3
+}
+);
+
+
+var header = new Array("JobId","Nom","Début","Type",
+ "Niveau", "Nb Fichiers", "Taille", "Statut");
+
+var data = new Array();
+var a;
+var img;
+
+<TMPL_LOOP jobs>
+a = document.createElement('A');
+a.href='?action=job_zoom;jobid=<TMPL_VAR JobId>';
+
+img = document.createElement("IMG");
+img.src="/bweb/<TMPL_VAR status>.png";
+img.title=jobstatus['<TMPL_VAR status>'];
+
+a.appendChild(img);
+
+data.push( new Array(
+"<TMPL_VAR jobid>",
+"<TMPL_VAR name>",
+"<TMPL_VAR starttime>",
+"<TMPL_VAR type>",
+"<TMPL_VAR level>",
+"<TMPL_VAR files>",
+human_size(<TMPL_VAR bytes>),
+a
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id_jobs_<TMPL_VAR volumename>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ padding: 3,
+// disable_sorting: new Array(5,6),
+ rows_per_page: rows_per_page
+}
+);
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'>Pools de média</h1>
+ </div>
+ <div class="bodydiv">
+ <form action='?' method='get'>
+ <table id='id<TMPL_VAR ID>'></table>
+ <input type="image" type='submit' name='action' value='media' title='Afficher le contenu' src='/bweb/zoom.png'>
+ </form>
+ <br/>
+ Tips : Pour modifier les options d'un pool, vous devez éditer la configuration bacula et
+ la recharger (reload). Après vous devez lancer "update pool=mypool" sur la bconsole.
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Nom","Recyclage","Rétention","Durée d'utilisation",
+ "Nb job maxi par média","Nb fichier maxi par média",
+ "Taille maxi d'un média","Nb volumes", "Statut", "Utilisation", "Sélection");
+
+var data = new Array();
+var chkbox;
+var img;
+var img2;
+
+<TMPL_LOOP Pools>
+
+img = percent_display([
+<TMPL_IF nb_recycle>{ name: "Recycle", nb: <TMPL_VAR nb_recycle> },</TMPL_IF>
+<TMPL_IF nb_purged> { name: "Purged", nb: <TMPL_VAR nb_purged> },</TMPL_IF>
+<TMPL_IF nb_append> { name: "Append", nb: <TMPL_VAR nb_append> },</TMPL_IF>
+<TMPL_IF nb_full> { name: "Full", nb: <TMPL_VAR nb_full> }, </TMPL_IF>
+<TMPL_IF nb_disabled> { name: "Disabled", nb: <TMPL_VAR nb_disabled> }, </TMPL_IF>
+<TMPL_IF nb_error> { name: "Error", nb: <TMPL_VAR nb_error> }, </TMPL_IF>
+<TMPL_IF nb_archive>{ name: "Archive", nb: <TMPL_VAR nb_archive> },</TMPL_IF>
+<TMPL_IF nb_used> { name: "Used", nb: <TMPL_VAR nb_used> }, </TMPL_IF>
+<TMPL_IF NAME='nb_read-only'> { name: "Read-Only", nb: <TMPL_VAR NAME='nb_read-only'> }, </TMPL_IF>
+{}
+]);
+
+chkbox = document.createElement('INPUT');
+chkbox.type = 'radio';
+chkbox.value = '<TMPL_VAR Name>';
+chkbox.name = 'pool';
+
+img2 = percent_usage(<TMPL_VAR poolusage>);
+
+data.push( new Array(
+"<TMPL_VAR Name>",
+"<TMPL_VAR Recycle>",
+human_sec(<TMPL_VAR VolRetention>),
+human_sec(<TMPL_VAR VolUseDuration>),
+"<TMPL_VAR MaxVolJobs>",
+"<TMPL_VAR MaxVolFiles>",
+human_size(<TMPL_VAR MaxVolBytes>),
+"<TMPL_VAR VolNum>",
+img,
+img2,
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ padding: 3,
+// disable_sorting: new Array(5,6),
+ rows_per_page: rows_per_page
+}
+);
+</script>
--- /dev/null
+</div>
+<div style="float: right;"></div>
+</div>
+</body>
+</html>
--- /dev/null
+<h1>Une erreur c'est produite :</h1>
+<pre>
+<TMPL_VAR NAME=error>
+</pre>
\ No newline at end of file
--- /dev/null
+ <div class='titlediv'>
+ <h1 class='newstitle'>
+ FileSet <TMPL_VAR fileset>
+ </h1>
+ </div>
+ <div class='bodydiv'>
+
+ <img src="/bweb/add.png" alt="included"> Ce qui est inclu :
+ <pre>
+<TMPL_LOOP I><TMPL_VAR file>
+</TMPL_LOOP></pre>
+
+ <img src="/bweb/remove.png" alt="excluded"> Ce qui est exclu :
+ <pre>
+<TMPL_LOOP E><TMPL_VAR file>
+</TMPL_LOOP></pre>
+
+Tips : Attention, ceci est le FileSet courant, sur une ancienne sauvegarde, il peut avoir changé.
+
+ </div>
--- /dev/null
+
+<script type="text/javascript" language="JavaScript">
+bweb_add_refresh();
+</script>
+<div class='titlediv'>
+ <h1 class="newstitle">
+ Informations
+ </h1>
+</div>
+<div class="bodydiv">
+ <table>
+ <tr><td>Nombre de client :</td> <td> <TMPL_VAR nb_client> </td>
+ <td>Total des sauvegardes :</td> <td> <TMPL_VAR nb_bytes> </td>
+ <td>Nombre de media:</td> <td> <TMPL_VAR nb_media> </td>
+ </tr>
+ <tr><td>Taille de la base :</td> <td> <TMPL_VAR db_size> </td>
+ <td>Nombre de Pool :</td> <td> <TMPL_VAR nb_pool> </td>
+ <td>Nombre de Job :</td> <td> <TMPL_VAR nb_job> </td>
+ </tr>
+ <tr><td>Job en erreur (<TMPL_VAR label>):</td>
+
+<td <TMPL_IF nb_err> class='joberr' </TMPL_IF>>
+ <TMPL_VAR nb_err>
+</td>
+ <td></td> <td></td>
+ <td></td> <td></td>
+ </tr>
+
+ </table>
+</div>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'>Statistiques</h1>
+ </div>
+ <div class='bodydiv'>
+<table border='0'>
+<td>
+<form name='form1' action='?' method='GET'>
+ <div class="otherboxtitle">
+ Options
+ </div>
+ <div class="otherbox">
+<table border='0'>
+<tr>
+ <td valign='top'>
+ <h2>Niveau</h2>
+ <select name='level' class='formulaire'>
+ <option id='level_Any' value='Any'>Tous</option>
+ <option id='level_F' value='F'>Full</option>
+ <option id='level_D' value='D'>Differentielle</option>
+ <option id='level_I' value='I'>Incrémentale</option>
+ </select>
+ </td><td valign='top'>
+ <h2>Statut</h2>
+ <select name='status' class='formulaire'>
+ <option id='status_Any' value='Any'>Tous</option>
+ <option id='status_T' value='T'>Ok</option>
+ <option id='status_f' value='f'>Erreur</option>
+ <option id='status_A' value='A'>Annulé</option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td valign='top'>
+ <h2>Période</h2>
+ <select name='age' class='formulaire'>
+ <option id='age_604800' value='604800'>Cette semaine</option>
+ <option id='age_2678400' value='2678400'>30 derniers jours</option>
+ <option id='age_15552000' value='15552000'>6 derniers mois</option>
+ </select>
+ </td>
+ <td valign='top'>
+ <h2>Taille</h2>
+ Largeur : <input class='formulaire' type='text'
+ name='width' value='<TMPL_VAR width>' size='4'><br/>
+ Hauteur : <input type='text' class='formulaire'
+ name='height' value='<TMPL_VAR height>' size='4'><br/>
+ </td>
+</tr>
+<tr>
+ <td valign='top'>
+ <h2>Clients</h2>
+ <select name='client' size='15' class='formulaire' multiple>
+<TMPL_LOOP NAME=db_clients>
+ <option id='client_<TMPL_VAR clientname>'><TMPL_VAR clientname></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+ <td valign='top'>
+ <h2>Job</h2>
+ <select name='jobname' size='15' class='formulaire' multiple>
+<TMPL_LOOP NAME=db_jobnames>
+ <option><TMPL_VAR NAME=jobname></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td> <h2> Type </h2>
+ <select name='graph' class='formulaire'>
+ <option id='job_size' value='job_size' title="Taille des jobs pour la période">Taille des Job </option>
+ <option id='job_duration' value='job_duration' title="Durée des jobs pour la période">Durée</option>
+ <option id='job_rate' value='job_rate' title="Débit des job pour la période">Débit</option>
+ <option id='job_file' value='job_file' title="Nombre de fichier sauvegardé par job pour la période">Nb fichiers</option>
+ <option id='job_count_phour' value='job_count_phour' title="Number of job per hour for the period">Job per hour</option>
+ <option id='job_count_pday' value='job_count_pday' title="Number of job per day for the period">Job per day</option>
+ <option id='job_avg_phour' value='job_avg_pday' title="Average backup size per day for the period">Job avg B/hour</option>
+ <option id='job_avg_pday' value='job_avg_pday' title="Average backup size per hour for the period">Job avg B/day</option>
+ <option id='job_sum_phour' value='job_sum_phour' title="Job size per hour">Job total B/hour</option>
+ <option id='job_sum_pday' value='job_sum_pday' title="Job size per day">Job total B/day</option>
+ <option id='job_count_hour' value='job_count_hour' title="Number of job per hour for the period">Jobs Count (h)</option>
+ <option id='job_count_day' value='job_count_day' title="Number of job per day for the period">Jobs Count (d)</option>
+ <option id='job_avg_hour' value='job_avg_hour' title="Average backup size per hour for the period">Job avg size (h)</option>
+ <option id='job_avg_day' value='job_avg_day' title="Average backup size per day for the period">Job avg size (d)</option>
+ <option id='job_sum_hour' value='job_sum_hour' title="Job size per hour for the period">Job Bytes (h)</option>
+ <option id='job_sum_day' value='job_sum_day' title="Job size per day for the period">Job Bytes (d)</option>
+ </select>
+ </td>
+ <td valign='bottom'>
+ <h2>Nombre d'élément</h2>
+ <input type='text' name='limit' value='<TMPL_VAR NAME=limit>'
+ class='formulaire' size='4'>
+ </td>
+</tr>
+<tr>
+<td><h2> Type de graphique </h2>
+ <select name='gtype' class='formulaire'>
+ <option id='gtype_bars' value='bars'>Barres</option>
+<!-- <option id='gtype_bars3d' value='bars3d'>Bars3d</option> -->
+ <option id='gtype_lines' value='lines'>Lignes</option>
+ <option id='gtype_linespoints' value='linespoints'>Lignes avec points</option>
+</td>
+<td>
+ <input type='submit' name='action' value='graph' class='formulaire'>
+</td>
+</tr>
+</table>
+ </div>
+
+</form>
+</td>
+<td>
+
+ <div class="otherboxtitle">
+ Graphique
+ </div>
+ <div class="otherbox">
+ <img src='bgraph.pl?<TMPL_VAR NAME=url>' alt="Rien n'a afficher, essayer avec une autre période">
+ </div>
+
+</td>
+</table>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+ <TMPL_LOOP qclients>
+ document.getElementById('client_' + <TMPL_VAR name>).selected = true;
+ </TMPL_LOOP>
+
+ <TMPL_IF status>
+ document.getElementById('status_<TMPL_VAR status>').selected=true;
+ </TMPL_IF>
+
+ <TMPL_IF level>
+ document.getElementById('level_<TMPL_VAR level>').selected=true;
+ </TMPL_IF>
+
+ <TMPL_IF age>
+ document.getElementById('age_<TMPL_VAR age>').selected=true;
+ </TMPL_IF>
+
+<TMPL_IF qfilesets>
+ for (var i=0; i < document.form1.fileset.length; ++i) {
+ <TMPL_LOOP qfilesets>
+ if (document.form1.fileset[i].value == <TMPL_VAR name>) {
+ document.form1.fileset[i].selected = true;
+ }
+ </TMPL_LOOP>
+ }
+</TMPL_IF>
+
+<TMPL_IF qjobnames>
+ for (var i=0; i < document.form1.jobname.length; ++i) {
+ <TMPL_LOOP qjobnames>
+ if (document.form1.jobname[i].value == <TMPL_VAR name>) {
+ document.form1.jobname[i].selected = true;
+ }
+ </TMPL_LOOP>
+ }
+</TMPL_IF>
+
+ <TMPL_IF graph>
+ document.getElementById('<TMPL_VAR graph>').selected=true;
+ </TMPL_IF>
+
+ <TMPL_IF gtype>
+ document.getElementById('gtype_<TMPL_VAR gtype>').selected=true;
+ </TMPL_IF>
+
+</script>
+
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'> Assistant d'externalisation de médias (partie 1/2)</h1>
+</div>
+<div class='bodydiv'>
+Cet outil va sélectionner pour vous les meilleurs cartouches à externaliser.
+Vous devrez choisir parmi la sélection de l'écran suivant.
+
+ <form action="?" method='GET'>
+ <table>
+ <tr><td>Pool :</td>
+ <td><select name='pool' class='formulaire' multiple>
+<TMPL_LOOP NAME=db_pools>
+ <option><TMPL_VAR NAME=name></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr><td>Type de média:</td>
+ <td><select name='mediatype' class='formulaire' multiple>
+<TMPL_LOOP NAME=db_mediatypes>
+ <option><TMPL_VAR NAME=mediatype></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr><td> Localisation : </td>
+ <td><select name='location' class='formulaire'>
+ <TMPL_LOOP NAME=db_locations>
+ <option id='loc_<TMPL_VAR NAME=location>' value='<TMPL_VAR NAME=location>'><TMPL_VAR NAME=location></option>
+ </TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>Nombre de média <br/> à externaliser :</td>
+ <td> <input type='text' name='limit' size='3' class='formulaire'
+ value='10'> </td>
+ </tr>
+ <tr>
+ <td><input type="image" name='action' value='compute_extern_media' title='Suivant' src='/bweb/next.png'>
+ </td><td/>
+ </tr>
+ </table>
+ </form>
+</div>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Assistant d'externalisation de médias (partie 2/2)</h1>
+ </div>
+ <div class='bodydiv'>
+ Maintenant, vous devez vérifier la sélection et éjecter les médias.
+ <form action='?' method='get'>
+ <table id='compute'></table>
+ <table><tr>
+ <td style='align: left;'>
+ <input type="image" onclick='javascript:window.history.go(-2);' title='Précédent' src='/bweb/prev.png'>
+ </td><td style='align: right;'>
+ <input type="image" name='action' value='extern' src='/bweb/extern.png'>
+ </td></tr>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Nom de volume","Statut",
+ "Type de média","Pool","Dernière écriture",
+ "Expiration", "Sélection");
+
+var data = new Array();
+var chkbox;
+
+<TMPL_LOOP NAME=Medias>
+chkbox = document.createElement('INPUT');
+chkbox.type = 'checkbox';
+chkbox.value = '<TMPL_VAR NAME=volumename>';
+chkbox.name = 'media';
+chkbox.checked = 'on';
+
+data.push( new Array(
+"<TMPL_VAR NAME=volumename>",
+"<TMPL_VAR NAME=volstatus>",
+"<TMPL_VAR NAME=mediatype>",
+"<TMPL_VAR NAME=name>",
+"<TMPL_VAR NAME=lastwritten>",
+"<TMPL_VAR NAME=expire>",
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "compute",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ padding: 3,
+// disable_sorting: new Array(5,6)
+ rows_per_page: rows_per_page
+}
+);
+</script>
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'> Assistant d'internalisation de médias (partie 1/2)</h1>
+</div>
+<div class="bodydiv">
+Cet outil va sélectionner pour vous les meilleurs cartouches à internaliser.
+Vous devrez choisir parmi la sélection de l'écran suivant.
+
+ <form action="?" method='GET'>
+ <table>
+ <tr><td>Pool :</td>
+ <td><select name='pool' class='formulaire' multiple>
+<TMPL_LOOP db_pools>
+ <option><TMPL_VAR name></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr><td>Type de média :</td>
+ <td><select name='mediatype' class='formulaire' multiple>
+<TMPL_LOOP db_mediatypes>
+ <option><TMPL_VAR mediatype></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr><td>
+ Localisation :
+ </td><td><select name='location' class='formulaire'>
+ <TMPL_LOOP db_locations>
+ <option value='<TMPL_VAR location>'><TMPL_VAR location></option>
+ </TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>Expiré :</td>
+ <td> <input type='checkbox' name='expired' class='formulaire'
+ checked> </td>
+ </tr>
+ <tr>
+ <td>Nombre de média <br/> à internaliser :</td>
+ <td> <input type='text' name='limit' class='formulaire'
+ size='3' value='10'> </td>
+ </tr>
+ <tr>
+ <td><input type="image" name='action' value='compute_intern_media'
+ title='Suivant' src='/bweb/next.png'>
+ </td><td/>
+ </tr>
+ </table>
+ </form>
+</div>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Assistant d'internalisation de médias (partie 2/2)</h1>
+ </div>
+ <div class='bodydiv'>
+ Maintenant vous devez vérifier la sélection et charger les médias.
+
+ <form action='?' method='get'>
+ <table id='compute'></table>
+ <table><tr>
+ <td style='align: left;'>
+ <input type="image" onclick='javascript:window.history.go(-2);' title='Précédent' src='/bweb/prev.png'>
+ </td><td style='align: right;'>
+ <input type="image" name='action' value='move_media'
+ src='/bweb/intern.png'>
+ </td></tr>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Nom de volume","Statut",
+ "Type de media","Pool","Dernière écriture",
+ "Expiration", "Sélection");
+
+var data = new Array();
+var chkbox;
+
+<TMPL_LOOP NAME=Medias>
+chkbox = document.createElement('INPUT');
+chkbox.type = 'checkbox';
+chkbox.name = 'media';
+chkbox.value= '<TMPL_VAR NAME=volumename>';
+chkbox.checked = 'on';
+
+data.push( new Array(
+"<TMPL_VAR NAME=volumename>",
+"<TMPL_VAR NAME=volstatus>",
+"<TMPL_VAR NAME=mediatype>",
+"<TMPL_VAR NAME=name>",
+"<TMPL_VAR NAME=lastwritten>",
+"<TMPL_VAR NAME=expire>",
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "compute",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ padding: 3,
+// disable_sorting: new Array(5,6)
+ rows_per_page: rows_per_page
+}
+);
+</script>
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'> Ajouter une localisation </h1>
+</div>
+<div class='bodydiv'>
+ <form action="?" method='get'>
+ <table>
+ <tr><td>Localisation :</td>
+ <td>
+ <input class="formulaire" type='text' value='' size='32' name='location'>
+ </td>
+ </tr>
+ <tr><td>Coût :</td>
+ <td> <input class="formulaire" type='text' value='10' name='cost' size='3'>
+ </td>
+ </tr>
+ <tr><td>Enabled :</td>
+ <td> <input class="formulaire" type='checkbox' value='10' name='enabled'>
+ </td>
+ </tr>
+ </table>
+ <input type="image" name='action' value='location_add' title="Sauvegarder"
+ src='/bweb/save.png'>
+ </form>
+
+Tips: Vous devez avoir une localisation par robotique.
+
+</div>
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'> Localisation : <TMPL_VAR Location></h1>
+</div>
+<div class='bodydiv'>
+ <form action="?" method='get'>
+ <input type='hidden' name='location' value='<TMPL_VAR location>'>
+ <table>
+ <tr><td>Localisation :</td>
+ <td>
+ <input class="formulaire" type='text' value='<TMPL_VAR location>' size='32' name='newlocation'>
+ </td>
+ </tr>
+ <tr><td>Coût :</td>
+ <td> <input class="formulaire" type='text' value='<TMPL_VAR cost>' name='cost' size='3'>
+ </td>
+ </tr>
+ <tr><td>Enabled :</td>
+ <td> <input class="formulaire" type='checkbox' name='enabled' <TMPL_IF enabled> checked </TMPL_IF> >
+ </td>
+ </tr>
+ </table>
+ <input type="image" name='action' value='location_save'
+ src='/bweb/save.png'>
+ </form>
+</div>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'>Déplacer un média</h1>
+ </div>
+ <div class="bodydiv">
+ <form action='?' method='get'>
+ <table id='id<TMPL_VAR NAME=ID>'></table>
+ <table border='0'>
+ <tr><td> Nouvelle localisation : </td><td>
+<select name='newlocation' class='formulaire'>
+ <TMPL_LOOP NAME=db_locations>
+ <option value='<TMPL_VAR NAME=location>'><TMPL_VAR NAME=location></option>
+ </TMPL_LOOP>
+</select>
+ </td></tr><tr><td> Statut : </td><td>
+<select name='volstatus' class='formulaire'>
+ <option value=''>Ne pas modifier</option>
+ <option value='Append'>Append</option>
+ <option value='Archive'>Archive</option>
+ <option value='Disabled'>Disabled</option>
+ <option value='Cleaning'>Cleaning</option>
+ <option value='Error'>Error</option>
+ <option value='Full'>Full</option>
+ <option value='Purged'>Purged</option>
+ <option value='Read-Only'>Read-Only</option>
+ <option value='Recycle'>Recycle</option>
+ <option value='Used'>Used</option>
+</select>
+ </td><tr><td> Utilisateur : </td><td>
+<input type='text' name='user' value='<TMPL_VAR loginname>' class='formulaire'>
+ </td></tr>
+ </td></tr><tr><td> Commentaire : </td><td>
+<textarea name="comment" class='formulaire'></textarea>
+ </td></tr>
+ </table>
+ <label>
+ <input type="image" type='submit' name='action' value='change_location' src='/bweb/apply.png'> Déplacer
+ </label>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Nom de volume", "Localisation", "Sélection");
+
+var data = new Array();
+var chkbox;
+
+<TMPL_LOOP NAME=medias>
+chkbox = document.createElement('INPUT');
+chkbox.type = 'checkbox';
+chkbox.value = '<TMPL_VAR name=volumename>';
+chkbox.name = 'media';
+chkbox.checked = 1;
+
+data.push( new Array(
+"<TMPL_VAR NAME=volumename>",
+"<TMPL_VAR NAME=location>",
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR NAME=ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ 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)
+}
+);
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Jobs définis : </h1>
+ </div>
+ <div class='bodydiv'>
+ <form name='form1' action='?' method='GET'>
+ <table border='0'>
+
+ <tr><td>Nom du job : </td><td>
+ <select name='job'>
+ <TMPL_LOOP jobs>
+ <option value='<TMPL_VAR name>'>
+ <TMPL_VAR name>
+ </option>
+ </TMPL_LOOP>
+ </select>
+ </td></tr>
+ </table>
+ <br/>
+ <label>
+ <input type="image" name='action' value='enable_job' title='Activer'
+ src='/bweb/inflag1.png'> Activer
+ </label>
+ <label>
+ <input type="image" name='action' value='disable_job' title='Désactiver'
+ src='/bweb/inflag0.png'> Désactiver
+ </label>
+ <label>
+ <input type="image" name='action' value='run_job_mod' title='Lancer maintenant'
+ src='/bweb/R.png'> Lancer maintenant
+ </label>
+ </form>
+ </div>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Lancer le job : <TMPL_VAR job> sur <TMPL_VAR client></h1>
+ </div>
+ <div class='bodydiv'>
+ <form name='form1' action='?' method='GET'>
+ <table border='0'>
+
+ <tr><td>Nom du job : </td><td>
+ <select name='job'>
+ <TMPL_LOOP jobs>
+ <option value='<TMPL_VAR name>'>
+ <TMPL_VAR name>
+ </option>
+ </TMPL_LOOP>
+ </select>
+ </td></tr><tr><td>Pool : </td><td>
+
+ <select name='pool'>
+ <option value=''></option>
+ <TMPL_LOOP pools>
+ <option value='<TMPL_VAR name>'>
+ <TMPL_VAR name>
+ </option>
+ </TMPL_LOOP>
+ </select>
+ </td></tr><tr><td>Client : </td><td>
+
+ <select name='client'>
+ <TMPL_LOOP clients>
+ <option value='<TMPL_VAR name>'>
+ <TMPL_VAR name>
+ </option>
+ </TMPL_LOOP>
+ </select>
+
+ </td></tr><tr><td>FileSet : </td><td>
+ <select name='fileset'>
+ <TMPL_LOOP filesets>
+ <option value='<TMPL_VAR name>'>
+ <TMPL_VAR name>
+ </option>
+ </TMPL_LOOP>
+ </select>
+
+ </td></tr><tr><td>Storage : </td><td>
+ <select name='storage'>
+ <TMPL_LOOP storages>
+ <option value='<TMPL_VAR name>'>
+ <TMPL_VAR name>
+ </option>
+ </TMPL_LOOP>
+ </select>
+
+ </td></tr><tr><td>Niveau : </td><td>
+ <select name='level'>
+ <option id='level_Incremental' value='Incremental'>Incrémentale</option>
+ <option id='level_Full' value='Full'>Full</option>
+ <option id='level_Differential' value='Differential'>Différentielle</option>
+ </select>
+
+ </td></tr><tr><td>Priorité : </td><td>
+ <input class='formulaire' type='text'
+ size='3' name='priority' value='<TMPL_VAR priority>'>
+
+ </td></tr>
+ </table>
+ <br/>
+ <label>
+ <input type="image" name='action' value='run_job_now' title='Lancer maintenant'
+ src='/bweb/R.png'>Lancer maintenant
+ </label>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+ <TMPL_IF job>
+ ok=1;
+ for(var i=0; ok && i < document.form1.job.length; i++) {
+ if (document.form1.job[i].value == '<TMPL_VAR job>') {
+ document.form1.job[i].selected=true;
+ ok=0;
+ }
+ }
+ </TMPL_IF>
+ <TMPL_IF client>
+ ok=1;
+ for(var i=0; ok && i < document.form1.client.length; i++) {
+ if (document.form1.client[i].value == '<TMPL_VAR client>') {
+ document.form1.client[i].selected=true;
+ ok=0;
+ }
+ }
+ </TMPL_IF>
+ <TMPL_IF pool>
+ ok=1;
+ for(var i=0; ok && i < document.form1.pool.length; i++) {
+ if (document.form1.pool[i].value == '<TMPL_VAR pool>') {
+ document.form1.pool[i].selected=true;
+ ok=0;
+ }
+ }
+ </TMPL_IF>
+ <TMPL_IF storage>
+ ok=1;
+ for(var i=0; ok && i < document.form1.storage.length; i++) {
+ if (document.form1.storage[i].value == '<TMPL_VAR storage>') {
+ document.form1.storage[i].selected=true;
+ ok=0;
+ }
+ }
+ </TMPL_IF>
+ <TMPL_IF level>
+<!-- document.getElementById('level_<TMPL_VAR level>').selected=true; -->
+ </TMPL_IF>
+ <TMPL_IF fileset>
+ ok=1;
+ for(var i=0; ok && i < document.form1.fileset.length; i++) {
+ if (document.form1.fileset[i].value == '<TMPL_VAR fileset>') {
+ document.form1.fileset[i].selected=true;
+ ok=0;
+ }
+ }
+ </TMPL_IF>
+</script>
\ No newline at end of file
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Jobs en cours </h1>
+ </div>
+ <div class='bodydiv'>
+ <form action='?' method='GET'>
+ <table id='id<TMPL_VAR NAME=ID>'></table>
+ <br/>
+<label>
+<input type='image' name='action' value='dsp_cur_job'
+ title='Voir le job' src='/bweb/zoom.png'>
+</label>
+<label>
+<input type="image" type='submit' name='action' value='cancel_job'
+ onclick="return confirm('Vous voulez vraiment annuler ce job ?')"
+ title='Annuler le job' src='/bweb/cancel.png'>
+</label>
+ </form>
+
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+var header = new Array("JobId",
+ "Client",
+ "Nom du Job",
+ "Niveau",
+ "Début",
+ "Durée",
+// "Job Files",
+// "Job Bytes",
+ "Statut",
+ "Sélection"
+ );
+
+var data = new Array();
+var chkbox;
+var img;
+
+<TMPL_LOOP NAME=Jobs>
+a = document.createElement('A');
+a.href='?action=dsp_cur_job;jobid=<TMPL_VAR JobId>';
+
+img = document.createElement("IMG");
+img.src = '/bweb/<TMPL_VAR NAME=JobStatus>.png';
+img.title = jobstatus['<TMPL_VAR NAME=JobStatus>'];
+
+a.appendChild(img);
+
+chkbox = document.createElement('INPUT');
+chkbox.type = 'radio';
+chkbox.name = 'jobid';
+chkbox.value = '<TMPL_VAR NAME=jobid>';
+
+data.push( new Array(
+"<TMPL_VAR NAME=JobId>",
+"<TMPL_VAR NAME=ClientName>",
+"<TMPL_VAR NAME=JobName>",
+joblevel['<TMPL_VAR NAME=Level>'],
+"<TMPL_VAR NAME=StartTime>",
+"<TMPL_VAR NAME=duration>",
+//"<TMPL_VAR NAME=JobFiles>",
+//"<TMPL_VAR NAME=JobBytes>",
+a,
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR NAME=ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: true,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ rows_per_page: rows_per_page,
+// disable_sorting: new Array(6)
+ padding: 3
+}
+);
+
+// get newest backup first
+nrsTables['id<TMPL_VAR NAME=ID>'].fieldSort(0);
+
+bweb_add_refresh();
+
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'> Prochains jobs </h1>
+ </div>
+ <div class='bodydiv'>
+ <form action='?' method='GET'>
+ <table id='id<TMPL_VAR ID>'></table>
+ <label>
+ <input type="image" name='action' value='run_job_mod'
+ src='/bweb/R.png' title='Lancer maintenant'> Lancer maintenant
+ </label>
+ <label>
+ <input type="image" name='action' value='disable_job'
+ src='/bweb/inflag0.png' title='Désactiver'> Désactiver
+ </label>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Quand",
+ "Niveau",
+ "Type",
+ "Priorité",
+ "Nom",
+ "Volume",
+ "Sélection");
+
+var data = new Array();
+var chkbox;
+
+<TMPL_LOOP list>
+chkbox = document.createElement('INPUT');
+chkbox.type = 'radio';
+chkbox.name = 'job';
+chkbox.value = '<TMPL_VAR name>';
+
+data.push( new Array(
+"<TMPL_VAR date>",
+"<TMPL_VAR level>",
+"<TMPL_VAR type>",
+"<TMPL_VAR priority>",
+"<TMPL_VAR name>",
+"<TMPL_VAR volume>",
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: true,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ rows_per_page: rows_per_page,
+// disable_sorting: new Array(6),
+ padding: 3
+}
+);
+</script>
--- /dev/null
+<br/>
+ <div class='titlediv'>
+ <h1 class='newstitle'>Mise à jour de la localisation d'un média</h1>
+ </div>
+ <div class="bodydiv">
+ <form action='?' method='get'>
+ <table id='id<TMPL_VAR NAME=ID>'></table>
+ Nouvelle localisation : <select class='formulaire' name='newlocation'>
+ <TMPL_LOOP NAME=db_locations>
+ <option id='loc_<TMPL_VAR NAME=location>' value='<TMPL_VAR NAME=location>'><TMPL_VAR NAME=location></option>
+ </TMPL_LOOP>
+ </select>
+ <input type="image" name='action' value='save_location' src='/bweb/apply.png'>
+ </form>
+ </div>
+
+<script type="text/javascript" language="JavaScript">
+
+var header = new Array("Nom de volume", "Localisation", "Sélection");
+
+var data = new Array();
+var chkbox;
+
+<TMPL_LOOP NAME=medias>
+chkbox = document.createElement('INPUT');
+chkbox.type = 'checkbox';
+chkbox.value = '<TMPL_VAR name=volumename>';
+chkbox.name = 'media';
+chkbox.checked = 1;
+
+data.push( new Array(
+"<TMPL_VAR NAME=volumename>",
+"<TMPL_VAR NAME=location>",
+chkbox
+ )
+);
+</TMPL_LOOP>
+
+nrsTable.setup(
+{
+ table_name: "id<TMPL_VAR NAME=ID>",
+ table_header: header,
+ table_data: data,
+ up_icon: up_icon,
+ down_icon: down_icon,
+ prev_icon: prev_icon,
+ next_icon: next_icon,
+ rew_icon: rew_icon,
+ fwd_icon: fwd_icon,
+// natural_compare: false,
+ even_cell_color: even_cell_color,
+ odd_cell_color: odd_cell_color,
+ header_color: header_color,
+ page_nav: true,
+ padding: 3,
+// disable_sorting: new Array(5,6)
+ rows_per_page: rows_per_page
+}
+);
+
+<TMPL_IF qnewlocation>
+ document.getElementById('loc_' + <TMPL_VAR qnewlocation>).selected=true;
+</TMPL_IF>
+
+</script>
--- /dev/null
+<br/>
+<div class='titlediv'>
+ <h1 class='newstitle'> Modifier le media <TMPL_VAR volumename></h1>
+</div>
+<div class='bodydiv'>
+ <form name='form1' action="?" method='GET'>
+ <table>
+ <tr><td>Nom du volume :</td>
+ <td><input type='text' name='media' class='formulaire' value='<TMPL_VAR volumename>' title='Modifiez ce champs pour mettre à jour un autre média'>
+ </td>
+ </tr>
+ <tr><td>Pool :</td>
+ <td><select name='pool' class='formulaire'>
+<TMPL_LOOP db_pools>
+ <option value='<TMPL_VAR name>'><TMPL_VAR name></option>
+</TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr><td>Statut :</td>
+ <td><select name='volstatus' class='formulaire'>
+ <option value='Append'>Append</option>
+ <option value='Archive'>Archive</option>
+ <option value='Disabled'>Disabled</option>
+ <option value='Cleaning'>Cleaning</option>
+ <option value='Error'>Error</option>
+ <option value='Full'>Full</option>
+ <option value='Purged'>Purged</option>
+ <option value='Read-Only'>Read-Only</option>
+ <option value='Recycle'>Recycle</option>
+ <option value='Used'>Used</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr><td>Slot :</td>
+ <td>
+ <input class='formulaire' type='text'
+ name='slot' value='<TMPL_VAR slot>'>
+ </td>
+ </tr>
+
+ <tr><td>En ligne :</td>
+ <td>
+ <input class='formulaire' type='checkbox'
+ name='inchanger' <TMPL_IF inchanger>checked</TMPL_IF>>
+ </td>
+ </tr>
+
+ <tr><td> Localisation : </td>
+ <td><select name='location' class='formulaire'>
+ <TMPL_LOOP db_locations>
+ <option value='<TMPL_VAR location>'><TMPL_VAR location></option>
+ </TMPL_LOOP>
+ </select>
+ </td>
+ </tr>
+ <tr><td> Période de rétention : </td>
+ <td>
+ <input class='formulaire' type='text' title='ex: 3 days, 1 month'
+ name='volretention' value='<TMPL_VAR volretention>'>
+ </td>
+ </tr>
+ <tr><td> Durée d'utilisation : </td>
+ <td>
+ <input class='formulaire' type='text' title='ex: 3 days, 1 month'
+ name='voluseduration' value='<TMPL_VAR voluseduration>'>
+ </td>
+ </tr>
+ <tr><td> Nombre de jobs maxi : </td>
+ <td>
+ <input class='formulaire' type='text' title='ex: 10'
+ name='maxvoljobs' value='<TMPL_VAR maxvoljobs>'>
+ </td>
+ </tr>
+ <tr><td> Nombre de fichiers maxi : </td>
+ <td>
+ <input class='formulaire' type='text' title='ex: 10000'
+ name='maxvolfiles' value='<TMPL_VAR maxvolfiles>'>
+ </td>
+ </tr>
+ <tr><td> Taille maxi : </td>
+ <td>
+ <input class='formulaire' type='text' title='ex: 10M, 11G'
+ name='maxvolbytes' value='<TMPL_VAR maxvolbytes>'>
+ </td>
+ </tr>
+ </table>
+<table>
+ <td>
+ <label>
+ <input type="image" name='action' value='do_update_media' src='/bweb/apply.png'> Appliquer
+ </label>
+ <label>
+ <input type="image" name='action' title='Mettre à jour à partir du pool'
+ value='update_from_pool' src='/bweb/update.png'> Mettre à jour
+ </label>
+ </form>
+ </td>
+ <td>
+ <form action='?' method='GET'>
+ <input type='hidden' name='pool' value='<TMPL_VAR poolname>'>
+ <label>
+ <input type="image" name='action' value='media'
+ src='/bweb/zoom.png'>Voir le pool
+ </label>
+ </form>
+ </td>
+</table>
+</div>
+
+<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>') {
+ document.form1.pool[i].selected = true;
+ ok=0;
+ }
+}
+
+ok=1;
+for (var i=0; ok && i < document.form1.location.length; ++i) {
+ if (document.form1.location[i].value == '<TMPL_VAR location>') {
+ document.form1.location[i].selected = true;
+ ok=0;
+ }
+}
+
+ok=1;
+for (var i=0; ok && i < document.form1.volstatus.length; ++i) {
+ if (document.form1.volstatus[i].value == '<TMPL_VAR volstatus>') {
+ document.form1.volstatus[i].selected = true;
+ ok=0;
+ }
+}
+
+</script>
\ No newline at end of file