Sfoglia il codice sorgente

Add Admin\Logs page

Visman 4 anni fa
parent
commit
620dba2974

+ 6 - 1
app/Controllers/Routing.php

@@ -694,7 +694,12 @@ class Routing
                 'AdminMaintenance:rebuild',
                 'AdminRebuildIndex'
             );
-
+            $r->add(
+                $r::GET,
+                '/admin/logs',
+                'AdminLogs:info',
+                'AdminLogs'
+            );
         }
 
         $uri = $_SERVER['REQUEST_URI'];

+ 1 - 0
app/Models/Pages/Admin.php

@@ -75,6 +75,7 @@ class Admin extends Page
                 'forums'      => [$r->link('AdminForums'), 'Forums'],
                 'groups'      => [$r->link('AdminGroups'), 'User groups'],
                 'censoring'   => [$r->link('AdminCensoring'), 'Censoring'],
+                'logs'        => [$r->link('AdminLogs'), 'Logs'],
                 'maintenance' => [$r->link('AdminMaintenance'), 'Maintenance'],
             ];
         }

+ 32 - 0
app/Models/Pages/Admin/Logs.php

@@ -0,0 +1,32 @@
+<?php
+/**
+ * This file is part of the ForkBB <https://github.com/forkbb>.
+ *
+ * @copyright (c) Visman <mio.visman@yandex.ru, https://github.com/MioVisman>
+ * @license   The MIT License (MIT)
+ */
+
+declare(strict_types=1);
+
+namespace ForkBB\Models\Pages\Admin;
+
+use ForkBB\Models\Page;
+use ForkBB\Models\Pages\Admin;
+
+class Logs extends Admin
+{
+    /**
+     * Подготавливает данные для шаблона
+     */
+    public function info(): Page
+    {
+        $this->c->Lang->load('admin_logs');
+
+        $this->nameTpl  = 'admin/logs';
+        $this->aIndex   = 'logs';
+        $logsFiles      = $this->c->LogViewer->files();
+        $this->logsInfo = $this->c->LogViewer->info($logsFiles);
+
+        return $this;
+    }
+}

+ 3 - 0
app/lang/en/admin.po

@@ -101,3 +101,6 @@ msgstr "Data updated."
 
 msgid "\"%s\""
 msgstr "\"%s\""
+
+msgid "Logs"
+msgstr "Logs"

+ 49 - 0
app/lang/en/admin_logs.po

@@ -0,0 +1,49 @@
+#
+msgid ""
+msgstr ""
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Project-Id-Version: ForkBB\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: ForkBB <mio.visman@yandex.ru>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
+
+msgid "Log name"
+msgstr "Log name"
+
+msgid "Level emergency"
+msgstr "Emergency"
+
+msgid "Level alert"
+msgstr "Alert"
+
+msgid "Level critical"
+msgstr "Critical"
+
+msgid "Level error"
+msgstr "Error"
+
+msgid "Level warning"
+msgstr "Warning"
+
+msgid "Level notice"
+msgstr "Notice"
+
+msgid "Level info"
+msgstr "Info"
+
+msgid "Level debug"
+msgstr "Debug"
+
+msgid "View log"
+msgstr "View"
+
+msgid "Download log"
+msgstr "Download"
+
+msgid "Delete log"
+msgstr "Delete"

+ 3 - 0
app/lang/ru/admin.po

@@ -101,3 +101,6 @@ msgstr "Данные изменены."
 
 msgid "\"%s\""
 msgstr "\"%s\""
+
+msgid "Logs"
+msgstr "Логи"

+ 49 - 0
app/lang/ru/admin_logs.po

@@ -0,0 +1,49 @@
+#
+msgid ""
+msgstr ""
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Project-Id-Version: ForkBB\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: ForkBB <mio.visman@yandex.ru>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ru\n"
+
+msgid "Log name"
+msgstr "Имя лога"
+
+msgid "Level emergency"
+msgstr "Emergency"
+
+msgid "Level alert"
+msgstr "Alert"
+
+msgid "Level critical"
+msgstr "Critical"
+
+msgid "Level error"
+msgstr "Error"
+
+msgid "Level warning"
+msgstr "Warning"
+
+msgid "Level notice"
+msgstr "Notice"
+
+msgid "Level info"
+msgstr "Info"
+
+msgid "Level debug"
+msgstr "Debug"
+
+msgid "View log"
+msgstr "Открыть"
+
+msgid "Download log"
+msgstr "Скачать"
+
+msgid "Delete log"
+msgstr "Удалить"

