From 66c3bc24f069a2854bdf1eeebb6dcb51f6ef0afb Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 28 Oct 2009 14:30:28 -0400
Subject: [PATCH] Implemented: FS#757 - Add "custom" option to transports

---
 interface/web/monitor/show_sys_state.php |  267 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 205 insertions(+), 62 deletions(-)

diff --git a/interface/web/monitor/show_sys_state.php b/interface/web/monitor/show_sys_state.php
index 7d4cab4..b695a46 100644
--- a/interface/web/monitor/show_sys_state.php
+++ b/interface/web/monitor/show_sys_state.php
@@ -48,23 +48,48 @@
 $app->tpl->newTemplate("form.tpl.htm");
 $app->tpl->setInclude('content_tpl','templates/show_sys_state.htm');
 
+/* Get some translations */
+$monTransRefreshsq = $app->lng("monitor_settings_refreshsq_txt");
+
 /*
  * setting the content
  */
 if ($_GET['state'] == 'server')
 {
     $output = _getServerState($_SESSION['monitor']['server_id'], $_SESSION['monitor']['server_name'], true);
-    $title = "Server State";
+    $title = $app->lng("monitor_general_serverstate_txt");
+    $stateType = 'server';
 }
 else
 {
     $output = _getSysState();
-    $title = "System State";
+    $title = $app->lng("monitor_general_systemstate_txt");
+    $stateType = 'system';
 }
 
 $app->tpl->setVar("state_data",$output);
+$app->tpl->setVar("state_type",$stateType);
 $app->tpl->setVar("title",$title);
 $app->tpl->setVar("description",$description);
+$app->tpl->setVar("monTransRefreshsq", $monTransRefreshsq);
+
+/*
+ Creating the array with the refresh intervals
+ Attention: the core-module ist triggered every 5 minutes,
+            so reload every 2 minutes is impossible!
+*/
+$refresh = (isset($_GET["refresh"]))?intval($_GET["refresh"]):0;
+
+$refresh_values = array('0' => '- '.$app->lng("No Refresh").' -','5' => '5 '.$app->lng("minutes"),'10' => '10 '.$app->lng("minutes"),'15' => '15 '.$app->lng("minutes"),'30' => '30 '.$app->lng("minutes"),'60' => '60 '.$app->lng("minutes"));
+$tmp = '';
+foreach($refresh_values as $key => $val) {
+	if($key == $refresh) {
+		$tmp .= "<option value='$key' SELECTED>$val</option>";
+	} else {
+		$tmp .= "<option value='$key'>$val</option>";
+	}
+}
+$app->tpl->setVar("refresh",$tmp);
 
 /*
  * doing the output
@@ -100,9 +125,6 @@
     /*  The State of the server */
     $serverState = 'ok';
 
-    /** The Number of several infos, warnings, errors, ... */
-    $count = array('unknown' => 0, 'info' => 0, 'warning' => 0, 'critical' => 0, 'error' => 0);
-
     /** The messages */
     $messages = array();
 
@@ -118,18 +140,19 @@
         _processDbState($record['type'], $serverId, &$serverState, &$messages);
     }
 
-    $res .= '<div class="systemmonitor-state systemmonitor-state-' . $serverState . '">';
-    $res .= '<div class="systemmonitor-serverstate">';
-    $res .= '<div class="systemmonitor-state-' . $serverState . '-icon">';
-    $res .= 'Server: ' . $serverName . '<br />';
-    $res .= 'State: ' . $serverState . '<br />';
-    //        $res .= sizeof($messages['ok']) . ' ok | ';
-    $res .= sizeof($messages['unknown']) . ' unknown | ';
-    $res .= sizeof($messages['info']) . ' info | ';
-    $res .= sizeof($messages['warning']) . ' warning | ';
-    $res .= sizeof($messages['critical']) . ' critical | ';
-    $res .= sizeof($messages['error']) . ' error <br />';
+    $res .= '<div class="systemmonitor-state state-'.$serverState.'">';
+    $res .= '<div class="systemmonitor-device device-server">';
+    $res .= '<div class="systemmonitor-content icons32 ico-'.$serverState.'">';
+    $res .= $app->lng("monitor_serverstate_server_txt") . ': ' . $serverName . '<br />';
+    $res .= $app->lng("monitor_serverstate_state_txt") . ': ' . $serverState . '<br />';
+    //        $res .= sizeof($messages[$app->lng("monitor_serverstate_listok_txt")]) . ' ok | ';
+    $res .= sizeof($messages[$app->lng("monitor_serverstate_listunknown_txt")]) . ' ' . $app->lng("monitor_serverstate_unknown_txt") . ' | ';
+    $res .= sizeof($messages[$app->lng("monitor_serverstate_listinfo_txt")]) . ' ' . $app->lng("monitor_serverstate_info_txt") . ' | ';
+    $res .= sizeof($messages[$app->lng("monitor_serverstate_listwarning_txt")]) . ' ' . $app->lng("monitor_serverstate_warning_txt") . ' | ';
+    $res .= sizeof($messages[$app->lng("monitor_serverstate_listcritical_txt")]) . ' ' . $app->lng("monitor_serverstate_critical_txt") . ' | ';
+    $res .= sizeof($messages[$app->lng("monitor_serverstate_listerror_txt")]) . ' ' . $app->lng("monitor_serverstate_error_txt") . '<br />';
     $res .= '<br />';
