# HG changeset patch
# Parent 05797cc75b49634e640f44b24347f2905b464022
diff --git a/static/src/js/first_module.js b/static/src/js/first_module.js
--- a/static/src/js/first_module.js
+++ b/static/src/js/first_module.js
@@ -12,11 +12,13 @@ openerp.web_example = function (instance
             this._start = null;
             this._watch = null;
         },
-        update_counter: function () {
+        current: function () {
+            // Subtracting javascript dates returns the difference in milliseconds
+            return new Date() - this._start;
+        },
+        update_counter: function (time) {
             var h, m, s;
-            // Subtracting javascript dates returns the difference in milliseconds
-            var diff = new Date() - this._start;
-            s = diff / 1000;
+            s = time / 1000;
             m = Math.floor(s / 60);
             s -= 60*m;
             h = Math.floor(m / 60);
@@ -29,18 +31,24 @@ openerp.web_example = function (instance
                     .removeClass('oe_web_example_stopped');
             this._start = new Date();
             // Update the UI to the current time
-            this.update_counter();
+            this.update_counter(this.current());
             // Update the counter at 30 FPS (33ms/frame)
-            this._watch = setInterval(
-                this.proxy('update_counter'),
+            this._watch = setInterval(function () {
+                    this.update_counter(this.current());
+                }.bind(this),
                 33);
         },
         watch_stop: function () {
             clearInterval(this._watch);
-            this.update_counter();
+            var time = this.current();
+            this.update_counter(time);
             this._start = this._watch = null;
             this.$el.removeClass('oe_web_example_started')
                     .addClass('oe_web_example_stopped');
+            new instance.web.Model('web_example.stopwatch').call('create', [{
+                user_id: instance.session.uid,
+                time: time,
+            }]);
         },
         destroy: function () {
             if (this._watch) {
