diff --git a/app/assets/javascripts/discourse/components/breadcrumbs_component.js b/app/assets/javascripts/discourse/components/breadcrumbs_component.js index 1f4d900942e..d1efb82aef8 100644 --- a/app/assets/javascripts/discourse/components/breadcrumbs_component.js +++ b/app/assets/javascripts/discourse/components/breadcrumbs_component.js @@ -7,16 +7,20 @@ Discourse.DiscourseBreadcrumbsComponent = Ember.Component.extend({ return !c.get('parentCategory'); }), - targetCategory: function() { - // Note we can't use Em.computed.or here because it returns a boolean not the object + firstCategory: function() { return this.get('parentCategory') || this.get('category'); }.property('parentCategory', 'category'), + secondCategory: function() { + if (this.get('parentCategory')) return this.get('category'); + return null; + }.property('category', 'parentCategory'), + childCategories: function() { var self = this; return this.get('categories').filter(function (c) { - return c.get('parentCategory') === self.get('targetCategory'); + return c.get('parentCategory') === self.get('firstCategory'); }); - }.property('targetCategory') + }.property('firstCategory') }); diff --git a/app/assets/javascripts/discourse/components/categorydrop_component.js b/app/assets/javascripts/discourse/components/categorydrop_component.js index 0eb45d09951..cc1ef418a44 100644 --- a/app/assets/javascripts/discourse/components/categorydrop_component.js +++ b/app/assets/javascripts/discourse/components/categorydrop_component.js @@ -7,6 +7,17 @@ Discourse.DiscourseCategorydropComponent = Ember.Component.extend({ return "icon icon-caret-right"; }.property('expanded'), + allCategoriesUrl: function() { + return this.get('category.parentCategory.url') || "/"; + }.property('category'), + + allCategoriesLabel: function() { + if (this.get('subCategory')) { + return I18n.t('categories.all_subcategories'); + } + return I18n.t('categories.all'); + }.property('category'), + badgeStyle: function() { var category = this.get('category'); if (category) { diff --git a/app/assets/javascripts/discourse/mixins/scrolling.js b/app/assets/javascripts/discourse/mixins/scrolling.js index d42b67c3878..b106836ea12 100644 --- a/app/assets/javascripts/discourse/mixins/scrolling.js +++ b/app/assets/javascripts/discourse/mixins/scrolling.js @@ -24,7 +24,7 @@ Discourse.Scrolling = Em.Mixin.create({ if (opts.debounce) { onScrollMethod = Discourse.debounce(function() { return scrollingMixin.scrolled(); - }, 100); + }, opts.debounce); } else { onScrollMethod = function() { return scrollingMixin.scrolled(); diff --git a/app/assets/javascripts/discourse/models/category.js b/app/assets/javascripts/discourse/models/category.js index dc75876c55c..afd286cf8ec 100644 --- a/app/assets/javascripts/discourse/models/category.js +++ b/app/assets/javascripts/discourse/models/category.js @@ -31,7 +31,7 @@ Discourse.Category = Discourse.Model.extend({ }.property('id'), url: function() { - return Discourse.getURL("/category/") + (this.get('slug')); + return Discourse.getURL("/category/") + Discourse.Category.slugFor(this); }.property('name'), unreadUrl: function() { diff --git a/app/assets/javascripts/discourse/models/post_stream.js b/app/assets/javascripts/discourse/models/post_stream.js index c4c0217d5c6..43819f614cd 100644 --- a/app/assets/javascripts/discourse/models/post_stream.js +++ b/app/assets/javascripts/discourse/models/post_stream.js @@ -253,6 +253,8 @@ Discourse.PostStream = Em.Object.extend({ if (opts.nearPost) { Discourse.TopicView.jumpToPost(topic.get('id'), opts.nearPost); + } else { + Discourse.TopicView.jumpToPost(topic.get('id'), 1); } Discourse.URL.set('queryParams', postStream.get('streamFilters')); diff --git a/app/assets/javascripts/discourse/templates/components/discourse-breadcrumbs.js.handlebars b/app/assets/javascripts/discourse/templates/components/discourse-breadcrumbs.js.handlebars index a67132bf284..a25f303fc21 100644 --- a/app/assets/javascripts/discourse/templates/components/discourse-breadcrumbs.js.handlebars +++ b/app/assets/javascripts/discourse/templates/components/discourse-breadcrumbs.js.handlebars @@ -1,12 +1,10 @@
  • -{{discourse-categorydrop parentCategory=category categories=parentCategories}} +{{discourse-categorydrop category=firstCategory categories=parentCategories}}
  • -
  • - {{discourse-categorydrop parentCategory=category category=targetCategory categories=childCategories}} -
  • -{{#if parentCategory}} + +{{#if childCategories}}
  • - {{boundCategoryLink category}} + {{discourse-categorydrop category=secondCategory categories=childCategories subCategory="true"}}
  • {{/if}} diff --git a/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars b/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars index c7431539092..c3b09e9cc7f 100644 --- a/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars +++ b/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars @@ -1,12 +1,13 @@ {{#if category}} - {{boundCategoryLink category allowUncategorized=true}} + {{category.name}} {{else}} - + {{allCategoriesLabel}} {{/if}} {{#if categories}}
    +
    {{allCategoriesLabel}}
    {{#each categories}}
    {{categoryLink this allowUncategorized=true}}
    {{/each}}
    {{/if}} diff --git a/app/assets/javascripts/discourse/templates/list.js.handlebars b/app/assets/javascripts/discourse/templates/list.js.handlebars index ab0c79b242f..929844a99a7 100644 --- a/app/assets/javascripts/discourse/templates/list.js.handlebars +++ b/app/assets/javascripts/discourse/templates/list.js.handlebars @@ -1,9 +1,7 @@
    - {{#if category}} - {{discourse-breadcrumbs category=category categories=categories}} - {{/if}} + {{discourse-breadcrumbs category=category categories=categories}}