Name | Power | Events | Alerts | Last Motion | Watch | Edit | Delete |
---|---|---|---|---|---|---|---|
Camera 1 | On | 25 | 4 | 3 min ago | [Play] | [Edit] | [Delete] |
Camera 2 | On | 13 | 6 | 1 min ago | [Play] | [Edit] | [Delete] |
| Name | Power | Activity | Last Motion | Actions |
I hereby claim:
To claim this, I am signing this object:
'use strict'; | |
// TODO: Upgraded to neutrino@beta (v5). Make sure to upgrade to final release version | |
// which should be available mid March. Here are some links on what has changed and | |
// how to update old config to new: | |
// https://github.com/mozilla-neutrino/neutrino-dev/blob/v5.0.0-beta/docs/upgrading-neutrino.md | |
// https://github.com/mozilla-neutrino/neutrino-dev/pull/86#issue-211140309 | |
const merge = require('deepmerge'); | |
const webpack = require('webpack') |
// Create WebRTC peer and setup event handlers | |
let peer = new RTCPeerConnection(iceConfig) | |
// Subject for the websocket signalling server | |
let socketSubject = Observable.webSocket({ | |
// deserialize each binary message received | |
resultSelector: e => deserialize(e.data) | |
}) | |
// Filter for only icecandidate messages | |
.filter(msg => msg && msg.header && msg.header.event === 'icecandidate' && msg.body && msg.body.candidate) |
let candidatesToSend = [] | |
let candidatesReceived = [] | |
let socketSubject = Observable.webSocket({ | |
url: 'wss://...', | |
openObserver: { | |
next: e => { | |
e.currentTarget.binaryType = 'arraybuffer' | |
candidatesToSend.forEach(candidate => { | |
console.log('sending candidate', candidate) |
module.exports = { | |
attributes: { | |
// The participation that submitted this entry | |
participation: { | |
model: 'participation', | |
required: true | |
}, |
STEP 1 | |
npm install sails@beta -g | |
git clone [email protected]:coinprofit/sails-model-question.git | |
cd sails-model-question | |
npm init | |
sails lift | |
STEP 2 |
module.exports = function(req, res, next) { | |
// Make sure request is for a single entity, not for a collection of entities | |
if (!req.params.id) { | |
return res.forbidden('error.noPermission'); | |
} | |
return next(); | |
}; |
var _ = require('lodash'); | |
/** | |
* Make sure to always return an array. If an array is passed, then | |
* return the array. If passed a string, return an array containing | |
* that string. If passed undefined or null, return an empty array. | |
* | |
* @param [String|Array] values A string or an array | |
* @return [Array] | |
*/ |
// Sipmle AOP after function | |
var after = function(base, after) { | |
if (!base) { | |
return after; | |
} | |
return function composedAfter() { | |
var res = base.apply(this, arguments); | |
after.apply(this, arguments); | |
return res; |