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)');