+
     if ($showAll){
         /*
          * if we have to show all, then we do it...
@@ -142,7 +165,7 @@
             /*
              * There is no need, to show the "ok" - messages
              */
-            if ($key != 'ok')
+//            if ($key != 'ok')
             {
                 $res .= $key . ':<br />';
                 foreach ($state as $msg)
@@ -158,7 +181,7 @@
         /*
          * if not, we only show a link to the server...
          */
-        $res .= "<a href='#' onclick='loadContent(\"monitor/show_sys_state.php?state=server&server=" . $serverId . '|' . $serverName . "\");'> More information...</a>";
+        $res .= "<a href='#' onclick='loadContent(\"monitor/show_sys_state.php?state=server&server=" . $serverId . '|' . $serverName . "\");'>" . $app->lng("monitor_serverstate_moreinfo_txt") . "</a>";
     }
     $res .= '</div>';
     $res .= '</div>';
@@ -168,9 +191,9 @@
         /*
          * Show some state-info
          */
-        $res .= showServerLoad();
-        $res .= '&nbsp;'. showDiskUsage();
-        $res .= '&nbsp;'.showServices();
+        //$res .= showServerLoad();
+        //$res .= '&nbsp;'. showDiskUsage();
+        //$res .= '&nbsp;'.showServices();
     }
 
 
@@ -192,8 +215,6 @@
     $record = $app->db->queryOneRecord("SELECT state FROM monitor_data WHERE type = '" . $type . "' and server_id = " . $serverId . " order by created desc");
     // change the new state to the highest state
     $serverState = _setState($serverState, $record['state']);
