Skip to content

Commit

Permalink
Merge pull request #13299 from colemanw/activityDate
Browse files Browse the repository at this point in the history
Activity date fields -> datepicker
  • Loading branch information
seamuslee001 authored Dec 28, 2018
2 parents ac5895d + 06f5104 commit f0230c6
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 58 deletions.
28 changes: 10 additions & 18 deletions CRM/Activity/Form/Activity.php
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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'),
Expand Down Expand Up @@ -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',
Expand All @@ -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) {
Expand Down Expand Up @@ -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'));
Expand Down Expand Up @@ -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"])) {
Expand Down
19 changes: 7 additions & 12 deletions CRM/Case/Form/Activity.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}

Expand Down Expand Up @@ -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
Expand Down
12 changes: 4 additions & 8 deletions CRM/Case/Form/Activity/ChangeCaseStartDate.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
}
Expand All @@ -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);
}

/**
Expand Down Expand Up @@ -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);

Expand All @@ -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();
Expand Down
9 changes: 3 additions & 6 deletions CRM/Case/Form/Activity/OpenCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -175,15 +175,15 @@ 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) {
list($displayName) = CRM_Contact_BAO_Contact::getDisplayAndImage($form->_currentlyViewedContactId);
$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);

Expand Down Expand Up @@ -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);

Expand Down
2 changes: 1 addition & 1 deletion templates/CRM/Activity/Form/Activity.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@
<tr class="crm-activity-form-block-activity_date_time">
<td class="label">{$form.activity_date_time.label}</td>
{if $action neq 4}
<td class="view-value">{include file="CRM/common/jcalendar.tpl" elementName=activity_date_time}</td>
<td class="view-value">{$form.activity_date_time.html}</td>
{else}
<td class="view-value">{$form.activity_date_time.value|crmDate}</td>
{/if}
Expand Down
15 changes: 6 additions & 9 deletions templates/CRM/Case/Form/Activity.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,12 @@
</tr>
<tr class="crm-case-activity-form-block-activity_date_time">
<td class="label">{$form.activity_date_time.label}</td>
{if $action eq 2 && $activityTypeFile eq 'OpenCase'}
<td class="view-value">{$current_activity_date_time|crmDate}
<div class="description">Use a <a href="{$changeStartURL}">Change Start Date</a> activity to change the date</div>
{* avoid errors about missing field *}
<div style="display: none;">{include file="CRM/common/jcalendar.tpl" elementName=activity_date_time}</div>
</td>
{else}
<td class="view-value">{include file="CRM/common/jcalendar.tpl" elementName=activity_date_time}</td>
{/if}
<td class="view-value">
{$form.activity_date_time.html}
{if $action eq 2 && $activityTypeFile eq 'OpenCase'}
<div class="description">Use a <a class="open-inline" href="{$changeStartURL}">Change Start Date</a> activity to change the date</div>
{/if}
</td>
</tr>
{if $action eq 2 && $activityTypeFile eq 'OpenCase'}
<tr class="crm-case-activity-form-block-details">
Expand Down
2 changes: 1 addition & 1 deletion templates/CRM/Case/Form/Activity/ChangeCaseStartDate.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@
</tr>
<tr class="crm-case-changecasestartdate-form-block-start_date">
<td class="label">{$form.start_date.label}</td>
<td>{include file="CRM/common/jcalendar.tpl" elementName=start_date}</td>
<td>{$form.start_date.html}</td>
</tr>
</div>
4 changes: 1 addition & 3 deletions templates/CRM/Case/Form/Activity/OpenCase.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@
</tr>
<tr class="crm-case-opencase-form-block-start_date">
<td class="label">{$form.start_date.label}</td>
<td>
{include file="CRM/common/jcalendar.tpl" elementName=start_date}
</td>
<td>{$form.start_date.html}</td>
</tr>

{* Add fields for attachments *}
Expand Down

0 comments on commit f0230c6

Please sign in to comment.