summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/view_form.js
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2012-01-12 16:15:27 +0100
committerFabien Meghazi <fme@openerp.com>2012-01-12 16:15:27 +0100
commit2ea7dae91f3ce915fabd1cbd420ceb78685d242b (patch)
treeb4e9622dba0ca46ff3d591c901e39162933e5306 /addons/web/static/src/js/view_form.js
parent9b827b47c26fc80c4253969bb3ca0c9142cc594e (diff)
[FIX] Fix default field focus that was broken
bzr revid: fme@openerp.com-20120112151527-peee706mfv7nciye
Diffstat (limited to 'addons/web/static/src/js/view_form.js')
-rw-r--r--addons/web/static/src/js/view_form.js35
1 files changed, 20 insertions, 15 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 43f59233e48..5f2f587d669 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1262,7 +1262,12 @@ openerp.web.form.Field = openerp.web.form.Widget.extend(/** @lends openerp.web.f
validate: function() {
this.invalid = false;
},
- focus: function() {
+ focus: function($element) {
+ if ($element) {
+ setTimeout(function() {
+ $element.focus();
+ }, 50);
+ }
},
reset: function() {
this.dirty = false;
@@ -1309,8 +1314,8 @@ openerp.web.form.FieldChar = openerp.web.form.Field.extend({
this.invalid = true;
}
},
- focus: function() {
- this.$element.find('input').focus();
+ focus: function($element) {
+ this._super($element || this.$element.find('input:first'));
}
});
@@ -1434,8 +1439,8 @@ openerp.web.DateTimeWidget = openerp.web.Widget.extend({
}
}
},
- focus: function() {
- this.$input.focus();
+ focus: function($element) {
+ this._super($element || this.$input);
},
parse_client: function(v) {
return openerp.web.parse_value(v, {"widget": this.type_of_date});
@@ -1481,8 +1486,8 @@ openerp.web.form.FieldDatetime = openerp.web.form.Field.extend({
validate: function() {
this.invalid = !this.datewidget.is_valid(this.required);
},
- focus: function() {
- this.datewidget.focus();
+ focus: function($element) {
+ this._super($element || this.datewidget);
}
});
@@ -1525,8 +1530,8 @@ openerp.web.form.FieldText = openerp.web.form.Field.extend({
this.invalid = true;
}
},
- focus: function() {
- this.$element.find('textarea').focus();
+ focus: function($element) {
+ this._super($element || this.$element.find('textarea:first'));
},
do_resize: function(max_height) {
max_height = parseInt(max_height, 10);
@@ -1572,8 +1577,8 @@ openerp.web.form.FieldBoolean = openerp.web.form.Field.extend({
this._super.apply(this, arguments);
this.$element.find('input').prop('disabled', this.readonly);
},
- focus: function() {
- this.$element.find('input').focus();
+ focus: function($element) {
+ this._super($element || this.$element.find('input:first'));
}
});
@@ -1659,8 +1664,8 @@ openerp.web.form.FieldSelection = openerp.web.form.Field.extend({
var value = this.values[this.$element.find('select')[0].selectedIndex];
this.invalid = !(value && !(this.required && value[0] === false));
},
- focus: function() {
- this.$element.find('select').focus();
+ focus: function($element) {
+ this._super($element || this.$element.find('select:first'));
}
});
@@ -2011,8 +2016,8 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
self.do_action(result.result);
});
},
- focus: function () {
- this.$input.focus();
+ focus: function ($element) {
+ this._super($element || this.$input);
},
update_dom: function() {
this._super.apply(this, arguments);