-    // count the states
-    $count[$record['state']]+= 1;
 
     /*
      * The message depands on the type and the state
@@ -204,29 +225,29 @@
     if ($type == 'disk_usage'){
         switch ($record['state']) {
             case 'ok':
-                $messages['ok'][] = 'The state of your Hard-Disk space is ok ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_hdok_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             case 'info':
-                $messages['info'][] = 'Your Hard-Disk space is going full ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listinfo_txt")][] = $app->lng("monitor_serverstate_hdgoingfull_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             case 'warning':
-                $messages['warning'][] = 'Your Hard-Disk is nearly full ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_hdnearlyfull_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             case 'critical':
-                $messages['critical'][] = 'Your Hard-Disk is very full '.
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listcritical_txt")][] = $app->lng("monitor_serverstate_hdveryfull_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             case 'error':
-                $messages['error'][] = 'Your Hard-Disk has no more space left ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_hdfull_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
 
             default:
-                $messages['unknown'][] = 'Hard-Disk: ??? ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_hdunknown_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=disk_usage\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
         }
     }
@@ -236,54 +257,173 @@
     if ($type == 'server_load'){
         switch ($record['state']) {
             case 'ok':
-                $messages['ok'][] = 'Your Server load is ok ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_loadok_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             case 'info':
-                $messages['info'][] = 'Your Server in under heavy load ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listinfo_txt")][] = $app->lng("monitor_serverstate_loadheavy_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             case 'warning':
-                $messages['warning'][] = 'Your Server in under high load ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_loadhigh_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             case 'critical':
-                $messages['critical'][] = 'Your Server in under higher load ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listcritical_txt")][] = $app->lng("monitor_serverstate_loadhigher_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             case 'error':
-                $messages['error'][] = 'Your Server in under highest load ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_loadhighest_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             default:
-                $messages['unknown'][] = 'Server Load: ??? ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_loadunknown_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=server_load\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
         }
     }
     if ($type == 'services'){
         switch ($record['state']) {
             case 'ok':
-                $messages['ok'][] = 'All needed Services are online ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=services\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_servicesonline_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=services\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
 
                 break;
             case 'error':
-                $messages['error'][] = 'One or more needed Services are offline ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=services\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_servicesoffline_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=services\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
             default:
-                $messages['unknown'][] = 'services:??? ' .
-                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=services\");'>[more...]</a>";
+                $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_servicesunknown_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=services\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
                 break;
         }
     }
+    if ($type == 'system_update'){
+        switch ($record['state']) {
+            case 'ok':
+                $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_updatesok_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=system_update\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+
+                break;
+            case 'warning':
+                $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_updatesneeded_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=system_update\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'no_state':
+                /*
+                 *  not debian and not Ubuntu, so the state could not be monitored...
+                 */
+                break;
+            default:
+                $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_updatesunknown_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=system_update\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+        }
+    }
+
+    if ($type == 'raid_state'){
+        switch ($record['state']) {
+            case 'ok':
+                $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_raidok_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=raid_state\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'info':
+                $messages[$app->lng("monitor_serverstate_listinfo_txt")][] = $app->lng("monitor_serverstate_raidresync_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=raid_state\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'critical':
+                $messages[$app->lng("monitor_serverstate_listcritical_txt")][] = $app->lng("monitor_serverstate_raidfault_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=raid_state\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'error':
+                $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_raiderror_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=raid_state\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'no_state':
+                /*
+                 *  mdadm is not installed or the RAID is not supported...
+                 */
+                break;
+            default:
+                $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_raidunknown_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=raid_state\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+        }
+    }
+
+
+    if ($type == 'mailq'){
+        switch ($record['state']) {
+            case 'ok':
+                $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_mailqok_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=mailq\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'info':
+                $messages[$app->lng("monitor_serverstate_listinfo_txt")][] = $app->lng("monitor_serverstate_mailqheavy_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=mailq\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'warning':
+                $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_mailqhigh_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=mailq\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'critical':
+                $messages[$app->lng("monitor_serverstate_listcritical_txt")][] = $app->lng("monitor_serverstate_mailqhigher_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=mailq\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'error':
+                $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_mailqhighest_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=mailq\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            default:
+                $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_mailqunknown_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_data.php?type=mailq\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+        }
+    }
+
+    if ($type == 'sys_log'){
+        switch ($record['state']) {
+            case 'ok':
+                $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_syslogok_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/log_list.php\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'warning':
+                $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_syslogwarning_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/log_list.php\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'error':
+                $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_syslogerror_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/log_list.php\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            default:
+                $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_syslogunknown_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/log_list.php\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+        }
+    }
+
     if ($type == 'log_clamav'){
         /* this type has no state */
     }
-    if ($type == 'log_freshclam'){
-        /* this type has no state */
+
+	if ($type == 'log_freshclam'){
+        switch ($record['state']) {
+            case 'ok':
+                $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_fclamok_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_log.php?log=log_freshclam\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            case 'warning':
+                $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_fclamoutdated_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_log.php?log=log_freshclam\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+            default:
+                $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_fclamunknown_txt") . ' ' .
+                                    "<a href='#' onclick='loadContent(\"monitor/show_log.php?log=log_freshclam\");'>[" . $app->lng("monitor_serverstate_more_txt") . "]</a>";
+                break;
+        }
     }
+
     if ($type == 'log_ispconfig'){
         /* this type has no state */
     }
@@ -299,6 +439,9 @@
     if ($type == 'log_messages'){
         /* this type has no state */
     }
+    if ($type == 'rkhunter'){
+        /* this type has no state */
+    }
 }
 
  /*
@@ -311,9 +454,9 @@
   */
 function _setState($oldState, $newState)
 {
-        /*
-         * Calculate the weight of the old state
-         */
+   /*
+    * Calculate the weight of the old state
+    */
     switch ($oldState) {
         case 'no_state': $oldInt = 0;
             break;
@@ -350,9 +493,9 @@
             break;
     }
 
-        /*
-         * Set to the higher level
-         */
+   /*
+    * Set to the higher level
+    */
     if ($newInt > $oldInt){
         return $newState;
     }
@@ -362,4 +505,4 @@
     }
 }
 
-?>
\ No newline at end of file
+?>

--
Gitblit v1.9.1