diff --git a/src/images/icons/table_sql_run.png b/src/images/icons/table_sql_run.png
new file mode 100644
index 0000000..d4bdb8e
Binary files /dev/null and b/src/images/icons/table_sql_run.png differ
diff --git a/src/lang/en/main.php b/src/lang/en/main.php
index 171957a..8f022b4 100644
--- a/src/lang/en/main.php
+++ b/src/lang/en/main.php
@@ -376,6 +376,9 @@ $content['LN_REPORTS_SAVEDREPORTS'] = "Saved reports";
$content['LN_REPORTS_ADMIN'] = "Administrate Reports";
$content['LN_REPORTMENU_LIST'] = "List installed Reports";
$content['LN_REPORTMENU_ONLINELIST'] = "All Available Reports";
-
+$content['LN_REPORTS_INFORMATION'] = "This page shows a list of installed and available reports including saved report configurations.
+
To run a report, click on the buttons right to the Saved Reports.
+
Attention! Generating reports can be very time consuming depending on the size of your database.
+";
?>
\ No newline at end of file
diff --git a/src/reports.php b/src/reports.php
new file mode 100644
index 0000000..9077cc9
--- /dev/null
+++ b/src/reports.php
@@ -0,0 +1,143 @@
+ Helps administrating report modules
+ *
+ * All directives are explained within this file
+ *
+ * Copyright (C) 2008-2010 Adiscon GmbH.
+ *
+ * This file is part of LogAnalyzer.
+ *
+ * LogAnalyzer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * LogAnalyzer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with LogAnalyzer. If not, see .
+ *
+ * A copy of the GPL can be found in the file "COPYING" in this
+ * distribution
+ *********************************************************************
+*/
+
+// *** Default includes and procedures *** //
+define('IN_PHPLOGCON', true);
+$gl_root_path = './';
+
+// Now include necessary include files!
+include($gl_root_path . 'include/functions_common.php');
+include($gl_root_path . 'include/functions_frontendhelpers.php');
+include($gl_root_path . 'include/functions_filters.php');
+include($gl_root_path . 'include/functions_reports.php');
+
+InitPhpLogCon();
+InitSourceConfigs();
+InitFrontEndDefaults(); // Only in WebFrontEnd
+InitFilterHelpers(); // Helpers for frontend filtering!
+// ---
+
+// --- BEGIN Custom Code
+
+// Firts of all init List of Reports!
+InitReportModules();
+
+if ( isset($content['REPORTS']) )
+{
+ // This will enable to Stats View
+ $content['reportsenabled'] = true;
+
+ $i = 0; // Help counter!
+ foreach ($content['REPORTS'] as &$myReport )
+ {
+ // Set if help link is enabled
+ if ( strlen($myReport['ReportHelpArticle']) > 0 )
+ $myReport['ReportHelpEnabled'] = true;
+ else
+ $myReport['ReportHelpEnabled'] = false;
+
+ // check for custom fields
+ if ( $myReport['NeedsInit'] ) // && count($myReport['CustomFieldsList']) > 0 )
+ {
+ // Needs custom fields!
+ $myReport['EnableNeedsInit'] = true;
+
+ if ( $myReport['Initialized'] )
+ {
+ $myReport['InitEnabled'] = false;
+ $myReport['DeleteEnabled'] = true;
+ }
+ else
+ {
+ $myReport['InitEnabled'] = true;
+ $myReport['DeleteEnabled'] = false;
+ }
+ }
+
+ // --- Set CSS Class
+ if ( $i % 2 == 0 )
+ {
+ $myReport['cssclass'] = "line1";
+ $myReport['rowbegin'] = '
';
+ $myReport['rowend'] = ' | ';
+ }
+ else
+ {
+ $myReport['cssclass'] = "line2";
+ $myReport['rowbegin'] = '';
+ $myReport['rowend'] = ' |
';
+ }
+ $i++;
+ // ---
+
+ // --- Check for saved reports!
+ if ( isset($myReport['SAVEDREPORTS']) && count($myReport['SAVEDREPORTS']) > 0 )
+ {
+ $myReport['HASSAVEDREPORTS'] = "true";
+ $myReport['SavedReportRowSpan'] = ( count($myReport['SAVEDREPORTS']) + 1);
+
+ $j = 0; // Help counter!
+ foreach ($myReport['SAVEDREPORTS'] as &$mySavedReport )
+ {
+ // --- Set CSS Class
+ if ( $j % 2 == 0 )
+ $mySavedReport['srcssclass'] = "line1";
+ else
+ $mySavedReport['srcssclass'] = "line2";
+ $j++;
+ // ---
+ }
+ }
+ // ---
+ }
+}
+else
+{
+ $content['LISTREPORTS'] = "false";
+ $content['ISERROR'] = true;
+ $content['ERROR_MSG'] = $content['LN_REPORTS_ERROR_NOREPORTS'];
+}
+// --- END Custom Code
+
+// --- BEGIN CREATE TITLE
+$content['TITLE'] = InitPageTitle();
+// Append custom title part!
+$content['TITLE'] .= " :: " . $content['LN_MENU_REPORTS'];
+// --- END CREATE TITLE
+
+// --- Parsen and Output
+InitTemplateParser();
+$page -> parser($content, "reports.html");
+$page -> output();
+// ---
+?>
\ No newline at end of file
diff --git a/src/templates/include_menu.html b/src/templates/include_menu.html
index 1526de1..26e8f65 100644
--- a/src/templates/include_menu.html
+++ b/src/templates/include_menu.html
@@ -20,7 +20,7 @@
-
+
diff --git a/src/templates/reports.html b/src/templates/reports.html
new file mode 100644
index 0000000..122fb09
--- /dev/null
+++ b/src/templates/reports.html
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {LN_MENU_REPORTS} |
+
+
+
{LN_REPORTS_INFORMATION}
|
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+{rowbegin}
+
+
+{rowend}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  |
+ {reportid} |
+
+
+ {reportname}
+
+
+ {reportname}
+
+ |
+ {reportdescription} |
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+ {LN_GEN_ERRORRETURNPREV}
+
+
+
+
+
+
+
+
+
\ No newline at end of file