[imp] improved label handling in groups
bzr revid: nicolas.vanhoren@openerp.com-20120320150457-huavj8wjisf6y7it
This commit is contained in:
parent
985d448f7c
commit
f07f75e2c7
|
@ -780,15 +780,16 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({
|
||||||
if (fn) {
|
if (fn) {
|
||||||
var args = [].slice.call(arguments);
|
var args = [].slice.call(arguments);
|
||||||
args[0] = $tag;
|
args[0] = $tag;
|
||||||
fn.apply(self, args);
|
return fn.apply(self, args);
|
||||||
} else {
|
} else {
|
||||||
// generic tag handling, just process children
|
// generic tag handling, just process children
|
||||||
$tag.children().each(function() {
|
$tag.children().each(function() {
|
||||||
self.process($(this));
|
self.process($(this));
|
||||||
});
|
});
|
||||||
|
return $tag;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
process_field: function($field, no_process_label) {
|
process_field: function($field) {
|
||||||
var name = $field.attr('name'),
|
var name = $field.attr('name'),
|
||||||
field_orm = this.fvg.fields[name],
|
field_orm = this.fvg.fields[name],
|
||||||
field_string = $field.attr('string') || field_orm.string || '',
|
field_string = $field.attr('string') || field_orm.string || '',
|
||||||
|
@ -799,20 +800,19 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({
|
||||||
throw new Error("Field '" + name + "' specified in view could not be found.");
|
throw new Error("Field '" + name + "' specified in view could not be found.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var $label;
|
||||||
if ($field.attr('nolabel') !== '1') {
|
if ($field.attr('nolabel') !== '1') {
|
||||||
var $label = this.$form.find('label[for="' + name + '"]');
|
var $label = this.$form.find('label[for="' + name + '"]');
|
||||||
if (!$label.length) {
|
if (!$label.length) {
|
||||||
field_string = $label.attr('string') || $label.text() || field_string;
|
field_string = $label.attr('string') || $label.text() || field_string;
|
||||||
field_help = $label.attr('help') || field_help;
|
field_help = $label.attr('help') || field_help;
|
||||||
var $label = $('<label/>').attr({
|
$label = $('<label/>').attr({
|
||||||
'for' : name,
|
'for' : name,
|
||||||
'string' : field_string,
|
'string' : field_string,
|
||||||
'help' : field_help
|
'help' : field_help
|
||||||
});
|
});
|
||||||
$label.insertBefore($field);
|
$label.insertBefore($field);
|
||||||
if (!no_process_label) {
|
$label = this.process($label);
|
||||||
this.process($label);
|
|
||||||
}
|
|
||||||
if (field_colspan > 1) {
|
if (field_colspan > 1) {
|
||||||
$field.attr('colspan', field_colspan - 1);
|
$field.attr('colspan', field_colspan - 1);
|
||||||
}
|
}
|
||||||
|
@ -823,12 +823,20 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({
|
||||||
'string' : field_string,
|
'string' : field_string,
|
||||||
'help' : field_help
|
'help' : field_help
|
||||||
});
|
});
|
||||||
|
to_return = $();
|
||||||
|
if ($label)
|
||||||
|
to_return.push($label[0]);
|
||||||
|
to_return.push($field[0]);
|
||||||
|
return to_return;
|
||||||
},
|
},
|
||||||
process_group: function($group) {
|
process_group: function($group) {
|
||||||
var self = this;
|
var self = this;
|
||||||
var fields = [];
|
var no_reprocess = [];
|
||||||
$group.children('field').each(function() {
|
$group.children('field,label').each(function() {
|
||||||
self.process($(this), true);
|
var processed = self.process($(this));
|
||||||
|
processed.each(function(i) {
|
||||||
|
no_reprocess.push(processed[i]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
var $new_group = $(QWeb.render('FormRenderingGroup', $group.getAttributes())),
|
var $new_group = $(QWeb.render('FormRenderingGroup', $group.getAttributes())),
|
||||||
$table;
|
$table;
|
||||||
|
@ -897,10 +905,11 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
_.each(children, function(el) {
|
_.each(children, function(el) {
|
||||||
if (!_.include(fields, el)) {
|
if (!_.include(no_reprocess, el)) {
|
||||||
self.process($(el));
|
self.process($(el));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
return $new_group;
|
||||||
},
|
},
|
||||||
process_notebook: function($notebook) {
|
process_notebook: function($notebook) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -921,10 +930,12 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({
|
||||||
$notebook.children().appendTo($new_notebook);
|
$notebook.children().appendTo($new_notebook);
|
||||||
$notebook.before($new_notebook).remove();
|
$notebook.before($new_notebook).remove();
|
||||||
$new_notebook.tabs();
|
$new_notebook.tabs();
|
||||||
|
return $new_notebook;
|
||||||
},
|
},
|
||||||
process_separator: function($separator) {
|
process_separator: function($separator) {
|
||||||
var $new_separator = $(QWeb.render('FormRenderingSeparator', $separator.getAttributes()));
|
var $new_separator = $(QWeb.render('FormRenderingSeparator', $separator.getAttributes()));
|
||||||
$separator.before($new_separator).remove();
|
$separator.before($new_separator).remove();
|
||||||
|
return $new_separator;
|
||||||
},
|
},
|
||||||
process_label: function($label) {
|
process_label: function($label) {
|
||||||
var dict = $label.getAttributes();
|
var dict = $label.getAttributes();
|
||||||
|
@ -939,6 +950,7 @@ openerp.web.FormRenderingEngine = openerp.web.Widget.extend({
|
||||||
dict.align = align;
|
dict.align = align;
|
||||||
var $new_label = $(QWeb.render('FormRenderingLabel', dict));
|
var $new_label = $(QWeb.render('FormRenderingLabel', dict));
|
||||||
$label.before($new_label).remove();
|
$label.before($new_label).remove();
|
||||||
|
return $new_label;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue