Author: jruchaud Date: 2015-05-01 13:34:37 +0000 (Fri, 01 May 2015) New Revision: 1317 Url: http://forge.nuiton.org/projects/sandbox/repository/revisions/1317 Log: Fix diff when you reassign time Modified: wit/js/services/TimerService.js Modified: wit/js/services/TimerService.js =================================================================== --- wit/js/services/TimerService.js 2015-05-01 09:43:29 UTC (rev 1316) +++ wit/js/services/TimerService.js 2015-05-01 13:34:37 UTC (rev 1317) @@ -52,7 +52,15 @@ }; exports.start = function() { - time = time || new Date(); + + // Come from to keep idle + if (time) { + var diff = moment(idleTime).diff(moment(time)); + time = moment().subtract(diff, "ms").toDate(); + } else { + time = new Date(); + } + idleTime = null; historyIndex = -1; @@ -143,14 +151,15 @@ time = null; idleTime = null; - clearTimeout(timeChangeTimer); - eventEmitter.emit('onTimeChanged'); + timeChange(); + + exports.start(); }; exports.editTime = function(value) { if (time) { var d = moment.duration(value); - idleTime = moment(time).add(d.asMilliseconds(), "ms").toDate(); + idleTime = moment().subtract(d.asMilliseconds(), "ms").toDate(); this.reassignIdle(); } }; @@ -162,6 +171,7 @@ exports.reassignTimeFrom = function (newStartTime) { insertLog(tags, time, newStartTime); time = newStartTime; + idleTime = new Date(); clearTimeout(timeChangeTimer); eventEmitter.emit('onTimeChanged');