diff --git a/app/controllers/admin/events/list.js b/app/controllers/admin/events/list.js
index a9b2e1fa606..7e1a42d569a 100644
--- a/app/controllers/admin/events/list.js
+++ b/app/controllers/admin/events/list.js
@@ -35,22 +35,18 @@ export default class extends Controller.extend(EmberTableControllerMixin) {
valuePath : 'startsAt',
isSortable : true,
headerComponent : 'tables/headers/sort',
+ extraValuePaths : ['timezone'],
cellComponent : 'ui-table/cell/cell-simple-date',
- width : 65,
- options : {
- dateFormat: 'MMMM DD, YYYY - hh:mm A'
- }
+ width : 75
},
{
name : 'Ends At',
valuePath : 'endsAt',
isSortable : true,
+ extraValuePaths : ['timezone'],
headerComponent : 'tables/headers/sort',
cellComponent : 'ui-table/cell/cell-simple-date',
- width : 65,
- options : {
- dateFormat: 'MMMM DD, YYYY - hh:mm A'
- }
+ width : 75
},
{
name : 'State',
diff --git a/app/controllers/events/list.js b/app/controllers/events/list.js
index ebd2de7d1c1..248f36ef0e1 100644
--- a/app/controllers/events/list.js
+++ b/app/controllers/events/list.js
@@ -27,8 +27,9 @@ export default class extends Controller.extend(EmberTableControllerMixin) {
{
name : 'Date',
valuePath : 'startsAt',
- extraValuePaths : ['endsAt'],
+ extraValuePaths : ['endsAt', 'timezone'],
isSortable : true,
+ width : 180,
headerComponent : 'tables/headers/sort',
cellComponent : 'ui-table/cell/cell-event-date'
diff --git a/app/helpers/general-date.js b/app/helpers/general-date.js
new file mode 100644
index 00000000000..ded0c1af026
--- /dev/null
+++ b/app/helpers/general-date.js
@@ -0,0 +1,9 @@
+import Helper from '@ember/component/helper';
+import moment from 'moment';
+
+export function generalDate(params) {
+ let timezone = params[1] ? params[1] : moment.tz.guess();
+ return `${moment(params[0]).tz(timezone).format('h:mm A , MMMM Do YYYY')} (${moment.tz(params[0], timezone).zoneAbbr()})`;
+}
+
+export default Helper.helper(generalDate);
diff --git a/app/helpers/header-date.js b/app/helpers/header-date.js
index 8df0fae1b8d..961a1d64b4c 100644
--- a/app/helpers/header-date.js
+++ b/app/helpers/header-date.js
@@ -6,4 +6,4 @@ export function headerDate(params) {
return `${moment(params[0]).tz(timezone).format('dddd, MMMM Do YYYY, h:mm A')} (${moment.tz(params[0], timezone).zoneAbbr()})`;
}
-export default Helper.helper(headerDate);
+export default Helper.helper(headerDate);
\ No newline at end of file
diff --git a/app/templates/components/event-card.hbs b/app/templates/components/event-card.hbs
index 76ebd7a0c2e..90decdd265d 100644
--- a/app/templates/components/event-card.hbs
+++ b/app/templates/components/event-card.hbs
@@ -20,7 +20,7 @@
{{/smart-overflow}}
- {{moment-format event.startsAt 'ddd, MMM DD h:mm A'}}
+ {{general-date event.startsAt event.timezone}}
{{#smart-overflow class='description'}}
diff --git a/app/templates/components/events/view/overview/general-info.hbs b/app/templates/components/events/view/overview/general-info.hbs
index c7fe503017d..231f2378035 100644
--- a/app/templates/components/events/view/overview/general-info.hbs
+++ b/app/templates/components/events/view/overview/general-info.hbs
@@ -36,11 +36,11 @@
| {{t 'Start time'}} |
- {{moment-format data.event.startsAt 'h:mm A, MMMM Do YYYY'}} |
+ {{general-date data.event.startsAt data.event.timezone}} |
| {{t 'End time'}} |
- {{moment-format data.event.endsAt 'h:mm A, MMMM Do YYYY'}} |
+ {{general-date data.event.endsAt data.event.timezone}} |
| {{t 'Session types'}} |
diff --git a/app/templates/components/ui-table/cell/cell-event-date.hbs b/app/templates/components/ui-table/cell/cell-event-date.hbs
index 34d8224a01d..cf0a4d01b6c 100644
--- a/app/templates/components/ui-table/cell/cell-event-date.hbs
+++ b/app/templates/components/ui-table/cell/cell-event-date.hbs
@@ -1,11 +1,11 @@
{{#if record}}
{{#if extraRecords.endsAt}}
- {{moment-format record 'MMMM DD, YYYY - hh:mm A'}}
+ {{general-date record extraRecords.timezone}}
(to)
- {{moment-format extraRecords.endsAt 'MMMM DD, YYYY - hh:mm A'}}
+ {{general-date extraRecords.endsAt extraRecords.timezone}}
{{else}}
diff --git a/app/templates/components/ui-table/cell/cell-simple-date.hbs b/app/templates/components/ui-table/cell/cell-simple-date.hbs
index 15cc338b0cf..db359ea1483 100644
--- a/app/templates/components/ui-table/cell/cell-simple-date.hbs
+++ b/app/templates/components/ui-table/cell/cell-simple-date.hbs
@@ -1,9 +1,9 @@
-{{#if record}}
+{{#if extraRecords.timezone}}
- {{moment-format record (if props.options.dateFormat props.options.dateFormat 'MMMM DD, YYYY - HH:mm A')}}
+ {{general-date record extraRecords.timezone}}
-{{else}}
+{{else if record}}
- {{t 'No dates available.'}}
+ {{moment-format record (if props.options.dateFormat props.options.dateFormat 'MMMM DD, YYYY - HH:mm A')}}
{{/if}}
diff --git a/tests/integration/helpers/general-date-test.js b/tests/integration/helpers/general-date-test.js
new file mode 100644
index 00000000000..c3210fd1228
--- /dev/null
+++ b/tests/integration/helpers/general-date-test.js
@@ -0,0 +1,16 @@
+import { module, test } from 'qunit';
+import { setupIntegrationTest } from 'open-event-frontend/tests/helpers/setup-integration-test';
+import hbs from 'htmlbars-inline-precompile';
+import { render } from '@ember/test-helpers';
+import moment from 'moment';
+
+module('Integration | Helper | general date', function(hooks) {
+ setupIntegrationTest(hooks);
+
+ test('it renders', async function(assert) {
+ this.set('inputMomentValue', moment('2019-05-01T03:30:00+09:00'));
+ this.set('inputTimezoneValue', 'Japan');
+ await render(hbs`{{general-date inputMomentValue inputTimezoneValue}}`);
+ assert.equal(this.element.innerHTML.trim(), '3:30 AM , May 1st 2019 (JST)');
+ });
+});
diff --git a/tests/integration/helpers/header-date-test.js b/tests/integration/helpers/header-date-test.js
index ace4f6143cb..1589550b39e 100644
--- a/tests/integration/helpers/header-date-test.js
+++ b/tests/integration/helpers/header-date-test.js
@@ -8,7 +8,7 @@ module('Integration | Helper | header date', function(hooks) {
setupIntegrationTest(hooks);
test('it renders', async function(assert) {
- this.set('inputMomentValue', moment('2019-04-30T18:30:00+00:00'));
+ this.set('inputMomentValue', moment('2019-05-01T03:30:00+09:00'));
this.set('inputTimezoneValue', 'Japan');
await render(hbs`{{header-date inputMomentValue inputTimezoneValue}}`);
assert.equal(this.element.innerHTML.trim(), 'Wednesday, May 1st 2019, 3:30 AM (JST)');