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' })
|
||||
|
||||
$rootScope.status = { time: [] }
|
||||
|
||||
serverEvents.onUpdateStatus($scope.updateStatus)
|
||||
|
||||
Status.success(function (data, status, headers, config) {
|
||||
$rootScope.status = data
|
||||
$scope.updateStatus(data)
|
||||
})
|
||||
|
||||
$scope.updateStatus = function(data) {
|
||||
$rootScope.status = data
|
||||
}
|
||||
|
||||
$scope.sendCommand = function (command) {
|
||||
$http({ method: 'PUT', url: '/api/control/' + command })
|
||||
}
|
||||
|
||||
@ -3,5 +3,6 @@
|
||||
//= require ./libs/angular-resource
|
||||
|
||||
//= require ./mpd-client.app
|
||||
//= require_tree ./services/
|
||||
//= require_tree ./filters/
|
||||
//= 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