UNPKG

timers3000

Version:

Provides a graphical interface in your browser to create and manage incremental timers for your daily tasks.

96 lines (77 loc) 3.32 kB
var timerscontroller = require('../app/controller/timerscontroller.js') , groupscontroller = require('../app/controller/groupscontroller.js') , appcontroller = require('../app/controller/appcontroller.js') , sessionscontroller = require('../app/controller/sessionscontroller.js') , rancol = require('rancol') , SleepTime = require('../lib/sleeptime.js'); /** * Setup asynchronous events to listen on with socket.io * Events should be self-explanatory * @param {Object} server The apps HTTP-Server */ module.exports = function(server){ var io = require('socket.io').listen(server); io.sockets.on('connection', function (socket) { socket.on('startTimer', function(id,callback){ timerscontroller.startTimer(id,callback); }); socket.on('stopTimer', function(id,callback){ timerscontroller.stopTimer(id,callback); }); socket.on('newTimer', function(data,callback){ timerscontroller.create(data,callback); }); socket.on("deleteTimer", function(id,callback){ timerscontroller.delete(id,callback); }); socket.on("renameTimer",function(id,newName,callback){ timerscontroller.renameTimer(id,newName,callback); }); socket.on("changeGroup",function(timer,new_group,callback){ timerscontroller.changeGroup(timer,new_group,callback); }); socket.on('newGroup', function(name,callback){ groupscontroller.create(name,callback); }); socket.on("deleteGroup",function(id,callback){ //Delete group and all timers in it groupscontroller.delete(id,function(){ timerscontroller.deleteByGroup(id,callback); }); }); socket.on("changeGroupColor",function(id,callback){ color = rancol.hex(); groupscontroller.changeColor(id,color,callback); }); socket.on("renameGroup",function(id,new_name,callback){ groupscontroller.renameGroup(id,new_name,callback); }); socket.on("deleteSession", function(id, callback){ sessionscontroller.delete(id, function(session){ timerscontroller.addTime(session.timer, -session.time, callback); }); }); socket.on("updateSessionTime", function(id, time, callback){ sessionscontroller.updateTime(id, time, function(session, difference){ timerscontroller.addTime(session.timer, -difference, callback); }); }); socket.on("updateNeeded", function(callback){ appcontroller.updateNeeded(callback); }); socket.on("changePreference", function(key, value, callback){ appcontroller.changePreference(key, value, callback); }); }); //Set handler for system wake up: Send notification to client if there is //an active timer in the database var sleepTime = new SleepTime(10000,function(diff){ timerscontroller.getTimers(function(timers){ for (var i = timers.length - 1; i >= 0; i--) { if(timers[i].active){ io.sockets.emit("sleepTime",diff); } }; }); }); }