* 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
$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;
$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
/**
* 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');
}
/**