summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2011-12-21 16:08:31 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2011-12-21 16:08:31 +0100
commit4a8efef6a41e37d2113e4a7e9bfdd61f9fec6346 (patch)
tree2abcbd49071dfc06adf381fdc6ef364f5479327c /addons/web/static/src
parent5ff9312b0d9cbc66c63e31b125909e79e94c9504 (diff)
[imp] added possibility to disable quick create
bzr revid: nicolas.vanhoren@openerp.com-20111221150831-739fj3srfb8gjpar
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_form.js27
1 files changed, 20 insertions, 7 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 65e675675e7..bbcb47552d8 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1270,7 +1270,14 @@ openerp.web.form.Field = openerp.web.form.Widget.extend(/** @lends openerp.web.f
},
reset: function() {
this.dirty = false;
- }
+ },
+ get_options: function() {
+ if (!this.options) {
+ var str = this.node.attrs.options || '{}';
+ this.options = JSON.parse(str);
+ }
+ return this.options;
+ },
});
openerp.web.form.FieldChar = openerp.web.form.Field.extend({
@@ -1865,14 +1872,20 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
},
_quick_create: function(name) {
var self = this;
- var dataset = new openerp.web.DataSetStatic(this, this.field.relation, self.build_context());
- dataset.name_create(name, function(data) {
- self._change_int_ext_value(data);
- }).fail(function(error, event) {
- event.preventDefault();
+ var slow_create = function() {
self._change_int_value(null);
self._search_create_popup("form", undefined, {"default_name": name});
- });
+ }
+ if (self.get_options().quick_create === undefined || self.get_options().quick_create) {
+ var dataset = new openerp.web.DataSetStatic(this, this.field.relation, self.build_context());
+ dataset.name_create(name, function(data) {
+ self._change_int_ext_value(data);
+ }).fail(function(error, event) {
+ event.preventDefault();
+ slow_create();
+ });
+ } else
+ slow_create();
},
// all search/create popup handling
_search_create_popup: function(view, ids, context) {