mirror of
https://github.com/discourse/discourse.git
synced 2025-09-06 10:50:21 +08:00
74 lines
2 KiB
JavaScript
74 lines
2 KiB
JavaScript
import computed from 'ember-addons/ember-computed-decorators';
|
|
export default Ember.Component.extend({
|
|
classNames: ['hamburger-panel'],
|
|
|
|
@computed('currentUser.read_faq')
|
|
prioritizeFaq(readFaq) {
|
|
// If it's a custom FAQ never prioritize it
|
|
return Ember.isEmpty(this.siteSettings.faq_url) && !readFaq;
|
|
},
|
|
|
|
@computed()
|
|
showKeyboardShortcuts() {
|
|
return !this.site.mobileView && !this.capabilities.touch;
|
|
},
|
|
|
|
@computed()
|
|
showMobileToggle() {
|
|
return this.site.mobileView || (this.siteSettings.enable_mobile_theme && this.capabilities.touch);
|
|
},
|
|
|
|
@computed()
|
|
mobileViewLinkTextKey() {
|
|
return this.site.mobileView ? "desktop_view" : "mobile_view";
|
|
},
|
|
|
|
@computed()
|
|
faqUrl() {
|
|
return this.siteSettings.faq_url ? this.siteSettings.faq_url : Discourse.getURL('/faq');
|
|
},
|
|
|
|
_lookupCount(type) {
|
|
const state = this.get('topicTrackingState');
|
|
return state ? state.lookupCount(type) : 0;
|
|
},
|
|
|
|
@computed('topicTrackingState.messageCount')
|
|
newCount() {
|
|
return this._lookupCount('new');
|
|
},
|
|
|
|
@computed('topicTrackingState.messageCount')
|
|
unreadCount() {
|
|
return this._lookupCount('unread');
|
|
},
|
|
|
|
@computed()
|
|
categories() {
|
|
const hideUncategorized = !this.siteSettings.allow_uncategorized_topics;
|
|
const showSubcatList = this.siteSettings.show_subcategory_list;
|
|
const isStaff = Discourse.User.currentProp('staff');
|
|
|
|
return Discourse.Category.list().reject((c) => {
|
|
if (showSubcatList && c.get('parent_category_id')) { return true; }
|
|
if (hideUncategorized && c.get('isUncategorizedCategory') && !isStaff) { return true; }
|
|
return false;
|
|
});
|
|
},
|
|
|
|
@computed()
|
|
showUserDirectoryLink() {
|
|
if (!this.siteSettings.enable_user_directory) return false;
|
|
if (this.siteSettings.hide_user_profiles_from_public && !this.currentUser) return false;
|
|
return true;
|
|
},
|
|
|
|
actions: {
|
|
keyboardShortcuts() {
|
|
this.sendAction('showKeyboardAction');
|
|
},
|
|
toggleMobileView() {
|
|
this.site.toggleMobileView();
|
|
}
|
|
}
|
|
});
|