mirror of
https://github.com/danbee/mpd-client
synced 2025-03-04 08:39:09 +00:00
WIP: Server events.
This commit is contained in:
parent
ed2a127d0c
commit
3daa289a78
@ -1,12 +1,18 @@
|
|||||||
mpdClient.controller('transport', function ($rootScope, $scope, $http) {
|
mpdClient.controller('transport', function ($rootScope, $scope, $http, serverEvents) {
|
||||||
var Status = $http({ method: 'GET', url: '/api/status' })
|
var Status = $http({ method: 'GET', url: '/api/status' })
|
||||||
|
|
||||||
$rootScope.status = { time: [] }
|
$rootScope.status = { time: [] }
|
||||||
|
|
||||||
|
serverEvents.onUpdateStatus($scope.updateStatus)
|
||||||
|
|
||||||
Status.success(function (data, status, headers, config) {
|
Status.success(function (data, status, headers, config) {
|
||||||
$rootScope.status = data
|
$scope.updateStatus(data)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$scope.updateStatus = function(data) {
|
||||||
|
$rootScope.status = data
|
||||||
|
}
|
||||||
|
|
||||||
$scope.sendCommand = function (command) {
|
$scope.sendCommand = function (command) {
|
||||||
$http({ method: 'PUT', url: '/api/control/' + command })
|
$http({ method: 'PUT', url: '/api/control/' + command })
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,5 +3,6 @@
|
|||||||
//= require ./libs/angular-resource
|
//= require ./libs/angular-resource
|
||||||
|
|
||||||
//= require ./mpd-client.app
|
//= require ./mpd-client.app
|
||||||
|
//= require_tree ./services/
|
||||||
//= require_tree ./filters/
|
//= require_tree ./filters/
|
||||||
//= require_tree ./controllers/
|
//= require_tree ./controllers/
|
||||||
|
|||||||
@ -1,20 +0,0 @@
|
|||||||
angular.module('mpdClient.services')
|
|
||||||
|
|
||||||
.factory('eventSource', function ($scope) {
|
|
||||||
$scope.events = new EventSource('/api/stream')
|
|
||||||
|
|
||||||
$scope.events.onmessage = function(e) {
|
|
||||||
response = JSON.parse(e.data);
|
|
||||||
switch (response.type) {
|
|
||||||
case 'status':
|
|
||||||
$scope.$emit('update:status', response.data)
|
|
||||||
break;
|
|
||||||
case 'queue':
|
|
||||||
$scope.$emit('update:queue', response.data)
|
|
||||||
break;
|
|
||||||
case 'time':
|
|
||||||
$scope.$emit('update:time', response.data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
25
assets/js/services/server-events.service.js
Normal file
25
assets/js/services/server-events.service.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
mpdClient.factory('serverEvents', function () {
|
||||||
|
var events = new EventSource('/api/stream'),
|
||||||
|
serverEvents = {
|
||||||
|
onUpdateStatus: function (callback) {
|
||||||
|
this.onUpdateStatusCallback = callback
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
events.onmessage = function(e) {
|
||||||
|
response = JSON.parse(e.data);
|
||||||
|
switch (response.type) {
|
||||||
|
case 'status':
|
||||||
|
serverEvents.onUpdateStatusCallback(response.data)
|
||||||
|
break;
|
||||||
|
case 'queue':
|
||||||
|
$scope.$emit('update:queue', response.data)
|
||||||
|
break;
|
||||||
|
case 'time':
|
||||||
|
$scope.$emit('update:time', response.data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return serverEvents
|
||||||
|
})
|
||||||
Loading…
Reference in New Issue
Block a user