53 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# 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) {
 |