summaryrefslogtreecommitdiff
path: root/addons/web/doc/module/static/src/js/first_module.js.6.diff
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-12-05 14:28:54 +0100
committerXavier Morel <xmo@openerp.com>2012-12-05 14:28:54 +0100
commit5122dab978f99566e54b080554d340ed7f8559c0 (patch)
treeeb13727cff9a33d76e7048c9007d6777e38fa109 /addons/web/doc/module/static/src/js/first_module.js.6.diff
parent538834d9c34e3bd54e984e8bf03953260399a22e (diff)
[ADD] bit o' tutorial for web modules
bzr revid: xmo@openerp.com-20121205132854-j0r8qgh5u2qwlqj1
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();
++ }
+ });
+ };