diff --git a/app/assets/javascripts/discourse/components/breadcrumbs_component.js b/app/assets/javascripts/discourse/components/breadcrumbs_component.js
new file mode 100644
index 000000000..b60c811f3
--- /dev/null
+++ b/app/assets/javascripts/discourse/components/breadcrumbs_component.js
@@ -0,0 +1,5 @@
+Discourse.DiscourseBreadcrumbsComponent = Ember.Component.extend({
+ classNames: ['category-breadcrumb'],
+ tagName: 'ol',
+ parentCategory: Em.computed.alias('category.parentCategory')
+});
diff --git a/app/assets/javascripts/discourse/controllers/list_topics_controller.js b/app/assets/javascripts/discourse/controllers/list_topics_controller.js
index ec202ce11..1f99edac7 100644
--- a/app/assets/javascripts/discourse/controllers/list_topics_controller.js
+++ b/app/assets/javascripts/discourse/controllers/list_topics_controller.js
@@ -15,6 +15,10 @@ Discourse.ListTopicsController = Discourse.ObjectController.extend({
latest: Ember.computed.equal('filter', 'latest'),
+ categories: function() {
+ return Discourse.Category.list();
+ }.property(),
+
draftLoaded: function() {
var draft = this.get('content.draft');
if (draft) {
diff --git a/app/assets/javascripts/discourse/routes/filtered_list_route.js b/app/assets/javascripts/discourse/routes/filtered_list_route.js
index fb6a6f2e1..601284165 100644
--- a/app/assets/javascripts/discourse/routes/filtered_list_route.js
+++ b/app/assets/javascripts/discourse/routes/filtered_list_route.js
@@ -27,8 +27,9 @@ Discourse.FilteredListRoute = Discourse.Route.extend({
},
setupController: function() {
- var listController = this.controllerFor('list');
- var listTopicsController = this.controllerFor('listTopics');
+ var listController = this.controllerFor('list'),
+ listTopicsController = this.controllerFor('listTopics');
+
listController.set('filterMode', this.filter);
var listContent = listTopicsController.get('model');
diff --git a/app/assets/javascripts/discourse/templates/components/discourse-breadcrumbs.js.handlebars b/app/assets/javascripts/discourse/templates/components/discourse-breadcrumbs.js.handlebars
new file mode 100644
index 000000000..e076c749f
--- /dev/null
+++ b/app/assets/javascripts/discourse/templates/components/discourse-breadcrumbs.js.handlebars
@@ -0,0 +1,18 @@
+
+ {{title}}
+
+
+
+{{#if parentCategory}}
+
+ {{discourse-categorydrop category=parentCategory categories=categories}}
+
+{{/if}}
+
+{{#if category}}
+
+ {{discourse-categorydrop category=category}}
+
+{{/if}}
+
+
\ No newline at end of file
diff --git a/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars b/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars
new file mode 100644
index 000000000..35ba8bcf4
--- /dev/null
+++ b/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars
@@ -0,0 +1,4 @@
+{{categoryLink category}}
+{{#if categories}}
+
+{{/if}}
\ No newline at end of file
diff --git a/app/assets/javascripts/discourse/templates/list/topics.js.handlebars b/app/assets/javascripts/discourse/templates/list/topics.js.handlebars
index 6e40c4166..c5d8ad3fa 100644
--- a/app/assets/javascripts/discourse/templates/list/topics.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/list/topics.js.handlebars
@@ -10,6 +10,10 @@
{{/if}}
+ {{#if category}}
+ {{discourse-breadcrumbs title=Discourse.SiteSettings.title category=category categories=categories}}
+ {{/if}}
+
diff --git a/app/assets/stylesheets/desktop/topic.scss b/app/assets/stylesheets/desktop/topic.scss
index 487604e3b..3a3d0b7a0 100644
--- a/app/assets/stylesheets/desktop/topic.scss
+++ b/app/assets/stylesheets/desktop/topic.scss
@@ -2,14 +2,14 @@
.post-info a {color: #aaa;}
.topic-meta-data-inside {
- float: right;
+ float: right;
margin-top: -22px;
float: right;
font-size: 12px;
}
-.post-actions {
+.post-actions {
color: #bbb;
text-align: right;
a {color: #bbb;}
@@ -195,3 +195,46 @@ i {background: #e4f2f8;
font-size: 15px;
z-index: 495
}
+
+ol.category-breadcrumb {
+ list-style: none;
+ margin: 0 0 10px 0;
+ padding: 0;
+
+ .first-caret {
+ margin: 0 3px 0 3px;
+ color: #666;
+ font-size: 13px;
+ }
+
+ li {
+ float: left;
+ margin-right: 5px;
+ border: 1px solid transparent;
+ height: 21px;
+ padding-top: 2px;
+
+ button {
+ background: none;
+ border: 1px solid transparent;
+ padding: 0px 4px;
+ margin: 0;
+ color: #666;
+ }
+
+ &.has-drop:hover {
+ background-color: #eee;
+ border: 1px solid #bbb;
+
+ button {
+ color: black;
+ }
+ }
+ }
+
+ .clear {
+ clear: both;
+ }
+
+
+}
\ No newline at end of file