scripts/apps/stream/controllers/StreamController.ts
StreamController.$inject = ['$scope', 'api', '$rootScope', 'desks'];
export function StreamController($scope, api, $rootScope, desks) {
$scope.desk = null;
$scope.activities = null;
$scope.pageLength = 10;
$scope.max_results = $scope.pageLength;
$scope.loadMore = function() {
if ($scope.activities._meta.total > $scope.max_results) {
$scope.max_results += $scope.pageLength;
fetchActivities();
}
};
$scope.showDateHeader = function(activity) {
$scope.currentDate = new Date($scope.activities._items[activity.index]._created);
if (activity.index === 0) {
return true;
}
var previousDate = new Date($scope.activities._items[activity.index - 1]._created);
return previousDate.getFullYear() !== $scope.currentDate.getFullYear() ||
previousDate.getMonth() !== $scope.currentDate.getMonth() ||
previousDate.getDate() !== $scope.currentDate.getDate();
};
var fetchActivities = function() {
var filter: any = {max_results: $scope.max_results};
if ($scope.desk) {
filter.where = {desk: $scope.desk._id};
}
api('activity', {embedded: {user: 1}}).query(filter)
.then((result) => {
$scope.activities = result;
});
};
}