From 8edabf647814a012307bbf68628e4656ecf89eff Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Wed, 30 Apr 2014 14:12:28 -0400
Subject: [PATCH] Merge remote-tracking branch 'ispc/master'

---
 interface/lib/classes/tools_monitor.inc.php |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/interface/lib/classes/tools_monitor.inc.php b/interface/lib/classes/tools_monitor.inc.php
index 52888e8..db8c91e 100644
--- a/interface/lib/classes/tools_monitor.inc.php
+++ b/interface/lib/classes/tools_monitor.inc.php
@@ -118,6 +118,47 @@
 		return $html;
 	}
 
+	function showDatabaseSize () {
+		global $app;
+		/* fetch the Data from the DB */
+		$record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'database_size' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
+		if(isset($record['data'])) {
+			$data = unserialize($record['data']);
+			//* format the data
+			$html =
+				'<div class="systemmonitor-state state-'.$record['state'].'">
+	                <div class="systemmonitor-content icons32 ico-'.$record['state'].'">
+                	<table><thead><tr>
+                	<td>'.$app->lng("monitor_database_name_txt").'</td>
+	                <td>'.$app->lng("monitor_database_size_txt").'</td>
+        	        <td>'.$app->lng("monitor_database_client_txt").'</td>
+					<td>'.$app->lng("monitor_database_domain_txt").'</td>
+                	</tr>';
+			foreach($data as $line) {
+				$html .= '<tr>';
+				if ($line['size'] > 0) $line['size'] = $app->functions->formatBytes($line['size']);
+
+				//* get the client
+				$line['client']=$app->db->queryOneRecord("SELECT client.username 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='".$line['database_name']."'")['username'];
+
+				//* get the domain
+				$line['domain']=$app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id=(SELECT parent_domain_id FROM web_database WHERE database_name='".$line['database_name']."')")['domain'];
+
+				//* remove the sys_groupid from output
+				unset($line['sys_groupid']);
+
+				foreach ($line as $item) {
+					$html .= '<td>' . $item . '</td>';
+				}
+				$html .= '</tr></tmpl loop>';
+			}
+			$html .= '</tbody></table></div></div>';
+		} else {
+			$html = '<p>'.$app->lng("no_data_database_size_txt").'</p>';
+		}
+		return $html;
+	}
+
 	function showMemUsage () {
 		global $app;
 
@@ -455,6 +496,40 @@
 		return $html;
 	}
 
+	function showMongoDB() {
+		global $app;
+
+		/* fetch the Data from the DB */
+		$record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'log_mongodb' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");
+
+		if(isset($record['data'])) {
+			$html =
+				'<div class="systemmonitor-state state-'.$record['state'].'">
+                <div class="systemmonitor-content icons32 ico-'.$record['state'].'">';
+
+			/*
+             * First, we have to detect, if there is any monitoring-data.
+             * If not (because mongodb is not installed) show this.
+            */
+			$data = unserialize($record['data']);
+			if ($data == '') {
+				$html .= '<p>'.
+					'MongoDB is not installed at this server.<br />' .
+					'See more (for debian) <a href="http://www.howtoforge.com/fail2ban_debian_etch" target="htf">here...</a>'.
+					'</p>';
+			}
+			else {
+				$html .= nl2br($data);
+			}
+			$html .= '</div></div>';
+
+		} else {
+			$html = '<p>There is no data available at the moment.</p>';
+		}
+
+		return $html;
+	}
+
 	function showIPTables() {
 		global $app;
 		$record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'iptables_rules' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc");

--
Gitblit v1.9.1