Skip to content

Instantly share code, notes, and snippets.

@meelash
Created August 8, 2011 13:53
Show Gist options
  • Select an option

  • Save meelash/1131770 to your computer and use it in GitHub Desktop.

Select an option

Save meelash/1131770 to your computer and use it in GitHub Desktop.
fetchActivities:(callback)->
@invokeServerSide
fetchActivities:
params:
limit: 50
middleware : (err,params,activities)=>
@activities = for activity in activities
Activity::create (id : activity.id, type : activity.item.type), activity
@activities.fetchSubData path:"participants"
callback? @activities
filterActivities:(type,callback)->
@invokeServerSide
filterActivities:
params:
filters: if ($.isArray type) then type else [type]
middleware: (err, params, activities)=>
#FIXME: remove dups.
#This is so we have a pointer to existing activities in cache that aren't being used anywhere. Will be necessary for cache cleanup
@allActivities or= []
@allActivities.push @activities
#
@activities = for activity in activities
newRelationship = Relationship::create (id : activity.relationship._id), (item : activity.relationship)
if activity.relationship.targetName is "Message_Status"
Activity_StatusUpdate::create null,
relationship : newRelationship
else if activity.relationship.targetName is "Message_Question"
Activity_NewQuestion::create null,
relationship : newRelationship
else if activity.relationship.sourceName is "User"
Activity_NewRegistration::create null,
relationship : newRelationship
else if activity.relationship.as is "following"
Activity_FollowNotice::create null,
relationship : newRelationship
else if activity.relationship.as is "friendConfirmer"
Activity_NewFriendship::create null,
relationship : newRelationship
else if activity.relationship.targetName is "Group"
Activity_NewGroup::create null,
relationship : newRelationship
callback? @activities
@propagateEvent (KDEventType:"Data.activities", instanceListenersOnly:yes, dataChangeType:'refresh'), @activities
pageDownActivities:({}, callback)->
@invokeServerSide
fetchActivities:
params:
limit:5
skip: @activities.length
middleware : (err,params,activities)=>
return unless @activities?
newActivities = for activity in activities
@activities.push newActivity = Activity::create (id : activity.id, type : activity.item.type), activity
newActivity
newActivities.fetchSubData path:"participants"
callback? newActivities
@propagateEvent (KDEventType:"Data.activities", instanceListenersOnly:yes, dataChangeType:'addPage'), newActivities
receiveAddToActivities:(activity)->
return unless @activities?
newRelationship = Relationship::create (id : activity.relationship._id), (item : activity.relationship)
(newRelationship.setSourceData item : activity.source) if activity.source? and newRelationship.getSource().KDDataNeedsFetch
(newRelationship.setTargetData item : activity.target) if activity.target? and newRelationship.getTarget().KDDataNeedsFetch
newActivity =
if activity.relationship.targetName is "Message_Status"
Activity_StatusUpdate::create null,
relationship : newRelationship
else if activity.relationship.targetName is "Message_Question"
Activity_NewQuestion::create null,
relationship : newRelationship
else if activity.relationship.sourceName is "User"
Activity_NewRegistration::create null,
relationship : newRelationship
else if activity.relationship.as is "following"
Activity_FollowNotice::create null,
relationship : newRelationship
else if activity.relationship.as is "friendConfirmer"
Activity_NewFriendship::create null,
relationship : newRelationship
else if activity.relationship.targetName is "Group"
Activity_NewGroup::create null,
relationship : newRelationship
@activities.unshift newActivity
newActivity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment