From 4569cae57f127afd093794310ccd290d2d9fdf36 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 20 Apr 2016 10:58:46 -0400
Subject: [PATCH] Merge branch 'stable-3.1'

---
 interface/web/sites/database_quota_stats.php |   67 ++++++++++++++++++++-------------
 1 files changed, 41 insertions(+), 26 deletions(-)

diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php
index 7815faa..faf3621 100644
--- a/interface/web/sites/database_quota_stats.php
+++ b/interface/web/sites/database_quota_stats.php
@@ -19,21 +19,26 @@
 
 $app->load('listform_actions');
 
-$tmp_rec =  $app->db->queryOneRecord("SELECT data from monitor_data WHERE type = 'database_size' ORDER BY created DESC");
+$tmp_rec =  $app->db->queryAllRecords("SELECT server_id, data from monitor_data WHERE type = 'database_size' ORDER BY created DESC");
 $monitor_data = array();
-$tmp_array = unserialize($tmp_rec['data']);
+if(is_array($tmp_rec)) {
+	for($i = 0; $i < count($tmp_rec); $i++) {
+		$tmp_array = unserialize($tmp_rec[$i]['data']);
+		$server_id = $tmp_rec[$i]['server_id'];
 
-foreach($tmp_array as $database_name => $data) {
-	$db_name = $data['database_name'];
+		foreach($tmp_array as $database_name => $data) {
+			$db_name = $data['database_name'];
 
-	$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE web_database.sys_groupid = sys_group.groupid AND sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
-
-	$monitor_data[$db_name]['database_name'] = $data['database_name'];
-	$monitor_data[$db_name]['client'] = isset($temp['username']) ? $temp['username'] : '';
-	$monitor_data[$db_name]['used'] = isset($data['size']) ? $data['size'] : 0;
-	$monitor_data[$db_name]['quota'] = isset($temp['database_quota']) ? $temp['database_quota'] : 0;
-
-	unset($temp);
+			$temp = $app->db->queryOneRecord("SELECT client.username, web_database.database_quota FROM web_database, sys_group, client WHERE sys_group.client_id = client.client_id AND web_database.database_name = ?", $db_name);
+			if(is_array($temp) && !empty($temp)) {
+				$monitor_data[$server_id.'.'.$db_name]['database_name'] = $data['database_name'];
+				$monitor_data[$server_id.'.'.$db_name]['client'] = isset($temp['username']) ? $temp['username'] : '';
+				$monitor_data[$server_id.'.'.$db_name]['used'] = isset($data['size']) ? $data['size'] : 0;
+				$monitor_data[$server_id.'.'.$db_name]['quota'] = isset($temp['database_quota']) ? $temp['database_quota'] : 0;
+			}
+			unset($temp);
+		}
+	}
 }
 
 class list_action extends listform_actions {
@@ -48,26 +53,36 @@
 		$rec['bgcolor'] = $this->DataRowColor;
 
 		$database_name = $rec['database_name'];
+		
+		if(!empty($monitor_data[$rec['server_id'].'.'.$database_name])){
+			$rec['database'] = $monitor_data[$rec['server_id'].'.'.$database_name]['database_name'];
+			$rec['client'] = $monitor_data[$rec['server_id'].'.'.$database_name]['client'];
+			$rec['server_name'] = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $rec['server_id'])['server_name'];
+			$rec['used'] = $monitor_data[$rec['server_id'].'.'.$database_name]['used'];
+			$rec['quota'] = $monitor_data[$rec['server_id'].'.'.$database_name]['quota'];
 
-		$rec['database'] = $monitor_data[$database_name]['database_name'];
-		$rec['client'] = $monitor_data[$database_name]['client'];
-		$rec['server_name'] = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $rec['server_id'])['server_name'];
-		$rec['used'] = $monitor_data[$database_name]['used'];
-		$rec['quota'] = $monitor_data[$database_name]['quota'];
+			if($rec['quota'] == 0){
+				$rec['quota'] = $app->lng('unlimited');
+				$rec['percentage'] = '';
+			} else {
+				if ($rec['used'] > 0 ) $rec['percentage'] = round(100 * intval($rec['used']) / ( intval($rec['quota'])*1024*1024) ).'%';
+				$rec['quota'] .= ' MB';
+			}
 
-		if($rec['quota'] == 0){
-			$rec['quota'] = $app->lng('unlimited');
-			$rec['percentage'] = '';
+			if ($rec['used'] > 0) $rec['used'] = $app->functions->formatBytes($rec['used']);
 		} else {
-			if ($rec['used'] > 0 ) $rec['percentage'] = round(100 * intval($rec['used']) / ( intval($rec['quota'])*1024*1024) ).'%';
-			$rec['quota'] .= ' MB';
+			$web_database = $app->db->queryOneRecord("SELECT * FROM web_database WHERE database_id = ?", $rec[$this->idx_key]);
+			$rec['database'] = $rec['database_name'];
+			$rec['server_name'] = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $web_database['server_id'])['server_name'];
+			$sys_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE groupid = ?", $web_database['sys_groupid']);
+			$client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", $sys_group['client_id']);
+			$rec['client'] = $client['username'];
+			$rec['used'] = 'n/a';
+			$rec['quota'] = 'n/a';
 		}
-
-		if ($rec['used'] > 0) $rec['used'] = $app->functions->formatBytes($rec['used']);
-
 		$rec['id'] = $rec[$this->idx_key];
-		return $rec;
 
+		return $rec;
 	}
 
 }

--
Gitblit v1.9.1