Skip to content

Commit b273045

Browse files
shreyanshdwivediabhinavk96
authored andcommitted
feat: introduce new columns for session ratings (#3198)
add ratedSessions to controllers update ratedSessions and remove extra vars introduce ember-table and es6 update template and session table updates route and helper
1 parent 7cf7d45 commit b273045

File tree

9 files changed

+330
-237
lines changed

9 files changed

+330
-237
lines changed

app/controllers/events/view/sessions/list.js

Lines changed: 256 additions & 191 deletions
Large diffs are not rendered by default.

app/models/user.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ export default ModelBase.extend({
8383
orders : hasMany('order'),
8484
events : hasMany('event', { inverse: 'user' }),
8585
sessions : hasMany('session'),
86+
feedbacks : hasMany('feedback'),
8687
invoice : hasMany('event-invoice'),
8788
attendees : hasMany('attendee'),
8889
speakers : hasMany('speaker'),

app/routes/events/view/sessions/list.js

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ export default class extends Route.extend(EmberTableRouteMixin) {
5656
} else {
5757
filterOptions = [];
5858
}
59+
60+
let store = this.modelFor('events.view');
5961
filterOptions = this.applySearchFilters(filterOptions, params, searchField);
6062
let queryString = {
6163
include : 'speakers,feedbacks',
@@ -64,17 +66,35 @@ export default class extends Route.extend(EmberTableRouteMixin) {
6466
'page[number]' : params.page || 1
6567
};
6668
queryString = this.applySortFilters(queryString, params);
69+
let data = (await store.query('sessions', queryString)).toArray();
6770

68-
let store = this.modelFor('events.view');
69-
71+
let queryObject = {
72+
include : 'session',
73+
filter : [
74+
{
75+
name : 'session',
76+
op : 'has',
77+
val : {
78+
name : 'event',
79+
op : 'has',
80+
val : {
81+
name : 'identifier',
82+
op : 'eq',
83+
val : store.id
84+
}
85+
}
86+
}
87+
]
88+
};
89+
let feedbacks = await this.authManager.currentUser.query('feedbacks', queryObject);
7090
return {
71-
data: await store.query('sessions', queryString)
91+
data,
92+
feedbacks
7293
};
7394
}
7495

75-
@action
96+
@action
7697
refreshRoute() {
7798
this.refresh();
7899
}
79-
80100
}

app/templates/components/ui-table/cell/events/view/sessions/cell-buttons.hbs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
<div class="ui {{if device.isMobile 'horizontal' 'vertical'}} compact basic buttons">
2-
{{#if (or (eq record.state 'rejected')(eq record.state 'pending'))}}
2+
{{#if (or (eq extraRecords.status 'rejected')(eq extraRecords.status 'pending'))}}
33
{{#ui-dropdown class='ui icon right pointing dropdown button'}}
44
<i class="green checkmark icon"></i>
55
<div class="menu">
6-
<a role="button" class="item" {{action acceptProposal record true}}>{{t 'With email'}}</a>
7-
<a role="button" class="item" {{action acceptProposal record false}}>{{t 'Without email'}}</a>
6+
<a role="button" class="item" {{action props.actions.acceptProposal record true}}>{{t 'With email'}}</a>
7+
<a role="button" class="item" {{action props.actions.acceptProposal record false}}>{{t 'Without email'}}</a>
88
</div>
99
{{/ui-dropdown}}
1010
{{/if}}
11-
{{#if (eq record.state 'accepted')}}
11+
{{#if (eq extraRecords.status 'accepted')}}
1212
{{#ui-dropdown class='ui icon right pointing dropdown button'}}
1313
<i class="blue checkmark icon"></i>
1414
<div class="menu">
15-
<a role="button" class="item" {{action confirmProposal record true}}>{{t 'With email'}}</a>
16-
<a role="button" class="item" {{action confirmProposal record false}}>{{t 'Without email'}}</a>
15+
<a role="button" class="item" {{action props.actions.confirmProposal record true}}>{{t 'With email'}}</a>
16+
<a role="button" class="item" {{action props.actions.confirmProposal record false}}>{{t 'Without email'}}</a>
1717
</div>
1818
{{/ui-dropdown}}
1919
{{/if}}
20-
{{#if (or (eq record.state 'confirmed') (eq record.state 'pending') (eq record.state 'accepted'))}}
20+
{{#if (or (eq extraRecords.status 'confirmed') (eq extraRecords.status 'pending') (eq extraRecords.status 'accepted'))}}
2121
{{#ui-dropdown class='ui icon right pointing dropdown button'}}
2222
<i class="red remove icon"></i>
2323
<div class="menu">
24-
<a role="button" class="item" {{action rejectProposal record true}}>{{t 'With email'}}</a>
25-
<a role="button" class="item" {{action rejectProposal record false}}>{{t 'Without email'}}</a>
24+
<a role="button" class="item" {{action props.actions.rejectProposal record true}}>{{t 'With email'}}</a>
25+
<a role="button" class="item" {{action props.actions.rejectProposal record false}}>{{t 'Without email'}}</a>
2626
</div>
2727
{{/ui-dropdown}}
2828
{{/if}}

app/templates/components/ui-table/cell/events/view/sessions/cell-is-mail-sent.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<span>
2-
{{#if record.isMailSent}}
2+
{{#if record}}
33
{{t 'Yes'}}
44
{{else}}
55
{{t 'No'}}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
{{#if record.isLocked}}
2-
{{#ui-popup content=(t 'Unlock Session') class='ui basic button' click=(action unlockSession record) position='left center'}}
1+
{{#if extraRecords.isLocked}}
2+
{{#ui-popup content=(t 'Unlock Session') class='ui basic button' click=(action props.actions.unlockSession record) position='left center'}}
33
<i class="lock icon"></i>
44
{{/ui-popup}}
55
{{else}}
6-
{{#ui-popup content=(t 'Lock Session') class='ui basic button' click=(action lockSession record) position='left center'}}
6+
{{#ui-popup content=(t 'Lock Session') class='ui basic button' click=(action props.actions.lockSession record) position='left center'}}
77
<i class="unlock icon"></i>
88
{{/ui-popup}}
99
{{/if}}
Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
1-
{{ui-rating
2-
rating=(if record.averageRating record.averageRating '0')
1+
{{#if (includes props.options.ratedSessions record)}}
2+
{{#each extraRecords.feedbacks as |feedback|}}
3+
{{#if (eq feedback.user.email authManager.currentUser.email)}}
4+
{{ui-rating
5+
initialRating=feedback.rating
6+
rating=feedback.rating
7+
maxRating=5
8+
onRate=(pipe-action (action (mut feedback.rating)) (action props.actions.updateRating feedback.rating feedback))
9+
clearable=true}}
10+
{{/if}}
11+
{{/each}}
12+
{{else}}
13+
{{ui-rating
14+
initialRating=0
15+
rating=extraRecords.rating
316
maxRating=5
4-
onRate=(pipe-action (action (mut record.averageRating)) (action updateRating record record.averageRating))
17+
onRate=(pipe-action (action (mut extraRecords.rating)) (action props.actions.addRating extraRecords.rating record))
518
clearable=true}}
19+
{{/if}}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
{{get record column.propertyName}}
1+
{{record}}
22
<div class="hidden ui divider"></div>
33
<div class="ui horizontal compact basic buttons">
4-
{{#ui-popup content=(t 'View Session') class="{{if device.isMobile 'medium' 'huge'}} ui icon button" click=(action viewSession record.id) position='left center'}}
4+
{{#ui-popup content=(t 'View Session') class="{{if device.isMobile 'medium' 'huge'}} ui icon button" click=(action props.actions.viewSession record) position='left center'}}
55
<i class="unhide icon"></i>
66
{{/ui-popup}}
7-
{{#if (not record.isLocked)}}
8-
{{#ui-popup content=(t 'Edit Session') class="{{if device.isMobile 'medium' 'huge'}} ui icon button" click=(action editSession record.id record.event.id) position='left center'}}
7+
{{#if (not extraRecords.isLocked)}}
8+
{{#ui-popup content=(t 'Edit Session') class="{{if device.isMobile 'medium' 'huge'}} ui icon button" click=(action props.actions.editSession record extraRecords.event.id) position='left center'}}
99
<i class="edit icon"></i>
1010
{{/ui-popup}}
1111
{{/if}}
12-
{{#ui-popup content=(t 'Delete Session') click=(action (confirm (t 'Are you sure you would like to delete this Session?') (action deleteSession record))) class="{{if device.isMobile 'medium' 'huge'}} ui icon button" position='left center'}}
12+
{{#ui-popup content=(t 'Delete Session') click=(action (confirm (t 'Are you sure you would like to delete this Session?') (action props.actions.deleteSession record))) class="{{if device.isMobile 'medium' 'huge'}} ui icon button" position='left center'}}
1313
<i class="trash outline icon"></i>
1414
{{/ui-popup}}
1515
</div>
Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
11
<div class="sixteen wide column">
2-
{{events/events-table
3-
columns=columns
4-
data=model.data
5-
store=model.store
6-
query=model.query
7-
isNotStoreQuery = true
8-
modelName = model.objectType
9-
useNumericPagination=true
10-
showGlobalFilter=true
11-
showPageSize=true
12-
lockSession=(action 'lockSession')
13-
unlockSession=(action 'unlockSession')
14-
deleteSession=(action 'deleteSession')
15-
editSession=(action 'editSession')
16-
viewSession=(action 'viewSession')
17-
acceptProposal=(action 'acceptProposal')
18-
rejectProposal=(action 'rejectProposal')
19-
confirmProposal=(action 'confirmProposal')
20-
updateRating=(action 'updateRating')
21-
customGlobalFilter='title'
2+
{{tables/default columns=columns
3+
rows=model.data
4+
feedbacks=model.feedbacks
5+
currentPage=page
6+
pageSize=per_page
7+
searchQuery=search
8+
sortBy=sort_by
9+
sortDir=sort_dir
10+
metaData=model.meta
11+
filterOptions=filterOptions
12+
widthConstraint="eq-container"
13+
resizeMode="fluid"
14+
fillMode="equal-column"
2215
}}
2316
</div>

0 commit comments

Comments
 (0)