aboutsummaryrefslogtreecommitdiff
path: root/mod/logbrowser
diff options
context:
space:
mode:
Diffstat (limited to 'mod/logbrowser')
-rw-r--r--mod/logbrowser/languages/en.php5
-rw-r--r--mod/logbrowser/manifest.xml11
-rw-r--r--mod/logbrowser/start.php4
-rw-r--r--mod/logbrowser/views/default/admin/administer_utilities/logbrowser.php (renamed from mod/logbrowser/views/default/admin/utilities/logbrowser.php)38
-rw-r--r--mod/logbrowser/views/default/forms/logbrowser/refine.php54
-rw-r--r--mod/logbrowser/views/default/logbrowser/form.php75
-rw-r--r--mod/logbrowser/views/default/logbrowser/refine.php40
-rw-r--r--mod/logbrowser/views/default/logbrowser/table.php40
8 files changed, 163 insertions, 104 deletions
diff --git a/mod/logbrowser/languages/en.php b/mod/logbrowser/languages/en.php
index 90689a1b0..b1d2681dd 100644
--- a/mod/logbrowser/languages/en.php
+++ b/mod/logbrowser/languages/en.php
@@ -6,7 +6,7 @@
*/
$english = array(
- 'admin:utilities:logbrowser' => 'Log browser',
+ 'admin:administer_utilities:logbrowser' => 'Log browser',
'logbrowser' => 'Log browser',
'logbrowser:browse' => 'Browse system log',
'logbrowser:search' => 'Refine results',
@@ -17,11 +17,14 @@ $english = array(
'logbrowser:explore' => 'Explore log',
'logbrowser:date' => 'Date and time',
+ 'logbrowser:ip_address' => 'IP address',
'logbrowser:user:name' => 'User',
'logbrowser:user:guid' => 'User GUID',
'logbrowser:object' => 'Object type',
'logbrowser:object:guid' => 'Object GUID',
'logbrowser:action' => 'Action',
+
+ 'logbrowser:no_result' => 'No results',
);
add_translation("en", $english); \ No newline at end of file
diff --git a/mod/logbrowser/manifest.xml b/mod/logbrowser/manifest.xml
index 29a25e900..4527e2cbb 100644
--- a/mod/logbrowser/manifest.xml
+++ b/mod/logbrowser/manifest.xml
@@ -2,15 +2,16 @@
<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Log Browser</name>
<author>Core developers</author>
- <version>1.5</version>
+ <version>1.8</version>
+ <category>bundled</category>
+ <category>admin</category>
<description>Browse the system event log</description>
<website>http://www.elgg.org/</website>
<copyright>See COPYRIGHT.txt</copyright>
- <license>GNU Public License version 2</license>
+ <license>GNU General Public License version 2</license>
<requires>
- <type>elgg_version</type>
- <version>2009030702</version>
+ <type>elgg_release</type>
+ <version>1.8</version>
</requires>
<activate_on_install>true</activate_on_install>
- <admin_interface>advanced</admin_interface>
</plugin_manifest>
diff --git a/mod/logbrowser/start.php b/mod/logbrowser/start.php
index 2bbd08980..22659877b 100644
--- a/mod/logbrowser/start.php
+++ b/mod/logbrowser/start.php
@@ -14,7 +14,7 @@ function logbrowser_init() {
elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'logbrowser_user_hover_menu');
- elgg_register_admin_menu_item('logbrowser', 'utilities');
+ elgg_register_admin_menu_item('administer', 'logbrowser', 'administer_utilities');
}
/**
@@ -23,7 +23,7 @@ function logbrowser_init() {
function logbrowser_user_hover_menu($hook, $type, $return, $params) {
$user = $params['entity'];
- $url = "pg/admin/overview/logbrowser/?user_guid={$user->guid}";
+ $url = "admin/administer_utilities/logbrowser?user_guid={$user->guid}";
$item = new ElggMenuItem('logbrowser', elgg_echo('logbrowser:explore'), $url);
$item->setSection('admin');
$return[] = $item;
diff --git a/mod/logbrowser/views/default/admin/utilities/logbrowser.php b/mod/logbrowser/views/default/admin/administer_utilities/logbrowser.php
index dadc6cda3..9506c9d9f 100644
--- a/mod/logbrowser/views/default/admin/utilities/logbrowser.php
+++ b/mod/logbrowser/views/default/admin/administer_utilities/logbrowser.php
@@ -12,15 +12,22 @@ $offset = get_input('offset');
$search_username = get_input('search_username');
if ($search_username) {
- if ($user = get_user_by_username($search_username)) {
- $user = $user->guid;
+ $user = get_user_by_username($search_username);
+ if ($user) {
+ $user_guid = $user->guid;
+ } else {
+ $user_guid = null;
}
} else {
- $user_guid = get_input('user_guid',0);
+ $user_guid = get_input('user_guid', null);
if ($user_guid) {
- $user = (int) $user_guid;
+ $user_guid = (int) $user_guid;
+ $user = get_entity($user_guid);
+ if ($user) {
+ $search_username = $user->username;
+ }
} else {
- $user = "";
+ $user_guid = null;
}
}
@@ -34,15 +41,26 @@ if ($timeupper) {
$timeupper = strtotime($timeupper);
}
-$form = elgg_view('logbrowser/form', array(
- 'user_guid' => $user,
+$ip_address = get_input('ip_address');
+
+$refine = elgg_view('logbrowser/refine', array(
'timeupper' => $timeupper,
'timelower' => $timelower,
+ 'ip_address' => $ip_address,
+ 'username' => $search_username,
));
// Get log entries
-$log = get_system_log($user, "", "", "","", $limit, $offset, false, $timeupper, $timelower);
-$count = get_system_log($user, "", "", "","", $limit, $offset, true, $timeupper, $timelower);
+$log = get_system_log($user_guid, "", "", "","", $limit, $offset, false, $timeupper, $timelower,
+ 0, $ip_address);
+$count = get_system_log($user_guid, "", "", "","", $limit, $offset, true, $timeupper, $timelower,
+ 0, $ip_address);
+
+// if user does not exist, we have no results
+if ($search_username && is_null($user_guid)) {
+ $log = false;
+ $count = 0;
+}
$table = elgg_view('logbrowser/table', array('log_entries' => $log));
@@ -54,7 +72,7 @@ $nav = elgg_view('navigation/pagination',array(
// display admin body
$body = <<<__HTML
-$form
+$refine
$nav
$table
$nav
diff --git a/mod/logbrowser/views/default/forms/logbrowser/refine.php b/mod/logbrowser/views/default/forms/logbrowser/refine.php
new file mode 100644
index 000000000..3d081c9c2
--- /dev/null
+++ b/mod/logbrowser/views/default/forms/logbrowser/refine.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Form body for refining the log browser search.
+ * Look for a particular person or in a time window.
+ *
+ * @uses $vars['username']
+ * @uses $vars['ip_address']
+ * @uses $vars['timelower']
+ * @uses $vars['timeupper']
+ */
+
+if (isset($vars['timelower']) && $vars['timelower']) {
+ $lowerval = date('r', $vars['timelower']);
+} else {
+ $lowerval = "";
+}
+if (isset($vars['timeupper']) && $vars['timeupper']) {
+ $upperval = date('r', $vars['timeupper']);
+} else {
+ $upperval = "";
+}
+$ip_address = elgg_extract('ip_address', $vars);
+$username = elgg_extract('username', $vars);
+
+$form = "<div>" . elgg_echo('logbrowser:user');
+$form .= elgg_view('input/text', array(
+ 'name' => 'search_username',
+ 'value' => $username,
+)) . "</div>";
+
+$form .= "<div>" . elgg_echo('logbrowser:ip_address');
+$form .= elgg_view('input/text', array(
+ 'name' => 'ip_address',
+ 'value' => $ip_address,
+)) . "</div>";
+
+$form .= "<div>" . elgg_echo('logbrowser:starttime');
+$form .= elgg_view('input/text', array(
+ 'name' => 'timelower',
+ 'value' => $lowerval,
+)) . "</div>";
+
+$form .= "<div>" . elgg_echo('logbrowser:endtime');
+$form .= elgg_view('input/text', array(
+ 'name' => 'timeupper',
+ 'value' => $upperval,
+)) . "</div>";
+$form .= '<div class="elgg-foot">';
+$form .= elgg_view('input/submit', array(
+ 'value' => elgg_echo('search'),
+));
+$form .= '</div>';
+
+echo $form;
diff --git a/mod/logbrowser/views/default/logbrowser/form.php b/mod/logbrowser/views/default/logbrowser/form.php
deleted file mode 100644
index e7c2257ce..000000000
--- a/mod/logbrowser/views/default/logbrowser/form.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/**
- * Log browser search form
- *
- * @package ElggLogBrowser
- */
-?>
-
-<div id="logbrowser-search-area">
-<?php
-
- // Time lower limit
-
- if ($vars['timelower']) {
- $lowerval = date('r',$vars['timelower']);
- } else {
- $lowerval = "";
- }
- if ($vars['timeupper']) {
- $upperval = date('r',$vars['timeupper']);
- } else {
- $upperval = "";
- }
- if ($vars['user_guid']) {
- if ($user = get_entity($vars['user_guid']))
- $userval = $user->username;
- } else {
- $userval = "";
- }
-
-
- $form = "<p>" . elgg_echo('logbrowser:user');
- $form .= elgg_view('input/text', array(
- 'name' => 'search_username',
- 'value' => $userval,
- )) . "</p>";
-
- $form .= "<p>" . elgg_echo('logbrowser:starttime');
- $form .= elgg_view('input/text', array(
- 'name' => 'timelower',
- 'value' => $lowerval,
- )) . "</p>";
-
- $form .= "<p>" . elgg_echo('logbrowser:endtime');
- $form .= elgg_view('input/text', array(
- 'name' => 'timeupper',
- 'value' => $upperval,
- )) . "</p>";
- $form .= elgg_view('input/submit', array(
- 'value' => elgg_echo('search'),
- ));
-
- //@todo Forms 1.8: Convert to use elgg_view_form()
- $wrappedform = elgg_view('input/form', array(
- 'body' => $form,
- 'method' => 'get',
- 'action' => "pg/admin/overview/logbrowser/",
- 'disable_security' => true,
- ));
-?>
-
- <div id="log-browser-search-form" class="elgg-module elgg-module-inline hidden">
- <div class="elgg-head">
- <h3><?php echo elgg_echo('logbrowser:search'); ?></h3>
- </div>
- <div class="elgg-body">
- <?php echo $wrappedform; ?>
- </div>
- </div>
- <p>
- <a class="link" href="#" onclick="elgg_slide_toggle(this,'#logbrowser-search-area','#log-browser-search-form');">
- <?php echo elgg_echo('logbrowser:search'); ?>
- </a>
- </p>
-</div> \ No newline at end of file
diff --git a/mod/logbrowser/views/default/logbrowser/refine.php b/mod/logbrowser/views/default/logbrowser/refine.php
new file mode 100644
index 000000000..b40f23fa3
--- /dev/null
+++ b/mod/logbrowser/views/default/logbrowser/refine.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Log browser search form
+ *
+ * @package ElggLogBrowser
+ */
+
+$form_vars = array(
+ 'method' => 'get',
+ 'action' => 'admin/administer_utilities/logbrowser',
+ 'disable_security' => true,
+);
+$form = elgg_view_form('logbrowser/refine', $form_vars, $vars);
+
+$toggle_link = elgg_view('output/url', array(
+ 'href' => '#log-browser-search-form',
+ 'text' => elgg_echo('logbrowser:search'),
+ 'rel' => 'toggle',
+));
+
+$form_class = 'elgg-module elgg-module-inline';
+if (!isset($vars['user_guid']) && !isset($vars['username'])) {
+ $form_class .= ' hidden';
+}
+
+?>
+
+<div id="logbrowser-search-area" class="mbm">
+ <div>
+ <?php echo $toggle_link; ?>
+ </div>
+ <div id="log-browser-search-form" class="<?php echo $form_class; ?>">
+ <div class="elgg-head">
+ <h3><?php echo elgg_echo('logbrowser:search'); ?></h3>
+ </div>
+ <div class="elgg-body">
+ <?php echo $form; ?>
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/mod/logbrowser/views/default/logbrowser/table.php b/mod/logbrowser/views/default/logbrowser/table.php
index 5db495fae..b08a0c428 100644
--- a/mod/logbrowser/views/default/logbrowser/table.php
+++ b/mod/logbrowser/views/default/logbrowser/table.php
@@ -11,6 +11,7 @@ $log_entries = $vars['log_entries'];
<table class="elgg-table">
<tr>
<th><?php echo elgg_echo('logbrowser:date'); ?></th>
+ <th><?php echo elgg_echo('logbrowser:ip_address'); ?></th>
<th><?php echo elgg_echo('logbrowser:user:name'); ?></th>
<th><?php echo elgg_echo('logbrowser:user:guid'); ?></th>
<th><?php echo elgg_echo('logbrowser:object'); ?></th>
@@ -20,15 +21,23 @@ $log_entries = $vars['log_entries'];
<?php
$alt = '';
foreach ($log_entries as $entry) {
+ if ($entry->ip_address) {
+ $ip_address = $entry->ip_address;
+ } else {
+ $ip_address = '&nbsp;';
+ }
+
$user = get_entity($entry->performed_by_guid);
if ($user) {
$user_link = elgg_view('output/url', array(
'href' => $user->getURL(),
- 'text' => $user->name
+ 'text' => $user->name,
+ 'is_trusted' => true,
));
$user_guid_link = elgg_view('output/url', array(
- 'href' => elgg_get_site_url() . "pg/admin/overview/logbrowser/?user_guid=$user->guid",
- 'text' => $user->getGUID()
+ 'href' => "admin/administer_utilities/logbrowser?user_guid={$user->guid}",
+ 'text' => $user->getGUID(),
+ 'is_trusted' => true,
));
} else {
$user_guid_link = $user_link = '&nbsp;';
@@ -38,29 +47,33 @@ $log_entries = $vars['log_entries'];
if (is_callable(array($object, 'getURL'))) {
$object_link = elgg_view('output/url', array(
'href' => $object->getURL(),
- 'text' => $entry->object_class
+ 'text' => $entry->object_class,
+ 'is_trusted' => true,
));
} else {
$object_link = $entry->object_class;
}
?>
<tr <?php echo $alt; ?>>
- <td class="log_entry_time">
+ <td class="log-entry-time">
<?php echo date('r', $entry->time_created); ?>
</td>
- <td class="log_entry_user">
+ <td class="log-entry-ip-address">
+ <?php echo $ip_address; ?>
+ </td>
+ <td class="log-entry-user">
<?php echo $user_link; ?>
</td>
- <td class="log_entry_guid">
+ <td class="log-entry-guid">
<?php echo $user_guid_link; ?>
</td>
- <td class="log_entry_object">
+ <td class="log-entry-object">
<?php echo $object_link; ?>
</td>
- <td class="log_entry_guid">
+ <td class="log-entry-guid">
<?php echo $entry->object_id; ?>
</td>
- <td class="log_entry_action">
+ <td class="log-entry-action">
<?php echo elgg_echo($entry->event); ?>
</td>
</tr>
@@ -69,4 +82,9 @@ $log_entries = $vars['log_entries'];
$alt = $alt ? '' : 'class="alt"';
}
?>
-</table> \ No newline at end of file
+</table>
+<?php
+if (!$log_entries) {
+ echo elgg_echo('logbrowser:no_result');
+ return true;
+}