diff options
| author | Xavier Morel <xmo@openerp.com> | 2013-01-31 16:31:00 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2013-01-31 16:31:00 +0100 |
| commit | eff170870451284a7317a9a0554e6e2060c9071d (patch) | |
| tree | ed67af38f6ecd43f9d7fec8588ac980bb332ef61 /addons/web/doc/module/static/src/js/first_module.js.7.diff | |
| parent | 0ad34228e20934c2784bd11f6dec06cfcd8094c4 (diff) | |
[IMP] web module tutorial: start adding RPC stuff
bzr revid: xmo@openerp.com-20130131153100-gze86fbchz4tnrg3
Diffstat (limited to 'addons/web/doc/module/static/src/js/first_module.js.7.diff')
| -rw-r--r-- | addons/web/doc/module/static/src/js/first_module.js.7.diff | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/addons/web/doc/module/static/src/js/first_module.js.7.diff b/addons/web/doc/module/static/src/js/first_module.js.7.diff new file mode 100644 index 00000000000..1d3430656fc --- /dev/null +++ b/addons/web/doc/module/static/src/js/first_module.js.7.diff @@ -0,0 +1,71 @@ +--- web_example/static/src/js/first_module.js ++++ web_example/static/src/js/first_module.js +@@ -1,52 +1,60 @@ + // 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; + }, ++ current: function () { ++ // Subtracting javascript dates returns the difference in milliseconds ++ return new Date() - this._start; ++ }, +- update_counter: function () { ++ 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); + 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(); ++ 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); ++ var time = this.current(); +- this.update_counter(); ++ 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) { + clearInterval(this._watch); + } + this._super(); + } + }); + }; |
