Merge pull request #2763 from colemanw/master
[civicrm-core.git] / CRM / Case / Form / Activity.php
index a73c0e36b61aef889e4ee62920400f49eabd2707..465d5337ed5343a2b9647714a3427ef493c5ea45 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.4                                                |
+ | CiviCRM version 4.5                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013                                |
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -28,7 +28,7 @@
 /**
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
  * $Id$
  *
  */
@@ -70,7 +70,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
   /**
    * Function to build the form
    *
-   * @return None
+   * @return void
    * @access public
    */
   function preProcess() {
@@ -115,7 +115,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
       !CRM_Core_Permission::check('access all cases and activities')
     ) {
       $session = CRM_Core_Session::singleton();
-      $allCases = CRM_Case_BAO_Case::getCases(TRUE, $session->get('userID'));
+      $allCases = CRM_Case_BAO_Case::getCases(TRUE, $session->get('userID'), 'any');
       if (!array_key_exists($this->_caseId, $allCases)) {
         CRM_Core_Error::fatal(ts('You are not authorized to access this page.'));
       }
@@ -203,10 +203,6 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
       }
     }
 
-    if ($this->_currentlyViewedContactId) {
-      CRM_Contact_Page_View::setTitle($this->_currentlyViewedContactId);
-    }
-
     $session = CRM_Core_Session::singleton();
     $session->pushUserContext($url);
   }
@@ -217,7 +213,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
    *
    * @access public
    *
-   * @return None
+   * @return void
    */
   function setDefaultValues() {
     $this->_defaults = parent::setDefaultValues();
@@ -262,7 +258,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
 
   public function buildQuickForm() {
     $this->_fields['source_contact_id']['label'] = ts('Reported By');
-    $this->_fields['status_id']['attributes'] = array('' => ts('- select -')) + CRM_Core_PseudoConstant::activityStatus();
+    unset($this->_fields['status_id']['attributes']['required']);
 
     if ($this->_caseType) {
       $xmlProcessor = new CRM_Case_XMLProcessor_Process();
@@ -290,6 +286,8 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
     $this->assign('urlPath', 'civicrm/case/activity');
 
     $encounterMediums = CRM_Case_PseudoConstant::encounterMedium();
+    // Fixme: what's the justification for this? It seems like it is just re-adding an option in case it is the default and disabled.
+    // Is that really a big problem?
     if ($this->_activityTypeFile == 'OpenCase') {
       $this->_encounterMedium = CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $this->_activityId,
         'medium_id'
@@ -321,7 +319,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
 
       $this->addGroup($checkBoxes, 'contact_check');
       $this->addElement('checkbox', 'toggleSelect', NULL, NULL,
-        array('onclick' => "return toggleCheckboxVals('contact_check',this);")
+        array('class' => 'select-rows')
       );
       $this->assign('searchRows', $this->_relatedContacts);
     }
@@ -354,9 +352,9 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
    *
    * @access public
    *
-   * @return None
+   * @return void
    */
-  public function postProcess() {
+  public function postProcess($params = NULL) {
     $transaction = new CRM_Core_Transaction();
 
     if ($this->_action & CRM_Core_Action::DELETE) {
@@ -401,9 +399,6 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
 
     // store the submitted values in an array
     $params = $this->controller->exportValues($this->_name);
-    if ($params['source_contact_id']) {
-      $params['source_contact_id'] = $params['source_contact_qid'];
-    }
 
     //set parent id if its edit mode
     if ($parentId = CRM_Utils_Array::value('parent_id', $this->_defaults)) {
@@ -426,7 +421,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
     }
 
     // format activity custom data
-    if (CRM_Utils_Array::value('hidden_custom', $params)) {
+    if (!empty($params['hidden_custom'])) {
       if ($this->_activityId) {
         // unset custom fields-id from params since we want custom
         // fields to be saved for new activity.
@@ -460,7 +455,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
     }
 
     // assigning formatted value
-    if (CRM_Utils_Array::value('assignee_contact_id', $params)) {
+    if (!empty($params['assignee_contact_id'])) {
       $params['assignee_contact_id'] = explode(',', $params['assignee_contact_id']);
     }
     else {
@@ -516,7 +511,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
     // have been modified/created by user
     if (isset($newActParams)) {
       // set proper original_id
-      if (CRM_Utils_Array::value('original_id', $this->_defaults)) {
+      if (!empty($this->_defaults['original_id'])) {
         $newActParams['original_id'] = $this->_defaults['original_id'];
       }
       else {
@@ -541,7 +536,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
 
       // copy files attached to old activity if any, to new one,
       // as long as users have not selected the 'delete attachment' option.
-      if (!CRM_Utils_Array::value('is_delete_attachment', $newActParams)) {
+      if (empty($newActParams['is_delete_attachment'])) {
         CRM_Core_BAO_File::copyEntityFile('civicrm_activity', $this->_activityId,
           'civicrm_activity', $activity->id
         );
@@ -573,10 +568,10 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
     $caseParams = $params;
     $caseParams['id'] = $this->_caseId;
 
-    if (CRM_Utils_Array::value('case_type_id', $caseParams)) {
+    if (!empty($caseParams['case_type_id'])) {
       $caseParams['case_type_id'] = CRM_Core_DAO::VALUE_SEPARATOR . $caseParams['case_type_id'] . CRM_Core_DAO::VALUE_SEPARATOR;
     }
-    if (CRM_Utils_Array::value('case_status_id', $caseParams)) {
+    if (!empty($caseParams['case_status_id'])) {
       $caseParams['status_id'] = $caseParams['case_status_id'];
     }
 
@@ -619,7 +614,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
           $mailStatus = ts("A copy of the activity has also been sent to selected contacts(s).");
         }
         else {
-          $this->_relatedContacts = CRM_Activity_BAO_ActivityAssignment::getAssigneeNames($activity->id, TRUE, FALSE);
+          $this->_relatedContacts = CRM_Activity_BAO_ActivityAssignment::getAssigneeNames(array($activity->id), TRUE, FALSE);
           $mailStatus .= ' ' . ts("A copy of the activity has also been sent to assignee contacts(s).");
         }
 
@@ -671,7 +666,7 @@ class CRM_Case_Form_Activity extends CRM_Activity_Form_Activity {
 
     // create follow up activity if needed
     $followupStatus = '';
-    if (CRM_Utils_Array::value('followup_activity_type_id', $params)) {
+    if (!empty($params['followup_activity_type_id'])) {
       $followupActivity = CRM_Activity_BAO_Activity::createFollowupActivity($activity->id, $params);
 
       if ($followupActivity) {