diff --git a/app/assets/javascripts/discourse/app/controllers/user.js b/app/assets/javascripts/discourse/app/controllers/user.js index 2b39d06055..71990546c5 100644 --- a/app/assets/javascripts/discourse/app/controllers/user.js +++ b/app/assets/javascripts/discourse/app/controllers/user.js @@ -102,6 +102,11 @@ export default Controller.extend(CanCheckEmails, { return viewingSelf; }, + @discourseComputed("viewingSelf") + showRead(viewingSelf) { + return viewingSelf; + }, + @discourseComputed("viewingSelf", "currentUser.admin") showPrivateMessages(viewingSelf, isAdmin) { return ( diff --git a/app/assets/javascripts/discourse/app/routes/app-route-map.js b/app/assets/javascripts/discourse/app/routes/app-route-map.js index 8e66333e3e..67c6acc41f 100644 --- a/app/assets/javascripts/discourse/app/routes/app-route-map.js +++ b/app/assets/javascripts/discourse/app/routes/app-route-map.js @@ -125,6 +125,7 @@ export default function () { }); this.route("pending"); this.route("drafts"); + this.route("read"); } ); diff --git a/app/assets/javascripts/discourse/app/routes/user-activity-read.js b/app/assets/javascripts/discourse/app/routes/user-activity-read.js new file mode 100644 index 0000000000..1cfd2c9856 --- /dev/null +++ b/app/assets/javascripts/discourse/app/routes/user-activity-read.js @@ -0,0 +1,12 @@ +import UserAction from "discourse/models/user-action"; +import UserTopicListRoute from "discourse/routes/user-topic-list"; + +export default UserTopicListRoute.extend({ + userActionType: UserAction.TYPES.topics, + + model() { + return this.store.findFiltered("topicList", { + filter: "read", + }); + }, +}); diff --git a/app/assets/javascripts/discourse/app/templates/user/activity.hbs b/app/assets/javascripts/discourse/app/templates/user/activity.hbs index 6ccc09bd66..ebc73b137a 100644 --- a/app/assets/javascripts/discourse/app/templates/user/activity.hbs +++ b/app/assets/javascripts/discourse/app/templates/user/activity.hbs @@ -9,6 +9,11 @@
  • {{#link-to "userActivity.replies"}}{{i18n "user_action_groups.5"}}{{/link-to}}
  • + {{#if user.showRead}} +
  • + {{#link-to "userActivity.read" title=(i18n "user.read_help")}}{{i18n "user.read"}}{{/link-to}} +
  • + {{/if}} {{#if user.showDrafts}}
  • {{#link-to "userActivity.drafts"}}{{i18n "user_action_groups.15"}}{{/link-to}} diff --git a/app/assets/javascripts/discourse/tests/unit/models/user-stream-test.js b/app/assets/javascripts/discourse/tests/unit/models/user-stream-test.js index 8ba20c9cc6..496a383988 100644 --- a/app/assets/javascripts/discourse/tests/unit/models/user-stream-test.js +++ b/app/assets/javascripts/discourse/tests/unit/models/user-stream-test.js @@ -31,6 +31,9 @@ module("Unit | Model | user-stream", function () { // defaults to posts/topics assert.equal(stream.get("filterParam"), "4,5"); + stream.set("filter", UserAction.TYPES.topics); + assert.equal(stream.get("filterParam"), "4"); + stream.set("filter", UserAction.TYPES.likes_given); assert.equal(stream.get("filterParam"), UserAction.TYPES.likes_given); diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 186b021c2e..f42b0e029c 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -967,6 +967,8 @@ en: sunday: "Sunday" to: "to" activity_stream: "Activity" + read: "Read" + read_help: "Recently read topics" preferences: "Preferences" feature_topic_on_profile: open_search: "Select a New Topic"