1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 10:19:30 +02:00

Show socket status in the UI. Absolutely no styling yet.

This commit is contained in:
Simo Kinnunen 2014-03-20 15:30:49 +09:00
parent 47ecd9d37e
commit 5771507fc9
5 changed files with 72 additions and 3 deletions

View file

@ -1,2 +1,3 @@
module.exports = angular.module('stf/socket', [])
.factory('socket', require('./socket-service'));
.factory('socket', require('./socket-service'))
.directive('socketState', require('./socket-state-directive'))

View file

@ -1,6 +1,6 @@
var io = require('socket.io')
module.exports = function SocketFactory() {
module.exports = function SocketFactory($rootScope) {
var socket = io.connect()
socket.scoped = function($scope) {
@ -24,5 +24,53 @@ module.exports = function SocketFactory() {
}
}
socket.on('connect', function() {
$rootScope.$apply(function() {
socket.state = 'connect'
})
})
socket.on('connecting', function() {
$rootScope.$apply(function() {
socket.state = 'connecting'
})
})
socket.on('disconnect', function() {
$rootScope.$apply(function() {
socket.state = 'disconnect'
})
})
socket.on('connect_failed', function() {
$rootScope.$apply(function() {
socket.state = 'connect_failed'
})
})
socket.on('error', function() {
$rootScope.$apply(function() {
socket.state = 'error'
})
})
socket.on('reconnect_failed', function() {
$rootScope.$apply(function() {
socket.state = 'reconnect_failed'
})
})
socket.on('reconnect', function() {
$rootScope.$apply(function() {
socket.state = 'reconnect'
})
})
socket.on('reconnecting', function() {
$rootScope.$apply(function() {
socket.state = 'reconnecting'
})
})
return socket
}

View file

@ -0,0 +1,18 @@
module.exports = function SocketStateDirectiveFactory(socket) {
return {
restrict: 'E'
, template: require('./socket-state.jade')
, scope: {
}
, link: function (scope) {
scope.$watch(
function() {
return socket.state
}
, function(state) {
scope.state = state
}
)
}
}
}

View file

@ -0,0 +1 @@
div {{ state }}

View file

@ -9,6 +9,7 @@ html
.pane-top-bar(pane, pane-anchor='north', pane-size='46px', pane-min='46px', pane-max='46px', pane-handle='')
div(ng-include='"menu.jade"')
div(pane, pane-anchor='center').fill-height
socket-state
div(ng-view).fill-height
script(src='/static/build/bundle.js')