CRM-15168 Fix Dashboard test failure (not caused by this issue - but started failing...
authorEileen McNaughton <eileen@fuzion.co.nz>
Fri, 22 Aug 2014 23:15:58 +0000 (11:15 +1200)
committerEileen McNaughton <eileen@fuzion.co.nz>
Fri, 22 Aug 2014 23:15:58 +0000 (11:15 +1200)
CRM/Core/BAO/Dashboard.php
api/v3/Dashboard.php

index dce0e62e14803ffe65e4f2bc2ee243b1995a8456..de6b98c8f00cf3b55356c2b3cf91766847dffcef 100644 (file)
  * Class contains Contact dashboard related functions
  */
 class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard {
+  /**
+   * function to add Dashboard
+   *
+   * @param array $params values
+   *
+   * @access public
+   * @static
+   *
+   * @return object
+   */
+  static function create($params) {
+    $hook = empty($params['id']) ? 'create' : 'edit';
+    CRM_Utils_Hook::pre($hook, 'Dashboard', CRM_Utils_Array::value('id', $params), $params);
+    $dao = self::addDashlet($params);
+    CRM_Utils_Hook::post($hook, 'Dashboard', $dao->id, $dao);
+    return $dao;
+  }
 
   /**
    * Get the list of dashlets enabled by admin
@@ -407,6 +424,9 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard {
         $dashlet->url = CRM_Utils_Array::value('url', $params);
         $dashlet->find(TRUE);
       }
+      if (empty($params['domain_id'])) {
+        $dashlet->domain_id = CRM_Core_Config::domainID();
+      }
     }
     else {
       $dashlet->id = $dashboardID;
@@ -416,9 +436,6 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard {
       $params['permission'] = implode(',', $params['permission']);
     }
     $dashlet->copyValues($params);
-
-    $dashlet->domain_id = CRM_Core_Config::domainID();
-
     $dashlet->save();
 
     // now we need to make dashlet entries for each contact
index e17325e0750bcf40b0a694b947ae9bcc962226e3..c4b111e9daf50840b26297812afb3f7cb4d6e17a 100644 (file)
 /**
  * Creates or updates an Dashlet.
  *
- * @param array  $params       Associative array of property name/value
+ * @param array  $params array of property name/value
  *                             pairs for the Dashlet.
  *
  * @return array Array containing 'is_error' to denote success or failure and details of the created activity
  *
  */
 function civicrm_api3_dashboard_create($params) {
-  if (empty($params['id'])) {
-    civicrm_api3_verify_one_mandatory($params,
-      NULL,
-      array(
-        'name',
-        'label',
-        'url',
-        'fullscreen_url',
-      )
-    );
-  }
-  // create dashboard element
-  $dashboardBAO = CRM_Core_BAO_Dashboard::addDashlet($params);
-  if (isset($dashboardBAO->id)) {
-    _civicrm_api3_object_to_array($dashboardBAO, $dashboardArray[$dashboardBAO->id]);
-    return civicrm_api3_create_success($dashboardArray, $params, 'dashboard', 'create', $dashboardBAO);
-  }
+  civicrm_api3_verify_one_mandatory($params, NULL, array(
+      'name',
+      'label',
+      'url',
+      'fullscreen_url',
+    )
+  );
+  return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'Dashboard');
 }
 
 /**