Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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;
 }