Module: appdb Branch: master Commit: 2916ad44a231d9ce05552f06cd2bc3686b14766b URL: http://source.winehq.org/git/appdb.git/?a=commit;h=2916ad44a231d9ce05552f06c...
Author: Rosanne DiMesio dimesio@earthlink.net Date: Thu Aug 10 10:08:40 2017 -0500
Enable admins to view error logs online
Removes the unused function to email admins error log entries and adds functions needed to view them online in the admin control center.
Signed-off-by: Rosanne DiMesio dimesio@earthlink.net Signed-off-by: Jeremy Newman jnewman@codeweavers.com
---
admin.php | 8 ++- include/error_log.php | 133 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 97 insertions(+), 44 deletions(-)
diff --git a/admin.php b/admin.php index b608019..5f89a4b 100644 --- a/admin.php +++ b/admin.php @@ -327,7 +327,9 @@ function showChoices()
echo '<a href="admin.php?sAction=purgeRejectedVendors" class="list-group-item"><h4>Purge rejected vendors</h4></a>';
- echo '<a href="admin.php?sAction=deleteOldErrorLogs" class="list-group-item"><h4>Delete Old Error Logs</h4></a>'; + echo '<a href="admin.php?sAction=deleteOldErrorLogs" class="list-group-item"><h4>Delete old error logs</h4></a>'; + + echo '<a href ="'.BASE.'objectManager.php?sClass=error_log&sTitle=View+Error_log" class="list-group-item"><h4>View Error log entries</h4></a>';
echo '<a href="admin.php?sAction=updateVersionRatings" class="list-group-item"><h4>Update version ratings</h4></a>';
@@ -372,6 +374,10 @@ switch(getInput('sAction', $aClean)) case 'deleteOldErrorLogs': deleteOldErrorLogs(); break; + + case 'viewErrorLogEntries'; + viewErrorLogEntries(); + break;
case 'updateVersionRatings': updateVersionRatings(); diff --git a/include/error_log.php b/include/error_log.php index 73ea208..379e91c 100644 --- a/include/error_log.php +++ b/include/error_log.php @@ -41,17 +41,9 @@ class error_log ob_end_clean();
error_log::log_error("general_error", $sDescription.' '.$sDebugOutput); - } - - function getEntryCount() - { - $sQuery = "SELECT count(*) as cnt FROM error_log WHERE deleted = '0'"; - $hResult = query_parameters($sQuery); - $oRow = query_fetch_object($hResult); - return $oRow->cnt; - } - - /* purge all of the current entries from the error log */ + } + + /* mark all of the current entries as deleted */ function flush() { $sQuery = "UPDATE error_log SET deleted='1'"; @@ -61,43 +53,98 @@ class error_log else return false; }
- function mail_admins_error_log($sSubject = "") + function objectGetId() { - $sSubject .= "Database Error log\r\n"; - $sEmail = user::getAdminEmails(); /* get list admins */ - - $sQuery = "SELECT * from error_log WHERE deleted='0' ORDER BY submitTime"; - $hResult = query_parameters($sQuery); - - $bEmpty = false; - if(query_num_rows($hResult) == 0) - $bEmpty = true; - - $sMsg = "Log entries:\r\n"; - $sMsg.= "\r\n"; + return $this->iId; + } + + function objectGetState() + { + return 'accepted'; + } + + public function objectGetHeader() + { + return $oRow; + } + + public function canEdit() + { + return $_SESSION['current']->hasPriv('admin'); + } + + function objectWantCustomDraw() + { + return true; + }
- $sMsg.= "Submit time userid type\r\n"; - $sMsg.= "log_text\r\n"; - $sMsg.= "request_text\r\n"; - $sMsg.="----------------------------------\r\n\r\n"; + public function objectGetTableRow() + { + return $oRow; + }
- /* append each log entry to $sMsg */ + public function objectDrawCustomTable($hResult) + { + echo html_frame_start("Error Log Entries","100%","",0); + echo '<table width="100%" border=0 cellpadding=3 cellspacing=0>'; + echo '<tr class=color1>'; + echo '<td>Id</td>'; + echo '<td>Submit time</td>'; + echo '<td>UserId</td>'; + echo '<td>Type</td>'; + echo '<td>Log text</td>'; + echo '<td>Request text</td>'; + echo '</tr>'; + + $i = 0; while($oRow = query_fetch_object($hResult)) { - $sMsg.=$oRow->submitTime." ".$oRow->userid." ".$oRow->type."\r\n"; - $sMsg.= "---------------------\r\n"; - $sMsg.=$oRow->log_text."\r\n"; - $sMsg.= "---------------------\r\n"; - $sMsg.=$oRow->request_text."\r\n\r\n"; - } - - /* if we had no entries we should indicate */ - /* that the error log is empty */ - if($bEmpty) - $sMsg = "The error log is empty.\r\n"; - - if($sEmail) - mail_appdb($sEmail, $sSubject, $sMsg); + echo '<tr class=color0>'; + echo '<td>'.$oRow->id.'</td>'; + echo '<td>'.$oRow->submitTime.'</td>'; + echo '<td>'.$oRow->userid.'</td>'; + echo '<td>'.$oRow->type.'</td>'; + echo '<td>'.$oRow->log_text.'</td>'; + echo '<td>'.$oRow->request_text.'</td>'; + $i++; + } + echo '</table>'; + echo html_frame_end(); + + echo "Found $i entries. <br>"; + } + + function objectGetItemsPerPage($sState = 'accepted') + { + $aItemsPerPage = array(25, 50, 100, 200); + $iDefaultPerPage = 25; + return array($aItemsPerPage, $iDefaultPerPage); + } + + public function objectGetEntries($sState, $iRows = null, $iStart = 0) + { + if(!$_SESSION['current']->hasPriv('admin')) + return false; + + $sLimit = objectManager::getSqlLimitClause($iRows, $iStart, 'error_log'); + + $sQuery = "SELECT * FROM error_log ORDER BY id DESC $sLimit"; + $hResult = query_parameters($sQuery); + + return $hResult; + } + + function objectGetEntriesCount() + { + $sQuery = "SELECT COUNT(DISTINCT id) as count FROM error_log"; + $hResult = query_parameters($sQuery); + + if(!$hResult) + return $hResult; + + $oRow = query_fetch_object($hResult); + + return $oRow->count; } }