diff --git a/app/assets/javascripts/discourse/controllers/list_controller.js b/app/assets/javascripts/discourse/controllers/list_controller.js index 072918c9b32..45f02dc7115 100644 --- a/app/assets/javascripts/discourse/controllers/list_controller.js +++ b/app/assets/javascripts/discourse/controllers/list_controller.js @@ -22,7 +22,7 @@ Discourse.ListController = Discourse.Controller.extend({ category: category }); }).filter(function(i) { - return i !== null && !(category && i.get("name") === "categories"); + return i !== null && !(category && i.get("name").indexOf("categor") === 0); }); }.property("category"), @@ -134,7 +134,11 @@ Discourse.ListController = Discourse.Controller.extend({ } else { return false; } - }.property('category') + }.property('category'), + + categories: function() { + return Discourse.Category.list(); + }.property() }); diff --git a/app/assets/javascripts/discourse/models/category.js b/app/assets/javascripts/discourse/models/category.js index 3a2f3be31e7..dc75876c55c 100644 --- a/app/assets/javascripts/discourse/models/category.js +++ b/app/assets/javascripts/discourse/models/category.js @@ -34,6 +34,13 @@ Discourse.Category = Discourse.Model.extend({ return Discourse.getURL("/category/") + (this.get('slug')); }.property('name'), + unreadUrl: function() { + return this.get('url') + '/unread'; + }.property('url'), + + newUrl: function() { + return this.get('url') + '/new'; + }.property('url'), style: function() { return "background-color: #" + (this.get('category.color')) + "; color: #" + (this.get('category.text_color')) + ";"; diff --git a/app/assets/javascripts/discourse/models/nav_item.js b/app/assets/javascripts/discourse/models/nav_item.js index b5a4de47c35..5bb6ef44a94 100644 --- a/app/assets/javascripts/discourse/models/nav_item.js +++ b/app/assets/javascripts/discourse/models/nav_item.js @@ -31,11 +31,21 @@ Discourse.NavItem = Discourse.Model.extend({ // href from this item href: function() { + return Discourse.getURL("/") + this.get('filterMode'); + }.property('filterMode'), + + // href from this item + filterMode: function() { var name = this.get('name'); if( name.split('/')[0] === 'category' ) { - return Discourse.getURL("/") + 'category/' + this.get('categorySlug'); + return 'category/' + this.get('categorySlug'); } else { - return Discourse.getURL("/") + name.replace(' ', '-'); + var mode = ""; + var category = this.get("category"); + if(category){ + mode += "category/" + category.get("slug") + "/"; + } + return mode + name.replace(' ', '-'); } }.property('name'), diff --git a/app/assets/javascripts/discourse/models/topic_list.js b/app/assets/javascripts/discourse/models/topic_list.js index 97b6ea4ab73..f27400cddf6 100644 --- a/app/assets/javascripts/discourse/models/topic_list.js +++ b/app/assets/javascripts/discourse/models/topic_list.js @@ -146,7 +146,6 @@ Discourse.TopicList.reopenClass({ return Ember.RSVP.resolve(list); } session.setProperties({topicList: null, topicListScrollPos: null}); - return Discourse.TopicList.find(filter, menuItem.get('excludeCategory')); } }); diff --git a/app/assets/javascripts/discourse/routes/list_category_route.js b/app/assets/javascripts/discourse/routes/list_category_route.js index cef425dff8e..e85c8ccf372 100644 --- a/app/assets/javascripts/discourse/routes/list_category_route.js +++ b/app/assets/javascripts/discourse/routes/list_category_route.js @@ -22,11 +22,14 @@ Discourse.ListCategoryRoute = Discourse.FilteredListRoute.extend({ } var listController = this.controllerFor('list'), - urlId = Discourse.Category.slugFor(category), + categorySlug = Discourse.Category.slugFor(category), self = this; - listController.set('filterMode', "category/" + urlId); - listController.load("category/" + urlId).then(function(topicList) { + var filter = this.filter || "latest"; + var url = "category/" + categorySlug + "/" + filter; + + listController.set('filterMode', url); + listController.load(url).then(function(topicList) { listController.setProperties({ canCreateTopic: topicList.get('can_create_topic'), category: category 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 5be553f5c43..f2148db82c2 100644 --- a/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars +++ b/app/assets/javascripts/discourse/templates/components/discourse-categorydrop.js.handlebars @@ -1,7 +1,7 @@ {{#if category}} {{categoryLink category}} {{else}} - {{title}} + {{/if}} {{#if categories}} @@ -12,4 +12,4 @@
{{i18n topic.title}} | + {{#unless category}}{{i18n category_title}} | + {{/unless}}{{i18n top_contributors}} | {{i18n posts}} | {{i18n likes}} | diff --git a/app/assets/javascripts/discourse/templates/list/wide_categories.js.handlebars b/app/assets/javascripts/discourse/templates/list/wide_categories.js.handlebars index 444d63133ec..d76e8549591 100644 --- a/app/assets/javascripts/discourse/templates/list/wide_categories.js.handlebars +++ b/app/assets/javascripts/discourse/templates/list/wide_categories.js.handlebars @@ -22,10 +22,10 @@ {{/if}} {{categoryLink this allowUncategorized=true}} {{#if unreadTopics}} - {{unbound unreadTopics}} + {{unbound unreadTopics}} {{/if}} {{#if newTopics}} - {{unbound newTopics}} + {{unbound newTopics}} {{/if}}
---|