Skip to content

Commit 3a0c735

Browse files
committed
Manage events table refactor
1 parent 02a8a47 commit 3a0c735

File tree

8 files changed

+121
-57
lines changed

8 files changed

+121
-57
lines changed

app/components/tables/base.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import Component from '@ember/component';
2+
export default Component.extend({
3+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import Component from '@ember/component';
2+
import { computed } from '@ember/object';
3+
4+
export default Component.extend({
5+
6+
7+
});

app/controllers/events/list.js

Lines changed: 96 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,117 @@
11
import Controller from '@ember/controller';
2+
import { computed } from '@ember/object';
23

34
export default Controller.extend({
4-
columns: [
5+
queryParams : ['currentPage', 'pageSize'],
6+
currentPage : 1,
7+
pageSize : 1,
8+
// columns: [
9+
// {
10+
// propertyName : 'name',
11+
// template : 'components/ui-table/cell/cell-event-general',
12+
// title : 'Name'
13+
// },
14+
// {
15+
// propertyName : 'starts-at',
16+
// template : 'components/ui-table/cell/cell-event-date',
17+
// dateFormat : 'MMMM DD, YYYY - HH:mm A',
18+
// title : 'Date'
19+
// },
20+
// {
21+
// propertyName : 'roles',
22+
// template : 'components/ui-table/cell/cell-roles',
23+
// title : 'Roles',
24+
// disableSorting : true,
25+
// disableFiltering : true
26+
// },
27+
// {
28+
// propertyName : 'sessionsByState',
29+
// template : 'components/ui-table/cell/cell-sessions-dashboard',
30+
// title : 'Sessions',
31+
// disableSorting : true,
32+
// disableFiltering : true
33+
// },
34+
// {
35+
// propertyName : 'speakers.length',
36+
// template : 'components/ui-table/cell/cell-speakers-dashboard',
37+
// title : 'Speakers',
38+
// disableSorting : true,
39+
// disableFiltering : true
40+
// },
41+
// {
42+
// propertyName : 'tickets',
43+
// template : 'components/ui-table/cell/cell-tickets',
44+
// title : 'Tickets',
45+
// disableSorting : true,
46+
// disableFiltering : true
47+
// },
48+
// {
49+
// propertyName : 'url',
50+
// template : 'components/ui-table/cell/cell-link',
51+
// title : 'Public URL',
52+
// disableSorting : true,
53+
// disableFiltering : true
54+
// }
55+
// ],
56+
columns : [
557
{
6-
propertyName : 'name',
7-
template : 'components/ui-table/cell/cell-event-general',
8-
title : 'Name'
58+
name : 'Name',
59+
valuePath : 'name'
60+
// cellComponent : 'ui-table/cell/cell-event-general',
61+
// dateFormat : 'MMMM DD, YYYY - HH:mm A'
62+
963
},
1064
{
11-
propertyName : 'starts-at',
12-
template : 'components/ui-table/cell/cell-event-date',
13-
dateFormat : 'MMMM DD, YYYY - HH:mm A',
14-
title : 'Date'
65+
name : 'Date',
66+
valuePath : 'startsAt',
67+
cellComponent : 'ui-table/cell/cell-event-date'
68+
1569
},
1670
{
17-
propertyName : 'roles',
18-
template : 'components/ui-table/cell/cell-roles',
19-
title : 'Roles',
20-
disableSorting : true,
21-
disableFiltering : true
71+
name : 'Roles',
72+
valuePath : 'roles',
73+
cellComponent : 'ui-table/cell/cell-roles'
2274
},
2375
{
24-
propertyName : 'sessionsByState',
25-
template : 'components/ui-table/cell/cell-sessions-dashboard',
26-
title : 'Sessions',
27-
disableSorting : true,
28-
disableFiltering : true
76+
name : 'Sessions',
77+
valuePath : 'sessions',
78+
cellComponent : 'ui-table/cell/cell-sessions-dashboard'
2979
},
3080
{
31-
propertyName : 'speakers.length',
32-
template : 'components/ui-table/cell/cell-speakers-dashboard',
33-
title : 'Speakers',
34-
disableSorting : true,
35-
disableFiltering : true
81+
name : 'Speakers',
82+
valuePath : 'speakers',
83+
cellComponent : 'ui-table/cell/cell-speakers-dashboard'
84+
3685
},
3786
{
38-
propertyName : 'tickets',
39-
template : 'components/ui-table/cell/cell-tickets',
40-
title : 'Tickets',
41-
disableSorting : true,
42-
disableFiltering : true
87+
name : 'Tickets',
88+
valuePath : 'tickets',
89+
cellComponent : 'ui-table/cell/cell-tickets'
90+
4391
},
4492
{
45-
propertyName : 'url',
46-
template : 'components/ui-table/cell/cell-link',
47-
title : 'Public URL',
48-
disableSorting : true,
49-
disableFiltering : true
93+
name : 'Public URL',
94+
valuePath : 'url',
95+
cellComponent : 'ui-table/cell/cell-link'
96+
5097
}
5198
],
99+
100+
rows: computed('model.data', function() {
101+
const rows = [];
102+
this.model.data.forEach(row => {
103+
rows.pushObject({
104+
name : row.name,
105+
startsAt : row.startsAt,
106+
roles : row,
107+
sessions : row,
108+
speakers : row,
109+
tickets : row,
110+
url : row
111+
});
112+
});
113+
return rows;
114+
}),
52115
actions: {
53116
moveToPublic(id) {
54117
this.transitionToRoute('public', id);

app/routes/events/list.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ import Route from '@ember/routing/route';
22
import moment from 'moment';
33

44
export default Route.extend({
5+
queryParams: {
6+
currentPage: {
7+
refreshModel: true
8+
}
9+
},
510
titleToken() {
611
switch (this.get('params.event_state')) {
712
case 'live':
@@ -20,6 +25,7 @@ export default Route.extend({
2025
}
2126
},
2227
async model(params) {
28+
console.log(params);
2329
this.set('params', params);
2430
let filterOptions = [];
2531
if (params.event_state === 'live') {
@@ -77,9 +83,10 @@ export default Route.extend({
7783
}
7884

7985
let queryObject = {
80-
include : 'tickets,sessions,speakers,organizers,coorganizers,track-organizers,registrars,moderators',
81-
filter : filterOptions,
82-
'page[size]' : 10
86+
include : 'tickets,sessions,speakers,organizers,coorganizers,track-organizers,registrars,moderators',
87+
filter : filterOptions,
88+
'page[size]' : 2,
89+
'page[number]' : this.params.currentPage || 1
8390
};
8491

8592
let store = this.get('authManager.currentUser');
@@ -90,7 +97,8 @@ export default Route.extend({
9097
data,
9198
store,
9299
query : queryObject,
93-
objectType : 'events'
100+
objectType : 'events',
101+
meta: data.meta
94102
};
95103

96104
},
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{yield}}

app/templates/components/tables/events/list.hbs

Whitespace-only changes.

app/templates/components/ui-table/cell/cell-roles.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@
1414
{{#each record.moderators as |role|}}
1515
<div class="item">{{role.email}} ({{t 'Moderators'}})</div>
1616
{{/each}}
17-
</div>
17+
</div>

app/templates/events/list.hbs

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1 @@
1-
{{events/events-table
2-
columns=columns
3-
data=model.data
4-
store=model.store
5-
query=model.query
6-
isNotStoreQuery = true
7-
modelName = model.objectType
8-
useNumericPagination=true
9-
showGlobalFilter=true
10-
showPageSize=true
11-
useFilteringByColumns=true
12-
customGlobalFilter='name'
13-
moveToDetails=(action 'moveToDetails')
14-
editEvent=(action 'editEvent')
15-
moveToPublic=(action 'moveToPublic')
16-
openDeleteEventModal=(action 'openDeleteEventModal')
17-
}}
18-
{{modals/event-delete-modal isLoading=isLoading isOpen=isEventDeleteModalOpen confirmName=confirmName
19-
eventName=eventName deleteEvent=(action 'deleteEvent')}}
1+
{{tables/default columns=columns rows=rows currentPage=currentPage pageSize=pageSize}}

0 commit comments

Comments
 (0)