mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 12:51:24 +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);
|
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',
|
type: 'POST',
|
||||||
data: {email: email}
|
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" });
|
router.route(filter + "Category", { path: "/category/:parentSlug/:slug/l/" + filter + "/more" });
|
||||||
});
|
});
|
||||||
|
|
||||||
// the homepage is the first item of the 'top_menu' site setting
|
// homepage
|
||||||
var homepage = Discourse.SiteSettings.top_menu.split("|")[0].split(",")[0];
|
var homepage = Discourse.User.current() ?
|
||||||
|
Discourse.User.currentProp("homepage") :
|
||||||
|
Discourse.Utilities.defaultHomepage();
|
||||||
this.route(homepage, { path: '/' });
|
this.route(homepage, { path: '/' });
|
||||||
|
|
||||||
// categories page
|
// categories page
|
||||||
|
@ -133,6 +133,11 @@ test("avatarImg", function() {
|
|||||||
"it doesn't render avatars for invalid avatar template");
|
"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", {
|
module("Discourse.Utilities.cropAvatar with animated avatars", {
|
||||||
setup: function() { Discourse.SiteSettings.allow_animated_avatars = true; }
|
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");
|
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() {
|
asyncTestDiscourse("findByUsername", function() {
|
||||||
expect(3);
|
expect(3);
|
||||||
|
Reference in New Issue
Block a user