mirror of
https://github.com/discourse/discourse.git
synced 2025-04-26 15:44:30 +08:00
BUGFIX: clicking the logo when the homepage was /categories or /top would fail
This commit is contained in:
parent
7b20079d85
commit
ae06ea6323
@ -12,6 +12,15 @@ Discourse.DiscoveryCategoriesController = Discourse.DiscoveryController.extend({
|
|||||||
actions: {
|
actions: {
|
||||||
toggleOrdering: function(){
|
toggleOrdering: function(){
|
||||||
this.set("ordering",!this.get("ordering"));
|
this.set("ordering",!this.get("ordering"));
|
||||||
|
},
|
||||||
|
|
||||||
|
refresh: function() {
|
||||||
|
var self = this;
|
||||||
|
this.send('loading');
|
||||||
|
Discourse.CategoryList.list('categories').then(function(list) {
|
||||||
|
self.set('model', list);
|
||||||
|
self.send('loadingComplete');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -7,6 +7,18 @@
|
|||||||
@module Discourse
|
@module Discourse
|
||||||
**/
|
**/
|
||||||
Discourse.DiscoveryTopController = Discourse.DiscoveryController.extend({
|
Discourse.DiscoveryTopController = Discourse.DiscoveryController.extend({
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
refresh: function() {
|
||||||
|
var self = this;
|
||||||
|
this.send('loading');
|
||||||
|
Discourse.TopList.find().then(function(top_lists) {
|
||||||
|
self.set('model', top_lists);
|
||||||
|
self.send('loadingComplete');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
redirectedToTopPageReason: function() {
|
redirectedToTopPageReason: function() {
|
||||||
// no need for a reason if the default homepage is 'top'
|
// no need for a reason if the default homepage is 'top'
|
||||||
if (Discourse.Utilities.defaultHomepage() === 'top') { return null; }
|
if (Discourse.Utilities.defaultHomepage() === 'top') { return null; }
|
||||||
|
@ -188,11 +188,15 @@ Discourse.URL = Em.Object.createWithMixins({
|
|||||||
@param {String} path the path we're navigating to
|
@param {String} path the path we're navigating to
|
||||||
**/
|
**/
|
||||||
navigatedToHome: function(oldPath, path) {
|
navigatedToHome: function(oldPath, path) {
|
||||||
var defaultFilter = "/" + Discourse.Site.currentProp('filters')[0];
|
var homepage = Discourse.User.current() ? Discourse.User.currentProp('homepage') : Discourse.Utilities.defaultHomepage();
|
||||||
|
|
||||||
if (path === "/" && (oldPath === "/" || oldPath === defaultFilter)) {
|
if (path === "/" && (oldPath === "/" || oldPath === "/" + homepage)) {
|
||||||
// Refresh our list
|
// refresh the list
|
||||||
this.controllerFor('discoveryTopics').send('refresh');
|
switch (homepage) {
|
||||||
|
case "top" : { this.controllerFor('discoveryTop').send('refresh'); break; }
|
||||||
|
case "categories": { this.controllerFor('discoveryCategories').send('refresh'); break; }
|
||||||
|
default: { this.controllerFor('discoveryTopics').send('refresh'); break; }
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,15 +16,15 @@ test("isInternal with a HTTPS url", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("navigatedToHome", function() {
|
test("navigatedToHome", function() {
|
||||||
var fakeListController = { send: function() { return true; } };
|
var fakeDiscoveryController = { send: function() { return true; } };
|
||||||
var mock = sinon.mock(fakeListController);
|
var mock = sinon.mock(fakeDiscoveryController);
|
||||||
this.stub(Discourse.URL, "controllerFor").returns(fakeListController);
|
this.stub(Discourse.URL, "controllerFor").returns(fakeDiscoveryController);
|
||||||
|
|
||||||
mock.expects("send").withArgs('refresh').twice();
|
mock.expects("send").withArgs('refresh').twice();
|
||||||
ok(Discourse.URL.navigatedToHome("/", "/"));
|
ok(Discourse.URL.navigatedToHome("/", "/"));
|
||||||
|
|
||||||
var defaultFilter = "/" + Discourse.Site.currentProp('filters')[0];
|
var homepage = "/" + Discourse.Utilities.defaultHomepage();
|
||||||
ok(Discourse.URL.navigatedToHome(defaultFilter, "/"));
|
ok(Discourse.URL.navigatedToHome(homepage, "/"));
|
||||||
|
|
||||||
ok(!Discourse.URL.navigatedToHome("/old", "/new"));
|
ok(!Discourse.URL.navigatedToHome("/old", "/new"));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user