changing api to allow for searching for hushed status alerts
authorNikki Murray <nikki.liz.murray@gmail.com>
Wed, 30 Sep 2015 20:31:33 +0000 (16:31 -0400)
committerNikki Murray <nikki.liz.murray@gmail.com>
Tue, 13 Oct 2015 19:19:00 +0000 (15:19 -0400)
CRM/Utils/Check.php
CRM/Utils/Check/Message.php
api/v3/System.php

index 4b8267fde9d5c99f78abfa931cfc5cb42f7ae1ba..7951832397fb9bb4ed3c72b7fe48e1104352a945 100644 (file)
@@ -181,7 +181,7 @@ class CRM_Utils_Check {
    *   Array of messages
    * @link https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_requirements
    */
-  public function checkAll($showHushed = FALSE) {
+  public function checkAll() {
     $checks = array();
     $checks[] = new CRM_Utils_Check_Security();
     $checks[] = new CRM_Utils_Check_Env();
@@ -204,13 +204,9 @@ class CRM_Utils_Check {
 
     CRM_Utils_Hook::check($messages);
 
-    if (!$showHushed) {
-      foreach ($messages as $key => $message) {
-        $hush = self::checkHushSnooze($message);
-        if ($hush) {
-          unset($messages[$key]);
-        }
-      }
+    foreach ($messages as $key => $message) {
+      $hush = self::checkHushSnooze($message);
+      $message->setVisible($hush);
     }
     uasort($messages, array(__CLASS__, 'severitySort'));
 
index 2bf5dec90929a3dd5d9bf50c7bec4104048c0fac..0b76d8ad88b8bd6d5c5ab0997ed55398e3ada453 100644 (file)
@@ -58,6 +58,13 @@ class CRM_Utils_Check_Message {
    */
   private $help;
 
+  /**
+   *
+   * @var bool
+   *      This is used for Admin Status Page to determine hushed statuses.
+   */
+  private $isVisible;
+
   /**
    * @param string $name
    *   Symbolic name for the check.
@@ -135,6 +142,7 @@ class CRM_Utils_Check_Message {
       'message' => $this->message,
       'title' => $this->title,
       'severity' => $this->level,
+      'isVisible' => $this->isVisible,
     );
     if (!empty($this->help)) {
       $array['help'] = $this->help;
@@ -142,4 +150,12 @@ class CRM_Utils_Check_Message {
     return $array;
   }
 
+  public function isVisibile() {
+    return $this->isVisible;
+  }
+
+  public function setVisible($isVisible) {
+    $this->isVisible = $isVisible;
+  }
+
 }
index c73968e65b6ba777e2d52358a22b8a3b69ec14cf..2017d5a6fa78f966baa6ef9251f816a4a75784a8 100644 (file)
@@ -104,10 +104,21 @@ function _civicrm_api3_system_check_spec(&$spec) {
  */
 function civicrm_api3_system_check($params) {
   $returnValues = array();
-  $messages = CRM_Utils_Check::singleton()->checkAll(CRM_Utils_Array::value('show_hushed', $params));
-  foreach ($messages as $msg) {
-    $returnValues[] = $msg->toArray();
+  $messages = CRM_Utils_Check::singleton()->checkAll();
+  $showHushed = CRM_Utils_Array::value('show_hushed', $params);
+  if (!$showHushed) {
+    foreach ($messages as $key => $message) {
+      if (!$message->isVisible()) {
+        unset($messages[$key]);
+      }
+    }
   }
+  else {
+    foreach ($messages as $msg) {
+      $returnValues[] = $msg->toArray();
+    }
+  }
+
 
   // Spec: civicrm_api3_create_success($values = 1, $params = array(), $entity = NULL, $action = NULL)
   return civicrm_api3_create_success($returnValues, $params, 'System', 'Check');