summaryrefslogtreecommitdiff
path: root/addons/web/doc/module/static/src/js/first_module.js.6.diff
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2012-12-19 16:00:25 +0100
committerFabien Meghazi <fme@openerp.com>2012-12-19 16:00:25 +0100
commitd234a24de0179c438a65b8d1d102a23e8a5e5c51 (patch)
treecf6a95d4db4687a3b5b0dd680021457e77fbf66c /addons/web/doc/module/static/src/js/first_module.js.6.diff
parent15e8533aa42cc11967d6e537c1a6f9a484e7a7d8 (diff)
parentac0045d3c36cc91306ff85e500e3abc61a9cf14e (diff)
[MERGE] trunk
bzr revid: fme@openerp.com-20121219150025-h9h1956xey3tok57
Diffstat (limited to 'addons/web/doc/module/static/src/js/first_module.js.6.diff')
-rw-r--r--addons/web/doc/module/static/src/js/first_module.js.6.diff55
1 files changed, 55 insertions, 0 deletions
diff --git a/addons/web/doc/module/static/src/js/first_module.js.6.diff b/addons/web/doc/module/static/src/js/first_module.js.6.diff
new file mode 100644
index 00000000000..7dd17af0e18
--- /dev/null
+++ b/addons/web/doc/module/static/src/js/first_module.js.6.diff
@@ -0,0 +1,55 @@
+--- web_example/static/src/js/first_module.js
++++ web_example/static/src/js/first_module.js
+@@ -1,19 +1,52 @@
+ // static/src/js/first_module.js
+ openerp.web_example = function (instance) {
+ instance.web.client_actions.add('example.action', 'instance.web_example.Action');
+ instance.web_example.Action = instance.web.Widget.extend({
+ template: 'web_example.action',
+ events: {
+ 'click .oe_web_example_start button': 'watch_start',
+ 'click .oe_web_example_stop button': 'watch_stop'
+ },
++ init: function () {
++ this._super.apply(this, arguments);
++ this._start = null;
++ this._watch = null;
++ },
++ update_counter: function () {
++ var h, m, s;
++ // Subtracting javascript dates returns the difference in milliseconds
++ var diff = new Date() - this._start;
++ s = diff / 1000;
++ m = Math.floor(s / 60);
++ s -= 60*m;
++ h = Math.floor(m / 60);
++ m -= 60*h;
++ this.$('.oe_web_example_timer').text(
++ _.str.sprintf("%02d:%02d:%02d", h, m, s));
++ },
+ watch_start: function () {
+ this.$el.addClass('oe_web_example_started')
+ .removeClass('oe_web_example_stopped');
++ this._start = new Date();
++ // Update the UI to the current time
++ this.update_counter();
++ // Update the counter at 30 FPS (33ms/frame)
++ this._watch = setInterval(
++ this.proxy('update_counter'),
++ 33);
+ },
+ watch_stop: function () {
++ clearInterval(this._watch);
++ this.update_counter();
++ this._start = this._watch = null;
+ this.$el.removeClass('oe_web_example_started')
+ .addClass('oe_web_example_stopped');
+ },
++ destroy: function () {
++ if (this._watch) {
++ clearInterval(this._watch);
++ }
++ this._super();
++ }
+ });
+ };