From b0fee68f6eb7535b635096a1b470fa72e5a98340 Mon Sep 17 00:00:00 2001 From: Tim Date: Sun, 25 Feb 2018 18:51:17 +0100 Subject: [PATCH] Clear log button - closes #383 (#505) * Added button to clear the logs Only admins can clear the logs. The content from the log and log_users table will be deleted. --- src/lang/bg_BG.lang.php | 3 ++ src/lang/cs_CZ.lang.php | 3 ++ src/lang/da_DK.lang.php | 3 ++ src/lang/de_DE.lang.php | 3 ++ src/lang/en_US.lang.php | 3 ++ src/lang/es_ES.lang.php | 5 ++- src/lang/et_ET.lang.php | 3 ++ src/lang/fa_IR.lang.php | 3 ++ src/lang/fi_FI.lang.php | 3 ++ src/lang/fr_FR.lang.php | 3 ++ src/lang/it_IT.lang.php | 3 ++ src/lang/ja_JP.lang.php | 3 ++ src/lang/ko_KR.lang.php | 3 ++ src/lang/nl_NL.lang.php | 5 ++- src/lang/pl_PL.lang.php | 3 ++ src/lang/pt_BR.lang.php | 3 ++ src/lang/ru_RU.lang.php | 3 ++ src/lang/sk_SK.lang.php | 3 ++ src/lang/sl_SI.lang.php | 3 ++ src/lang/sv_SE.lang.php | 3 ++ src/lang/tr_TR.lang.php | 3 ++ src/lang/vi_VN.lang.php | 3 ++ src/lang/zh_CN.lang.php | 3 ++ .../Server/Controller/LogController.php | 31 ++++++++++++++++++- src/psm/Util/Server/Archiver/LogsArchiver.php | 11 ++++++- .../default/module/server/log.tpl.html | 8 ++++- 26 files changed, 118 insertions(+), 5 deletions(-) diff --git a/src/lang/bg_BG.lang.php b/src/lang/bg_BG.lang.php index e9ce602c..6cfb5f80 100644 --- a/src/lang/bg_BG.lang.php +++ b/src/lang/bg_BG.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Няма налични логове', + 'clear' => 'Изчистване на дневника', + 'delete_title' => 'Изтриване на дневника', + 'delete_message' => 'Наистина ли искате да изтриете всички дневници?', ), 'servers' => array( 'server' => 'Сървър', diff --git a/src/lang/cs_CZ.lang.php b/src/lang/cs_CZ.lang.php index ea87e52e..a2f5c007 100644 --- a/src/lang/cs_CZ.lang.php +++ b/src/lang/cs_CZ.lang.php @@ -114,6 +114,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Žádné záznamy', + 'clear' => 'Jasný protokol', + 'delete_title' => 'Odstranit protokol', + 'delete_message' => 'Opravdu chcete odstranit protokoly všechny?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/da_DK.lang.php b/src/lang/da_DK.lang.php index 4e90dd20..15861c76 100644 --- a/src/lang/da_DK.lang.php +++ b/src/lang/da_DK.lang.php @@ -111,6 +111,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Intet i loggen', + 'clear' => 'Ryd log', + 'delete_title' => 'Slet log', + 'delete_message' => 'Er du sikker på, at du vil slette alle logfiler?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/de_DE.lang.php b/src/lang/de_DE.lang.php index 69ec9289..1346c86e 100644 --- a/src/lang/de_DE.lang.php +++ b/src/lang/de_DE.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Keine Logs vorhanden.', + 'clear' => 'Protokoll Logs', + 'delete_title' => 'Protokoll Logs', + 'delete_message' => 'Bist du sicher, dass du alle logs löschen möchtest?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/en_US.lang.php b/src/lang/en_US.lang.php index a88b2c71..56b75300 100644 --- a/src/lang/en_US.lang.php +++ b/src/lang/en_US.lang.php @@ -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 all logs?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/es_ES.lang.php b/src/lang/es_ES.lang.php index e49b74dc..76fed0f4 100644 --- a/src/lang/es_ES.lang.php +++ b/src/lang/es_ES.lang.php @@ -114,7 +114,10 @@ $sm_lang = array( 'email' => 'Email', 'sms' => 'SMS', 'pushover' => 'Pushover', - 'no_logs' => 'No hay registros', + 'no_logs' => 'No hay journaux', + 'clear' => 'Borrar registro', + 'delete_title' => 'Eliminar registro', + 'delete_message' => '¿Estás seguro de que quieres eliminar todos los registros?', ), 'servers' => array( 'server' => 'Servidores', diff --git a/src/lang/et_ET.lang.php b/src/lang/et_ET.lang.php index 1e4ddc7a..ef6180ff 100644 --- a/src/lang/et_ET.lang.php +++ b/src/lang/et_ET.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Logisid ei eksisteeri', + 'clear' => 'Puhasta logig', + 'delete_title' => 'Kustuta logi', + 'delete_message' => 'Kas olete kindel, et soovite kustutada kõik logid?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/fa_IR.lang.php b/src/lang/fa_IR.lang.php index a52c7b09..5819147b 100644 --- a/src/lang/fa_IR.lang.php +++ b/src/lang/fa_IR.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'پیامک', 'pushover' => 'Pushover', 'no_logs' => 'لاگی وجود ندارد.', + 'clear' => 'پاک کردن ورود', + 'delete_title' => 'حذف ورود', + 'delete_message' => 'آیا مطمئن هستید که میخواهید سیاهههای «همه» را حذف کنید؟', ), 'servers' => array( 'server' => 'سرور', diff --git a/src/lang/fi_FI.lang.php b/src/lang/fi_FI.lang.php index c6160abf..7d90e7ec 100644 --- a/src/lang/fi_FI.lang.php +++ b/src/lang/fi_FI.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'Tekstiviesti', 'pushover' => 'Pushover', 'no_logs' => 'Ei tapahtumia', + 'clear' => 'Tyhjennä loki', + 'delete_title' => 'Poista loki', + 'delete_message' => 'Haluatko varmasti poistaa kaikki lokit?', ), 'servers' => array( 'server' => 'Palvelin', diff --git a/src/lang/fr_FR.lang.php b/src/lang/fr_FR.lang.php index a01c4357..c91dcabe 100644 --- a/src/lang/fr_FR.lang.php +++ b/src/lang/fr_FR.lang.php @@ -114,6 +114,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Aucun événement', + 'clear' => 'Claire registros', + 'delete_title' => 'Supprimer journaux', + 'delete_message' => 'Êtes-vous sûr de vouloir supprimer tous les journaux?', ), 'servers' => array( 'server' => 'Serveur', diff --git a/src/lang/it_IT.lang.php b/src/lang/it_IT.lang.php index 4bb9f766..6f274c33 100644 --- a/src/lang/it_IT.lang.php +++ b/src/lang/it_IT.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Nessun log', + 'clear' => 'Pulisci il registro', + 'delete_title' => 'Elimina log', + 'delete_message' => 'Sei sicuro di voler eliminare tutti i registri?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/ja_JP.lang.php b/src/lang/ja_JP.lang.php index d1e7f286..a91e337c 100644 --- a/src/lang/ja_JP.lang.php +++ b/src/lang/ja_JP.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'プッシュオーバー', 'no_logs' => 'ログがありません', + 'clear' => 'ログをクリアする', + 'delete_title' => 'ログを削除する', + 'delete_message' => 'すべてのログを削除してもよろしいですか?', ), 'servers' => array( 'server' => 'サーバー', diff --git a/src/lang/ko_KR.lang.php b/src/lang/ko_KR.lang.php index c394a1d3..f2a6b956 100644 --- a/src/lang/ko_KR.lang.php +++ b/src/lang/ko_KR.lang.php @@ -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 all logs?', ), 'servers' => array( 'server' => '서버', diff --git a/src/lang/nl_NL.lang.php b/src/lang/nl_NL.lang.php index cee4977f..5af0392c 100644 --- a/src/lang/nl_NL.lang.php +++ b/src/lang/nl_NL.lang.php @@ -112,7 +112,10 @@ $sm_lang = array( 'email' => 'Email', 'sms' => 'SMS', 'pushover' => 'Pushover', - 'no_logs' => 'No logs', + 'no_logs' => 'Geen logs', + 'clear' => 'Logboek opschonen', + 'delete_title' => 'Logboek opschonen', + 'delete_message' => 'Weet je zeker dat je alle logs wilt opschonen?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/pl_PL.lang.php b/src/lang/pl_PL.lang.php index af11c1d2..57e90e68 100644 --- a/src/lang/pl_PL.lang.php +++ b/src/lang/pl_PL.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Brak logów', + 'clear' => 'Wyczyść log', + 'delete_title' => 'Wyczyść log', + 'delete_message' => 'Czy na pewno chcesz usunąć wszystkie dzienniki?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/pt_BR.lang.php b/src/lang/pt_BR.lang.php index addb5c17..dcf36e16 100644 --- a/src/lang/pt_BR.lang.php +++ b/src/lang/pt_BR.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Sem logs', + 'clear' => 'Log clara', + 'delete_title' => 'Log clara', + 'delete_message' => 'Tem certeza de que deseja excluir todos os logs?', ), 'servers' => array( 'server' => 'Servidor', diff --git a/src/lang/ru_RU.lang.php b/src/lang/ru_RU.lang.php index 4ede375e..581f105d 100644 --- a/src/lang/ru_RU.lang.php +++ b/src/lang/ru_RU.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Записей нет', + 'clear' => 'Clear log', + 'delete_title' => 'Delete log', + 'delete_message' => 'Are you sure you want to delete all logs?', ), 'servers' => array( 'server' => 'Сервер', diff --git a/src/lang/sk_SK.lang.php b/src/lang/sk_SK.lang.php index 85d84736..388edc8e 100644 --- a/src/lang/sk_SK.lang.php +++ b/src/lang/sk_SK.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Žiadne záznamy', + 'clear' => 'Jasný protokol', + 'delete_title' => 'Jasný protokol', + 'delete_message' => 'Naozaj chcete odstrániť všetky záznamy?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/sl_SI.lang.php b/src/lang/sl_SI.lang.php index 1da4a8cc..a63033ac 100644 --- a/src/lang/sl_SI.lang.php +++ b/src/lang/sl_SI.lang.php @@ -111,6 +111,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'ni dnevniških zapisov', + 'clear' => 'Počisti dnevnik', + 'delete_title' => 'Brisanje dnevnika', + 'delete_message' => 'Ali ste prepričani, da želite izbrisati vse dnevnike?', ), 'servers' => array( 'server' => 'Strežnik', diff --git a/src/lang/sv_SE.lang.php b/src/lang/sv_SE.lang.php index a824ca0e..a12888ed 100644 --- a/src/lang/sv_SE.lang.php +++ b/src/lang/sv_SE.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Inga loggar', + 'clear' => 'Tydlig logg', + 'delete_title' => 'Tydlig logg', + 'delete_message' => 'Är du säker på att du vill radera alla loggar?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/tr_TR.lang.php b/src/lang/tr_TR.lang.php index 28be0022..eff265e1 100644 --- a/src/lang/tr_TR.lang.php +++ b/src/lang/tr_TR.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'Kayıt yok.', + 'clear' => 'Günlüğü temizle', + 'delete_title' => 'Günlüğü temizle', + 'delete_message' => 'Tüm günlükleri silmek istediğinizden emin misiniz?', ), 'servers' => array( 'server' => 'Sunucu', diff --git a/src/lang/vi_VN.lang.php b/src/lang/vi_VN.lang.php index b60244a9..92a745d7 100644 --- a/src/lang/vi_VN.lang.php +++ b/src/lang/vi_VN.lang.php @@ -111,6 +111,9 @@ $sm_lang = array( 'sms' => 'SMS', 'pushover' => 'Pushover', 'no_logs' => 'No logs', + 'clear' => 'Xoá nhật ký', + 'delete_title' => 'Xoá nhật ký', + 'delete_message' => 'Bạn có chắc chắn muốn xóa tất cả các bản ghi?', ), 'servers' => array( 'server' => 'Server', diff --git a/src/lang/zh_CN.lang.php b/src/lang/zh_CN.lang.php index 3aa430e9..1931f8df 100644 --- a/src/lang/zh_CN.lang.php +++ b/src/lang/zh_CN.lang.php @@ -113,6 +113,9 @@ $sm_lang = array( 'sms' => '短信', 'pushover' => 'Pushover', 'no_logs' => '没有日志', + 'clear' => 'Clear log', + 'delete_title' => 'Delete log', + 'delete_message' => 'Are you sure you want to delete all logs?', ), 'servers' => array( 'server' => '业务', diff --git a/src/psm/Module/Server/Controller/LogController.php b/src/psm/Module/Server/Controller/LogController.php index e3d7db6c..4620fc2e 100644 --- a/src/psm/Module/Server/Controller/LogController.php +++ b/src/psm/Module/Server/Controller/LogController.php @@ -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 * diff --git a/src/psm/Util/Server/Archiver/LogsArchiver.php b/src/psm/Util/Server/Archiver/LogsArchiver.php index 619d7fa2..78e053d5 100644 --- a/src/psm/Util/Server/Archiver/LogsArchiver.php +++ b/src/psm/Util/Server/Archiver/LogsArchiver.php @@ -67,4 +67,13 @@ class LogsArchiver implements ArchiverInterface { ); return true; } -} \ No newline at end of file + + /** + * 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; + } +} diff --git a/src/templates/default/module/server/log.tpl.html b/src/templates/default/module/server/log.tpl.html index c69fbab3..f05400b4 100644 --- a/src/templates/default/module/server/log.tpl.html +++ b/src/templates/default/module/server/log.tpl.html @@ -1,3 +1,9 @@ +{% if has_admin_actions %} + +  {{ label_clear_log }} + +

+{% endif %}
{% endfor %} - \ No newline at end of file +