angular.module('avalanche3mobile.ActivityCtrl', []) .controller('MissionActivityCtrl', function($scope, $rootScope, $stateParams, OAuthService, DataService, RealtimeService, $state) { // Refresh Activities from server DataService.get('/missions/' + $state.params.missionId + "/activities", "", OAuthService.getToken()) $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){ DataService.get('/missions/' + $state.params.missionId + "/activities", "", OAuthService.getToken()) }); $rootScope.$on('get-data-success:/missions/' + $state.params.missionId + '/activities', function() { if(!$scope.$$phase) { $scope.$apply(function(){ $scope.mission.activities = DataService.getResponse().data; }); } else { $scope.mission.activities = DataService.getResponse().data; } }); // Start Realtime subscription to new activities RealtimeService.subscribe('/missions/' + $state.params.missionId, function(activity) { $scope.$apply(function() { $scope.mission.activities.push(activity); console.log(activity); }); }); // Send message $scope.message = ""; $scope.sendMessage = function() { DataService.post('/missions/' + $state.params.missionId + "/messages", {content : $scope.message }, OAuthService.getToken()) $scope.message = ""; } // Misc $scope.activityIconClass = function(activity){ if(activity.trackable_type == "Message" || activity.trackable_type == "Task") { return "item-avatar"; } else { return "item-icon-left"; } } })