From a279e5468ecb565a660f241928a10f27b68e7648 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Fri, 20 Mar 2020 13:02:09 -0400 Subject: [PATCH] Cleanup Dashboard BAO --- CRM/Contact/Page/AJAX.php | 2 +- CRM/Core/BAO/Dashboard.php | 27 ++++++++------------------- api/v3/Dashboard.php | 8 ++------ 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/CRM/Contact/Page/AJAX.php b/CRM/Contact/Page/AJAX.php index 7403e22f28..5d7557bd6c 100644 --- a/CRM/Contact/Page/AJAX.php +++ b/CRM/Contact/Page/AJAX.php @@ -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(); diff --git a/CRM/Core/BAO/Dashboard.php b/CRM/Core/BAO/Dashboard.php index 36ea12fcc1..eb9d0b0063 100644 --- a/CRM/Core/BAO/Dashboard.php +++ b/CRM/Core/BAO/Dashboard.php @@ -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; } diff --git a/api/v3/Dashboard.php b/api/v3/Dashboard.php index e38ead8353..4fa78a46e6 100644 --- a/api/v3/Dashboard.php +++ b/api/v3/Dashboard.php @@ -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); } -- 2.25.1