Display the updated_at field using the site timezone

This commit changes the logic to display the updated_at field for tasks
in the system status page to use the site timezone.

[MAILPOET-3692]
This commit is contained in:
Rodrigo Primo
2021-09-15 12:14:09 -03:00
committed by Veljko V
parent 9acfe4fbee
commit a25a6db1f5
3 changed files with 7 additions and 5 deletions

View File

@@ -8,6 +8,9 @@ const TasksListDataRow = (props) => {
if (scheduled) { if (scheduled) {
scheduled = parseDate(scheduled, 'yyyy-MM-dd HH:mm:ss', new Date()); scheduled = parseDate(scheduled, 'yyyy-MM-dd HH:mm:ss', new Date());
} }
const updated = parseDate(props.task.updated_at, 'yyyy-MM-dd HH:mm:ss', new Date());
return ( return (
<tr> <tr>
<td className="column column-primary"> <td className="column column-primary">
@@ -38,7 +41,7 @@ const TasksListDataRow = (props) => {
</td> </td>
) : null} ) : null}
<td className="column-date"> <td className="column-date">
<abbr>{MailPoet.Date.format(props.task.updated_at * 1000)}</abbr> <abbr>{`${MailPoet.Date.short(updated)} ${MailPoet.Date.time(updated)}`}</abbr>
</td> </td>
</tr> </tr>
); );
@@ -50,7 +53,7 @@ TasksListDataRow.propTypes = {
id: PropTypes.number.isRequired, id: PropTypes.number.isRequired,
type: PropTypes.string.isRequired, type: PropTypes.string.isRequired,
priority: PropTypes.number.isRequired, priority: PropTypes.number.isRequired,
updated_at: PropTypes.number.isRequired, updated_at: PropTypes.string.isRequired,
scheduled_at: PropTypes.string, scheduled_at: PropTypes.string,
status: PropTypes.string, status: PropTypes.string,
newsletter: PropTypes.shape({ newsletter: PropTypes.shape({

View File

@@ -7,7 +7,6 @@ use MailPoet\Models\Newsletter;
use MailPoet\Models\ScheduledTask; use MailPoet\Models\ScheduledTask;
use MailPoet\Models\SendingQueue; use MailPoet\Models\SendingQueue;
use MailPoet\Newsletter\Url as NewsletterUrl; use MailPoet\Newsletter\Url as NewsletterUrl;
use MailPoetVendor\Carbon\Carbon;
class State { class State {
/** @var NewsletterUrl */ /** @var NewsletterUrl */
@@ -91,7 +90,7 @@ class State {
'id' => (int)$task->id, 'id' => (int)$task->id,
'type' => $task->type, 'type' => $task->type,
'priority' => (int)$task->priority, 'priority' => (int)$task->priority,
'updated_at' => Carbon::createFromTimeString((string)$task->updatedAt)->timestamp, 'updated_at' => $task->updatedAt,
'scheduled_at' => $task->scheduledAt ? $task->scheduledAt : null, 'scheduled_at' => $task->scheduledAt ? $task->scheduledAt : null,
'status' => $task->status, 'status' => $task->status,
'newsletter' => (($queue instanceof SendingQueue) && ($newsletter instanceof Newsletter)) ? [ 'newsletter' => (($queue instanceof SendingQueue) && ($newsletter instanceof Newsletter)) ? [

View File

@@ -31,7 +31,7 @@ class StateTest extends \MailPoetTest {
expect($data[1]['id'])->equals(1); expect($data[1]['id'])->equals(1);
expect($data[1]['type'])->equals(SendingTask::TASK_TYPE); expect($data[1]['type'])->equals(SendingTask::TASK_TYPE);
expect(is_int($data[1]['priority']))->true(); expect(is_int($data[1]['priority']))->true();
expect(is_int($data[1]['updated_at']))->true(); expect(is_string($data[1]['updated_at']))->true();
expect($data[1])->hasKey('scheduled_at'); expect($data[1])->hasKey('scheduled_at');
expect($data[1]['status'])->notEmpty(); expect($data[1]['status'])->notEmpty();
expect($data[1])->hasKey('newsletter'); expect($data[1])->hasKey('newsletter');