protected $keyword = 'case';
// docs inherited from interface
+ /**
+ * @return array
+ */
public function getInfo() {
return array(
'name' => 'CiviCase',
);
}
+ /**
+ * {@inheritDoc}
+ */
+ public function getAngularModules() {
+ $result = array();
+ $result['crmCaseType'] = array(
+ 'ext' => 'civicrm',
+ 'js' => array('js/angular-crmCaseType.js'),
+ 'css' => array('css/angular-crmCaseType.css'),
+ );
+
+ CRM_Core_Resources::singleton()->addSetting(array(
+ 'crmCaseType' => array(
+ 'REL_TYPE_CNAME' => CRM_Case_XMLProcessor::REL_TYPE_CNAME,
+ ),
+ ));
+ return $result;
+ }
+
+ // docs inherited from interface
+ /**
+ * @return array
+ * @throws CRM_Core_Exception
+ */
+ public function getManagedEntities() {
+ $entities = array_merge(
+ CRM_Case_ManagedEntities::createManagedCaseTypes(),
+ CRM_Case_ManagedEntities::createManagedActivityTypes(CRM_Case_XMLRepository::singleton(), CRM_Core_ManagedEntities::singleton()),
+ CRM_Case_ManagedEntities::createManagedRelationshipTypes(CRM_Case_XMLRepository::singleton(), CRM_Core_ManagedEntities::singleton())
+ );
+ return $entities;
+ }
+
// docs inherited from interface
+ /**
+ * @param bool $getAllUnconditionally
+ *
+ * @return array
+ */
public function getPermissions($getAllUnconditionally = FALSE) {
return array(
'delete in CiviCase',
);
}
+ /**
+ * {@inheritdoc}
+ */
+ public function getReferenceCounts($dao) {
+ $result = array();
+ if ($dao instanceof CRM_Core_DAO_OptionValue) {
+ /** @var $dao CRM_Core_DAO_OptionValue */
+ $activity_type_gid = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'activity_type', 'id', 'name');
+ if ($activity_type_gid == $dao->option_group_id) {
+ $count = CRM_Case_XMLRepository::singleton()
+ ->getActivityReferenceCount($dao->name);
+ if ($count > 0) {
+ $result[] = array(
+ 'name' => 'casetypexml:activities',
+ 'type' => 'casetypexml',
+ 'count' => $count,
+ );
+ }
+ }
+ }
+ elseif ($dao instanceof CRM_Contact_DAO_RelationshipType) {
+ /** @var $dao CRM_Contact_DAO_RelationshipType */
+ $count = CRM_Case_XMLRepository::singleton()
+ ->getRelationshipReferenceCount($dao->{CRM_Case_XMLProcessor::REL_TYPE_CNAME});
+ if ($count > 0) {
+ $result[] = array(
+ 'name' => 'casetypexml:relationships',
+ 'type' => 'casetypexml',
+ 'count' => $count,
+ );
+ }
+ }
+ return $result;
+ }
+
// docs inherited from interface
+ /**
+ * @return array
+ */
public function getUserDashboardElement() {
return array();
}
// docs inherited from interface
+ /**
+ * @return array
+ */
public function registerTab() {
return array('title' => ts('Cases'),
'url' => 'case',
}
// docs inherited from interface
+ /**
+ * @return array
+ */
public function registerAdvancedSearchPane() {
return array('title' => ts('Cases'),
'weight' => 50,
}
// docs inherited from interface
+ /**
+ * @return null
+ */
public function getActivityTypes() {
return NULL;
}
// add shortcut to Create New
+ /**
+ * @param $shortCuts
+ */
public function creatNewShortcut(&$shortCuts) {
if (CRM_Core_Permission::check('access all cases and activities') ||
CRM_Core_Permission::check('add cases')