+ 31 - 0
app/templates/admin/logs.forkbb.php

@@ -0,0 +1,31 @@
+@extends ('layouts/admin')
+@isset ($p->logsInfo)
+      <section id="fork-logsinfo" class="f-admin">
+        <h2>{!! __('Logs') !!}</h2>
+        <div>
+          <fieldset>
+            <p></p>
+            <ul>
+    @foreach ($p->logsInfo as $hash => $cur)
+              <li class="f-lgli">
+                <span class="f-lgname" title="{!! __('Log name') !!}">{{ $cur['log_name'] }}</span>
+                <span class="f-llv f-llvem" title="{!! __('Level emergency') !!}">{{ num($cur['emergency']) }}</span>
+                <span class="f-llv f-llval" title="{!! __('Level alert') !!}">{{ num($cur['alert']) }}</span>
+                <span class="f-llv f-llvcr" title="{!! __('Level critical') !!}">{{ num($cur['critical']) }}</span>
+                <span class="f-llv f-llver" title="{!! __('Level error') !!}">{{ num($cur['error']) }}</span>
+                <span class="f-llv f-llvwa" title="{!! __('Level warning') !!}">{{ num($cur['warning']) }}</span>
+                <span class="f-llv f-llvno" title="{!! __('Level notice') !!}">{{ num($cur['notice']) }}</span>
+                <span class="f-llv f-llvin" title="{!! __('Level info') !!}">{{ num($cur['info']) }}</span>
+                <span class="f-llv f-llvde" title="{!! __('Level debug') !!}">{{ num($cur['debug']) }}</span>
+                <span class="f-logbt">
+                  <a class="f-btn f-lga f-lgaview" href="" title="{!! __('View log') !!}"><span class="f-lgs">{!! __('View log') !!}</span></a>
+                  <a class="f-btn f-lga f-lgadown" href="" title="{!! __('Download log') !!}"><span class="f-lgs">{!! __('Download log') !!}</span></a>
+                  <a class="f-btn f-lga f-lgadel" href="" title="{!! __('Delete log') !!}"><span class="f-lgs">{!! __('Delete log') !!}</span></a>
+                </span>
+              </li>
+    @endforeach
+            </ul>
+          </fieldset>
+        </div>
+      </section>
+@endisset

+ 80 - 0
public/style/ForkBB/style.css

@@ -3294,6 +3294,86 @@ html[lang="ru"] #fork details[open] > summary::after {
   background-color:  #FEEFB3; /*#FFCCBA;*/
 }
 
+/****************************************/
+/* Админка/Логи                         */
+/****************************************/
+#forka .f-lgli {
+  padding: 0.3125rem;
+  border-bottom: 0.0625rem dotted #AA7939;
+  display: flex;
+}
+
+#forka .f-llvem {
+  color: #B71C1C;
+}
+
+#forka .f-llval {
+  color: #D32F2F;
+}
+
+#forka .f-llvcr {
+  color: #F44336;
+}
+
+#forka .f-llver {
+  color: #FF5722;
+}
+
+#forka .f-llvwa {
+  color: #FF9100;
+}
+
+#forka .f-llvno {
+  color: #4CAF50;
+}
+
+#forka .f-llvin {
+  color: #1976D2;
+}
+
+#forka .f-llvde {
+  color: #90CAF9;
+}
+
+#forka .f-lgname {
+  width: 8rem;
+}
+
+#forka .f-logbt {
+  width: 5rem;
+  text-align: right;
+}
+
+#forka .f-llv {
+  width: calc( (100% - 13rem) / 8 );
+  text-align: center;
+}
+
+#forka .f-lga {
+  padding: 0.125rem 0.1875rem;
+}
+
+#forka .f-lga:before {
+  font-family: "FontAwesomeFree";
+  font-weight: 900;
+}
+
+#forka .f-lgaview:before {
+  content: "\f002";
+}
+
+#forka .f-lgadown:before {
+  content: "\f019";
+}
+
+#forka .f-lgadel:before {
+  content: "\f2ed";
+}
+
+#forka .f-lgs {
+  display: none;
+}
+
 /****************************************/
 @media screen and (min-width: 81rem) {
   #fork.f-with-nav {