clean up(CRM-12274)
[civicrm-core.git] / CRM / Activity / Form / Activity.php
index bee06e27af8c2ff976714a9ab56299f45674de3a..f921a08c80d48f9d905934239c1910d6debef973 100644 (file)
@@ -373,6 +373,9 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
     // set user context
     $urlParams = $urlString = NULL;
     $qfKey = CRM_Utils_Request::retrieve('key', 'String', $this);
+    if (!$qfKey) {
+      $qfKey = CRM_Utils_Request::retrieve('qfKey', 'String', $this);
+    }
 
     //validate the qfKey
     if (!CRM_Utils_Rule::qfKey($qfKey)) {
@@ -403,9 +406,14 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
       if ($qfKey) {
         $urlParams .= "&qfKey=$qfKey";
       }
-      if ($this->_compContext == 'advanced') {
+      $path = CRM_Utils_System::currentPath();
+      if ($this->_compContext == 'advanced' ||
+        $path == 'civicrm/contact/search/advanced') {
         $urlString = 'civicrm/contact/search/advanced';
       }
+      else if ($path == 'civicrm/contact/search') {
+        $urlString = 'civicrm/contact/search';
+      }
       else {
         $urlString = 'civicrm/activity/search';
       }
@@ -592,6 +600,9 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
       $priority = CRM_Core_PseudoConstant::priority();
       $defaults['priority_id'] = array_search('Normal', $priority);
     }
+    if (!CRM_Utils_Array::value('status_id', $defaults)) {
+      $defaults['status_id'] = CRM_Core_OptionGroup::getDefaultValue('activity_status');
+    }
     return $defaults;
   }
 
@@ -742,7 +753,7 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
 
     // this option should be available only during add mode
     if ($this->_action != CRM_Core_Action::UPDATE) {
-      $this->add('advcheckbox', 'is_multi_activity', ts('Create a separate activity for each of the above selected contact.'));
+      $this->add('advcheckbox', 'is_multi_activity', ts('Create a separate activity for each contact.'));
     }
 
     $this->addRule('duration',
@@ -751,7 +762,7 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
     $this->addDateTime('activity_date_time', ts('Date'), TRUE, array('formatType' => 'activityDateTime'));
 
     //add followup date
-    $this->addDateTime('followup_date', ts('in'));
+    $this->addDateTime('followup_date', ts('in'), FALSE, array('formatType' => 'activityDateTime'));
 
     //autocomplete url
     $dataUrl = CRM_Utils_System::url("civicrm/ajax/rest",
@@ -874,6 +885,17 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
     }
 
     $this->addFormRule(array('CRM_Activity_Form_Activity', 'formRule'), $this);
+
+    if (CRM_Core_BAO_Setting::getItem(
+        CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
+        'activity_assignee_notification'
+      )
+    ) {
+      $this->assign('activityAssigneeNotification', TRUE);
+    }
+    else {
+      $this->assign('activityAssigneeNotification', FALSE);
+    }
   }
 
   /**
@@ -1056,13 +1078,15 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
    */
   protected function processActivity(&$params) {
     $activityAssigned = array();
+    $activityContacts = CRM_Core_PseudoConstant::activityContacts('name');
+    $assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
     // format assignee params
     if (!CRM_Utils_Array::crmIsEmptyArray($params['assignee_contact_id'])) {
       //skip those assignee contacts which are already assigned
       //while sending a copy.CRM-4509.
       $activityAssigned = array_flip($params['assignee_contact_id']);
       if ($this->_activityId) {
-        $assigneeContacts = CRM_Activity_BAO_ActivityAssignment::getAssigneeNames($this->_activityId);
+        $assigneeContacts = CRM_Activity_BAO_ActivityContact::getNames($this->_activityId, $assigneeID);
         $activityAssigned = array_diff_key($activityAssigned, $assigneeContacts);
       }
     }
@@ -1117,7 +1141,8 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
       )
     ) {
       $mailToContacts = array();
-      $assigneeContacts = CRM_Activity_BAO_ActivityAssignment::getAssigneeNames($activity->id, TRUE, FALSE);
+      //FIX ME : add more parameters to 'getNames' function
+      $assigneeContacts = CRM_Activity_BAO_ActivityContact::getNames($activity->id, $assigneeID, TRUE, FALSE);
 
       //build an associative array with unique email addresses.
       foreach ($activityAssigned as $id => $dnc) {