]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Add Enabled option to update_media, extern/intern
authorEric Bollengier <eric@eb.homelinux.org>
Tue, 30 Oct 2007 20:15:09 +0000 (20:15 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Tue, 30 Oct 2007 20:15:09 +0000 (20:15 +0000)
     Fix typo

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

29 files changed:
gui/bweb/cgi/bweb.pl
gui/bweb/html/bresto.html
gui/bweb/html/bresto.js
gui/bweb/html/bweb.js
gui/bweb/lang/es/tpl/change_location.tpl
gui/bweb/lang/es/tpl/display_media.tpl
gui/bweb/lang/es/tpl/display_media_zoom.tpl
gui/bweb/lang/es/tpl/help_extern_compute.tpl
gui/bweb/lang/es/tpl/help_intern_compute.tpl
gui/bweb/lang/es/tpl/move_media.tpl
gui/bweb/lang/es/tpl/update_location.tpl
gui/bweb/lang/es/tpl/update_media.tpl
gui/bweb/lang/fr/tpl/change_location.tpl
gui/bweb/lang/fr/tpl/display_media.tpl
gui/bweb/lang/fr/tpl/display_media_zoom.tpl
gui/bweb/lang/fr/tpl/help_extern_compute.tpl
gui/bweb/lang/fr/tpl/help_intern_compute.tpl
gui/bweb/lang/fr/tpl/move_media.tpl
gui/bweb/lang/fr/tpl/update_location.tpl
gui/bweb/lang/fr/tpl/update_media.tpl
gui/bweb/lib/Bweb.pm
gui/bweb/tpl/change_location.tpl
gui/bweb/tpl/display_media.tpl
gui/bweb/tpl/display_media_zoom.tpl
gui/bweb/tpl/help_extern_compute.tpl
gui/bweb/tpl/help_intern_compute.tpl
gui/bweb/tpl/move_media.tpl
gui/bweb/tpl/update_location.tpl
gui/bweb/tpl/update_media.tpl

index 4dd5fbbd2ebf8bbfac41640a01efaaf5ff0d8dd7..3b40b7aee58d9db8d331bb1cd1ca732a3cf813d3 100755 (executable)
@@ -122,8 +122,8 @@ if ($action eq 'begin') {           # main display
                         limit => $arg->{limit});
     print "</td></tr></table></div>";
 
-} elsif ($action eq 'medias') {
-    $bweb->display_medias();
+} elsif ($action eq 'allmedia') {
+    $bweb->display_allmedia();
 
 } elsif ($action eq 'eject') {
     my $arg = $bweb->get_form("ach");
@@ -228,7 +228,7 @@ if ($action eq 'begin') {           # main display
        $bweb->update_slots();
     }
     print "</div><div style='float: left;margin-left: 20px;'>";
-    $bweb->move_media();
+    $bweb->move_media('no');   # enabled = no
     print "</div>";
 
 } elsif ($action eq 'move_email') {
@@ -244,10 +244,11 @@ if ($action eq 'begin') {         # main display
     $bweb->display($bweb, 'about.tpl');
 
 } elsif ($action eq 'intern') {
-    $bweb->move_media(); # TODO : remove that
+    $bweb->move_media('yes'); # TODO : remove that
 
 } elsif ($action eq 'move_media') {
-    $bweb->move_media(); 
+    my $a = $bweb->get_form('enabled');
+    $bweb->move_media($a->{enabled}); 
 
 } elsif ($action eq 'save_location') {
     $bweb->save_location();
index 5a5a7b2d7ee4c731bfea1cefed28f04c7c20e910..ecc139b6f6a95229cebc5fb82d44590b03c70991 100644 (file)
     <div id="div-file-selection" ></div>
     <div id="div-tree"           ></div>
 </div>         
+
+<div id="div-resto-dlg" style="visibility:hidden;">
+<div id="div-resto-form" >
+<div id="div-resto-form-bp1"></div> <div id="div-resto-form-bp2"></div> 
+</div>
+</div>
        </body>
 </html>
index eecf8d93c9798a2497f43b77f5667ab0e6714a3d..559850076c0f8d42a49b92fc14e12cc41946506e 100644 (file)
@@ -291,7 +291,6 @@ function ext_init()
         copy:false,
         notifyDrop : function(dd, e, data){
            var r;
-           //TODO: gerer la multi-selection
            if (data.selections) {
              if (data.grid.id == 'div-files') {
                  for(var i=0;i<data.selections.length;i++) {
@@ -500,7 +499,6 @@ function ext_init()
     });
 
     job_combo.on('select', function(e,c) {
-        // TODO: choose between date and jobid here (with a toolbar bp ?)
         Ext.brestore.jobid = c.json[0];
        Ext.brestore.jobdate = c.json[1];
         Ext.brestore.root_path='';
@@ -601,7 +599,123 @@ function ext_init()
             cls: 'x-btn-text-icon bmenu', // icon and text class
             text:'Options',
             menu: menu  // assign menu by instance
-        }
+        },
+       {
+           icon: '/bweb/remove.png', // icons can also be specified inline
+            cls: 'x-btn-icon',
+           text: 'restore',
+           handler: function() { 
+               var dialog = new Ext.LayoutDialog("div-resto-dlg", { 
+//                        modal:true,
+                        width:600,
+                        height:400,
+                        shadow:true,
+                        minWidth:300,
+                        minHeight:300,
+                        proxyDrag: true,
+//                        west: {
+//                             split:true,
+//                             initialSize: 150,
+//                             minSize: 100,
+//                             maxSize: 250,
+//                             titlebar: true,
+//                             collapsible: true,
+//                             animate: true
+//                         },
+                       center: {
+                               autoScroll:true,
+//                             tabPosition: 'top',
+//                             closeOnTab: true,
+//                             alwaysShowTabs: true
+                       }
+                });
+                dialog.addKeyListener(27, dialog.hide, dialog);
+                dialog.addButton('Submit', dialog.hide, dialog);
+                dialog.addButton('Close', dialog.hide, dialog);
+
+    var fs = new Ext.form.Form({
+        labelAlign: 'right',
+        labelWidth: 80
+    });
+
+    fs.fieldset(
+        {legend:'Restore job'},
+        new Ext.form.ComboBox({
+            fieldLabel: 'Replace',
+            hiddenName:'replace',
+            store: new Ext.data.SimpleStore({
+                fields: ['replace'],
+                data : [['always'],['never'],['if newer']]
+           }),
+            displayField:'replace',
+            typeAhead: true,
+            mode: 'local',
+            triggerAction: 'all',
+            emptyText:'never',
+            selectOnFocus:true,
+            width:190
+        }),
+
+        new Ext.form.ComboBox({
+            fieldLabel: 'job',
+            hiddenName:'job',
+            store: client_store,
+            displayField:'name',
+            typeAhead: true,
+            mode: 'local',
+            triggerAction: 'all',
+            emptyText:'Select a job...',
+            selectOnFocus:true,
+            width:190
+        })
+//     ,
+//        new Ext.form.TextField({
+//            fieldLabel: 'Where',
+//            name: 'where',
+//            width:190
+//        }),
+//
+//        new Ext.form.ComboBox({
+//            fieldLabel: 'client',
+//            hiddenName:'client',
+//            store: client_store,
+//            displayField:'name',
+//            typeAhead: true,
+//            mode: 'local',
+//            triggerAction: 'all',
+//            emptyText:'Select a client...',
+//            selectOnFocus:true,
+//            width:190
+//        }),
+//        new Ext.form.ComboBox({
+//            fieldLabel: 'storage',
+//            hiddenName:'storage',
+//            store: client_store,
+//            displayField:'name',
+//            typeAhead: true,
+//            mode: 'local',
+//            triggerAction: 'all',
+//            emptyText:'Select a storage...',
+//            selectOnFocus:true,
+//            width:190
+//        })
+    );
+
+    fs.render('div-resto-form');
+
+//      var f = new Ext.form.BasicForm('div-resto-form', {url: '/bweb/test', method: 'GET',
+//                                                     baseParams: {init: 1}
+//                                                    }
+//                                     );
+
+               var layout = dialog.getLayout();
+                layout.beginUpdate();
+               layout.add('center', new Ext.ContentPanel('div-resto-form', {
+                                    autoCreate:true, title: 'Third Tab', closable:true, background:true}));
+               layout.endUpdate();
+               dialog.show();
+           }
+       }
     ]);
 
 ////////////////////////////////////////////////////////////////
index 92de08f95b2da2b95b694ab7151ec6a1642a3a95..1f8ae075621d8a974044acbc7ca7fb637f3c6830 100644 (file)
@@ -106,6 +106,22 @@ function human_size(val)
    return val.toFixed(format) + ' ' + unit[i];
 }
 
+function human_enabled(val)
+{   
+   if (!val) {
+      return 'no';
+   }
+
+   if (val == 'yes' || val == '1') {
+      return 'yes';
+
+   } else if (val == 'archived' || val == '2') {
+      return 'archived';
+   } else {
+      return 'no';
+   }
+}
+
 function human_sec(val)
 {
    if (!val) {
index 496c61ab06916439d3272b7120d2b681630b0677..58d3ae26590968847d6952448d58d39649495af0 100644 (file)
@@ -20,7 +20,7 @@ Estimado,
 
 Puede mover este medio a <TMPL_VAR newlocation>
 Medio :
-<TMPL_LOOP Medias>
+<TMPL_LOOP media>
  - <TMPL_VAR VolumeName>  (<TMPL_VAR location>)
 </TMPL_LOOP>
 
index f803c6e3b78551fe464e67cef2f73e2f77154fcc..b19014e58171482c3e622e61696be540cde8cade 100644 (file)
@@ -42,7 +42,7 @@ var img;
 var chkbox;
 var d;
 
-<TMPL_LOOP Medias>
+<TMPL_LOOP media>
 d = percent_usage(<TMPL_VAR volusage>);
 
 img = document.createElement('IMG');
index 6f7b564f4cf845bbe6f4a2984cf5febc9a489115..d9ef11eb4f257b7c088f58a84d1ff9f332855ab2 100644 (file)
@@ -40,7 +40,7 @@
 </table>
 <script type="text/javascript" language="JavaScript">
 
-var header = new Array("Pool","Online","Location","Vol Status", "Vol Bytes", "Expire",
+var header = new Array("Pool","Online","Enabled","Location","Vol Status", "Vol Bytes", "Expire",
                       "Retention","Max use duration", "Max jobs" );
 
 var data = new Array();
@@ -52,6 +52,7 @@ img.src = '/bweb/inflag<TMPL_VAR online>.png';
 data.push( new Array(
 "<TMPL_VAR poolname>",
 img,
+human_enabled("<TMPL_VAR enabled>"),
 "<TMPL_VAR location>",
 "<TMPL_VAR volstatus>",
 human_size(<TMPL_VAR nb_bytes>),
index ac1a3db8e49e11c6a08be6f36f626b25de77e377..2b94db3266a79804f883aa967662231f33016ff2 100644 (file)
@@ -24,7 +24,7 @@ var header = new Array("Nombre Volumen","Estado Volumen",
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=Medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR NAME=volumename>';
index 8a8cd5c22dde4e22fb030c3df71d81aa16a28f12..c0731afb92e4a4b96d891e947482126375c5964a 100644 (file)
@@ -10,6 +10,7 @@
     <td style='align: left;'>
     <input type="image" onclick='javascript:window.history.go(-2);' title='Volver' src='/bweb/prev.png'>
     </td><td style='align: right;'>
+    <input type="hidden" name='enabled' value="yes">
     <input type="image" name='action' value='move_media' title='Cargar selección' src='/bweb/intern.png'>
    </td></tr>
    </form>
@@ -24,7 +25,7 @@ var header = new Array("Nombre Volumen","Estado Volumen",
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=Medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.name = 'media';
index 797d766190a0703ae4aa1e4f52ebd3654cc18083..00c0bb99c935dec98494ab7f1564947d027614ae 100644 (file)
@@ -3,7 +3,7 @@
   <h1 class='newstitle'>Mover Medio</h1>
  </div>
  <div class="bodydiv">
-   <form action='?' method='get'>
+   <form name='form1' action='?' method='get'>
     <table id='id<TMPL_VAR NAME=ID>'></table>
     <table border='0'>
     <tr><td> Nueva Ubicación: </td><td>
     <option value='<TMPL_VAR NAME=location>'><TMPL_VAR NAME=location></option>
     </TMPL_LOOP>
 </select>
-    </td></tr><tr><td> Estado: </td><td>
-<select name='volstatus' class='formulaire'>
-    <option value=''>No Actualizar</option>
-    <option value='Append'>Listo</option>
-    <option value='Archive'>Archivado</option>
-    <option value='Disabled'>Desactivado</option>
-    <option value='Cleaning'>Limpieza</option>
-    <option value='Error'>Error</option>
-    <option value='Full'>Lleno</option>
-    <option value='Purged'>Purgado</option>
-    <option value='Read-Only'>ectura</option>
-    <option value='Recycle'>Reciclado</option>
-    <option value='Used'>Usado</option>
+    </td></tr><tr><td> Enabled: </td><td>
+<select name='enabled' class='formulaire'>
+    <option value='no'>no</option>
+    <option value='yes'>yes</option>
+    <option value='archived'>archived</option>
 </select>
     </td><tr><td> Usuario: </td><td>
 <input type='text' name='user' value='<TMPL_VAR loginname>' class='formulaire'>
@@ -46,7 +38,7 @@ var header = new Array("Nombre Volumen", "Ubicaci
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR name=volumename>';
@@ -82,4 +74,13 @@ nrsTable.setup(
  rows_per_page: rows_per_page
 }
 );
+<TMPL_IF enabled>
+ok=1;
+for (var i=0; ok && i < document.form1.enabled.length; ++i) {
+   if (document.form1.enabled[i].value == '<TMPL_VAR enabled>') {
+      document.form1.enabled[i].selected = true;
+      ok=0;
+   }
+}
+</TMPL_IF>
 </script>
index 11b4335f2ac860d43fe491ea476c7b83a67b959b..5e54c0935c2d66ee5ece3323405461c77adfae06 100644 (file)
@@ -21,7 +21,7 @@ var header = new Array("Nombre del Volumen", "Ubicaci
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR name=volumename>';
index fd7af0f89e906eb41bf96e52a5aa0cec36d0dfe3..2ce07c7e621b9259ede13080067561c3ffc43ed4 100644 (file)
         </td>
     </tr>
 
+    <tr><td>Enabled:</td>
+        <td> <select name='enabled' class='formulaire'>
+           <option value='yes'>yes</option>
+           <option value='no'>no</option>
+           <option value='archived'>archived</option>
+           </select>
+        </td>
+    </tr>
+
     <tr><td> Ubicación : </td>
         <td><select name='location' class='formulaire'>
         <option value=''></option>
@@ -156,5 +165,12 @@ for (var i=0; ok && i < document.form1.volstatus.length; ++i) {
       ok=0;
    }
 }
+ok=1;
+for (var i=0; ok && i < document.form1.enabled.length; ++i) {
+   if (document.form1.enabled[i].value == '<TMPL_VAR enabled>') {
+      document.form1.enabled[i].selected = true;
+      ok=0;
+   }
+}
 
 </script>
index 35029bc9c303ebe42277f5d86bf4be8386dd3f67..1f7c52937b8970f55abcb97e830f2dc8b11c9b76 100644 (file)
@@ -20,7 +20,7 @@ Bonjour,
 
 Pouvez vous déplacer ces médias vers <TMPL_VAR newlocation> ?
 Média :
-<TMPL_LOOP Medias>
+<TMPL_LOOP media>
  - <TMPL_VAR VolumeName>  (<TMPL_VAR location>)
 </TMPL_LOOP>
 
index 9e4f8ec56a371bcb417ba3452a6f9516c2946048..b5e9eb257b2b56b9bb4d171d703ab80b89eba39e 100644 (file)
@@ -42,7 +42,7 @@ var img;
 var chkbox;
 var d;
 
-<TMPL_LOOP Medias>
+<TMPL_LOOP media>
 d = percent_usage(<TMPL_VAR volusage>);
 
 img = document.createElement('IMG');
index a73d7b3ba10f7fc2a056d6457b23abf2998507bf..7e392008bd4213d7e541cd4880e9850ee4e46378 100644 (file)
@@ -40,7 +40,7 @@
 </table>
 <script type="text/javascript" language="JavaScript">
 
-var header = new Array("Pool","En ligne","Localisation","Statut", "Taille", "Expiration",
+var header = new Array("Pool","En ligne","Enabled","Localisation","Statut", "Taille", "Expiration",
                       "Rétention","Temps maxi d'utilisation", "Nb de job maxi" );
 
 var data = new Array();
@@ -52,6 +52,7 @@ img.src = '/bweb/inflag<TMPL_VAR online>.png';
 data.push( new Array(
 "<TMPL_VAR poolname>",
 img,
+human_enabled("<TMPL_VAR enabled>"),
 "<TMPL_VAR location>",
 "<TMPL_VAR volstatus>",
 human_size(<TMPL_VAR nb_bytes>),
index 3322739b6f69e701d819180ed51b8933d13d08ff..23379d44c0c000ea7d050f7d65b04d82888cc291 100644 (file)
@@ -24,7 +24,7 @@ var header = new Array("Nom de volume","Statut",
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=Medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR NAME=volumename>';
index b08a98356517473877808e7784f13b540abe9812..3db60ef71fcece681b821f743b6c47180c2d5795 100644 (file)
@@ -11,6 +11,7 @@
     <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="hidden" name='enabled' value="yes">
     <input type="image" name='action' value='move_media'
      src='/bweb/intern.png'>
    </td></tr>
@@ -26,7 +27,7 @@ var header = new Array("Nom de volume","Statut",
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=Medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.name = 'media';
index baca0f4604664670cf9219a41549200870183868..25223a38abfcc425ec2b4d4d946f6ce4acc838a1 100644 (file)
@@ -3,7 +3,7 @@
   <h1 class='newstitle'>Déplacer un média</h1>
  </div>
  <div class="bodydiv">
-   <form action='?' method='get'>
+   <form name='form1' action='?' method='get'>
     <table id='id<TMPL_VAR NAME=ID>'></table>
     <table border='0'>
     <tr><td> Nouvelle localisation : </td><td>
     <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>
+    </td></tr><tr><td> Enabled: </td><td>
+<select name='enabled' class='formulaire'>
+    <option value='no'>non</option>
+    <option value='yes'>oui</option>
+    <option value='archived'>archive</option>
 </select>
     </td><tr><td> Utilisateur : </td><td>
 <input type='text' name='user' value='<TMPL_VAR loginname>' class='formulaire'>
@@ -46,7 +38,7 @@ var header = new Array("Nom de volume", "Localisation", "S
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR name=volumename>';
@@ -82,4 +74,14 @@ nrsTable.setup(
  rows_per_page: rows_per_page
 }
 );
+
+<TMPL_IF enabled>
+ok=1;
+for (var i=0; ok && i < document.form1.enabled.length; ++i) {
+   if (document.form1.enabled[i].value == '<TMPL_VAR enabled>') {
+      document.form1.enabled[i].selected = true;
+      ok=0;
+   }
+}
+</TMPL_IF>
 </script>
index acc484ca38520bbb2ef33de0413fac434735ebf6..48ac5de29ac0e0b0e0db8772c2d289050a50adb2 100644 (file)
@@ -21,7 +21,7 @@ var header = new Array("Nom de volume", "Localisation", "S
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR name=volumename>';
index 4b4e5a13c78536843de1d7053981bb700a9ea8e6..211fc5fe577ba5e9069a1dae359030917fab4164 100644 (file)
         </td>
     </tr>
 
+    <tr><td>Enabled :</td>
+        <td> <select name='enabled' class='formulaire'>
+           <option value='yes'>oui</option>
+           <option value='no'>non</option>
+           <option value='archived'>archive</option>
+           </select>
+        </td>
+    </tr>
+
     <tr><td> Localisation : </td>
         <td><select name='location' class='formulaire'>
       <option value=''></option>
@@ -153,5 +162,12 @@ for (var i=0; ok && i < document.form1.volstatus.length; ++i) {
       ok=0;
    }
 }
+ok=1;
+for (var i=0; ok && i < document.form1.enabled.length; ++i) {
+   if (document.form1.enabled[i].value == '<TMPL_VAR enabled>') {
+      document.form1.enabled[i].selected = true;
+      ok=0;
+   }
+}
 
 </script>
index 95687987331c79c5fd145a0af2d55aa77aa17730..d63b9504c82b42ecc219e76ce6f46e8670fb8591 100644 (file)
@@ -1195,6 +1195,20 @@ sub human_sec
     return "$val years";   
 }
 
+# display Enabled
+sub human_enabled
+{
+    my $val = shift || 0;
+
+    if ($val == 1 or $val eq "yes") {
+       return "yes";
+    } elsif ($val == 2 or $val eq "archived") {
+       return "archived";
+    } else {
+       return  "no";
+    }
+}
+
 # get Day, Hour, Year
 sub from_human_sec
 {
@@ -1429,6 +1443,7 @@ sub get_form
                 poolrecycle => 1,
                 replace => 1,
                 expired => 1,
+                enabled => 1,
                 );
     my %opt_p = (              # option with path
                 fileset=> 1,
@@ -1536,9 +1551,9 @@ SELECT MediaType as mediatype
   FROM MediaType
 ";
 
-       my $medias = $self->dbh_selectall_hashref($query, 'mediatype');
+       my $media = $self->dbh_selectall_hashref($query, 'mediatype');
        $ret{db_mediatypes} = [sort {$a->{mediatype} cmp $b->{mediatype} } 
-                                 values %$medias] ;
+                                 values %$media] ;
     }
 
     if ($what{db_locations}) {
@@ -1665,16 +1680,16 @@ sub get_selected_media_location
 {
     my ($self) = @_ ;
 
-    my $medias = $self->get_form('jmedias');
+    my $media = $self->get_form('jmedias');
 
-    unless ($medias->{jmedias}) {
+    unless ($media->{jmedias}) {
        return undef;
     }
 
     my $query = "
 SELECT Media.VolumeName AS volumename, Location.Location AS location
 FROM Media LEFT JOIN Location ON (Media.LocationId = Location.LocationId)
-WHERE Media.VolumeName IN ($medias->{jmedias})
+WHERE Media.VolumeName IN ($media->{jmedias})
 ";
 
     my $all = $self->dbh_selectall_hashref($query, 'volumename') ;
@@ -1688,20 +1703,21 @@ WHERE Media.VolumeName IN ($medias->{jmedias})
 
 sub move_media
 {
-    my ($self) = @_ ;
+    my ($self, $in) = @_ ;
 
-    my $medias = $self->get_selected_media_location();
+    my $media = $self->get_selected_media_location();
 
-    unless ($medias) {
+    unless ($media) {
        return ;
     }
-    
+
     my $elt = $self->get_form('db_locations');
 
     $self->display({ ID => $cur_id++,
+                    enabled => human_enabled($in),
                     %$elt,     # db_locations
-                    medias => [ 
-            sort { $a->{volumename} cmp $b->{volumename} } values %$medias
+                    media => [ 
+            sort { $a->{volumename} cmp $b->{volumename} } values %$media
                               ],
                     },
                   "move_media.tpl");
@@ -1753,7 +1769,7 @@ LIMIT $number
     
     my $all = $self->dbh_selectall_hashref($query, 'volumename') ;
 
-    $self->display({ Medias => [ values %$all ] },
+    $self->display({ Media => [ values %$all ] },
                   "help_extern_compute.tpl");
 }
 
@@ -1809,7 +1825,7 @@ LIMIT $number
     
     my $all = $self->dbh_selectall_hashref($query, 'volumename') ;
 
-    $self->display({ Medias => [ values %$all ] },
+    $self->display({ Media => [ values %$all ] },
                   "help_intern_compute.tpl");
 
 }
@@ -1881,10 +1897,10 @@ sub get_param
     }
 
     if ($elt{mediatypes}) {
-       my @medias = grep { ! /^\s*$/ } CGI::param('mediatype');
-       if (@medias) {
-           $ret{mediatypes} = \@medias;
-           my $str = $self->dbh_join(@medias);
+       my @media = grep { ! /^\s*$/ } CGI::param('mediatype');
+       if (@media) {
+           $ret{mediatypes} = \@media;
+           my $str = $self->dbh_join(@media);
            $limit .= "AND Media.MediaType IN ($str) ";
        }
     }
@@ -2217,12 +2233,12 @@ $limit
     $self->display({ ID => $cur_id++,
                     Pool => $elt{pool},
                     Location => $elt{location},
-                    Medias => [ values %$all ],
+                    Media => [ values %$all ],
                   },
                   "display_media.tpl");
 }
 
-sub display_medias
+sub display_allmedia
 {
     my ($self) = @_ ;
 
@@ -2238,14 +2254,15 @@ sub display_media_zoom
 {
     my ($self) = @_ ;
 
-    my $medias = $self->get_form('jmedias');
+    my $media = $self->get_form('jmedias');
     
-    unless ($medias->{jmedias}) {
+    unless ($media->{jmedias}) {
        return $self->error("Can't get media selection");
     }
     
     my $query="
 SELECT InChanger     AS online,
+       Media.Enabled AS enabled,
        VolBytes      AS nb_bytes,
        VolumeName    AS volumename,
        VolStatus     AS volstatus,
@@ -2271,7 +2288,7 @@ SELECT InChanger     AS online,
  FROM Pool,
       Media LEFT JOIN Location ON (Media.LocationId = Location.LocationId)
  WHERE Pool.PoolId = Media.PoolId
- AND VolumeName IN ($medias->{jmedias})
+ AND VolumeName IN ($media->{jmedias})
 ";
 
     my $all = $self->dbh_selectall_hashref($query, 'volumename') ;
@@ -2455,8 +2472,8 @@ sub update_location
 {
     my ($self) = @_ ;
 
-    my $medias = $self->get_selected_media_location();
-    unless ($medias) {
+    my $media = $self->get_selected_media_location();
+    unless ($media) {
        return ;
     }
 
@@ -2464,7 +2481,7 @@ sub update_location
 
     $self->display({ email  => $self->{info}->{email_media},
                     %$arg,
-                     medias => [ values %$medias ],
+                     media => [ values %$media ],
                   },
                   "update_location.tpl");
 }
@@ -2654,7 +2671,8 @@ SELECT Media.Slot         AS slot,
        Media.VolUseDuration AS voluseduration,
        Media.VolRetention AS volretention,
        Media.Comment      AS comment,
-       PoolRecycle.Name   AS poolrecycle
+       PoolRecycle.Name   AS poolrecycle,
+       Media.Enabled      AS enabled
 
 FROM Media INNER JOIN Pool AS PoolMedia ON (Media.PoolId = PoolMedia.PoolId)
            LEFT  JOIN Pool AS PoolRecycle ON (Media.RecyclePoolId = PoolRecycle.PoolId)
@@ -2666,6 +2684,7 @@ WHERE Media.VolumeName = $media->{qmedia}
     my $row = $self->dbh_selectrow_hashref($query);
     $row->{volretention} = human_sec($row->{volretention});
     $row->{voluseduration} = human_sec($row->{voluseduration});
+    $row->{enabled} = human_enabled($row->{enabled});
 
     my $elt = $self->get_form(qw/db_pools db_locations/);
 
@@ -2708,8 +2727,8 @@ sub location_change
 {
     my ($self) = @_ ;
 
-    my $medias = $self->get_selected_media_location();
-    unless ($medias) {
+    my $media = $self->get_selected_media_location();
+    unless ($media) {
        return $self->error("Can't get media selection");
     }
     my $newloc = CGI::param('newlocation');
@@ -2718,20 +2737,25 @@ sub location_change
     my $comm = CGI::param('comment') || '';
     $comm = $self->dbh_quote("$user: $comm");
 
-    my $query;
+    my $arg = $self->get_form('enabled');
+    my $en = human_enabled($arg->{enabled});
+    my $b = $self->get_bconsole();
 
-    foreach my $media (keys %$medias) {
+    my $query;
+    foreach my $vol (keys %$media) {
        $query = "
 INSERT LocationLog (Date, Comment, MediaId, LocationId, NewVolStatus)
  VALUES(
-       NOW(), $comm, (SELECT MediaId FROM Media WHERE VolumeName = '$media'),
-       (SELECT LocationId FROM Location WHERE Location = '$medias->{$media}->{location}'),
-       (SELECT VolStatus FROM Media WHERE VolumeName = '$media')
+       NOW(), $comm, (SELECT MediaId FROM Media WHERE VolumeName = '$vol'),
+       (SELECT LocationId FROM Location WHERE Location = '$media->{$vol}->{location}'),
+       (SELECT VolStatus FROM Media WHERE VolumeName = '$vol')
       )
 ";
        $self->dbh_do($query);
        $self->debug($query);
+       $b->send_cmd("update volume=\"$vol\" enabled=$en");
     }
+    $b->close();
 
     my $q = new CGI;
     $q->param('action', 'update_location');
@@ -2740,8 +2764,8 @@ INSERT LocationLog (Date, Comment, MediaId, LocationId, NewVolStatus)
     $self->display({ email  => $self->{info}->{email_media},
                     url => $url,
                     newlocation => $newloc,
-                    # [ { volumename => 'vol1' }, { volumename => 'vol2'Â\81Â\81 },..]
-                    medias => [ values %$medias ],
+                    # [ { volumename => 'vol1' }, { volumename => 'vol2' },..]
+                    media => [ values %$media ],
                   },
                   "change_location.tpl");
 
@@ -3002,7 +3026,7 @@ WHERE Media.VolumeName IN ($arg->{jmedias})
            $a->status();
            $a->{have_status} = 1;
        }
-
+       # TODO: set enabled
        print "eject $vol->{volumename} from $vol->{storage} : ";
        if ($a->send_to_io($vol->{slot})) {
            print "<img src='/bweb/T.png' alt='ok'><br/>";
@@ -3198,7 +3222,7 @@ sub do_update_media
     my $arg = $self->get_form(qw/media volstatus inchanger pool
                                 slot volretention voluseduration 
                                 maxvoljobs maxvolfiles maxvolbytes
-                                qcomment poolrecycle
+                                qcomment poolrecycle enabled
                              /);
 
     unless ($arg->{media}) {
@@ -3220,6 +3244,10 @@ sub do_update_media
        $update .= " slot=0 inchanger=no ";
     }
 
+    if ($arg->{enabled}) {
+        $update .= " enabled=$arg->{enabled} ";
+    }
+
     if ($arg->{pool}) {
        $update .= " pool=$arg->{pool} " ;
     }
index d7f96519cefdc55c1fb119317e79e169be46e1aa..e804e060f58e5e32eb37fe936a1e1da7716a1094 100644 (file)
@@ -20,7 +20,7 @@ Hi,
 
 Could you move these media to <TMPL_VAR newlocation>
 Media :
-<TMPL_LOOP Medias>
+<TMPL_LOOP media>
  - <TMPL_VAR VolumeName>  (<TMPL_VAR location>)
 </TMPL_LOOP>
 
index e4a029b44fec3a6195fcdcd89408435abf47dbd0..cad256d73bc78c846428da04a119ac14e0a12ff5 100644 (file)
@@ -42,7 +42,7 @@ var img;
 var chkbox;
 var d;
 
-<TMPL_LOOP Medias>
+<TMPL_LOOP media>
 d = percent_usage(<TMPL_VAR volusage>);
 
 img = document.createElement('IMG');
index 6dcadbad3569a5628e159b36a3406eb075c2c2d8..6f8a53a5cb1d30d4c8d8833adf50edfa9d51f2c3 100644 (file)
@@ -40,7 +40,7 @@
 </table>
 <script type="text/javascript" language="JavaScript">
 
-var header = new Array("Pool","Online","Location","Vol Status", "Vol Bytes", "Expire",
+var header = new Array("Pool","Online","Enabled", "Location","Vol Status", "Vol Bytes", "Expire",
                       "Retention","Max use duration", "Max jobs" );
 
 var data = new Array();
@@ -52,6 +52,7 @@ img.src = '/bweb/inflag<TMPL_VAR online>.png';
 data.push( new Array(
 "<TMPL_VAR poolname>",
 img,
+human_enabled("<TMPL_VAR enabled>"),
 "<TMPL_VAR location>",
 "<TMPL_VAR volstatus>",
 human_size(<TMPL_VAR nb_bytes>),
index 816353d8f90a4b7abed24bad084d43ed93e287c2..906e6c332e716380f2e4ee8688e6274ed27f3efa 100644 (file)
@@ -24,7 +24,7 @@ var header = new Array("Volume Name","Vol Status",
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=Medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR NAME=volumename>';
index 0f10329d55d18ae210b1aa608171f7dde039d4e4..cd4aa6db943d4bedea485f41b2f02c07e632f3a0 100644 (file)
@@ -10,6 +10,7 @@
     <td style='align: left;'>
     <input type="image" onclick='javascript:window.history.go(-2);' title='Back' src='/bweb/prev.png'>
     </td><td style='align: right;'>
+    <input type="hidden" name='enabled' value="yes">
     <input type="image" name='action' value='move_media'
      src='/bweb/intern.png'>
    </td></tr>
@@ -25,7 +26,7 @@ var header = new Array("Volume Name","Vol Status",
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=Medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.name = 'media';
index 80520a13a5374e620a65db1870fd6e04bc08ec6d..3c5c66cd61234c8e11769f32b293dba856ee519b 100644 (file)
@@ -3,7 +3,7 @@
   <h1 class='newstitle'>Move media</h1>
  </div>
  <div class="bodydiv">
-   <form action='?' method='get'>
+   <form name='form1' action='?' method='get'>
     <table id='id<TMPL_VAR NAME=ID>'></table>
     <table border='0'>
     <tr><td> New location: </td><td>
     <option value='<TMPL_VAR NAME=location>'><TMPL_VAR NAME=location></option>
     </TMPL_LOOP>
 </select>
-    </td></tr><tr><td> Status: </td><td>
-<select name='volstatus' class='formulaire'>
-    <option value=''>Don't update</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>
+    </td></tr><tr><td> Enabled: </td><td>
+<select name='enabled' class='formulaire'>
+    <option value='no'>no</option>
+    <option value='yes'>yes</option>
+    <option value='archived'>archived</option>
 </select>
     </td><tr><td> User: </td><td>
 <input type='text' name='user' value='<TMPL_VAR loginname>' class='formulaire'>
@@ -46,7 +38,7 @@ var header = new Array("Volume Name", "Location", "Select");
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR name=volumename>';
@@ -82,4 +74,13 @@ nrsTable.setup(
  rows_per_page: rows_per_page
 }
 );
+<TMPL_IF enabled>
+ok=1;
+for (var i=0; ok && i < document.form1.enabled.length; ++i) {
+   if (document.form1.enabled[i].value == '<TMPL_VAR enabled>') {
+      document.form1.enabled[i].selected = true;
+      ok=0;
+   }
+}
+</TMPL_IF>
 </script>
index 75adcbaaaf10d13a3f331ba7a6180a7e10c7959a..93fc9eabf367d9c6d5fad09eacff35cb3eff0d2a 100644 (file)
@@ -21,7 +21,7 @@ var header = new Array("Volume Name", "Location", "Select");
 var data = new Array();
 var chkbox;
 
-<TMPL_LOOP NAME=medias>
+<TMPL_LOOP NAME=media>
 chkbox = document.createElement('INPUT');
 chkbox.type  = 'checkbox';
 chkbox.value = '<TMPL_VAR name=volumename>';
index 2c9a0c14ee04518bc7478fcb6def58e6fe93ffa6..f09db42d7a249cfa4188138d65bdbe594b1769d6 100644 (file)
         </td>
     </tr>
 
+    <tr><td>Enabled:</td>
+        <td> <select name='enabled' class='formulaire'>
+           <option value='yes'>yes</option>
+           <option value='no'>no</option>
+           <option value='archived'>archived</option>
+           </select>
+        </td>
+    </tr>
+
     <tr><td> Location : </td>
         <td><select name='location' class='formulaire'>
         <option value=''></option>
@@ -156,5 +165,12 @@ for (var i=0; ok && i < document.form1.volstatus.length; ++i) {
       ok=0;
    }
 }
+ok=1;
+for (var i=0; ok && i < document.form1.enabled.length; ++i) {
+   if (document.form1.enabled[i].value == '<TMPL_VAR enabled>') {
+      document.form1.enabled[i].selected = true;
+      ok=0;
+   }
+}
 
 </script>