Added Library Info
This commit is contained in:
parent
529d70d2bb
commit
279eacd4ab
73
application/classes/controller/library.php
Normal file
73
application/classes/controller/library.php
Normal file
@ -0,0 +1,73 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class provides information on TSM attached Libraries.
|
||||
*
|
||||
* @package PTA
|
||||
* @subpackage Libraries
|
||||
* @category Controllers
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 phpTSMadmin Development Team
|
||||
* @license http://phptsmadmin.sf.net/license.html
|
||||
*/
|
||||
class Controller_LIBRARY extends Controller_TemplateDefault {
|
||||
/**
|
||||
* Default Index for Controller
|
||||
*/
|
||||
public function action_index() {
|
||||
$lo = ORM::factory('library');
|
||||
$output = '';
|
||||
|
||||
$output .= sprintf(_('This server has <b>%s</b> libraries.'),$lo->count_all());
|
||||
$output .= '<br/>';
|
||||
$output .= '<br/>';
|
||||
|
||||
$select = array();
|
||||
$select[NULL] = '';
|
||||
|
||||
foreach ($lo->find_all() as $library)
|
||||
$select[$library->LIBRARY_NAME] = $library->LIBRARY_NAME;
|
||||
|
||||
$output .= Form::open('/library/detail',array('id'=>'library_detail'));
|
||||
$output .= sprintf('%s: %s',_('Choose a storage pool to view'),Form::select('library_name',$select,NULL,array('id'=>'library_name')));
|
||||
$output .= Form::submit('form_submit',_('Go'));
|
||||
$output .= Form::close();
|
||||
|
||||
Block::add(array(
|
||||
'title'=>_('TSM Libraries'),
|
||||
'body'=>$output,
|
||||
));
|
||||
}
|
||||
|
||||
public function action_detail($library=NULL) {
|
||||
if (is_null($library) AND (empty($_POST['library_name']) OR ! $library = $_POST['library_name'])) {
|
||||
SystemMessage::add(array(
|
||||
'title'=>_('LIBRARY_NAME is required'),
|
||||
'type'=>'error',
|
||||
'body'=>_('The library pool name is required.'),
|
||||
));
|
||||
|
||||
Request::current()->redirect('library');
|
||||
}
|
||||
|
||||
$lo = ORM::factory('library',$library);
|
||||
if (! $lo->loaded()) {
|
||||
SystemMessage::add(array(
|
||||
'title'=>_('Unknown LIBRARY_NAME'),
|
||||
'type'=>'error',
|
||||
'body'=>sprintf(_('The library pool [%s] does not exist?.'),$library),
|
||||
));
|
||||
|
||||
Request::current()->redirect('library');
|
||||
}
|
||||
|
||||
$slots = DB::query(Database::SHOW,'SHOW SLOTS '.$lo)->execute();
|
||||
Block::add(array(
|
||||
'title'=>sprintf(_('Library Information for %s'),$lo->LIBRARY_NAME),
|
||||
'body'=>View::factory('library/detail')
|
||||
->set('lo',$lo)
|
||||
->set('slots',$slots)
|
||||
));
|
||||
}
|
||||
}
|
||||
?>
|
@ -31,6 +31,14 @@ class Controller_Tree extends Controller_lnApp_Tree {
|
||||
'attr_href'=>URL::Site('domain'),
|
||||
));
|
||||
|
||||
array_push($data,array(
|
||||
'id'=>'library',
|
||||
'name'=>'Library Info',
|
||||
'state'=>'none',
|
||||
'attr_id'=>'1',
|
||||
'attr_href'=>URL::Site('library'),
|
||||
));
|
||||
|
||||
array_push($data,array(
|
||||
'id'=>'node',
|
||||
'name'=>'Node Info',
|
||||
|
17
application/classes/database.php
Normal file
17
application/classes/database.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class overrides Kohana's Database
|
||||
*
|
||||
* @package lnApp/Modifications
|
||||
* @category Classes
|
||||
* @category Helpers
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 Deon George
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
abstract class Database extends Kohana_Database {
|
||||
// Enable TSM SHOW commands
|
||||
const SHOW = 5;
|
||||
}
|
||||
?>
|
63
application/classes/database/result.php
Normal file
63
application/classes/database/result.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* TSM database show result. See [Results](/database/results) for usage and examples.
|
||||
*
|
||||
* @package PTA
|
||||
* @subpackage TSM
|
||||
* @category Query/Show
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 phpTSMadmin Development Team
|
||||
* @license http://phptsmadmin.sf.net/license.html
|
||||
*/
|
||||
abstract class Database_Result extends Kohana_Database_Result {
|
||||
protected $_internal_row = 0;
|
||||
protected $_rows;
|
||||
|
||||
// Required Abstract Classes
|
||||
public function __destruct() {}
|
||||
|
||||
public function seek($offset) {
|
||||
if ($this->offsetExists($offset)) {
|
||||
// Set the current row to the offset
|
||||
$this->_current_row = $this->_internal_row = $offset;
|
||||
|
||||
return TRUE;
|
||||
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
public function current() {
|
||||
if ($this->_current_row !== $this->_internal_row AND ! $this->seek($this->_current_row))
|
||||
return FALSE;
|
||||
|
||||
// Return an stdClass
|
||||
if ($this->_as_object === TRUE) {
|
||||
return $this;
|
||||
|
||||
} elseif (is_string($this->_as_object)) {
|
||||
// Return an object of given class name
|
||||
$o = new $this->_as_object;
|
||||
|
||||
return $o->load_object($this->_rows[$this->_current_row]);
|
||||
|
||||
// Return an array of the row
|
||||
} else {
|
||||
return $this->_rows[$this->_current_row];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a row value from the query
|
||||
*
|
||||
* TSM returns all columns in upper case
|
||||
*/
|
||||
public function get($name, $default = NULL) {
|
||||
$name = strtoupper($name);
|
||||
|
||||
return parent::get($name,$default);
|
||||
}
|
||||
}
|
||||
?>
|
@ -187,6 +187,8 @@ class Database_TSM extends Database {
|
||||
return new Database_TSM_Result($result, $sql, $as_object, $params);
|
||||
elseif ($type === Database::INSERT)
|
||||
throw new Kohana_Exception('Database INSERTS are not supported');
|
||||
elseif ($type === Database::SHOW)
|
||||
return new Database_TSM_Show($result, $sql, $as_object, $params);
|
||||
}
|
||||
|
||||
public function list_tables($like = NULL) {
|
||||
|
@ -11,12 +11,7 @@
|
||||
* @license http://phptsmadmin.sf.net/license.html
|
||||
*/
|
||||
class Database_TSM_Result extends Database_Result {
|
||||
|
||||
protected $_internal_row = 0;
|
||||
private $_rows;
|
||||
|
||||
public function __construct($result, $sql, $as_object = FALSE, array $params = NULL)
|
||||
{
|
||||
public function __construct($result, $sql, $as_object = FALSE, array $params = NULL) {
|
||||
parent::__construct($result, $sql, $as_object, $params);
|
||||
|
||||
$start = FALSE;
|
||||
@ -37,60 +32,5 @@ class Database_TSM_Result extends Database_Result {
|
||||
$this->_total_rows = $this->_internal_row;
|
||||
$this->_internal_row = 0;
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public function seek($offset)
|
||||
{
|
||||
if ($this->offsetExists($offset))
|
||||
{
|
||||
// Set the current row to the offset
|
||||
$this->_current_row = $this->_internal_row = $offset;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
public function current()
|
||||
{
|
||||
if ($this->_current_row !== $this->_internal_row AND ! $this->seek($this->_current_row))
|
||||
return FALSE;
|
||||
|
||||
if ($this->_as_object === TRUE)
|
||||
{
|
||||
// Return an stdClass
|
||||
return $this;
|
||||
}
|
||||
elseif (is_string($this->_as_object))
|
||||
{
|
||||
// Return an object of given class name
|
||||
$o = new $this->_as_object;
|
||||
|
||||
return $o->load_object($this->_rows[$this->_current_row]);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Return an array of the row
|
||||
return $this->_rows[$this->_current_row];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a row value from the query
|
||||
*
|
||||
* TSM returns all columns in upper case
|
||||
*/
|
||||
public function get($name, $default = NULL) {
|
||||
$name = strtoupper($name);
|
||||
|
||||
return parent::get($name,$default);
|
||||
}
|
||||
} // End Database_TSM_Result
|
||||
?>
|
||||
|
61
application/classes/database/tsm/show.php
Normal file
61
application/classes/database/tsm/show.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* TSM database show result. See [Results](/database/results) for usage and examples.
|
||||
*
|
||||
* @package PTA
|
||||
* @subpackage TSM
|
||||
* @category Query/Show
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 phpTSMadmin Development Team
|
||||
* @license http://phptsmadmin.sf.net/license.html
|
||||
*/
|
||||
class Database_TSM_Show extends Database_Result {
|
||||
public function __construct($result, $sql, $as_object = FALSE, array $params = NULL) {
|
||||
parent::__construct($result, $sql, $as_object, $params);
|
||||
|
||||
$sql = strtolower($sql);
|
||||
|
||||
$start = FALSE;
|
||||
foreach ($result as $line) {
|
||||
if (! trim($line))
|
||||
continue;
|
||||
|
||||
if (preg_match('/^show slots /',$sql))
|
||||
if (preg_match('/^Slot /',$line)) {
|
||||
if ($start)
|
||||
$this->_internal_row++;
|
||||
|
||||
$slot = array();
|
||||
foreach ((preg_split('/,\s*/',$line,-1)) as $slotkey => $val)
|
||||
if (preg_match('/^element number\s+/',$val))
|
||||
$slot['element'] = preg_replace('/^element number\s+/','',$val);
|
||||
elseif (preg_match('/^Slot\s+/',$val))
|
||||
$slot['slot'] = preg_replace('/^Slot\s+/','',$val);
|
||||
elseif (preg_match('/^status\s+/',$val))
|
||||
$slot['status'] = preg_replace('/^status\s+/','',$val);
|
||||
elseif (preg_match('/^barcode value </',$val))
|
||||
$slot['barcodelabel'] = preg_replace('/^barcode value <(.*)>/',"$1",$val);
|
||||
elseif (preg_match('/^barcode\s+/',$val))
|
||||
$slot['barcode'] = preg_replace('/^barcode /','',$val);
|
||||
|
||||
$slot['library'] = preg_replace('/^show slots /','',$sql);
|
||||
$this->_rows[$this->_internal_row] = new Slot($slot);
|
||||
$start = TRUE;
|
||||
|
||||
} elseif (preg_match('/busy.$/',$line)) {
|
||||
SystemMessage::add(array(
|
||||
'title'=>_('Library is Busy'),
|
||||
'type'=>'info',
|
||||
'body'=>_('The library appears busy at the moment.'),
|
||||
));
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$this->_total_rows = $this->_internal_row;
|
||||
$this->_internal_row = 0;
|
||||
}
|
||||
}
|
||||
?>
|
4
application/classes/html.php
Normal file
4
application/classes/html.php
Normal file
@ -0,0 +1,4 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
class HTML extends lnApp_HTML {}
|
||||
?>
|
21
application/classes/lnapp/html.php
Normal file
21
application/classes/lnapp/html.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class extends Kohana's HTML
|
||||
*
|
||||
* @package lnApp/Modifications
|
||||
* @category Classes
|
||||
* @category Helpers
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 Deon George
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
class lnApp_HTML extends Kohana_HTML {
|
||||
public static function nbsp($string) {
|
||||
if (strlen((string)$string))
|
||||
return $string;
|
||||
else
|
||||
return ' ';
|
||||
}
|
||||
}
|
||||
?>
|
24
application/classes/model/library.php
Normal file
24
application/classes/model/library.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
*
|
||||
* @package PTA
|
||||
* @subpackage Library
|
||||
* @category Models
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 phpTSMadmin Development Team
|
||||
* @license http://phptsmadmin.sf.net/license.html
|
||||
*/
|
||||
class Model_LIBRARY extends ORMTSM {
|
||||
protected $_table_name = 'LIBRARIES';
|
||||
protected $_primary_key = 'LIBRARY_NAME';
|
||||
protected $_sorting = array(
|
||||
'LIBRARY_NAME'=>'ASC',
|
||||
);
|
||||
|
||||
protected $_has_one = array(
|
||||
);
|
||||
protected $_has_many = array(
|
||||
);
|
||||
}
|
||||
?>
|
81
application/classes/model/libvolume.php
Normal file
81
application/classes/model/libvolume.php
Normal file
@ -0,0 +1,81 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
*
|
||||
* @package PTA
|
||||
* @subpackage Library Volumes
|
||||
* @category Models
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 phpTSMadmin Development Team
|
||||
* @license http://phptsmadmin.sf.net/license.html
|
||||
*/
|
||||
class Model_LIBVOLUME extends ORMTSM {
|
||||
protected $_table_name = 'LIBVOLUMES';
|
||||
protected $_primary_key = 'VOLUME_NAME';
|
||||
protected $_sorting = array(
|
||||
'VOLUME_NAME'=>'ASC',
|
||||
);
|
||||
|
||||
protected $_has_one = array(
|
||||
'VOLUME'=>array('foreign_key'=>'VOLUME_NAME','far_key'=>'VOLUME_NAME'),
|
||||
);
|
||||
protected $_has_many = array(
|
||||
'VOLHISTORY'=>array('foreign_key'=>'VOLUME_NAME','far_key'=>'VOLUME_NAME'),
|
||||
);
|
||||
|
||||
public function usage() {
|
||||
switch (strtolower($this->STATUS)) {
|
||||
case 'scratch': return strtolower($this->STATUS);
|
||||
case 'private':
|
||||
switch (strtolower($this->LAST_USE)) {
|
||||
case 'dbbackup':
|
||||
case 'data':
|
||||
return strtolower($this->LAST_USE);
|
||||
|
||||
default: return 'unknown';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function volusage() {
|
||||
switch ($this->usage()) {
|
||||
case 'scratch': return _('Scratch');
|
||||
case 'dbbackup': return $this->VOLHISTORY->lastuse()->TYPE;
|
||||
case 'data': return $this->VOLUME->STGPOOL_NAME;
|
||||
|
||||
default: return _('Unknown');
|
||||
}
|
||||
}
|
||||
|
||||
public function status() {
|
||||
switch ($this->usage()) {
|
||||
case 'data': return sprintf('%s/%s',$this->VOLUME->display('STATUS'),$this->VOLUME->display('ACCESS'));
|
||||
case 'dbbackup': return $this->VOLHISTORY->lastuse()->backupid();
|
||||
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
public function access() {
|
||||
switch ($this->usage()) {
|
||||
case 'data':
|
||||
case 'dbbackup':
|
||||
return sprintf('%s/%s',$this->display('STATUS'),$this->display('OWNER'));
|
||||
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
public function lastwrite() {
|
||||
switch ($this->usage()) {
|
||||
case 'data':
|
||||
return $this->VOLUME->display('LAST_WRITE_DATE');
|
||||
case 'dbbackup':
|
||||
return $this->VOLHISTORY->lastuse()->display('DATE_TIME');
|
||||
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
41
application/classes/model/volhistory.php
Normal file
41
application/classes/model/volhistory.php
Normal file
@ -0,0 +1,41 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
*
|
||||
* @package PTA
|
||||
* @subpackage Volume History
|
||||
* @category Models
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 phpTSMadmin Development Team
|
||||
* @license http://phptsmadmin.sf.net/license.html
|
||||
*/
|
||||
class Model_VOLHISTORY extends ORMTSM {
|
||||
protected $_table_name = 'VOLHISTORY';
|
||||
protected $_primary_key = 'VOLUME_NAME';
|
||||
protected $_sorting = array(
|
||||
'DATE_TIME'=>'ASC',
|
||||
);
|
||||
|
||||
protected $_has_one = array(
|
||||
'VOLUME'=>array('foreign_key'=>'VOLUME_NAME','far_key'=>'VOLUME_NAME'),
|
||||
);
|
||||
protected $_has_many = array(
|
||||
);
|
||||
|
||||
protected $_display_filters = array(
|
||||
'DATE_TIME'=>array(
|
||||
array('ORMTSM::date',array(':value','d-M-Y')),
|
||||
),
|
||||
);
|
||||
|
||||
public function lastuse() {
|
||||
// We'll find the last record
|
||||
foreach ($this->order_by('DATE_TIME DESC')->find_all() as $r)
|
||||
return $r;
|
||||
}
|
||||
|
||||
public function backupid() {
|
||||
return sprintf('%s.%s.%s',$this->BACKUP_SERIES,$this->BACKUP_OPERATION,$this->VOLUME_SEQ);
|
||||
}
|
||||
}
|
||||
?>
|
@ -63,7 +63,7 @@ class ORM extends Kohana_ORM {
|
||||
if (isset($this->_object_formated[$column]))
|
||||
return $this->_object_formated[$column];
|
||||
else
|
||||
return strlen((string)$value) ? $value : ' ';
|
||||
return HTML::nbsp($value);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
38
application/classes/slot.php
Normal file
38
application/classes/slot.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* PTA Show Slot Item.
|
||||
*
|
||||
* @package PTA
|
||||
* @subpackage TSM
|
||||
* @category Helpers
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 phpTSMadmin Development Team
|
||||
* @license http://phptsmadmin.sf.net/license.html
|
||||
*/
|
||||
class Slot {
|
||||
private $data = array();
|
||||
private $objects = array(
|
||||
'VOLUME'=>'barcodelabel',
|
||||
'LIBVOLUME'=>'barcodelabel',
|
||||
);
|
||||
|
||||
public function __construct(array $slot) {
|
||||
$this->data = $slot;
|
||||
}
|
||||
|
||||
public function __get($key) {
|
||||
if (isset($this->data[$key]))
|
||||
return $this->data[$key];
|
||||
// @todo Volume names may not be unique if there is more than 1 library.
|
||||
elseif (isset($this->objects[$key]))
|
||||
return ORM::factory($key,$this->__get($this->objects[$key]));
|
||||
else
|
||||
throw new Kohana_Exception('Undefined property :class:::property',array(':class'=>get_class($this),':property'=>$key));
|
||||
}
|
||||
|
||||
public function __toString() {
|
||||
return $this->slot;
|
||||
}
|
||||
}
|
||||
?>
|
@ -47,20 +47,26 @@ return array
|
||||
'DOMAINS' => 1200,
|
||||
'EVENTS' => 1200,
|
||||
'FILESPACES' => 1200,
|
||||
'LIBRARIES' => 1200,
|
||||
'LIBVOLUMES' => 1200,
|
||||
'MGMTCLASSES' => 1200,
|
||||
'NODES' => 1200,
|
||||
'OCCUPANCY' => 1200,
|
||||
'SCHEMA' => 604800,
|
||||
'STGPOOLS' => 1200,
|
||||
'SUMMARY' => 180,
|
||||
'VOLHISTORY' => 1200,
|
||||
'VOLUMES' => 1200,
|
||||
'VOLUMEUSAGE' => 1200,
|
||||
),
|
||||
'cachepreload' => array(
|
||||
'DEVCLASSES' => 1200,
|
||||
'DOMAINS' => 1200,
|
||||
'LIBVOLUMES' => 1200,
|
||||
'LIBRARIES' => 1200,
|
||||
'NODES' => 1200,
|
||||
'STGPOOLS' => 1200,
|
||||
'VOLHISTORY' => 1200,
|
||||
'VOLUMES' => 1200,
|
||||
),
|
||||
'profiling' => TRUE,
|
||||
|
76
application/views/library/detail.php
Normal file
76
application/views/library/detail.php
Normal file
@ -0,0 +1,76 @@
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td style="width: 50%; vertical-align: top;">
|
||||
<table class="box-full">
|
||||
<tr>
|
||||
<td class="head" colspan="5">Information for this Library</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="spacer"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 40%;">Name</td>
|
||||
<td style="width: 60%;" class="data"><?php echo $lo->display('LIBRARY_NAME'); ?></td>
|
||||
<tr>
|
||||
<td>Serial Number</td>
|
||||
<td class="data"><?php echo $lo->display('LIBRARY_SERIAL'); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Type</td>
|
||||
<td class="data"><?php echo $lo->display('LIBRARY_TYPE'); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Shared</td>
|
||||
<td class="data"><?php echo $lo->display('SHARED'); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>LAN Free</td>
|
||||
<td class="data"><?php echo $lo->display('LANFREE'); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Auto Label</td>
|
||||
<td class="data"><?php echo $lo->display('AUTOLABEL'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td style="width: 50%; vertical-align: top;">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100%; vertical-align: top;" colspan="2">
|
||||
<table class="box-full">
|
||||
<tr>
|
||||
<td class="head" colspan="5">Volumes in this Library</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="spacer"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Slot</td>
|
||||
<td>Barcode</td>
|
||||
<td>Usage</td>
|
||||
<td>Status/Access</td>
|
||||
<td>Library Access</td>
|
||||
<td>Utilisation</td>
|
||||
<td>Reclaim</td>
|
||||
<td>Last Read</td>
|
||||
<td>Last Write</td>
|
||||
</tr>
|
||||
<?php $i=0; foreach ($slots as $slot) { ?>
|
||||
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
|
||||
<td class="data"><acronym title="<?php printf('%s: %s',_('Element'),$slot->element); ?>"><?php echo $slot; ?></acronym></td>
|
||||
<td class="data"><?php echo $slot->barcodelabel; ?></td>
|
||||
<td class="data"><?php echo $slot->LIBVOLUME->volusage(); ?></td>
|
||||
<td class="data"><?php echo HTML::nbsp($slot->LIBVOLUME->status()); ?></td>
|
||||
<td class="data"><?php echo HTML::nbsp($slot->LIBVOLUME->access()); ?></td>
|
||||
<td class="data"><?php echo $slot->LIBVOLUME->VOLUME->display('PCT_UTILIZED'); ?></td>
|
||||
<td class="data"><?php echo $slot->LIBVOLUME->VOLUME->display('PCT_RECLAIM'); ?></td>
|
||||
<td class="data"><?php echo $slot->LIBVOLUME->VOLUME->display('LAST_READ_DATE'); ?></td>
|
||||
<td class="data"><?php echo HTML::nbsp($slot->LIBVOLUME->lastwrite()); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
@ -79,10 +79,10 @@
|
||||
<?php $i=0;foreach ($node->EVENT->find_all() as $eo) { ?>
|
||||
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
|
||||
<td class="data"><?php echo $eo->display('SCHEDULED_START'); ?></td>
|
||||
<td class="data"><?php echo $eo->ACTUAL_START ? $eo->display('ACTUAL_START') : ' '; ?></td>
|
||||
<td class="data"><?php echo HTML::nbsp($eo->display('ACTUAL_START')); ?></td>
|
||||
<td class="data"><?php echo $eo->display('SCHEDULE_NAME'); ?></td>
|
||||
<td class="data"><?php echo $eo->display('STATUS'); ?></td>
|
||||
<td class="data"><?php echo $eo->COMPLETED ? $eo->display('COMPLETED') : ' '; ?></td>
|
||||
<td class="data"><?php echo HTML::nbsp($eo->display('COMPLETED')); ?></td>
|
||||
<td class="data"><?php printf('%s %s',$eo->RESULT,$eo->display('REASON')); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
|
Reference in New Issue
Block a user