Index: web_example/static/src/js/first_module.js
===================================================================
--- web_example.orig/static/src/js/first_module.js
+++ web_example/static/src/js/first_module.js
@@ -11,20 +11,36 @@ openerp.web_example = function (instance
this._super.apply(this, arguments);
this._start = null;
this._watch = null;
+ this.model = new instance.web.Model('web_example.stopwatch');
+ },
+ start: function () {
+ var display = this.display_record.bind(this);
+ return this.model.query()
+ .filter([['user_id', '=', instance.session.uid]])
+ .all().done(function (records) {
+ _(records).each(display);
+ });
},
current: function () {
// Subtracting javascript dates returns the difference in milliseconds
return new Date() - this._start;
},
- update_counter: function (time) {
+ display_record: function (record) {
+ $('
')
+ .text(this.format_time(record.time))
+ .appendTo(this.$('.oe_web_example_saved'));
+ },
+ format_time: function (time) {
var h, m, s;
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));
+ return _.str.sprintf("%02d:%02d:%02d", h, m, s);
+ },
+ update_counter: function (time) {
+ this.$('.oe_web_example_timer').text(this.format_time(time));
},
watch_start: function () {
this.$el.addClass('oe_web_example_started')
@@ -45,7 +61,7 @@ openerp.web_example = function (instance
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', [{
+ this.model.call('create', [{
user_id: instance.session.uid,
time: time,
}]);
Index: web_example/static/src/xml/web_example.xml
===================================================================
--- web_example.orig/static/src/xml/web_example.xml
+++ web_example/static/src/xml/web_example.xml
@@ -7,5 +7,6 @@
+