From 6dd77fe9712dfb4716934da203144423b4b73311 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Tue, 25 Mar 2014 12:10:14 +0000 Subject: [PATCH] Use events for serverEvents service. --- assets/js/controllers/queue.controller.js | 6 +++- assets/js/controllers/transport.controller.js | 4 +-- assets/js/services/server-events.service.js | 29 +++---------------- 3 files changed, 11 insertions(+), 28 deletions(-) diff --git a/assets/js/controllers/queue.controller.js b/assets/js/controllers/queue.controller.js index d18a3ed..92e6bc2 100644 --- a/assets/js/controllers/queue.controller.js +++ b/assets/js/controllers/queue.controller.js @@ -5,5 +5,9 @@ mpdClient.controller('queue', function ($scope, api, serverEvents) { $scope.queueSongs = data } - serverEvents.onUpdateQueue($scope.updateQueue) + $scope.playTrack = function(id) { + console.log(id) + } + + $scope.$on('update:queue', function (evt, data) { $scope.updateQueue(data) }) }) diff --git a/assets/js/controllers/transport.controller.js b/assets/js/controllers/transport.controller.js index 2db0671..92ac2d6 100644 --- a/assets/js/controllers/transport.controller.js +++ b/assets/js/controllers/transport.controller.js @@ -29,6 +29,6 @@ mpdClient.controller('transport', function ($scope, api, serverEvents) { return ($scope.elapsedTime / $scope.totalTime) * 100 } - serverEvents.onUpdateStatus($scope.updateStatus) - serverEvents.onUpdateTime($scope.updateTime) + $scope.$on('update:status', function (evt, data) { $scope.updateStatus(data) }) + $scope.$on('update:time', function (evt, data) { $scope.updateTime(data) }) }) diff --git a/assets/js/services/server-events.service.js b/assets/js/services/server-events.service.js index db3e699..a18981f 100644 --- a/assets/js/services/server-events.service.js +++ b/assets/js/services/server-events.service.js @@ -1,32 +1,11 @@ mpdClient.factory('serverEvents', function ($rootScope) { - var events = new EventSource('/api/stream'), - serverEvents = { - onUpdateQueue: function (callback) { - this.updateQueueCallback = callback - }, - onUpdateStatus: function (callback) { - this.updateStatusCallback = callback - }, - onUpdateTime: function (callback) { - this.updateTimeCallback = callback - } - } + var events = new EventSource('/api/stream') events.onmessage = function(e) { response = JSON.parse(e.data); - switch (response.type) { - case 'status': - $rootScope.$apply(function () { serverEvents.updateStatusCallback(response.data) }) - break; - case 'queue': - $rootScope.$apply(function () { serverEvents.updateQueueCallback(response.data) }) - break; - case 'time': - $rootScope.$apply(function () { serverEvents.updateTimeCallback(response.data) }) - break; - } + $rootScope.$apply(function() { + $rootScope.$broadcast('update:' + response.type, response.data) + }) } - - return serverEvents })