1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-15 03:05:26 +02:00

Minor updates in ProcessLogger, plus this should fix processwire/processwire-issues#1084

This commit is contained in:
Ryan Cramer
2023-07-07 14:43:35 -04:00
parent 203488bd4a
commit 20d5016017

View File

@@ -3,7 +3,7 @@
/**
* ProcessWire Logger (Logs Viewer)
*
* ProcessWire 3.x, Copyright 2019 by Ryan Cramer
* ProcessWire 3.x, Copyright 2023 by Ryan Cramer
* https://processwire.com
*
* @method string formatLogText($text, $logName = '')
@@ -52,7 +52,7 @@ class ProcessLogger extends Process {
$options['itemLabel2'] = 'when';
$options['add'] = false;
$options['edit'] = 'view/{name}/';
$options['items'] = $this->wire('log')->getLogs(true);
$options['items'] = $this->wire()->log->getLogs(true);
$options['sort'] = false;
foreach($options['items'] as $key => $item) {
@@ -78,12 +78,14 @@ class ProcessLogger extends Process {
$this->_x('Entries', 'th'),
$this->_x('Size', 'th'),
));
$logs = $this->wire('log')->getLogs();
$logs = $this->wire()->log->getLogs();
foreach($logs as $log) {
$logName = $log['name'];
if(ctype_digit($logName)) $logName = " $logName";
$table->row(array(
$log['name'] => "./view/$log[name]/",
$logName => "./view/$log[name]/",
"<span style='font-size: 0;'>$log[modified] </span>" . wireRelativeTimeStr($log['modified']),
$this->wire('log')->getTotalEntries($log['name']),
$this->wire()->log->getTotalEntries($log['name']),
"<span style='font-size: 0;'>$log[size] </span>" . wireBytesStr($log['size'])
));
}
@@ -101,42 +103,46 @@ class ProcessLogger extends Process {
protected function processAction($action, $name) {
if(!$this->wire('input')->post("submit_$action")) {
$log = $this->wire()->log;
$input = $this->wire()->input;
$session = $this->wire()->session;
if(!$input->post("submit_$action")) {
throw new WireException("Action missing submit");
}
if($action != 'download' && !$this->wire('user')->hasPermission('logs-edit')) {
if($action != 'download' && !$this->wire()->user->hasPermission('logs-edit')) {
throw new WirePermissionException("You don't have permission to execute that action");
}
switch($action) {
case 'delete':
if($this->wire('log')->delete($name)) $this->message(sprintf($this->_('Deleted log: %s'), $name));
$this->wire('session')->redirect($this->wire('page')->url);
if($log->delete($name)) $this->message(sprintf($this->_('Deleted log: %s'), $name));
$session->location($this->wire()->page->url);
break;
case 'prune':
$days = (int) $this->wire('input')->post('prune_days');
$qty = $this->wire('log')->prune($name, $days);
$days = (int) $input->post('prune_days');
$qty = $log->prune($name, $days);
$this->message(sprintf($this->_('Pruned "%s" log file (now contains %d entries)'), $name, $qty));
$this->wire('session')->redirect('./');
$session->location('./');
break;
case 'download':
$filename = $this->wire('log')->getFilename($name);
$filename = $log->getFilename($name);
if(file_exists($filename)) wireSendFile($filename, array('forceDownload' => true));
break;
case 'add':
$text = $this->wire('sanitizer')->text($this->wire('input')->post('add_text'));
$text = $this->wire()->sanitizer->text($input->post('add_text'));
if(strlen($text)) {
$this->wire('log')->save($name, $text);
$log->save($name, $text);
$this->message(sprintf($this->_('Saved new log entry to "%s"'), $name));
} else {
$this->error($this->_('Log entry text was blank'));
}
$this->wire('session')->redirect('./');
$session->location('./');
break;
}
}
@@ -155,7 +161,7 @@ class ProcessLogger extends Process {
$logs = $log->getLogs();
if(!isset($logs[$name])) {
$this->error(sprintf('Unknown log: %s', $name));
$session->redirect('../');
$session->location('../');
}
$action = $input->post('action');
if($action) $this->processAction($action, $name);
@@ -277,6 +283,7 @@ class ProcessLogger extends Process {
$f->showIf = 'action=prune';
$fieldset->add($f);
/** @var InputfieldSubmit $f */
$f = $modules->get('InputfieldSubmit');
$f->value = $this->_('Burn this log now (permanently delete)');
$f->icon = 'fire';
@@ -284,6 +291,7 @@ class ProcessLogger extends Process {
$f->showIf = 'action=delete';
$fieldset->add($f);
/** @var InputfieldSubmit $f */
$f = $modules->get('InputfieldSubmit');
$f->value = $this->_('Add this log entry');
$f->icon = 'leaf';
@@ -351,11 +359,10 @@ class ProcessLogger extends Process {
protected function renderLog(array $items, $name, $time = 0) {
/** @var Sanitizer $sanitizer */
$sanitizer = $this->wire('sanitizer');
$sanitizer = $this->wire()->sanitizer;
/** @var MarkupAdminDataTable $table */
$table = $this->wire('modules')->get('MarkupAdminDataTable');
$table = $this->wire()->modules->get('MarkupAdminDataTable');
$table->setSortable(false);
$table->setEncodeEntities(false);
$templateItem = reset($items);
@@ -387,7 +394,7 @@ class ProcessLogger extends Process {
}
if(strpos($entry['text'], '&') !== false) {
$entry['text'] = $this->wire('sanitizer')->unentities($entry['text']);
$entry['text'] = $sanitizer->unentities($entry['text']);
}
foreach($entry as $key => $value) {
@@ -415,6 +422,7 @@ class ProcessLogger extends Process {
$table->row($row);
}
/** @var LogEntriesArray $entries */
$entries = $this->wire(new LogEntriesArray());
if(count($items)) {
@@ -427,7 +435,7 @@ class ProcessLogger extends Process {
$entries->setStart($start);
$entries->setTotal($total);
/** @var MarkupPagerNav $pager */
$pager = $this->wire('modules')->get('MarkupPagerNav');
$pager = $this->wire()->modules->get('MarkupPagerNav');
$options = array('baseUrl' => "../$name/");
$pagerOut = $pager->render($entries, $options);
$pagerHeadline = $entries->getPaginationString();
@@ -474,7 +482,7 @@ class ProcessLogger extends Process {
$url = preg_replace('{^https?://[^/]+}', '', $url);
}
$config = $this->wire('config');
$config = $this->wire()->config;
$rootUrl = $config->urls->root;
$adminUrl = $config->urls->admin;
$isAdmin = false;
@@ -509,7 +517,7 @@ class ProcessLogger extends Process {
*/
protected function ___formatLogText($text, $logName = '') {
$config = $this->wire('config');
$config = $this->wire()->config;
// shorten paths
foreach(array('site', 'wire') as $name) {
@@ -565,4 +573,3 @@ class ProcessLogger extends Process {
}
}