diff --git a/app/assets/javascripts/discourse/models/user-stream.js.es6 b/app/assets/javascripts/discourse/models/user-stream.js.es6 index 49c02b4e61e..fc80dc94ef7 100644 --- a/app/assets/javascripts/discourse/models/user-stream.js.es6 +++ b/app/assets/javascripts/discourse/models/user-stream.js.es6 @@ -28,11 +28,21 @@ export default RestModel.extend({ baseUrl: url('itemsLoaded', 'user.username_lower', '/user_actions.json?offset=%@&username=%@'), - filterBy(filter) { - this.setProperties({ filter, itemsLoaded: 0, content: [], lastLoadedUrl: null }); + filterBy(filter, noContentHelpKey) { + this.setProperties({ + filter, + itemsLoaded: 0, + content: [], + noContentHelpKey: noContentHelpKey, + lastLoadedUrl: null + }); return this.findItems(); }, + noContent: function() { + return this.get('loaded') && this.get('content').length === 0; + }.property('loaded', 'content.@each'), + remove(userAction) { // 1) remove the user action from the child groups this.get("content").forEach(function (ua) { @@ -61,6 +71,9 @@ export default RestModel.extend({ if (this.get('filterParam')) { findUrl += "&filter=" + this.get('filterParam'); } + if (this.get('noContentHelpKey')) { + findUrl += "&no_results_help_key=" + this.get('noContentHelpKey'); + } // Don't load the same stream twice. We're probably at the end. const lastLoadedUrl = this.get('lastLoadedUrl'); @@ -69,6 +82,9 @@ export default RestModel.extend({ if (this.get('loading')) { return Ember.RSVP.resolve(); } this.set('loading', true); return ajax(findUrl, {cache: 'false'}).then( function(result) { + if (result && result.no_results_help) { + self.set('noContentHelp', result.no_results_help); + } if (result && result.user_actions) { const copy = Em.A(); result.user_actions.forEach(function(action) { @@ -78,11 +94,11 @@ export default RestModel.extend({ self.get('content').pushObjects(UserAction.collapseStream(copy)); self.setProperties({ - loaded: true, itemsLoaded: self.get('itemsLoaded') + result.user_actions.length }); } }).finally(function() { + self.set('loaded', true); self.set('loading', false); self.set('lastLoadedUrl', findUrl); }); diff --git a/app/assets/javascripts/discourse/routes/user-activity-bookmarks.js.es6 b/app/assets/javascripts/discourse/routes/user-activity-bookmarks.js.es6 index cb14c181538..49ad23d1bc4 100644 --- a/app/assets/javascripts/discourse/routes/user-activity-bookmarks.js.es6 +++ b/app/assets/javascripts/discourse/routes/user-activity-bookmarks.js.es6 @@ -2,5 +2,6 @@ import UserActivityStreamRoute from "discourse/routes/user-activity-stream"; import UserAction from "discourse/models/user-action"; export default UserActivityStreamRoute.extend({ - userActionType: UserAction.TYPES["bookmarks"] + userActionType: UserAction.TYPES["bookmarks"], + noContentHelpKey: "user_activity.no_bookmarks" }); diff --git a/app/assets/javascripts/discourse/routes/user-activity-likes-given.js.es6 b/app/assets/javascripts/discourse/routes/user-activity-likes-given.js.es6 index 13a0e5b9863..852f67ab27e 100644 --- a/app/assets/javascripts/discourse/routes/user-activity-likes-given.js.es6 +++ b/app/assets/javascripts/discourse/routes/user-activity-likes-given.js.es6 @@ -2,5 +2,6 @@ import UserActivityStreamRoute from "discourse/routes/user-activity-stream"; import UserAction from "discourse/models/user-action"; export default UserActivityStreamRoute.extend({ - userActionType: UserAction.TYPES["likes_given"] + userActionType: UserAction.TYPES["likes_given"], + noContentHelpKey: 'no_likes_given' }); diff --git a/app/assets/javascripts/discourse/routes/user-activity-stream.js.es6 b/app/assets/javascripts/discourse/routes/user-activity-stream.js.es6 index 7447d712179..4fbf8e4300c 100644 --- a/app/assets/javascripts/discourse/routes/user-activity-stream.js.es6 +++ b/app/assets/javascripts/discourse/routes/user-activity-stream.js.es6 @@ -6,7 +6,7 @@ export default Discourse.Route.extend(ViewingActionType, { }, afterModel() { - return this.modelFor("user").get("stream").filterBy(this.get("userActionType")); + return this.modelFor("user").get("stream").filterBy(this.get("userActionType"), this.get("noContentHelpKey")); }, renderTemplate() { diff --git a/app/assets/javascripts/discourse/templates/user/stream.hbs b/app/assets/javascripts/discourse/templates/user/stream.hbs index 0a06e728c81..220ae57ba8a 100644 --- a/app/assets/javascripts/discourse/templates/user/stream.hbs +++ b/app/assets/javascripts/discourse/templates/user/stream.hbs @@ -1,3 +1,8 @@ +{{#if model.noContent}} +