Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Activity date fields -> datepicker #13299

Merged
merged 3 commits into from
Dec 28, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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