static function &create(&$params) {
$transaction = new CRM_Core_Transaction();
- if (CRM_Utils_Array::value('id', $params)) {
+ if (!empty($params['id'])) {
CRM_Utils_Hook::pre('edit', 'Case', $params['id'], $params);
}
else {
$case = self::add($params);
- if (CRM_Utils_Array::value('custom', $params) &&
+ if (!empty($params['custom']) &&
is_array($params['custom'])
) {
CRM_Core_BAO_CustomValueTable::store($params['custom'], 'civicrm_case', $case->id);
return $case;
}
- if (CRM_Utils_Array::value('id', $params)) {
+ if (!empty($params['id'])) {
CRM_Utils_Hook::post('edit', 'Case', $case->id, $case);
}
else {
t_act.act_type_name as case_recent_activity_type_name,
t_act.act_type AS case_recent_activity_type ";
}
+ elseif ( $type == 'any' ) {
+ $query .= "
+t_act.desired_date as case_activity_date,
+t_act.id as case_activity_id,
+t_act.act_type_name as case_activity_type_name,
+t_act.act_type AS case_activity_type ";
+ }
$query .= " FROM civicrm_case
INNER JOIN civicrm_case_contact ON civicrm_case.id = civicrm_case_contact.case_id
LEFT JOIN civicrm_option_value aov ON ( aov.option_group_id = aog.id AND aov.value = act.activity_type_id )
) AS t_act ";
}
+ elseif ( $type == 'any' ) {
+ $query .= " LEFT JOIN
+(
+ SELECT ca4.case_id, act4.id AS id, act4.activity_date_time AS desired_date, act4.activity_type_id, act4.status_id, aov.name AS act_type_name, aov.label AS act_type
+ FROM civicrm_activity act4
+ LEFT JOIN civicrm_case_activity ca4
+ ON ca4.activity_id = act4.id
+ AND act4.is_current_revision = 1
+ LEFT JOIN civicrm_option_group aog
+ ON aog.name='activity_type'
+ LEFT JOIN civicrm_option_value aov
+ ON aov.option_group_id = aog.id
+ AND aov.value = act4.activity_type_id
+) AS t_act";
+ }
$query .= "
ON t_act.case_id = civicrm_case.id
elseif ($type == 'recent') {
$query .= " ORDER BY case_recent_activity_date ASC ";
}
+ elseif ( $type == 'any' ) {
+ $query .= " ORDER BY case_activity_date ASC ";
+ }
return $query;
}
if (!$allCases) {
$condition .= " AND case_relationship.contact_id_b = {$userID} ";
}
-
- if ($type == 'upcoming') {
+ if ( $type == 'upcoming' || $type == 'any' ) {
$closedId = CRM_Core_OptionGroup::getValue('case_status', 'Closed', 'name');
$condition .= "
AND civicrm_case.status_id != $closedId";
$resultFields[] = 'case_recent_activity_type';
$resultFields[] = 'case_recent_activity_id';
}
+ elseif ( $type == 'any' ) {
+ $resultFields[] = 'case_activity_date';
+ $resultFields[] = 'case_activity_type_name';
+ $resultFields[] = 'case_activity_type';
+ $resultFields[] = 'case_activity_id';
+ }
// we're going to use the usual actions, so doesn't make sense to duplicate definitions
$actions = CRM_Case_Selector_Search::links();
'id' => $result->case_id,
'cid' => $result->contact_id,
'cxt' => $context,
- )
+ ),
+ ts('more'),
+ FALSE,
+ 'case.actions.primary',
+ 'Case',
+ $result->case_id
);
$casesList[$result->case_id]['moreActions'] = CRM_Core_Action::formLink($actions['moreActions'],
$mask,
'cxt' => $context,
),
ts('more'),
- TRUE
+ TRUE,
+ 'case.actions.more',
+ 'Case',
+ $result->case_id
);
}
elseif ($field == 'case_status') {
$res = CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
while ($res->fetch()) {
- if (CRM_Utils_Array::value($res->case_type, $rows) && CRM_Utils_Array::value($res->case_status, $rows[$res->case_type])) {
+ if (!empty($rows[$res->case_type]) && !empty($rows[$res->case_type][$res->case_status])) {
$rows[$res->case_type][$res->case_status]['count'] = $rows[$res->case_type][$res->case_status]['count'] + 1;
}
else {
$where = 'WHERE cca.case_id= %1
AND ca.is_current_revision = 1';
- if (CRM_Utils_Array::value('reporter_id', $params)) {
+ if (!empty($params['reporter_id'])) {
$where .= " AND cac.contact_id = " . CRM_Utils_Type::escape($params['reporter_id'], 'Integer');
}
- if (CRM_Utils_Array::value('status_id', $params)) {
+ if (!empty($params['status_id'])) {
$where .= " AND ca.status_id = " . CRM_Utils_Type::escape($params['status_id'], 'Integer');
}
- if (CRM_Utils_Array::value('activity_deleted', $params)) {
+ if (!empty($params['activity_deleted'])) {
$where .= " AND ca.is_deleted = 1";
}
else {
$where .= " AND ca.is_deleted = 0";
}
- if (CRM_Utils_Array::value('activity_type_id', $params)) {
+ if (!empty($params['activity_type_id'])) {
$where .= " AND ca.activity_type_id = " . CRM_Utils_Type::escape($params['activity_type_id'], 'Integer');
}
- if (CRM_Utils_Array::value('activity_date_low', $params)) {
+ if (!empty($params['activity_date_low'])) {
$fromActivityDate = CRM_Utils_Type::escape(CRM_Utils_Date::processDate($params['activity_date_low']), 'Date');
}
- if (CRM_Utils_Array::value('activity_date_high', $params)) {
+ if (!empty($params['activity_date_high'])) {
$toActivityDate = CRM_Utils_Type::escape(CRM_Utils_Date::processDate($params['activity_date_high']), 'Date');
$toActivityDate = $toActivityDate ? $toActivityDate + 235959 : NULL;
}
//check for view activity.
$subject = (empty($dao->subject)) ? '(' . ts('no subject') . ')' : $dao->subject;
if ($allowView) {
- $subject = '<a href="javascript:' . $type . 'viewActivity(' . $dao->id . ',' . $contactID . ',' . '\'' . $type . '\' );" title=\'' . $viewTitle . '\'>' . $subject . '</a>';
+ $url = CRM_Utils_System::url('civicrm/case/activity/view', array('cid' => $contactID, 'aid' => $dao->id));
+ $subject = '<a class="crm-popup medium-popup" href="' . $url . '" title="' . $viewTitle . '">' . $subject . '</a>';
}
$values[$dao->id]['subject'] = $subject;
$values[$dao->id]['reporter'] .= ' / ' . ts('(multiple)');
}
}
+ // FIXME: Why are we not using CRM_Core_Action for these links? This is too much manual work and likely to get out-of-sync with core markup.
$url = "";
+ $css = 'class="action-item crm-hover-button"';
$additionalUrl = "&id={$dao->id}";
if (!$dao->deleted) {
//hide edit link of activity type email.CRM-4530.
if (!in_array($dao->type, $emailActivityTypeIDs)) {
//hide Edit link if activity type is NOT editable (special case activities).CRM-5871
if ($allowEdit) {
- $url = '<a href="' . $editUrl . $additionalUrl . '">' . ts('Edit') . '</a> ';
+ $url = '<a ' . $css . ' href="' . $editUrl . $additionalUrl . '">' . ts('Edit') . '</a> ';
}
}
if ($allowDelete) {
- if (!empty($url)) {
- $url .= " | ";
- }
- $url .= '<a href="' . $deleteUrl . $additionalUrl . '">' . ts('Delete') . '</a>';
+ $url .= ' <a ' . str_replace('action-item', 'action-item small-popup', $css) . ' href="' . $deleteUrl . $additionalUrl . '">' . ts('Delete') . '</a>';
}
}
elseif (!$caseDeleted) {
- $url = '<a href="' . $restoreUrl . $additionalUrl . '">' . ts('Restore') . '</a>';
+ $url = ' <a ' . $css . ' href="' . $restoreUrl . $additionalUrl . '">' . ts('Restore') . '</a>';
$values[$dao->id]['status'] = $values[$dao->id]['status'] . '<br /> (deleted)';
}
//check for operations.
if (self::checkPermission($dao->id, 'Move To Case', $dao->activity_type_id)) {
- $url .= " | " . '<a href="#" onClick="Javascript:fileOnCase( \'move\',' . $dao->id . ', ' . $caseID . ' ); return false;">' . ts('Move To Case') . '</a> ';
+ $url .= ' <a ' . $css . ' href="#" onClick="Javascript:fileOnCase( \'move\',' . $dao->id . ', ' . $caseID . ' ); return false;">' . ts('Move To Case') . '</a> ';
}
if (self::checkPermission($dao->id, 'Copy To Case', $dao->activity_type_id)) {
- $url .= " | " . '<a href="#" onClick="Javascript:fileOnCase( \'copy\',' . $dao->id . ',' . $caseID . ' ); return false;">' . ts('Copy To Case') . '</a> ';
+ $url .= ' <a ' . $css . ' href="#" onClick="Javascript:fileOnCase( \'copy\',' . $dao->id . ',' . $caseID . ' ); return false;">' . ts('Copy To Case') . '</a> ';
}
// if there are file attachments we will return how many and, if only one, add a link to it
if (!empty($dao->attachment_ids)) {
NULL,
FALSE
);
- $url .= " | " . "<a href=$attachmentViewUrl >" . ts('View Attachment') . '</a> ';
+ $url .= " <a href='$attachmentViewUrl' ><span class='icon paper-icon'></span></a>";
}
}
if ($caseId) {
$activityTypeId = CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $activityId, 'activity_type_id');
$nonCaseActivityTypes = CRM_Core_PseudoConstant::activityType();
- if (CRM_Utils_Array::value($activityTypeId, $nonCaseActivityTypes)) {
+ if (!empty($nonCaseActivityTypes[$activityTypeId])) {
$anyActivity = TRUE;
}
else {
// (Or for efficiency call the global one outside the loop and then union with this each time.)
$contactDetails = self::getRelatedContacts($caseId, TRUE);
- if (CRM_Utils_Array::value($result['from']['id'], $contactDetails)) {
+ if (!empty($contactDetails[$result['from']['id']])) {
$params = array();
$params['subject'] = $result['subject'];
$params['activity_date_time'] = $result['date'];
$groupInfo['id'] = $results['id'];
$groupInfo['title'] = $results['title'];
$params = array(array('group', 'IN', array($groupInfo['id'] => 1), 0, 0));
- $return = array('sort_name' => 1, 'display_name' => 1, 'email' => 1, 'phone' => 1);
$return = array('contact_id' => 1, 'sort_name' => 1, 'display_name' => 1, 'email' => 1, 'phone' => 1);
- list($globalContacts, $_) = CRM_Contact_BAO_Query::apiQuery($params, $return, NULL, $sort, $offset, $rowCount, TRUE, $returnOnlyCount);
+ list($globalContacts) = CRM_Contact_BAO_Query::apiQuery($params, $return, NULL, $sort, $offset, $rowCount, TRUE, $returnOnlyCount);
if ($returnOnlyCount) {
return $globalContacts;
if ($showLinks) {
foreach ($globalContacts as $idx => $contact) {
- $globalContacts[$idx]['sort_name'] = '<a href="' . $contactViewUrl . $contact['contact_id'] . '">' . $contact['sort_name'] . '</a>';
+ $globalContacts[$idx]['sort_name'] = '<a href="' . CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid={$contact['contact_id']}") . '">' . $contact['sort_name'] . '</a>';
}
}
}
}
if ($latestDate) {
- if (CRM_Utils_Array::value('activity_type_id', $criteriaParams)) {
+ if (!empty($criteriaParams['activity_type_id'])) {
$where .= " AND ca.activity_type_id = " . CRM_Utils_Type::escape($criteriaParams['activity_type_id'], 'Integer');
$where .= " AND ca.is_current_revision = 1";
$groupBy .= " GROUP BY ca.activity_type_id";
}
- if (CRM_Utils_Array::value('newest', $criteriaParams)) {
+ if (!empty($criteriaParams['newest'])) {
$selectDate = " max(ca.activity_date_time) ";
}
else {
static $accessibleCaseIds;
if (!is_array($accessibleCaseIds)) {
$session = CRM_Core_Session::singleton();
- $accessibleCaseIds = array_keys(self::getCases(FALSE, $session->get('userID')));
+ $accessibleCaseIds = array_keys(self::getCases(FALSE, $session->get('userID'), 'any'));
}
//no need of further processing.
if (empty($accessibleCaseIds)) {
if (!$doFilterCases || array_key_exists($dao->id, $filterCases)) {
$caseViewStr = "reset=1&id={$dao->id}&cid={$dao->client_id}&action=view&context=case&selectedChild=case";
$caseViewUrl = CRM_Utils_System::url("civicrm/contact/view/case", $caseViewStr);
- $caseView = "<a href='{$caseViewUrl}'>" . ts('View Case') . "</a>";
+ $caseView = "<a class='action-item no-popup crm-hover-button' href='{$caseViewUrl}'>" . ts('View Case') . "</a>";
}
$clientView = $dao->client_name;
if ($hasViewContact) {
'activity_type_id', 'id'
);
- if (CRM_Utils_Array::value('isCaseActivity', $tplParams)) {
+ if (!empty($tplParams['isCaseActivity'])) {
$tplParams['editActURL'] = CRM_Utils_System::url('civicrm/case/activity',
"reset=1&cid={$activityParams['target_id']}&caseid={$activityParams['case_id']}&action=update&id={$activityParams['source_record_id']}", TRUE
);