diff --git a/CRM/Activity/Form/Activity.php b/CRM/Activity/Form/Activity.php index 24044465c56f..2e9ea0d3330e 100644 --- a/CRM/Activity/Form/Activity.php +++ b/CRM/Activity/Form/Activity.php @@ -163,9 +163,9 @@ public function setFields() { ), ), 'duration' => array( - 'type' => 'text', + 'type' => 'number', 'label' => ts('Duration'), - 'attributes' => array('size' => 4, 'maxlength' => 8), + 'attributes' => array('class' => 'four', 'min' => 1), 'required' => FALSE, ), 'location' => array( @@ -207,6 +207,11 @@ public function setFields() { 'api' => array('params' => array('is_deceased' => 0)), ), ), + 'activity_date_time' => array( + 'type' => 'datepicker', + 'label' => ts('Date'), + 'required' => TRUE, + ), 'followup_assignee_contact_id' => array( 'type' => 'entityRef', 'label' => ts('Assigned to'), @@ -559,16 +564,6 @@ public function setDefaultValues() { $defaults = $this->_values + CRM_Core_Form_RecurringEntity::setDefaultValues(); // if we're editing... if (isset($this->_activityId)) { - if (empty($defaults['activity_date_time'])) { - list($defaults['activity_date_time'], $defaults['activity_date_time_time']) = CRM_Utils_Date::setDateDefaults(NULL, 'activityDateTime'); - } - elseif ($this->_action & CRM_Core_Action::UPDATE) { - $this->assign('current_activity_date_time', $defaults['activity_date_time']); - list($defaults['activity_date_time'], - $defaults['activity_date_time_time'] - ) = CRM_Utils_Date::setDateDefaults($defaults['activity_date_time'], 'activityDateTime'); - list($defaults['repetition_start_date'], $defaults['repetition_start_date_time']) = CRM_Utils_Date::setDateDefaults($defaults['activity_date_time'], 'activityDateTime'); - } if ($this->_context != 'standalone') { $this->assign('target_contact_value', @@ -593,9 +588,10 @@ public function setDefaultValues() { $defaults['source_contact_id'] = $this->_sourceContactId; $defaults['target_contact_id'] = $this->_targetContactId; + } - list($defaults['activity_date_time'], $defaults['activity_date_time_time']) - = CRM_Utils_Date::setDateDefaults(NULL, 'activityDateTime'); + if (empty($defaults['activity_date_time'])) { + $defaults['activity_date_time'] = date('Y-m-d H:i:s'); } if ($this->_activityTypeId) { @@ -759,7 +755,6 @@ public function buildQuickForm() { $this->addRule('duration', ts('Please enter the duration as number of minutes (integers only).'), 'positiveInteger' ); - $this->addDateTime('activity_date_time', ts('Date'), TRUE, array('formatType' => 'activityDateTime')); // Add followup date. $this->addDateTime('followup_date', ts('in'), FALSE, array('formatType' => 'activityDateTime')); @@ -948,9 +943,6 @@ public function postProcess($params = NULL) { ); } - // store the date with proper format - $params['activity_date_time'] = CRM_Utils_Date::processDate($params['activity_date_time'], $params['activity_date_time_time']); - // format params as arrays foreach (array('target', 'assignee', 'followup_assignee') as $name) { if (!empty($params["{$name}_contact_id"])) { diff --git a/CRM/Case/Form/Activity.php b/CRM/Case/Form/Activity.php index 580d4b58a4e5..a1f6809ec3b5 100644 --- a/CRM/Case/Form/Activity.php +++ b/CRM/Case/Form/Activity.php @@ -272,17 +272,14 @@ public function buildQuickForm() { $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' - ); + if ($this->_activityTypeFile == 'OpenCase' && $this->_action == CRM_Core_Action::UPDATE) { + $this->getElement('activity_date_time')->freeze(); + + // 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? + $this->_encounterMedium = CRM_Core_DAO::getFieldValue('CRM_Activity_DAO_Activity', $this->_activityId, 'medium_id'); if (!array_key_exists($this->_encounterMedium, $encounterMediums)) { - $encounterMediums[$this->_encounterMedium] = CRM_Core_OptionGroup::getLabel('encounter_medium', - $this->_encounterMedium, - FALSE - ); + $encounterMediums[$this->_encounterMedium] = CRM_Core_OptionGroup::getLabel('encounter_medium', $this->_encounterMedium, FALSE); } } @@ -404,8 +401,6 @@ public function postProcess($params = NULL) { $params['parent_id'] = $parentId; } - // store the dates with proper format - $params['activity_date_time'] = CRM_Utils_Date::processDate($params['activity_date_time'], $params['activity_date_time_time']); $params['activity_type_id'] = $this->_activityTypeId; // format with contact (target contact) values diff --git a/CRM/Case/Form/Activity/ChangeCaseStartDate.php b/CRM/Case/Form/Activity/ChangeCaseStartDate.php index 0494ca135d6b..7066aa10b578 100644 --- a/CRM/Case/Form/Activity/ChangeCaseStartDate.php +++ b/CRM/Case/Form/Activity/ChangeCaseStartDate.php @@ -67,7 +67,7 @@ public static function setDefaultValues(&$form) { $openCaseParams = array('activity_type_id' => $openCaseActivityType); $openCaseInfo = CRM_Case_BAO_Case::getCaseActivityDates($caseId, $openCaseParams, TRUE); if (empty($openCaseInfo)) { - list($defaults['start_date'], $defaults['start_date_time']) = CRM_Utils_Date::setDateDefaults(); + $defaults['start_date'] = date('Y-m-d H:i:s'); } else { // We know there can only be one result @@ -76,7 +76,7 @@ public static function setDefaultValues(&$form) { // store activity id for updating it later $form->openCaseActivityId = $openCaseInfo['id']; - list($defaults['start_date'], $defaults['start_date_time']) = CRM_Utils_Date::setDateDefaults($openCaseInfo['activity_date'], 'activityDateTime'); + $defaults['start_date'] = $openCaseInfo['activity_date']; } return $defaults; } @@ -91,7 +91,7 @@ public static function buildQuickForm(&$form) { $currentStartDate = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case', $caseId, 'start_date'); $form->assign('current_start_date', $currentStartDate); - $form->addDate('start_date', ts('New Start Date'), FALSE, array('formatType' => 'activityDateTime')); + $form->add('datepicker', 'start_date', ts('New Start Date'), [], TRUE); } /** @@ -132,10 +132,6 @@ public static function beginPostProcess(&$form, &$params) { * @param $activity */ public static function endPostProcess(&$form, &$params, $activity) { - if (!empty($params['start_date'])) { - $params['start_date'] = CRM_Utils_Date::processDate($params['start_date'], $params['start_date_time']); - } - $caseType = CRM_Utils_Array::first($form->_caseType); $caseId = CRM_Utils_Array::first($form->_caseId); @@ -162,7 +158,7 @@ public static function endPostProcess(&$form, &$params, $activity) { $currentStartDate = CRM_Utils_Date::customFormat(CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case', $caseId, 'start_date' ), $config->dateformatFull); - $newStartDate = CRM_Utils_Date::customFormat(CRM_Utils_Date::mysqlToIso($params['start_date']), $config->dateformatFull); + $newStartDate = CRM_Utils_Date::customFormat($params['start_date'], $config->dateformatFull); $subject = 'Change Case Start Date from ' . $currentStartDate . ' to ' . $newStartDate; $activity->subject = $subject; $activity->save(); diff --git a/CRM/Case/Form/Activity/OpenCase.php b/CRM/Case/Form/Activity/OpenCase.php index 55e475134a65..73f6f5a4c45a 100644 --- a/CRM/Case/Form/Activity/OpenCase.php +++ b/CRM/Case/Form/Activity/OpenCase.php @@ -98,7 +98,7 @@ public static function setDefaultValues(&$form) { return $defaults; } - list($defaults['start_date'], $defaults['start_date_time']) = CRM_Utils_Date::setDateDefaults(NULL, 'activityDateTime'); + $defaults['start_date'] = date('Y-m-d H:i:s'); // set default case status, case type, encounter medium, location type and phone type defaults are set in DB if ($form->_caseStatusId) { @@ -175,7 +175,7 @@ public static function buildQuickForm(&$form) { $csElement->freeze(); } - $form->add('text', 'duration', ts('Activity Duration'), array('size' => 4, 'maxlength' => 8)); + $form->add('number', 'duration', ts('Activity Duration'), ['class' => 'four', 'min' => 1]); $form->addRule('duration', ts('Please enter the duration as number of minutes (integers only).'), 'positiveInteger'); if ($form->_currentlyViewedContactId) { @@ -183,7 +183,7 @@ public static function buildQuickForm(&$form) { $form->assign('clientName', $displayName); } - $form->addDate('start_date', ts('Case Start Date'), TRUE, array('formatType' => 'activityDateTime')); + $form->add('datepicker', 'start_date', ts('Case Start Date'), [], TRUE); $form->addField('medium_id', array('entity' => 'activity', 'context' => 'create'), TRUE); @@ -227,9 +227,6 @@ public static function beginPostProcess(&$form, &$params) { $form->_currentlyViewedContactId = $params['client_id'][0]; } - // for open case start date should be set to current date - $params['start_date'] = CRM_Utils_Date::processDate($params['start_date'], $params['start_date_time']); - // rename activity_location param to the correct column name for activity DAO $params['location'] = CRM_Utils_Array::value('activity_location', $params); diff --git a/templates/CRM/Activity/Form/Activity.tpl b/templates/CRM/Activity/Form/Activity.tpl index 6973e09378af..ebf945ceaff9 100644 --- a/templates/CRM/Activity/Form/Activity.tpl +++ b/templates/CRM/Activity/Form/Activity.tpl @@ -135,7 +135,7 @@ {$form.activity_date_time.label} {if $action neq 4} - {include file="CRM/common/jcalendar.tpl" elementName=activity_date_time} + {$form.activity_date_time.html} {else} {$form.activity_date_time.value|crmDate} {/if} diff --git a/templates/CRM/Case/Form/Activity.tpl b/templates/CRM/Case/Form/Activity.tpl index fd0a29c33d7e..aa8d78cb5c69 100644 --- a/templates/CRM/Case/Form/Activity.tpl +++ b/templates/CRM/Case/Form/Activity.tpl @@ -145,15 +145,12 @@ {$form.activity_date_time.label} - {if $action eq 2 && $activityTypeFile eq 'OpenCase'} - {$current_activity_date_time|crmDate} -
Use a Change Start Date activity to change the date
- {* avoid errors about missing field *} -
{include file="CRM/common/jcalendar.tpl" elementName=activity_date_time}
- - {else} - {include file="CRM/common/jcalendar.tpl" elementName=activity_date_time} - {/if} + + {$form.activity_date_time.html} + {if $action eq 2 && $activityTypeFile eq 'OpenCase'} +
Use a Change Start Date activity to change the date
+ {/if} + {if $action eq 2 && $activityTypeFile eq 'OpenCase'} diff --git a/templates/CRM/Case/Form/Activity/ChangeCaseStartDate.tpl b/templates/CRM/Case/Form/Activity/ChangeCaseStartDate.tpl index a70ba927452a..8d8c464c6ff6 100644 --- a/templates/CRM/Case/Form/Activity/ChangeCaseStartDate.tpl +++ b/templates/CRM/Case/Form/Activity/ChangeCaseStartDate.tpl @@ -35,6 +35,6 @@ {$form.start_date.label} - {include file="CRM/common/jcalendar.tpl" elementName=start_date} + {$form.start_date.html} diff --git a/templates/CRM/Case/Form/Activity/OpenCase.tpl b/templates/CRM/Case/Form/Activity/OpenCase.tpl index 0117df24753d..569375946925 100644 --- a/templates/CRM/Case/Form/Activity/OpenCase.tpl +++ b/templates/CRM/Case/Form/Activity/OpenCase.tpl @@ -34,9 +34,7 @@ {$form.start_date.label} - - {include file="CRM/common/jcalendar.tpl" elementName=start_date} - + {$form.start_date.html} {* Add fields for attachments *}