/** * This method returns the action links that are given for each search row. * currently the action links added for each row are * * - View * * @param string $activityType type of activity * * @return array * @access public * */ function actionLinks($activityTypeId, $sourceRecordId = null, $accessMailingReport = false, $activityId = null, $key = null, $compContext = null) { $activityTypes = CRM_Core_PseudoConstant::activityType(false); $activityTypeIds = array_flip(CRM_Core_PseudoConstant::activityType(true, true, false, 'name')); $extraParams = $key ? "&key={$key}" : null; if ($compContext) { $extraParams .= "&compContext={$compContext}"; } //show edit link only for meeting/phone and other activities $showUpdate = false; $showDelete = false; if ($activityTypeId == $activityTypeIds['Event Registration']) { // event registration $url = 'civicrm/contact/view/participant'; $qsView = "action=view&reset=1&id={$sourceRecordId}&cid=%%cid%%&context=%%cxt%%{$extraParams}"; } elseif ($activityTypeId == $activityTypeIds['Contribution']) { //contribution $url = 'civicrm/contact/view/contribution'; $qsView = "action=view&reset=1&id={$sourceRecordId}&cid=%%cid%%&context=%%cxt%%{$extraParams}"; } elseif (in_array($activityTypeId, array($activityTypeIds['Membership Signup'], $activityTypeIds['Membership Renewal']))) { // membership $url = 'civicrm/contact/view/membership'; $qsView = "action=view&reset=1&id={$sourceRecordId}&cid=%%cid%%&context=%%cxt%%{$extraParams}"; } elseif ($activityTypeId == CRM_Utils_Array::value('Pledge Acknowledgment', $activityTypeIds) || $activityTypeId == CRM_Utils_Array::value('Pledge Reminder', $activityTypeIds)) { //pledge acknowledgment $url = 'civicrm/contact/view/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%{$extraParams}"; } elseif ($activityTypeId == $activityTypeIds['Email'] || $activityTypeId == $activityTypeIds['Bulk Email']) { $url = 'civicrm/activity/view'; $delUrl = 'civicrm/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%{$extraParams}"; // allow delete of regular outbound emails (CRM-) if ($activityTypeId == $activityTypeIds['Email']) { $showDelete = true; } } elseif ($activityTypeId == $activityTypeIds['Inbound Email']) { $url = 'civicrm/contact/view/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%{$extraParams}"; } elseif ($activityTypeId == CRM_Utils_Array::value('Open Case', $activityTypeIds) || $activityTypeId == CRM_Utils_Array::value('Change Case Type', $activityTypeIds) || $activityTypeId == CRM_Utils_Array::value('Change Case Status', $activityTypeIds) || $activityTypeId == CRM_Utils_Array::value('Change Case Start Date', $activityTypeIds)) { $showUpdate = $showDelete = false; $url = 'civicrm/contact/view/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%{$extraParams}"; $qsUpdate = "atype={$activityTypeId}&action=update&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%{$extraParams}"; } else { $showUpdate = $showDelete = true; $url = 'civicrm/contact/view/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%{$extraParams}"; $qsUpdate = "atype={$activityTypeId}&action=update&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%{$extraParams}"; } $qsDelete = "atype={$activityTypeId}&action=delete&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%{$extraParams}"; if ($this->_context == 'case') { $qsView .= "&caseid=%%caseid%%"; $qsDelete .= "&caseid=%%caseid%%"; if ($showUpdate) { $qsUpdate .= "&caseid=%%caseid%%"; } } self::$_actionLinks = array(CRM_Core_Action::VIEW => array('name' => ts('View'), 'url' => $url, 'qs' => $qsView, 'title' => ts('View Activity'))); if ($showUpdate) { self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::UPDATE => array('name' => ts('Edit'), 'url' => $url, 'qs' => $qsUpdate, 'title' => ts('Update Activity'))); } require_once 'CRM/Case/BAO/Case.php'; if (CRM_Case_BAO_Case::checkPermission($activityId, 'File On Case', $activityTypeId)) { self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::ADD => array('name' => ts('File On Case'), 'url' => CRM_Utils_System::currentPath(), 'extra' => 'onClick="Javascript:fileOnCase( \'file\', \'%%id%%\' ); return false;"', 'title' => ts('File On Case'))); } if ($showDelete) { if (!isset($delUrl) || !$delUrl) { $delUrl = $url; } self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::DELETE => array('name' => ts('Delete'), 'url' => $delUrl, 'qs' => $qsDelete, 'title' => ts('Delete Activity'))); } if ($this->_context == 'case') { $qsDetach = "atype={$activityTypeId}&action=detach&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%&caseid=%%caseid%%{$extraParams}"; self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::DETACH => array('name' => ts('Detach'), 'url' => $url, 'qs' => $qsDetach, 'title' => ts('Detach Activity'))); } if ($accessMailingReport) { self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::BROWSE => array('name' => ts('Mailing Report'), 'url' => 'civicrm/mailing/report', 'qs' => "mid={$sourceRecordId}&reset=1&cid=%%cid%%&context=activitySelector", 'title' => ts('View Mailing Report'))); } return self::$_actionLinks; }
/** * This method returns the action links that are given for each search row. * currently the action links added for each row are * * - View * * @param string $activityType type of activity * * @return array * @access public * */ function actionLinks($activityTypeId, $sourceRecordId = null, $accessMailingReport = false) { $activityTypes = CRM_Core_PseudoConstant::activityType(false); $activityTypeIds = array_flip(CRM_Core_PseudoConstant::activityType(true, false, false, 'name')); //show edit link only for meeting/phone and other activities $showUpdate = false; $showDelete = false; if ($activityTypeId == $activityTypeIds['Event Registration']) { // event registration $url = 'civicrm/contact/view/participant'; $qsView = "action=view&reset=1&id={$sourceRecordId}&cid=%%cid%%&context=%%cxt%%"; } elseif ($activityTypeId == $activityTypeIds['Contribution']) { //contribution $url = 'civicrm/contact/view/contribution'; $qsView = "action=view&reset=1&id={$sourceRecordId}&cid=%%cid%%&context=%%cxt%%"; } elseif (in_array($activityTypeId, array($activityTypeIds['Membership Signup'], $activityTypeIds['Membership Renewal']))) { // membership $url = 'civicrm/contact/view/membership'; $qsView = "action=view&reset=1&id={$sourceRecordId}&cid=%%cid%%&context=%%cxt%%"; } elseif ($activityTypeId == CRM_Utils_Array::value('Pledge Acknowledgment', $activityTypeIds) || $activityTypeId == CRM_Utils_Array::value('Pledge Reminder', $activityTypeIds)) { //pledge acknowledgment $url = 'civicrm/contact/view/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%"; } elseif ($activityTypeId == $activityTypeIds['Email'] || $activityTypeId == $activityTypeIds['Bulk Email']) { $url = 'civicrm/activity/view'; $delUrl = 'civicrm/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%"; } elseif ($activityTypeId == $activityTypeIds['Inbound Email']) { $url = 'civicrm/contact/view/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%"; } else { $showUpdate = true; $showDelete = true; $url = 'civicrm/contact/view/activity'; $qsView = "atype={$activityTypeId}&action=view&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%"; $qsUpdate = "atype={$activityTypeId}&action=update&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%"; } $qsDelete = "atype={$activityTypeId}&action=delete&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%"; if ($this->_context == 'case') { $qsView .= "&caseid=%%caseid%%"; $qsDelete .= "&caseid=%%caseid%%"; if ($showUpdate) { $qsUpdate .= "&caseid=%%caseid%%"; } } self::$_actionLinks = array(CRM_Core_Action::VIEW => array('name' => ts('View'), 'url' => $url, 'qs' => $qsView, 'title' => ts('View Activity'))); if ($showUpdate) { self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::UPDATE => array('name' => ts('Edit'), 'url' => $url, 'qs' => $qsUpdate, 'title' => ts('Update Activity'))); } if ($showDelete) { if (!isset($delUrl) || !$delUrl) { $delUrl = $url; } self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::DELETE => array('name' => ts('Delete'), 'url' => $delUrl, 'qs' => $qsDelete, 'title' => ts('Delete Activity'))); } if ($this->_context == 'case') { $qsDetach = "atype={$activityTypeId}&action=detach&reset=1&id=%%id%%&cid=%%cid%%&context=%%cxt%%&caseid=%%caseid%%"; self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::DETACH => array('name' => ts('Detach'), 'url' => $url, 'qs' => $qsDetach, 'title' => ts('Detach Activity'))); } if ($accessMailingReport) { self::$_actionLinks = self::$_actionLinks + array(CRM_Core_Action::BROWSE => array('name' => ts('Mailing Report'), 'url' => 'civicrm/mailing/report', 'qs' => "mid={$sourceRecordId}&reset=1&cid=%%cid%%&context=activitySelector", 'title' => ts('View Mailing Report'))); } return self::$_actionLinks; }