diff --git a/app/assets/javascripts/discourse/components/breadcrumbs_component.js b/app/assets/javascripts/discourse/components/breadcrumbs_component.js index 1f4d900942..d1efb82aef 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 0eb45d0995..cc1ef418a4 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/models/category.js b/app/assets/javascripts/discourse/models/category.js index dc75876c55..afd286cf8e 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/templates/components/discourse-breadcrumbs.js.handlebars b/app/assets/javascripts/discourse/templates/components/discourse-breadcrumbs.js.handlebars index a67132bf28..a25f303fc2 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 c743153909..c3b09e9cc7 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 ab0c79b242..929844a99a 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}}