diff --git a/app/assets/javascripts/discourse/controllers/top_controller.js b/app/assets/javascripts/discourse/controllers/top_controller.js new file mode 100644 index 00000000000..4f941eb7e1b --- /dev/null +++ b/app/assets/javascripts/discourse/controllers/top_controller.js @@ -0,0 +1,35 @@ +/** + Controller of the top page + + @class TopController + @extends Discourse.ObjectController + @namespace Discourse + @module Discourse +**/ +Discourse.TopController = Discourse.ObjectController.extend({ + + redirectedToTopPageReason: function() { + // no need for a reason if the default homepage is "top" + if (Discourse.Utilities.defaultHomepage() === "top") { return null; } + // check if the user is authenticated + if (Discourse.User.current()) { + if (Discourse.User.currentProp("trust_level") === 0) { + return I18n.t("filters.top.redirect_reasons.new_user"); + } else if (!Discourse.User.currentProp("hasBeenSeenInTheLastMonth")) { + return I18n.t("filters.top.redirect_reasons.not_seen_in_a_month"); + } + } + // no reason detected + return null; + }.property(), + + showThisYear: function() { + if (Discourse.User.current()) { + return !Discourse.User.currentProp("hasBeenSeenInTheLastMonth"); + } else { + return true; + } + }.property(), + + +}); diff --git a/app/assets/javascripts/discourse/templates/top.js.handlebars b/app/assets/javascripts/discourse/templates/top.js.handlebars index 311c06ede30..3c14b0035db 100644 --- a/app/assets/javascripts/discourse/templates/top.js.handlebars +++ b/app/assets/javascripts/discourse/templates/top.js.handlebars @@ -1,5 +1,12 @@ -

{{i18n filters.top.this_year}}

-{{basic-topic-list topicList=content.yearly}} +{{#if redirectedToTopPageReason}} +
+ {{redirectedToTopPageReason}} +
+{{/if}} +{{#if showThisYear}} +

{{i18n filters.top.this_year}}

+ {{basic-topic-list topicList=content.yearly}} +{{/if}}

{{i18n filters.top.this_month}}

{{basic-topic-list topicList=content.monthly}}

{{i18n filters.top.this_week}}

diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 21c9292ca92..8fa64f1c394 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1117,6 +1117,9 @@ en: this_month: "This month" this_week: "This week" today: "Today" + redirect_reasons: + new_user: "You are a new user. This will be your homepage for a while. If you don't know where to start, here's a summary of the best topics." + not_seen_in_a_month: "We have not seen you in more than a month. Here's a summary of the best topics since you were away." browser_update: 'Unfortunately, your browser is too old to work on this Discourse forum. Please upgrade your browser.'