Skip to content

Commit a291cbe

Browse files
kushthedudeiamareebjamal
authored andcommitted
fix: TimeZone issues on Wizard (#3611)
* Fixing TimeZone issues on Wizard * Test fixing * Test fixing * Test fixing * Fixing Date and TimeZone Issues in Events * Fixing Date and TimeZone Issues in Events * Updating date format and fixing tests
1 parent 1808bfa commit a291cbe

File tree

10 files changed

+42
-20
lines changed

10 files changed

+42
-20
lines changed

app/controllers/admin/events/list.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,18 @@ export default class extends Controller.extend(EmberTableControllerMixin) {
3535
valuePath : 'startsAt',
3636
isSortable : true,
3737
headerComponent : 'tables/headers/sort',
38+
extraValuePaths : ['timezone'],
3839
cellComponent : 'ui-table/cell/cell-simple-date',
39-
width : 65,
40-
options : {
41-
dateFormat: 'MMMM DD, YYYY - hh:mm A'
42-
}
40+
width : 75
4341
},
4442
{
4543
name : 'Ends At',
4644
valuePath : 'endsAt',
4745
isSortable : true,
46+
extraValuePaths : ['timezone'],
4847
headerComponent : 'tables/headers/sort',
4948
cellComponent : 'ui-table/cell/cell-simple-date',
50-
width : 65,
51-
options : {
52-
dateFormat: 'MMMM DD, YYYY - hh:mm A'
53-
}
49+
width : 75
5450
},
5551
{
5652
name : 'State',

app/controllers/events/list.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ export default class extends Controller.extend(EmberTableControllerMixin) {
2727
{
2828
name : 'Date',
2929
valuePath : 'startsAt',
30-
extraValuePaths : ['endsAt'],
30+
extraValuePaths : ['endsAt', 'timezone'],
3131
isSortable : true,
32+
width : 180,
3233
headerComponent : 'tables/headers/sort',
3334
cellComponent : 'ui-table/cell/cell-event-date'
3435

app/helpers/general-date.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import Helper from '@ember/component/helper';
2+
import moment from 'moment';
3+
4+
export function generalDate(params) {
5+
let timezone = params[1] ? params[1] : moment.tz.guess();
6+
return `${moment(params[0]).tz(timezone).format('h:mm A , MMMM Do YYYY')} (${moment.tz(params[0], timezone).zoneAbbr()})`;
7+
}
8+
9+
export default Helper.helper(generalDate);

app/helpers/header-date.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ export function headerDate(params) {
66
return `${moment(params[0]).tz(timezone).format('dddd, MMMM Do YYYY, h:mm A')} (${moment.tz(params[0], timezone).zoneAbbr()})`;
77
}
88

9-
export default Helper.helper(headerDate);
9+
export default Helper.helper(headerDate);

app/templates/components/event-card.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
{{/smart-overflow}}
2121
<div class="meta">
2222
<span class="date">
23-
{{moment-format event.startsAt 'ddd, MMM DD h:mm A'}}
23+
{{general-date event.startsAt event.timezone}}
2424
</span>
2525
</div>
2626
{{#smart-overflow class='description'}}

app/templates/components/events/view/overview/general-info.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@
3636
</tr>
3737
<tr>
3838
<td><strong>{{t 'Start time'}}</strong></td>
39-
<td>{{moment-format data.event.startsAt 'h:mm A, MMMM Do YYYY'}}</td>
39+
<td>{{general-date data.event.startsAt data.event.timezone}}</td>
4040
</tr>
4141
<tr>
4242
<td><strong>{{t 'End time'}}</strong></td>
43-
<td>{{moment-format data.event.endsAt 'h:mm A, MMMM Do YYYY'}}</td>
43+
<td>{{general-date data.event.endsAt data.event.timezone}}</td>
4444
</tr>
4545
<tr>
4646
<td><strong>{{t 'Session types'}}</strong></td>

app/templates/components/ui-table/cell/cell-event-date.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{{#if record}}
22
{{#if extraRecords.endsAt}}
33
<div>
4-
{{moment-format record 'MMMM DD, YYYY - hh:mm A'}}
4+
{{general-date record extraRecords.timezone}}
55
</div>
66
(to)
77
<div>
8-
{{moment-format extraRecords.endsAt 'MMMM DD, YYYY - hh:mm A'}}
8+
{{general-date extraRecords.endsAt extraRecords.timezone}}
99
</div>
1010
{{else}}
1111
<span>
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
{{#if record}}
1+
{{#if extraRecords.timezone}}
22
<span>
3-
{{moment-format record (if props.options.dateFormat props.options.dateFormat 'MMMM DD, YYYY - HH:mm A')}}
3+
{{general-date record extraRecords.timezone}}
44
</span>
5-
{{else}}
5+
{{else if record}}
66
<span>
7-
{{t 'No dates available.'}}
7+
{{moment-format record (if props.options.dateFormat props.options.dateFormat 'MMMM DD, YYYY - HH:mm A')}}
88
</span>
99
{{/if}}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { module, test } from 'qunit';
2+
import { setupIntegrationTest } from 'open-event-frontend/tests/helpers/setup-integration-test';
3+
import hbs from 'htmlbars-inline-precompile';
4+
import { render } from '@ember/test-helpers';
5+
import moment from 'moment';
6+
7+
module('Integration | Helper | general date', function(hooks) {
8+
setupIntegrationTest(hooks);
9+
10+
test('it renders', async function(assert) {
11+
this.set('inputMomentValue', moment('2019-05-01T03:30:00+09:00'));
12+
this.set('inputTimezoneValue', 'Japan');
13+
await render(hbs`{{general-date inputMomentValue inputTimezoneValue}}`);
14+
assert.equal(this.element.innerHTML.trim(), '3:30 AM , May 1st 2019 (JST)');
15+
});
16+
});

tests/integration/helpers/header-date-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module('Integration | Helper | header date', function(hooks) {
88
setupIntegrationTest(hooks);
99

1010
test('it renders', async function(assert) {
11-
this.set('inputMomentValue', moment('2019-04-30T18:30:00+00:00'));
11+
this.set('inputMomentValue', moment('2019-05-01T03:30:00+09:00'));
1212
this.set('inputTimezoneValue', 'Japan');
1313
await render(hbs`{{header-date inputMomentValue inputTimezoneValue}}`);
1414
assert.equal(this.element.innerHTML.trim(), 'Wednesday, May 1st 2019, 3:30 AM (JST)');

0 commit comments

Comments
 (0)