mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
FEATURE: the top tab is the default for new users
This commit is contained in:
@ -342,6 +342,11 @@ Discourse.Utilities = {
|
||||
return (arg === '' ? null : arg);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
defaultHomepage: function() {
|
||||
// the homepage is the first item of the 'top_menu' site setting
|
||||
return Discourse.SiteSettings.top_menu.split("|")[0].split(",")[0];
|
||||
}
|
||||
|
||||
};
|
||||
|
@ -328,7 +328,22 @@ Discourse.User = Discourse.Model.extend({
|
||||
type: 'POST',
|
||||
data: {email: email}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
Homepage of the user
|
||||
|
||||
@property homepage
|
||||
@type {String}
|
||||
**/
|
||||
homepage: function() {
|
||||
// top is the default for new users
|
||||
if (Discourse.SiteSettings.top_menu.indexOf("top") >= 0 &&
|
||||
this.get("trust_level") === 0) {
|
||||
return "top";
|
||||
}
|
||||
return Discourse.Utilities.defaultHomepage();
|
||||
}.property("trust_level")
|
||||
|
||||
});
|
||||
|
||||
|
@ -32,8 +32,10 @@ Discourse.Route.buildRoutes(function() {
|
||||
router.route(filter + "Category", { path: "/category/:parentSlug/:slug/l/" + filter + "/more" });
|
||||
});
|
||||
|
||||
// the homepage is the first item of the 'top_menu' site setting
|
||||
var homepage = Discourse.SiteSettings.top_menu.split("|")[0].split(",")[0];
|
||||
// homepage
|
||||
var homepage = Discourse.User.current() ?
|
||||
Discourse.User.currentProp("homepage") :
|
||||
Discourse.Utilities.defaultHomepage();
|
||||
this.route(homepage, { path: '/' });
|
||||
|
||||
// categories page
|
||||
|
@ -133,6 +133,11 @@ test("avatarImg", function() {
|
||||
"it doesn't render avatars for invalid avatar template");
|
||||
});
|
||||
|
||||
test("defaultHomepage", function() {
|
||||
Discourse.SiteSettings.top_menu = "latest|top|hot";
|
||||
equal(Discourse.Utilities.defaultHomepage(), "latest", "default homepage is the first item in the top_menu site setting");
|
||||
});
|
||||
|
||||
module("Discourse.Utilities.cropAvatar with animated avatars", {
|
||||
setup: function() { Discourse.SiteSettings.allow_animated_avatars = true; }
|
||||
});
|
||||
|
@ -26,6 +26,28 @@ test("isAllowedToUploadAFile", function() {
|
||||
ok(user.isAllowedToUploadAFile("image"), "moderator can always upload a file");
|
||||
});
|
||||
|
||||
test("homepage when top is disabled", function() {
|
||||
var newUser = Discourse.User.create({ trust_level: 0 }),
|
||||
oldUser = Discourse.User.create({ trust_level: 1 }),
|
||||
defaultHomepage = Discourse.Utilities.defaultHomepage();
|
||||
|
||||
Discourse.SiteSettings.top_menu = "latest";
|
||||
|
||||
ok(newUser.get("homepage") === defaultHomepage, "new user's homepage is default when top is disabled");
|
||||
ok(oldUser.get("homepage") === defaultHomepage, "old user's homepage is default when top is disabled");
|
||||
});
|
||||
|
||||
test("homepage when top is enabled", function() {
|
||||
var newUser = Discourse.User.create({ trust_level: 0 }),
|
||||
oldUser = Discourse.User.create({ trust_level: 1 }),
|
||||
defaultHomepage = Discourse.Utilities.defaultHomepage();
|
||||
|
||||
Discourse.SiteSettings.top_menu = "latest|top";
|
||||
|
||||
ok(newUser.get("homepage") === "top", "new user's homepage is top when top is enabled");
|
||||
ok(oldUser.get("homepage") === defaultHomepage, "old user's homepage is default when top is enabled");
|
||||
});
|
||||
|
||||
|
||||
asyncTestDiscourse("findByUsername", function() {
|
||||
expect(3);
|
||||
|
Reference in New Issue
Block a user