From fc187bad0973a3080c76d8079ac136b5f17805b9 Mon Sep 17 00:00:00 2001 From: appu <apparao@vtiger.com> Date: Thu, 25 Jan 2024 18:16:26 +0530 Subject: [PATCH] Fixes::158253812::Appu::There is time mismatch in the task management updates view --- .../v7/modules/Vtiger/RecentActivities.tpl | 23 ++++++++++-- modules/Calendar/uitypes/Time.php | 35 +++++++++++++++++++ modules/Vtiger/views/Detail.php | 1 - 3 files changed, 55 insertions(+), 4 deletions(-) diff --git a/layouts/v7/modules/Vtiger/RecentActivities.tpl b/layouts/v7/modules/Vtiger/RecentActivities.tpl index 1aaf9ecc4..ab22c6e86 100644 --- a/layouts/v7/modules/Vtiger/RecentActivities.tpl +++ b/layouts/v7/modules/Vtiger/RecentActivities.tpl @@ -79,6 +79,23 @@ </h5> </div> {foreach item=FIELDMODEL from=$RECENT_ACTIVITY->getFieldInstances()} + + {assign var=FIELD_NAME value=$FIELDMODEL->getFieldInstance()->getName()} + {assign var=FIELD_DATA_TYPE value=$FIELDMODEL->getFieldInstance()->getFieldDataType()} + {assign var=PRE_DISPLAY_VALUE value=$FIELDMODEL->getDisplayValue(decode_html($FIELDMODEL->get('prevalue')))} + {assign var=POST_DISPLAY_VALUE value=$FIELDMODEL->getDisplayValue(decode_html($FIELDMODEL->get('postvalue')))} + + {if in_array($FIELD_NAME,array('time_start','time_end')) && in_array($MODULE_NAME,array('Events','Calendar'))} + {assign var=CALENDAR_RECORD_MODEL value =Vtiger_Record_Model::getInstanceById($RECORD_ID)} + {assign var=TIME_PRE_DISPLAY_VALUE value={Calendar_Time_UIType::getModTrackerDisplayValue($FIELD_NAME,$FIELDMODEL->get('prevalue'),$CALENDAR_RECORD_MODEL)}} + {assign var=TIME_POST_DISPLAY_VALUE value={Calendar_Time_UIType::getModTrackerDisplayValue($FIELD_NAME,$FIELDMODEL->get('postvalue'),$CALENDAR_RECORD_MODEL)}} + {assign var=PRE_DISPLAY_VALUE value=$TIME_PRE_DISPLAY_VALUE} + {assign var=POST_DISPLAY_VALUE value=$TIME_POST_DISPLAY_VALUE} + {/if} + + {assign var=PRE_DISPLAY_TITLE value=$TIME_PRE_DISPLAY_VALUE} + + {if $FIELDMODEL && $FIELDMODEL->getFieldInstance() && $FIELDMODEL->getFieldInstance()->isViewable() && $FIELDMODEL->getFieldInstance()->getDisplayType() neq '5'} <div class='font-x-small updateInfoContainer textOverflowEllipsis'> <div class='update-name'><span class="field-name">{vtranslate($FIELDMODEL->getName(),$MODULE_NAME)}</span> @@ -86,17 +103,17 @@ <span> {vtranslate('LBL_CHANGED')}</span> </div> <div class='update-from'><span class="field-name">{vtranslate('LBL_FROM')}</span> - <em style="white-space:pre-line;" title="{strip_tags({Vtiger_Util_Helper::toVtiger6SafeHTML($FIELDMODEL->getDisplayValue(decode_html($FIELDMODEL->get('prevalue'))))})}">{Vtiger_Util_Helper::toVtiger6SafeHTML($FIELDMODEL->getDisplayValue(decode_html($FIELDMODEL->get('prevalue'))))}</em> + <em style="white-space:pre-line;" title="{strip_tags({Vtiger_Util_Helper::toVtiger6SafeHTML($PRE_DISPLAY_TITLE)})}">{Vtiger_Util_Helper::toVtiger6SafeHTML($PRE_DISPLAY_VALUE)}</em> </div> {else if $FIELDMODEL->get('postvalue') eq '' || ($FIELDMODEL->getFieldInstance()->getFieldDataType() eq 'reference' && $FIELDMODEL->get('postvalue') eq '0')} - (<del>{Vtiger_Util_Helper::toVtiger6SafeHTML($FIELDMODEL->getDisplayValue(decode_html($FIELDMODEL->get('prevalue'))))}</del> ) {vtranslate('LBL_IS_REMOVED')}</div> + (<del>{Vtiger_Util_Helper::toVtiger6SafeHTML($PRE_DISPLAY_VALUE)})</del> ) {vtranslate('LBL_IS_REMOVED')}</div> {else if $FIELDMODEL->get('postvalue') neq '' && !($FIELDMODEL->getFieldInstance()->getFieldDataType() eq 'reference' && $FIELDMODEL->get('postvalue') eq '0')} {vtranslate('LBL_UPDATED')}</div> {else} {vtranslate('LBL_CHANGED')}</div> {/if} {if $FIELDMODEL->get('postvalue') neq '' && !($FIELDMODEL->getFieldInstance()->getFieldDataType() eq 'reference' && $FIELDMODEL->get('postvalue') eq '0')} - <div class="update-to"><span class="field-name">{vtranslate('LBL_TO')}</span> <em style="white-space:pre-line;">{Vtiger_Util_Helper::toVtiger6SafeHTML($FIELDMODEL->getDisplayValue(decode_html($FIELDMODEL->get('postvalue'))))}</em> + <div class="update-to"><span class="field-name">{vtranslate('LBL_TO')}</span> <em style="white-space:pre-line;">{Vtiger_Util_Helper::toVtiger6SafeHTML($POST_DISPLAY_VALUE)}</em> </div> {/if} </div> diff --git a/modules/Calendar/uitypes/Time.php b/modules/Calendar/uitypes/Time.php index 7635e0d40..afd349279 100644 --- a/modules/Calendar/uitypes/Time.php +++ b/modules/Calendar/uitypes/Time.php @@ -59,5 +59,40 @@ class Calendar_Time_UIType extends Vtiger_Time_UIType { $value = $dateTimeField->getDisplayTime(); return $value; } + + /** + * Function to get the ModtrackerDisplay Value, for the current field type with given DB Insert Value + * @param <Object> $fieldName + * @param <Object> $value + * @param <Object> $recordModel + * @return $value + */ + public static function getModTrackerDisplayValue($fieldName,$value,$recordModel) { + $userModel = Users_Privileges_Model::getCurrentUserModel(); + if(empty($value)){ + return ''; + } + if($recordModel){ + $startDate = $recordModel->get('date_start'); + $endDate = $recordModel->get('due_date'); + if($fieldName == 'time_start') { + //Added this check to show start time according to start date of calendar record + //to avoid day light saving issue for -(UTC London) => UTC+1:00 + $dateTime = new DateTimeField($startDate.' '.$value); + $value = $dateTime->getDisplayTime(); + } + if($fieldName == 'time_end'){ + //Added this check to show end time according to end date of calendar record + //to avoid day light saving issue for -(UTC London) => UTC+1:00 + $dateTime = new DateTimeField($endDate.' '.$value); + $value = $dateTime->getDisplayTime(); + + } + } + if($userModel->get('hour_format') == '12'){ + return Vtiger_Time_UIType::getTimeValueInAMorPM($value); + } + return $value; + } } \ No newline at end of file diff --git a/modules/Vtiger/views/Detail.php b/modules/Vtiger/views/Detail.php index 7def95531..421a79e5a 100644 --- a/modules/Vtiger/views/Detail.php +++ b/modules/Vtiger/views/Detail.php @@ -439,7 +439,6 @@ class Vtiger_Detail_View extends Vtiger_Index_View { $recordModel = Vtiger_Record_Model::getInstanceById($parentRecordId); $viewer = $this->getViewer($request); $viewer->assign('SOURCE',$recordModel->get('source')); - $recentActivities = ModTracker_Record_Model::getUpdates($parentRecordId, $pagingModel,$moduleName); $totalCount = ModTracker_Record_Model::getTotalRecordCount($parentRecordId); $pageLimit = $pagingModel->getPageLimit(); -- GitLab