70 lines
1.7 KiB
JavaScript
70 lines
1.7 KiB
JavaScript
(function (angular) {
|
|
|
|
const SECTION_NAME = "connections";
|
|
|
|
angular
|
|
.module("BrowserSync")
|
|
.controller("ConnectionsController", [
|
|
"pagesConfig",
|
|
ConnectionsControllers
|
|
]);
|
|
|
|
/**
|
|
* @param pagesConfig
|
|
* @constructor
|
|
*/
|
|
function ConnectionsControllers(pagesConfig) {
|
|
var ctrl = this;
|
|
ctrl.section = pagesConfig[SECTION_NAME];
|
|
}
|
|
|
|
angular
|
|
.module("BrowserSync")
|
|
.directive("connectionList", function () {
|
|
return {
|
|
restrict: "E",
|
|
scope: {
|
|
options: "="
|
|
},
|
|
templateUrl: "connections.directive.html",
|
|
controller: ["$scope", "Clients", "Socket", connectionListDirective],
|
|
controllerAs: "ctrl"
|
|
};
|
|
});
|
|
|
|
/**
|
|
* Controller for the URL sync
|
|
* @param $scope - directive scope
|
|
* @param Clients
|
|
* @param Socket
|
|
*/
|
|
function connectionListDirective($scope, Clients, Socket) {
|
|
|
|
var ctrl = this;
|
|
ctrl.connections = [];
|
|
|
|
ctrl.update = function (data) {
|
|
ctrl.connections = data;
|
|
$scope.$digest();
|
|
};
|
|
|
|
// Always try to retreive the sockets first time.
|
|
Socket.getData("clients").then(function (data) {
|
|
ctrl.connections = data;
|
|
});
|
|
|
|
// Listen to events to update the list on the fly
|
|
Socket.on("ui:connections:update", ctrl.update);
|
|
|
|
$scope.$on("$destroy", function () {
|
|
Socket.off("ui:connections:update", ctrl.update);
|
|
});
|
|
|
|
ctrl.highlight = function (connection) {
|
|
Clients.highlight(connection);
|
|
};
|
|
}
|
|
|
|
})(angular);
|
|
|