summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2011-11-21 17:34:12 +0100
committerXavier Morel <xmo@openerp.com>2011-11-21 17:34:12 +0100
commit89e5c72b6ea9e29b7f8a2e73b97e4cfa51e165f2 (patch)
treedd5175a414ea5e4e7594e066631cf3e92d90c308 /addons/web/static/src
parent64ce2476c14244aa9218df12f39590b0ef217fe4 (diff)
[ADD] cache eviction for buffereddataset on records on which call_button has been invoked
lp bug: https://launchpad.net/bugs/885679 fixed bzr revid: xmo@openerp.com-20111121163412-jyvpoa9smrk4qy2g
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/data.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js
index 69d8fd9ddfd..0d3833ee835 100644
--- a/addons/web/static/src/js/data.js
+++ b/addons/web/static/src/js/data.js
@@ -730,6 +730,19 @@ openerp.web.BufferedDataSet = openerp.web.DataSetStatic.extend({
return_records();
}
return completion.promise();
+ },
+ call_button: function (method, args, callback, error_callback) {
+ var id = args[0][0], index;
+ for(var i=0, len=this.cache.length; i<len; ++i) {
+ var record = this.cache[i];
+ // if record we call the button upon is in the cache
+ if (record.id === id) {
+ // evict it so it gets reloaded from server
+ this.cache.splice(i, 1);
+ break;
+ }
+ }
+ return this._super(method, args, callback, error_callback);
}
});
openerp.web.BufferedDataSet.virtual_id_regex = /^one2many_v_id_.*$/;