Clean up user activity code in preparation for topic rendering

This commit is contained in:
Robin Ward 2013-07-23 16:33:33 -04:00
parent c9c6a8fd9d
commit 82465caf97
3 changed files with 20 additions and 64 deletions
app/assets/javascripts/discourse

View file

@ -33,7 +33,6 @@ Discourse.UserActivityRoute = Discourse.Route.extend({
}); });
} }
} }
}); });
/** /**
@ -45,8 +44,13 @@ Discourse.UserActivityRoute = Discourse.Route.extend({
@module Discourse @module Discourse
**/ **/
Discourse.UserActivityIndexRoute = Discourse.Route.extend({ Discourse.UserActivityIndexRoute = Discourse.Route.extend({
privateMessageRoute: function() {
return (this.get('userActionType') === Discourse.UserAction.TYPES.messages_sent) ||
(this.get('userActionType') === Discourse.UserAction.TYPES.messages_received);
}.property('userActionType'),
model: function() { model: function() {
return this.modelFor('user').findStream(); return this.modelFor('user').findStream(this.get('userActionType'));
}, },
setupController: function(controller, model) { setupController: function(controller, model) {
@ -61,12 +65,15 @@ Discourse.UserActivityIndexRoute = Discourse.Route.extend({
// Build all the filter routes // Build all the filter routes
Object.keys(Discourse.UserAction.TYPES).forEach(function (userAction) { Object.keys(Discourse.UserAction.TYPES).forEach(function (userAction) {
Discourse["UserActivity" + userAction.classify() + "Route"] = Discourse.UserActivityIndexRoute.extend({ Discourse["UserActivity" + userAction.classify() + "Route"] = Discourse.UserActivityIndexRoute.extend({
model: function() { userActionType: Discourse.UserAction.TYPES[userAction]
return this.modelFor('user').findStream(Discourse.UserAction.TYPES[userAction]);
}
}); });
}); });
// Build the private message routes
Discourse.UserPrivateMessagesRoute = Discourse.UserActivityRoute.extend({});
Discourse.UserPrivateMessagesIndexRoute = Discourse.UserActivityMessagesReceivedRoute;
Discourse.UserPrivateMessagesSentRoute = Discourse.UserActivityMessagesSentRoute;
/** /**
Show the user's default route Show the user's default route
@ -82,62 +89,15 @@ Discourse.UserIndexRoute = Discourse.Route.extend({
}, },
model: function() { model: function() {
var user = this.modelFor('user'); return this.modelFor('user').findStream();
return user.findStream();
}, },
setupController: function(controller, stream) { setupController: function(controller, stream) {
var userActivity = this.controllerFor('userActivity'); var userActivity = this.controllerFor('userActivity');
userActivity.setProperties({ userActivity.setProperties({ model: this.modelFor('user'), stream: stream });
model: this.modelFor('user'),
stream: stream
});
} }
}); });
/**
Base route for showing private messages
@class UserPrivateMessagesRoute
@extends Discourse.UserActivityRoute
@namespace Discourse
@module Discourse
**/
Discourse.UserPrivateMessagesRoute = Discourse.UserActivityRoute.extend({});
/**
Default private messages route
@class UserPrivateMessagesIndexRoute
@extends Discourse.UserActivityIndexRoute
@namespace Discourse
@module Discourse
**/
Discourse.UserPrivateMessagesIndexRoute = Discourse.UserActivityIndexRoute.extend({
privateMessageRoute: true,
model: function() {
return this.modelFor('user').findStream(Discourse.UserAction.TYPES.messages_received);
}
});
/**
Private messages sent route
@class UserPrivateMessagesSentRoute
@extends Discourse.UserActivityIndexRoute
@namespace Discourse
@module Discourse
**/
Discourse.UserPrivateMessagesSentRoute = Discourse.UserActivityIndexRoute.extend({
privateMessageRoute: true,
model: function() {
return this.modelFor('user').findStream(Discourse.UserAction.TYPES.messages_sent);
}
});
/** /**
This controller supports all actions on a user's activity stream This controller supports all actions on a user's activity stream
@ -149,12 +109,6 @@ Discourse.UserPrivateMessagesSentRoute = Discourse.UserActivityIndexRoute.extend
Discourse.UserActivityController = Discourse.ObjectController.extend({ Discourse.UserActivityController = Discourse.ObjectController.extend({
needs: ['composer'], needs: ['composer'],
kickOffPrivateMessage: (function() {
if (this.get('content.openPrivateMessage')) {
this.composePrivateMessage();
}
}).observes('content.openPrivateMessage'),
composePrivateMessage: function() { composePrivateMessage: function() {
return this.get('controllers.composer').open({ return this.get('controllers.composer').open({
action: Discourse.Composer.PRIVATE_MESSAGE, action: Discourse.Composer.PRIVATE_MESSAGE,

View file

@ -1,4 +1,4 @@
{{#each view.stream.content}} {{#with view.content}}
<div {{bindAttr class=":item hidden deleted moderator_action"}}> <div {{bindAttr class=":item hidden deleted moderator_action"}}>
<div class='clearfix info'> <div class='clearfix info'>
<a href="{{unbound userUrl}}" class='avatar-link'><div class='avatar-wrapper'>{{avatar this imageSize="large" extraClasses="actor" ignoreTitle="true"}}</div></a> <a href="{{unbound userUrl}}" class='avatar-link'><div class='avatar-wrapper'>{{avatar this imageSize="large" extraClasses="actor" ignoreTitle="true"}}</div></a>
@ -20,5 +20,5 @@
</div> </div>
{{/each}} {{/each}}
</div> </div>
{{/each}} {{/with}}

View file

@ -7,10 +7,11 @@
@uses Discourse.Scrolling @uses Discourse.Scrolling
@module Discourse @module Discourse
**/ **/
Discourse.UserStreamView = Discourse.View.extend(Discourse.Scrolling, { Discourse.UserStreamView = Ember.CollectionView.extend(Discourse.Scrolling, {
templateName: 'user/stream',
loading: false, loading: false,
elementId: 'user-stream', elementId: 'user-stream',
content: Em.computed.alias('controller.stream.content'),
itemViewClass: Ember.View.extend({ templateName: 'user/stream_item' }),
scrolled: function(e) { scrolled: function(e) {
var eyeline = this.get('eyeline'); var eyeline = this.get('eyeline');
@ -33,6 +34,7 @@ Discourse.UserStreamView = Discourse.View.extend(Discourse.Scrolling, {
}, },
didInsertElement: function() { didInsertElement: function() {
console.log(this.get('content'));
this.bindScrolling(); this.bindScrolling();
var eyeline = new Discourse.Eyeline('#user-stream .item'); var eyeline = new Discourse.Eyeline('#user-stream .item');