Cleanup Dashboard BAO
authorColeman Watts <coleman@civicrm.org>
Fri, 20 Mar 2020 17:02:09 +0000 (13:02 -0400)
committerColeman Watts <coleman@civicrm.org>
Mon, 23 Mar 2020 20:14:27 +0000 (16:14 -0400)
CRM/Contact/Page/AJAX.php
CRM/Core/BAO/Dashboard.php
api/v3/Dashboard.php

index 7403e22f286e6ac8a35cfcf90e87d2ff3bd1efc2..5d7557bd6cdd2367cb9d79f5ef5a3ffae80ccd06 100644 (file)
@@ -511,7 +511,7 @@ LIMIT {$offset}, {$rowCount}
 
       case 'delete_dashlet':
         $dashletID = CRM_Utils_Type::escape($_REQUEST['dashlet_id'], 'Positive');
-        CRM_Core_BAO_Dashboard::deleteDashlet($dashletID);
+        CRM_Core_DAO_Dashboard::deleteRecord(['id' => $dashletID]);
     }
 
     CRM_Utils_System::civiExit();
index 36ea12fcc1920acd4887f51d71b09c30d63c868a..eb9d0b00633b2bc16ab8fb2f9f72de52e620505e 100644 (file)
@@ -399,25 +399,15 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard {
     $dashlet = new CRM_Core_DAO_Dashboard();
 
     if (!$dashboardID) {
-
       // Assign domain before search to allow identical dashlets in different domains.
-      if (empty($params['domain_id'])) {
-        $dashlet->domain_id = CRM_Core_Config::domainID();
-      }
-      else {
-        $dashlet->domain_id = $params['domain_id'] ?? NULL;
-      }
+      $dashlet->domain_id = $params['domain_id'] ?? CRM_Core_Config::domainID();
 
       // Try and find an existing dashlet - it will be updated if found.
-      if (!empty($params['name'])) {
+      if (!empty($params['name']) || !empty($params['url'])) {
         $dashlet->name = $params['name'] ?? NULL;
-        $dashlet->find(TRUE);
-      }
-      else {
         $dashlet->url = $params['url'] ?? NULL;
         $dashlet->find(TRUE);
       }
-
     }
     else {
       $dashlet->id = $dashboardID;
@@ -501,19 +491,18 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard {
   }
 
   /**
-   * Delete Dashlet.
-   *
+   * @deprecated
    * @param int $dashletID
-   *
    * @return bool
    */
   public static function deleteDashlet($dashletID) {
-    $dashlet = new CRM_Core_DAO_Dashboard();
-    $dashlet->id = $dashletID;
-    if (!$dashlet->find(TRUE)) {
+    CRM_Core_Error::deprecatedFunctionWarning('CRM_Core_DAO_Dashboard::deleteRecord');
+    try {
+      CRM_Core_DAO_Dashboard::deleteRecord(['id' => $dashletID]);
+    }
+    catch (CRM_Core_Exception $e) {
       return FALSE;
     }
-    $dashlet->delete();
     return TRUE;
   }
 
index e38ead835360c060d43b127338c5bb6cef906574..4fa78a46e6f5428a166670aa4b0220470cc50682 100644 (file)
@@ -65,12 +65,8 @@ function civicrm_api3_dashboard_get($params) {
  *   Array holding 'id' of dashlet to be deleted.
  * @return array
  * @throws API_Exception
+ * @throws CiviCRM_API3_Exception
  */
 function civicrm_api3_dashboard_delete($params) {
-  if (CRM_Core_BAO_Dashboard::deleteDashlet($params['id'])) {
-    return civicrm_api3_create_success(1, $params, 'Dashboard', 'delete');
-  }
-  else {
-    throw new API_Exception('Could not delete dashlet');
-  }
+  return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params);
 }