/**
* @ngdoc managers
* @name CamerasManager
* @module s4c.managers.CamerasManager
*
* @description
* `CamerasManager` Componente para comunicação entre uma página html qualquer e o controller da diretiva
*
*
*/
(function () {
'use strict';
function CamerasManager() {
var self = this;
return {
'cameras': [],
/**
* @method reagir
* @param {*} _cameras
*/
'reagir': _.debounce(function (_cameras) {
_cameras = _.sample(_cameras, self.cameras.length);
if (_cameras.length > 0) {
_.each(_cameras, function (c) {
var numero = c.numero;
var nome = c.nome;
if (_.findIndex(self.cameras, {
numero: numero
}) > -1) {
return;
}
var camera = _.find(self.cameras, function (camera) {
return !camera.status;
});
if (!camera) {
_.sample(self.cameras).abrirCamera(c.url);
} else {
camera.abrirCamera(c.url);
}
});
}
}, 800),
/**
* @method abrirRandom
* @param {*} numero
*/
'abrirRandom': function (numero) {
//be careful, here be dragons.
if (this.cameras.length > 0) {
// Camera já está no módulo:
if (_.findIndex(this.cameras, {
numero: numero
})) {
return;
}
var camera = _.find(this.cameras, function (camera) {
return !camera.status;
});
if (!camera) {
_.sample(this.cameras).abrirCamera(numero);
} else {
camera.abrirCamera(numero);
}
}
}
};
}
angular.module('s4c.managers')
.service('CamerasManager', CamerasManager);
})();