add a separate tab for the logger

This commit is contained in:
Andrew Dolgov 2013-04-17 08:42:39 +04:00
parent 77be1217e5
commit 2cbdc95bb0
4 changed files with 92 additions and 45 deletions

View file

@ -725,51 +725,6 @@ class Pref_Prefs extends Handler_Protected {
print "</div>"; #pane
if ($_SESSION["access_level"] == 10) {
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Error Log')."\">";
print "<h2>".__("Error Log")."</h2>";
$result = db_query($this->link, "SELECT errno, errstr, filename, lineno,
created_at, login FROM ttrss_error_log
LEFT JOIN ttrss_users ON (owner_uid = ttrss_users.id)
ORDER BY ttrss_error_log.id DESC
LIMIT 100");
print "<p><table width=\"100%\" cellspacing=\"10\" class=\"prefErrorLog\">";
print "<tr class=\"title\">
<td width='5%'>".__("Error")."</td>
<td>".__("Filename")."</td>
<td>".__("Message")."</td>
<td width='5%'>".__("User")."</td>
<td width='5%'>".__("Date")."</td>
</tr>";
while ($line = db_fetch_assoc($result)) {
print "<tr class=\"errrow\">";
foreach ($line as $k => $v) {
$line[$k] = htmlspecialchars($v);
}
print "<td class='errno'>" . Logger::$errornames[$line["errno"]] . " (" . $line["errno"] . ")</td>";
print "<td class='filename'>" . $line["filename"] . ":" . $line["lineno"] . "</td>";
print "<td class='errstr'>" . $line["errstr"] . "</td>";
print "<td class='login'>" . $line["login"] . "</td>";
print "<td class='timestamp'>" .
make_local_datetime($this->link,
$line["created_at"], false) . "</td>";
print "</tr>";
}
print "</table>";
print "</div>";
}
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Plugins')."\">";
print "<h2>".__("Plugins")."</h2>";

78
classes/pref/system.php Normal file
View file

@ -0,0 +1,78 @@
<?php
class Pref_System extends Handler_Protected {
function __construct($link, $args) {
parent::__construct($link, $args);
}
function before($method) {
if (parent::before($method)) {
if ($_SESSION["access_level"] < 10) {
print __("Your access level is insufficient to open this tab.");
return false;
}
return true;
}
return false;
}
function csrf_ignore($method) {
$csrf_ignored = array("index");
return array_search($method, $csrf_ignored) !== false;
}
function index() {
print "<div dojoType=\"dijit.layout.AccordionContainer\" region=\"center\">";
print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Error Log')."\">";
$result = db_query($this->link, "SELECT errno, errstr, filename, lineno,
created_at, login FROM ttrss_error_log
LEFT JOIN ttrss_users ON (owner_uid = ttrss_users.id)
ORDER BY ttrss_error_log.id DESC
LIMIT 100");
print "<p><table width=\"100%\" cellspacing=\"10\" class=\"prefErrorLog\">";
print "<tr class=\"title\">
<td width='5%'>".__("Error")."</td>
<td>".__("Filename")."</td>
<td>".__("Message")."</td>
<td width='5%'>".__("User")."</td>
<td width='5%'>".__("Date")."</td>
</tr>";
while ($line = db_fetch_assoc($result)) {
print "<tr class=\"errrow\">";
foreach ($line as $k => $v) {
$line[$k] = htmlspecialchars($v);
}
print "<td class='errno'>" . Logger::$errornames[$line["errno"]] . " (" . $line["errno"] . ")</td>";
print "<td class='filename'>" . $line["filename"] . ":" . $line["lineno"] . "</td>";
print "<td class='errstr'>" . $line["errstr"] . "</td>";
print "<td class='login'>" . $line["login"] . "</td>";
print "<td class='timestamp'>" .
make_local_datetime($this->link,
$line["created_at"], false) . "</td>";
print "</tr>";
}
print "</table>";
print "</div>";
global $pluginhost;
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
"hook_prefs_tab", "prefSystem");
print "</div>"; #container
}
}
?>

View file

@ -852,6 +852,15 @@ function updatePrefsList() {
} });
}
function updateSystemList() {
new Ajax.Request("backend.php", {
parameters: "?op=pref-system",
onComplete: function(transport) {
dijit.byId('systemConfigTab').attr('content', transport.responseText);
notify("");
} });
}
function selectTab(id, noupdate, method) {
try {
if (!noupdate) {
@ -867,6 +876,8 @@ function selectTab(id, noupdate, method) {
updatePrefsList();
} else if (id == "userConfig") {
updateUsersList();
} else if (id == "systemConfig") {
updateSystemList();
}
var tab = dijit.byId(id + "Tab");

View file

@ -130,6 +130,9 @@
<div id="userConfigTab" dojoType="dijit.layout.ContentPane"
href="backend.php?op=pref-users"
title="<?php echo __('Users') ?>"></div>
<div id="systemConfigTab" dojoType="dijit.layout.ContentPane"
href="backend.php?op=pref-system"
title="<?php echo __('System') ?>"></div>
<?php } ?>
<?php
$pluginhost->run_hooks($pluginhost::HOOK_PREFS_TABS,