summaryrefslogtreecommitdiff
path: root/addons/web/doc/module/static/src/js/first_module.js.7.diff
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2013-01-31 16:31:00 +0100
committerXavier Morel <xmo@openerp.com>2013-01-31 16:31:00 +0100
commiteff170870451284a7317a9a0554e6e2060c9071d (patch)
treeed67af38f6ecd43f9d7fec8588ac980bb332ef61 /addons/web/doc/module/static/src/js/first_module.js.7.diff
parent0ad34228e20934c2784bd11f6dec06cfcd8094c4 (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.diff71
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();
+ }
+ });
+ };