*/
public function add(Entity $entity, $activityKey, $bookId = 0, $extra = false)
{
- $this->activity->user_id = $this->user->id;
- $this->activity->book_id = $bookId;
- $this->activity->key = strtolower($activityKey);
+ $activity = $this->activity->newInstance();
+ $activity->user_id = $this->user->id;
+ $activity->book_id = $bookId;
+ $activity->key = strtolower($activityKey);
if ($extra !== false) {
- $this->activity->extra = $extra;
+ $activity->extra = $extra;
}
- $entity->activity()->save($this->activity);
+ $entity->activity()->save($activity);
$this->setNotification($activityKey);
}
/**
- * Adds a activity history with a message & without binding to a entitiy.
+ * Adds a activity history with a message & without binding to a entity.
* @param $activityKey
* @param int $bookId
* @param bool|false $extra
}
/**
- * Gets the latest activity for an entitiy, Filtering out similar
+ * Gets the latest activity for an entity, Filtering out similar
* items to prevent a message activity list.
* @param Entity $entity
* @param int $count
* @param int $page
* @return array
*/
- function entityActivity($entity, $count = 20, $page = 0)
+ public function entityActivity($entity, $count = 20, $page = 0)
{
$activity = $entity->hasMany('BookStack\Activity')->orderBy('created_at', 'desc')
->skip($count * $page)->take($count)->get();
}
/**
- * Filters out similar acitivity.
- * @param Activity[] $activity
+ * Get latest activity for a user, Filtering out similar
+ * items.
+ * @param $user
+ * @param int $count
+ * @param int $page
+ * @return array
+ */
+ public function userActivity($user, $count = 20, $page = 0)
+ {
+ $activity = $this->activity->where('user_id', '=', $user->id)
+ ->orderBy('created_at', 'desc')->skip($count * $page)->take($count)->get();
+ return $this->filterSimilar($activity);
+ }
+
+ /**
+ * Filters out similar activity.
+ * @param Activity[] $activities
* @return array
*/
- protected function filterSimilar($activity)
+ protected function filterSimilar($activities)
{
$newActivity = [];
$previousItem = false;
- foreach ($activity as $activityItem) {
+ foreach ($activities as $activityItem) {
if ($previousItem === false) {
$previousItem = $activityItem;
$newActivity[] = $activityItem;