Browse Source

Overview form theming: use dblog icons. Support filter/filter reset/clear.

Frederic G. MARAND 9 years ago
parent
commit
8c0f058092

+ 37 - 20
lib/Drupal/redis_logger/Form/Overview.php

@@ -55,7 +55,6 @@ class Overview {
     $form['redis_logger_clear'] = array(
       '#type' => 'fieldset',
       '#title' => t('Clear log messages'),
-      '#description' => t('NOT IMPLEMENTED YET. This will permanently remove the log messages from the Redis store.'),
       '#collapsible' => TRUE,
       '#collapsed' => TRUE,
     );
@@ -117,6 +116,9 @@ class Overview {
     return $form;
   }
 
+  /**
+   * Form builder.
+   */
   public function build($form, &$form_state) {
     $reader = $this->reader;
     $severity_levels = $reader->getSettings()->getSeverityLevels();
@@ -133,6 +135,17 @@ class Overview {
       t('Message'),
     );
 
+    $severity_classes = array(
+      WATCHDOG_DEBUG => 'debug',
+      WATCHDOG_INFO => 'info',
+      WATCHDOG_NOTICE => 'notice',
+      WATCHDOG_WARNING => 'warning',
+      WATCHDOG_ERROR => 'error',
+      WATCHDOG_CRITICAL => 'critical',
+      WATCHDOG_ALERT => 'alert',
+      WATCHDOG_EMERGENCY => 'emerg',
+    );
+
     // TODO pager
     $templates = $reader->getTemplates();
 
@@ -141,12 +154,20 @@ class Overview {
     foreach ($templates as $template) {
       preg_match($regex, $template, $matches);
       list(, $channel, $severity, $template) = $matches;
+      $class = 'dblog-' . $severity_classes[$severity];
       $rows[] = array(
-        $severity_levels[$severity],
-        rand(1, 100),
-        $channel,
-        'somefile.module+' . rand(1, 500),
-        l($template, 'admin/reports/redis/logger/' . $template),
+        'class' => array($class),
+        'data' => array(
+          array(
+            'class' => 'icon',
+            'data' => NULL,
+            'title' => $severity . " = " . $severity_levels[$severity],
+          ),
+          rand(1, 100),
+          $channel,
+          'somefile.module+' . rand(1, 500),
+          l($template, 'admin/reports/redis/logger/' . $template),
+        ),
       );
     }
 
@@ -159,27 +180,20 @@ class Overview {
     );
 
     $form_state['reader'] = $reader;
-    $form['#submit'][] = 'redis_logger_form_overview_submit';
-    $form['#validate'][] = 'redis_logger_form_overview_validate';
     return $form;
   }
 
-  public function validate($form, &$form_state) {
-    dsm(__METHOD__);
-  }
-
-  public function submit($form, &$form_state) {
-    dsm(__METHOD__);
-
-  }
-
+  /**
+   * Submit handler for Clear op.
+   */
   public function submitClear($form, &$form_state) {
-    dsm(__METHOD__);
-
+    $this->reader->clear();
   }
 
+  /**
+   * Submit handler for Apply Filter op.
+   */
   public function submitFilter($form, &$form_state) {
-    dsm($form_state, __METHOD__);
     $_SESSION['dblog_overview_filter']['type'] = $_SESSION['dblog_overview_filter']['severity'] = array();
     if (isset($form_state['values']['type'])) {
       foreach ($form_state['values']['type'] as $channel) {
@@ -193,6 +207,9 @@ class Overview {
     }
   }
 
+  /**
+   * Submit handler for Filter reset op.
+   */
   public function submitFilterReset($form, &$form_state) {
     $_SESSION['dblog_overview_filter'] = array();
   }

+ 9 - 1
lib/Redis/Logger/Reader.php

@@ -8,7 +8,7 @@ namespace Redis\Logger;
 
 
 /**
- * This class reads the logger information stored in Redis:
+ * This class reads the and erases the logger information stored in Redis:
  *
  * - messages templates
  * - channels used in message templates
@@ -46,6 +46,14 @@ class Reader {
     $this->settings = $settings;
   }
 
+  /**
+   * Clear all data in the logger database.
+   */
+  public function clear() {
+    $this->templateCache = NULL;
+    $this->redis->flushDB();
+  }
+
   /**
    * Load and cache the list of templates in the instance for this page cycle.
    *

+ 0 - 14
lib/Redis/Logger/Writer.php

@@ -73,20 +73,6 @@ class Writer {
     return new static($redis);
   }
 
-  /**
-   * @return string[]
-   */
-  public function getChannels() {
-    $templates = $this->getRawTemplates();
-  }
-
-  /**
-   * @return int[]
-   */
-  public function getRawTemplates($minimum_level = WATCHDOG_DEBUG, $channel = '*') {
-    $this->redis->getKeys(static::PREFIX . ":*:$channel:*");
-  }
-
   /**
    * Logger singleton accessor.
    *

+ 11 - 9
redis_logger.admin.inc

@@ -15,23 +15,25 @@ function redis_logger_form_overview($form, &$form_state) {
   return $form;
 }
 
-function redis_logger_form_overview_submit($form, &$form_state) {
-  dsm('Submitting overview');
-}
-
-function redis_logger_form_overview_validate($form, &$form_state) {
-  dsm('Validating overview');
-}
-
+/**
+ * Submit handler for the filter clear operation.
+ */
 function redis_logger_clear_log_submit($form, &$form_state) {
-  dsm('Submitted clear');
+  $overview = new Overview($form_state['reader']);
+  $overview->submitClear($form, $form_state);
 }
 
+/**
+ * Submit handler for the apply filter operation.
+ */
 function redis_logger_filter_submit($form, &$form_state) {
   $overview = new Overview($form_state['reader']);
   $overview->submitFilter($form, $form_state);
 }
 
+/**
+ * Submit handler for the filter reset operation.
+ */
 function redis_logger_filter_reset_submit($form, &$form_state) {
   $overview = new Overview($form_state['reader']);
   $overview->submitFilterReset($form, $form_state);

+ 3 - 3
redis_logger.info

@@ -1,8 +1,8 @@
-name = Redis logger
-description = An alternative Logger (watchdog) implementation.
+name = "Redis logger"
+description = "An alternative Logger (watchdog) implementation."
 php = 5.4
 core = 7.x
-package = Performance and scalability
+package = "Performance and scalability"
 
 ; TODO remove before release
 dependencies[] = devel