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'),
|
'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(
|
array_push($data,array(
|
||||||
'id'=>'node',
|
'id'=>'node',
|
||||||
'name'=>'Node Info',
|
'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);
|
return new Database_TSM_Result($result, $sql, $as_object, $params);
|
||||||
elseif ($type === Database::INSERT)
|
elseif ($type === Database::INSERT)
|
||||||
throw new Kohana_Exception('Database INSERTS are not supported');
|
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) {
|
public function list_tables($like = NULL) {
|
||||||
|
@ -11,12 +11,7 @@
|
|||||||
* @license http://phptsmadmin.sf.net/license.html
|
* @license http://phptsmadmin.sf.net/license.html
|
||||||
*/
|
*/
|
||||||
class Database_TSM_Result extends Database_Result {
|
class Database_TSM_Result extends Database_Result {
|
||||||
|
public function __construct($result, $sql, $as_object = FALSE, array $params = NULL) {
|
||||||
protected $_internal_row = 0;
|
|
||||||
private $_rows;
|
|
||||||
|
|
||||||
public function __construct($result, $sql, $as_object = FALSE, array $params = NULL)
|
|
||||||
{
|
|
||||||
parent::__construct($result, $sql, $as_object, $params);
|
parent::__construct($result, $sql, $as_object, $params);
|
||||||
|
|
||||||
$start = FALSE;
|
$start = FALSE;
|
||||||
@ -37,60 +32,5 @@ class Database_TSM_Result extends Database_Result {
|
|||||||
$this->_total_rows = $this->_internal_row;
|
$this->_total_rows = $this->_internal_row;
|
||||||
$this->_internal_row = 0;
|
$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]))
|
if (isset($this->_object_formated[$column]))
|
||||||
return $this->_object_formated[$column];
|
return $this->_object_formated[$column];
|
||||||
else
|
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,
|
'DOMAINS' => 1200,
|
||||||
'EVENTS' => 1200,
|
'EVENTS' => 1200,
|
||||||
'FILESPACES' => 1200,
|
'FILESPACES' => 1200,
|
||||||
|
'LIBRARIES' => 1200,
|
||||||
|
'LIBVOLUMES' => 1200,
|
||||||
'MGMTCLASSES' => 1200,
|
'MGMTCLASSES' => 1200,
|
||||||
'NODES' => 1200,
|
'NODES' => 1200,
|
||||||
'OCCUPANCY' => 1200,
|
'OCCUPANCY' => 1200,
|
||||||
'SCHEMA' => 604800,
|
'SCHEMA' => 604800,
|
||||||
'STGPOOLS' => 1200,
|
'STGPOOLS' => 1200,
|
||||||
'SUMMARY' => 180,
|
'SUMMARY' => 180,
|
||||||
|
'VOLHISTORY' => 1200,
|
||||||
'VOLUMES' => 1200,
|
'VOLUMES' => 1200,
|
||||||
'VOLUMEUSAGE' => 1200,
|
'VOLUMEUSAGE' => 1200,
|
||||||
),
|
),
|
||||||
'cachepreload' => array(
|
'cachepreload' => array(
|
||||||
'DEVCLASSES' => 1200,
|
'DEVCLASSES' => 1200,
|
||||||
'DOMAINS' => 1200,
|
'DOMAINS' => 1200,
|
||||||
|
'LIBVOLUMES' => 1200,
|
||||||
|
'LIBRARIES' => 1200,
|
||||||
'NODES' => 1200,
|
'NODES' => 1200,
|
||||||
'STGPOOLS' => 1200,
|
'STGPOOLS' => 1200,
|
||||||
|
'VOLHISTORY' => 1200,
|
||||||
'VOLUMES' => 1200,
|
'VOLUMES' => 1200,
|
||||||
),
|
),
|
||||||
'profiling' => TRUE,
|
'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) { ?>
|
<?php $i=0;foreach ($node->EVENT->find_all() as $eo) { ?>
|
||||||
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
|
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
|
||||||
<td class="data"><?php echo $eo->display('SCHEDULED_START'); ?></td>
|
<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('SCHEDULE_NAME'); ?></td>
|
||||||
<td class="data"><?php echo $eo->display('STATUS'); ?></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>
|
<td class="data"><?php printf('%s %s',$eo->RESULT,$eo->display('REASON')); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
Reference in New Issue
Block a user