Skip to content

Commit 4c59354

Browse files
fix: Dropdown menu results in internal scroll bar (#5766)
Co-authored-by: Areeb Jamal <[email protected]>
1 parent fc2ae86 commit 4c59354

File tree

4 files changed

+47
-4
lines changed

4 files changed

+47
-4
lines changed

app/components/tables/default.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ import Component from '@ember/component';
44
@classic
55
export default class Tables extends Component {
66

7+
didRender() {
8+
this.rendered?.();
9+
}
710
}

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

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,34 @@
11
import Controller from '@ember/controller';
2-
import { action } from '@ember/object';
2+
import { computed, action } from '@ember/object';
33
import { mapBy } from '@ember/object/computed';
44
import EmberTableControllerMixin from 'open-event-frontend/mixins/ember-table-controller';
5+
import $ from 'jquery';
56

67
export default class extends Controller.extend(EmberTableControllerMixin) {
78
@mapBy('model.feedbacks', 'session.id') ratedSessions;
89

10+
@computed('model.sessions.data')
11+
get sessions() {
12+
const len = this.model.sessions.data.length;
13+
this.model.sessions.data.forEach((item, idx) => {
14+
if (len >= 4 && idx >= len - 2) {
15+
item.set('dir', 'upward');
16+
} else if (len > 2) {
17+
if (idx === len - 1) {
18+
item.set('dir', 'upward');
19+
} else if (idx < 2) {
20+
item.set('dir', 'downward');
21+
} else {
22+
item.set('dir', 'auto');
23+
}
24+
} else {
25+
item.set('dir', 'downward');
26+
}
27+
});
28+
29+
return this.model.sessions.data;
30+
}
31+
932
get columns() {
1033
return [
1134
{
@@ -15,7 +38,7 @@ export default class extends Controller.extend(EmberTableControllerMixin) {
1538
width : 75,
1639
valuePath : 'state',
1740
isSortable : true,
18-
extraValuePaths : ['id', 'status'],
41+
extraValuePaths : ['id', 'status', 'dir'],
1942
options : {
2043
sessionStateMap: this.model.sessionStateMap
2144
},
@@ -105,6 +128,22 @@ export default class extends Controller.extend(EmberTableControllerMixin) {
105128
];
106129
}
107130

131+
@action
132+
tableRendered() {
133+
let margin = 0;
134+
const len = this.model.sessions.data.length;
135+
136+
if (len > 0 && len <= 2) {
137+
margin = 150;
138+
} else if (len <= 3) {
139+
margin = 50;
140+
} else {
141+
margin = 0;
142+
}
143+
144+
$('.ember-table table').css('margin-bottom', margin);
145+
}
146+
108147
@action
109148
async deleteSession(session_id) {
110149
this.set('isLoading', true);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<UiDropdown @class="ui floating dropdown button">
1+
<UiDropdown @class="ui floating dropdown button" @direction={{if this.extraRecords this.extraRecords.dir}}>
22
<div class="ui {{this.color}} empty circular label"></div>
33
{{t-var (capitalize this.extraRecords.status)}}
44
<div class="menu">

app/templates/events/view/sessions/list.hbs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<div class="sixteen wide column">
22
<Tables::Default
33
@columns={{this.columns}}
4-
@rows={{this.model.sessions.data}}
4+
@rows={{this.sessions}}
55
@feedbacks={{this.model.feedbacks}}
66
@currentPage={{this.page}}
77
@pageSize={{this.per_page}}
@@ -12,5 +12,6 @@
1212
@filterOptions={{this.filterOptions}}
1313
@widthConstraint="eq-container"
1414
@resizeMode="fluid"
15+
@rendered={{action "tableRendered"}}
1516
@fillMode="equal-column" />
1617
</div>

0 commit comments

Comments
 (0)