var $StartDate;
var $EndDate;
var $driver;
+ var $dbs;
+ var $dbs_name;
function Bweb() {
$conf = new Config_File (CONFIG_DIR);
-
-
- $this->dsn['hostspec'] = $conf->get(CONFIG_FILE,"DATABASE","host");
- $this->dsn['username'] = $conf->get(CONFIG_FILE,"DATABASE","login");
- $this->dsn['password'] = $conf->get(CONFIG_FILE,"DATABASE","pass");
- $this->dsn['database'] = $conf->get(CONFIG_FILE,"DATABASE","db_name");
- $this->dsn['phptype'] = $conf->get(CONFIG_FILE,"DATABASE","db_type"); // mysql, (sqlite, pgsql) -->> Yet not checked
- if ( $conf->get(CONFIG_FILE,"DATABASE","db_port") )
- $this->dsn[port] = $conf->get(CONFIG_FILE,"DATABASE","db_port");
+ $this->dbs = array();
+ $i = 2;
+ $sections = $conf->get(CONFIG_FILE,"DATABASE","host");
+ array_push($this->dbs, "DATABASE");
+ while ( !empty($sections) ) {
+ $sections = $conf->get(CONFIG_FILE,"DATABASE".$i,"host");
+ if ( !empty($sections) )
+ array_push($this->dbs,"DATABASE".$i);
+ $i++;
+ }
+
+ if ( $i < 4)
+ $sec = "DATABASE";
+ else {
+ if ( !empty($_POST['sel_database']) ) {
+ $_SESSION['DATABASE'] = $_POST['sel_database'];
+ $sec = $_POST['sel_database'];
+ } else {
+ if (isset($_SESSION['DATABASE']) )
+ $sec = $_SESSION['DATABASE'];
+ else
+ $sec = "DATABASE";
+ }
+ }
+
+ $this->dsn['hostspec'] = $conf->get(CONFIG_FILE,$sec,"host");
+ $this->dsn['username'] = $conf->get(CONFIG_FILE,$sec,"login");
+ $this->dsn['password'] = $conf->get(CONFIG_FILE,$sec,"pass");
+ $this->dsn['database'] = $conf->get(CONFIG_FILE,$sec,"db_name");
+ $this->dsn['phptype'] = $conf->get(CONFIG_FILE,$sec,"db_type"); // mysql, pgsql
+ if ( $conf->get(CONFIG_FILE,$sec,"db_port") )
+ $this->dsn[port] = $conf->get(CONFIG_FILE,$sec,"db_port");
$this->link =& $this->connect($this->dsn);
die($this->link->getMessage());
$this->driver = $this->dsn[phptype];
register_shutdown_function(array(&$this,'close'));
- }
-
-
+ $this->dbs_name = $this->dsn['database'];
+ }
function close() {
$this->link->disconnect();
- }
+ }
or die("classes.inc: Error query: 1");
$return =& $result->fetchRow();
return $return[0];
- }//end function
+ }//end function
or die("classes.inc: Error query: 2");
$return =& $result->fetchRow();
return $return[0];
- }//end function
+ }//end function
$dbsize = $this->link->query("show table status")
or die ("classes.inc: Error query: 3");
if ( $dbsize->numRows() ) {
- while ( $res = $dbsize->fetchRow() )
- $database_size += $res[5];
+ while ( $res = $dbsize->fetchRow(DB_FETCHMODE_ASSOC) )
+ $database_size += $res["Data_length"];
}
else
return 0;
}
else if ( $this->driver == "pgsql") {
- $dbsize = $this->link->query("select database_size('bacula')")
+ $dbsize = $this->link->query("select pg_database_size('$this->dbs_name')")
or die ("classes.inc: Error query: 4");
+ if (PEAR::isError($dbsize))
+ die($dbsize->getMessage());
if ( $dbsize->numRows() ) {
while ( $res = $dbsize->fetchRow() )
$database_size += $res[0];
$graph->SetXDataLabelAngle(90);
else
$graph->SetXDataLabelAngle(0);
-// $graph->SetNumXTicks(10);
+ $graph->SetNumXTicks(1);
// $graph->SetXDataLabelPos('none');
// $graph->SetXTickLabelPos('plotdown');
$result->free();
break;
case BACULA_TYPE_BYTES_ENDTIME_ALLJOBS: // Special: Generic graph from all clientes.
- $i = -1; // Counter of number of jobs of one cliente. SP: Contador del nmero de jobs totales de un cliente.
+ $i = -1; // Counter of number of jobs of one client. SP: Contador del nmero de jobs totales de un cliente.
$i2 = 0; // Counter of number of keys of array. SP: Contador del nmero de valores del array.
if ($DB_bacula->driver == "mysql") {
or die ("classes.inc: Error at query: 8");
}
else if ($DB_bacula->driver == "pgsql") {
- $res = $DB_bacula->link->query("select Name from Job where EndTime > now()) - $this->elapsed group by Name order by Name desc")
+ $res = $DB_bacula->link->query("select Name from Job where EndTime > now() - 1*interval'$this->elapsed s' group by Name order by Name desc")
or die ("classes.inc: Error at query: 8");
- $resdata = $DB_bacula->link->query("select date_format(EndTime,\"%Y-%m-%d\") from Job where EndTime > NOW() - $this->elapsed group by date_format(EndTime,\"%Y-%m-%d\") order by EndTime")
+ $resdata = $DB_bacula->link->query("select to_char(EndTime,'YY-MM-DD') from Job where EndTime > NOW() - 1*interval'$this->elapsed s' group by EndTime order by EndTime")
or die ("classes.inc: Error at query: 9");
}
+ if (PEAR::isError($resdata))
+ die("classes.inc: Error at query: 9.1<br>".$resdata->getMessage());
while ( $tmpdata = $res->fetchRow() )
array_push($this->clientes,$tmpdata[0]);
$count++;
array_push($spr,$tmpdata[0]);
if ($DB_bacula->driver == "mysql")
- $result = $DB_bacula->link->query("select date_format(EndTime,\"%Y-%m-%d\"),SUM(JobBytes),Name,count(Name) as Nname from Job WHERE EndTime like '$tmpdata[0]%' group by Name order by Name desc")
+ $result = $DB_bacula->link->query("select date_format(EndTime,\"%Y-%m-%d\"),SUM(JobBytes) as sum,Name as name,count(Name) as Nname from Job WHERE EndTime like '$tmpdata[0]%' group by Name order by Name desc")
or die ("classes.inc: Error at query: 10");
- else if ($DB_bacula->driver == "pgsql")
- $result = $DB_bacula->link->query("select date_format(EndTime,'%Y-%m-%d'),SUM(JobBytes),Name,count(Name) as Nname from Job WHERE EndTime like '$tmpdata[0]%' group by EndTime,Name order by Name desc")
+ else if ($DB_bacula->driver == "pgsql") {
+ $query = "select to_char(EndTime,'YY-MM-DD'),SUM(JobBytes) as sum,Name,count(Name) as Nname from Job WHERE EndTime like '%$tmpdata[0]%' group by EndTime,Name order by Name desc";
+ $result = $DB_bacula->link->query($query)
or die ("classes.inc: Error at query: 11");
+ }
while ( $row = $result->fetchRow(DB_FETCHMODE_ASSOC) ) {
- $spr2 = array_merge($spr2,array($row["Name"]=>$row["SUM(JobBytes)"]));
+ $spr2 = array_merge($spr2,array($row["name"]=>$row["sum"]));
$i = $result->numRows();
}
// echo "</pre>";
reset ($this->clientes);
- do {
+ do {
if ( $spr2[current($this->clientes)] != NULL)
array_push($spr,$spr2[current($this->clientes)]);
else
$spr = array();
$spr2 = array();
}
-
+
for ( $i = 0; $i < count($whole_result); $i++ ) { // To equal the arrays so that the graph is not unsquared. SP:Igualamos las matrices para que la gr�ica no se descuadre
$tmp = count($whole_result[$i]);
if ( $i2 < $tmp ) // Estupidez?. Check this code later...
- //Conversi� de la fecha a Mysql-format para Smarty. THE SAME FUNCTION AT 2 CLASSES. THIS WAY IS BUGGY. TO SOLVE LATER.
+ //Convert date from mysql to smarty. THE SAME FUNCTION AT 2 CLASSES. THIS WAY IS BUGGY. TO SOLVE LATER.
function PrepareDate($StartDateMonth,$StartDateDay,$StartDateYear,$EndDateMonth,$EndDateDay,$EndDateYear){
$this->StartDate = $StartDateYear."-".$StartDateMonth."-".$StartDateDay." 00:00:00";