mirror of
https://github.com/discourse/discourse.git
synced 2025-03-05 10:56:25 +08:00
FEATURE: display the Top tab by default for long-time-no-see users
This commit is contained in:
parent
a502266c42
commit
54686388fb
@ -330,6 +330,10 @@ Discourse.User = Discourse.Model.extend({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
hasBeenSeenInTheLastMonth: function() {
|
||||||
|
return moment().diff(moment(this.get('last_seen_at')), 'month', true) < 1.0;
|
||||||
|
}.property("last_seen_at"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Homepage of the user
|
Homepage of the user
|
||||||
|
|
||||||
@ -337,13 +341,16 @@ Discourse.User = Discourse.Model.extend({
|
|||||||
@type {String}
|
@type {String}
|
||||||
**/
|
**/
|
||||||
homepage: function() {
|
homepage: function() {
|
||||||
// top is the default for new users
|
// top is the default for:
|
||||||
if (Discourse.SiteSettings.top_menu.indexOf("top") >= 0 &&
|
// - new users
|
||||||
this.get("trust_level") === 0) {
|
// - long-time-no-see user (ie. > 1 month)
|
||||||
return "top";
|
if (Discourse.SiteSettings.top_menu.indexOf("top") >= 0) {
|
||||||
|
if (this.get("trust_level") === 0 || !this.get("hasBeenSeenInTheLastMonth")) {
|
||||||
|
return "top";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return Discourse.Utilities.defaultHomepage();
|
return Discourse.Utilities.defaultHomepage();
|
||||||
}.property("trust_level")
|
}.property("trust_level", "hasBeenSeenInTheLastMonth")
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -27,25 +27,31 @@ test("isAllowedToUploadAFile", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("homepage when top is disabled", function() {
|
test("homepage when top is disabled", function() {
|
||||||
var newUser = Discourse.User.create({ trust_level: 0 }),
|
var newUser = Discourse.User.create({ trust_level: 0, last_seen_at: moment() }),
|
||||||
oldUser = Discourse.User.create({ trust_level: 1 }),
|
oldUser = Discourse.User.create({ trust_level: 1, last_seen_at: moment() }),
|
||||||
defaultHomepage = Discourse.Utilities.defaultHomepage();
|
defaultHomepage = Discourse.Utilities.defaultHomepage();
|
||||||
|
|
||||||
Discourse.SiteSettings.top_menu = "latest";
|
Discourse.SiteSettings.top_menu = "latest";
|
||||||
|
|
||||||
ok(newUser.get("homepage") === defaultHomepage, "new user's homepage is default when top is disabled");
|
equal(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");
|
equal(oldUser.get("homepage"), defaultHomepage, "old user's homepage is default when top is disabled");
|
||||||
|
|
||||||
|
oldUser.set("last_seen_at", moment().subtract('month', 2));
|
||||||
|
equal(oldUser.get("homepage"), defaultHomepage, "long-time-no-see old user's homepage is default when top is disabled");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("homepage when top is enabled", function() {
|
test("homepage when top is enabled", function() {
|
||||||
var newUser = Discourse.User.create({ trust_level: 0 }),
|
var newUser = Discourse.User.create({ trust_level: 0, last_seen_at: moment() }),
|
||||||
oldUser = Discourse.User.create({ trust_level: 1 }),
|
oldUser = Discourse.User.create({ trust_level: 1, last_seen_at: moment() }),
|
||||||
defaultHomepage = Discourse.Utilities.defaultHomepage();
|
defaultHomepage = Discourse.Utilities.defaultHomepage();
|
||||||
|
|
||||||
Discourse.SiteSettings.top_menu = "latest|top";
|
Discourse.SiteSettings.top_menu = "latest|top";
|
||||||
|
|
||||||
ok(newUser.get("homepage") === "top", "new user's homepage is top when top is enabled");
|
equal(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");
|
equal(oldUser.get("homepage"), defaultHomepage, "old user's homepage is default when top is enabled");
|
||||||
|
|
||||||
|
oldUser.set("last_seen_at", moment().subtract('month', 2));
|
||||||
|
equal(oldUser.get("homepage"), "top", "long-time-no-see old user's homepage is top when top is enabled");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user