Added button to clear the logs
Only admins can clear the logs. The whole log and log_users table will be cleared.pull/505/head
parent
50ab06640e
commit
a6c988e9fa
|
@ -113,6 +113,9 @@ $sm_lang = array(
|
|||
'sms' => 'SMS',
|
||||
'pushover' => 'Pushover',
|
||||
'no_logs' => 'No logs',
|
||||
'clear' => 'Clear log',
|
||||
'delete_title' => 'Delete log',
|
||||
'delete_message' => 'Are you sure you want to delete <b>all</b> logs?',
|
||||
),
|
||||
'servers' => array(
|
||||
'server' => 'Server',
|
||||
|
|
|
@ -36,7 +36,9 @@ class LogController extends AbstractServerController {
|
|||
function __construct(Database $db, \Twig_Environment $twig) {
|
||||
parent::__construct($db, $twig);
|
||||
|
||||
$this->setActions('index', 'index');
|
||||
$this->setActions(array(
|
||||
'index', 'delete',
|
||||
), 'index');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -56,8 +58,19 @@ class LogController extends AbstractServerController {
|
|||
'label_date' => psm_get_lang('system', 'date'),
|
||||
'label_users' => ucfirst(psm_get_lang('menu', 'user')),
|
||||
'label_no_logs' => psm_get_lang('log', 'no_logs'),
|
||||
'label_clear_log' => psm_get_lang('log', 'clear'),
|
||||
'tabs' => array(),
|
||||
);
|
||||
|
||||
if($this->getUser()->getUserLevel() == PSM_USER_ADMIN) {
|
||||
$modal = new \psm\Util\Module\Modal($this->twig, 'delete', \psm\Util\Module\Modal::MODAL_TYPE_DANGER);
|
||||
$this->addModal($modal);
|
||||
$modal->setTitle(psm_get_lang('log', 'delete_title'));
|
||||
$modal->setMessage(psm_get_lang('log', 'delete_message'));
|
||||
$modal->setOKButtonLabel(psm_get_lang('system', 'delete'));
|
||||
$tpl_data['has_admin_actions'] = true;
|
||||
}
|
||||
|
||||
$log_types = array('status', 'email', 'sms', 'pushover');
|
||||
|
||||
foreach($log_types as $key) {
|
||||
|
@ -99,10 +112,26 @@ class LogController extends AbstractServerController {
|
|||
}
|
||||
$tab_data['entries'] = $records;
|
||||
$tpl_data['tabs'][] = $tab_data;
|
||||
$tpl_data['url_delete'] = psm_build_url(array(
|
||||
'mod' => 'server_log',
|
||||
'action' => 'delete',
|
||||
));
|
||||
}
|
||||
return $this->twig->render('module/server/log.tpl.html', $tpl_data);
|
||||
}
|
||||
|
||||
protected function executeDelete() {
|
||||
/**
|
||||
* Empty table log and log_users.
|
||||
* Only when user is admin.
|
||||
*/
|
||||
if($this->getUser()->getUserLevel() == PSM_USER_ADMIN) {
|
||||
$archiver = new \psm\Util\Server\Archiver\LogsArchiver($this->db);
|
||||
$archiver->cleanupall();
|
||||
}
|
||||
return $this->runAction('index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the log entries for a specific $type
|
||||
*
|
||||
|
|
|
@ -67,4 +67,13 @@ class LogsArchiver implements ArchiverInterface {
|
|||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Empty tables log and log_users
|
||||
*/
|
||||
public function cleanupall() {
|
||||
$this->db->delete(PSM_DB_PREFIX . "log");
|
||||
$this->db->delete(PSM_DB_PREFIX . "log_users");
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,3 +1,9 @@
|
|||
{% if has_admin_actions %}
|
||||
<a class="btn btn-danger show-modal" href="{{ url_delete|raw }}" title="Delete" data-modal-id="delete" data-modal-param="{{ label }}">
|
||||
<i class="icon-trash icon-white"></i> {{ label_clear_log }}
|
||||
</a>
|
||||
<br><br>
|
||||
{% endif %}
|
||||
<div class="tabbable">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#log_status_content" data-toggle="tab">{{ label_status }}</a></li>
|
||||
|
|
Loading…
Reference in New Issue