2020-01-15 16:15:20 +01:00
|
|
|
import Component from '@glimmer/component';
|
2020-06-04 22:30:06 +02:00
|
|
|
import {get} from '@ember/object';
|
2020-01-15 16:15:20 +01:00
|
|
|
import {inject as service} from '@ember/service';
|
|
|
|
|
|
|
|
export default class GhContentfilterComponent extends Component {
|
2020-01-30 16:35:36 +01:00
|
|
|
@service customViews;
|
2020-06-09 13:19:25 +02:00
|
|
|
@service feature;
|
2020-01-30 16:35:36 +01:00
|
|
|
@service router;
|
2020-06-04 22:30:06 +02:00
|
|
|
|
|
|
|
get showCustomViewManagement() {
|
|
|
|
let isOwnerOrAdmin = get(this.args.currentUser || {}, 'isOwnerOrAdmin');
|
|
|
|
let onPostsScreen = this.router.currentRouteName === 'posts';
|
|
|
|
let isDefaultView = this.customViews?.activeView?.isDefault;
|
|
|
|
let hasFilter = this.args.selectedType.value
|
2020-06-09 13:19:25 +02:00
|
|
|
|| this.args.selectedVisibility.value
|
2020-06-04 22:30:06 +02:00
|
|
|
|| this.args.selectedAuthor.slug
|
|
|
|
|| this.args.selectedTag.slug
|
|
|
|
|| this.args.selectedOrder.value;
|
|
|
|
|
|
|
|
return isOwnerOrAdmin && onPostsScreen && !isDefaultView && hasFilter;
|
|
|
|
}
|
2020-01-30 16:35:36 +01:00
|
|
|
|
|
|
|
calculateActionsDropdownPosition(trigger, content) {
|
|
|
|
let {top, left, width, height} = trigger.getBoundingClientRect();
|
|
|
|
// content.firstElementChild is required because we use .dropdown-menu which is absolute positioned
|
|
|
|
let {width: contentWidth} = content.firstElementChild.getBoundingClientRect();
|
|
|
|
|
|
|
|
let style = {
|
|
|
|
left: left + width - contentWidth,
|
|
|
|
top: top + height + 5
|
|
|
|
};
|
|
|
|
|
|
|
|
return {style};
|
|
|
|
}
|
2020-01-15 16:15:20 +01:00
|
|
|
}
|