[IMP] use _.map to extract values from onchange parameter names, instead of doing it indirectly via _.each
bzr revid: xmo@openerp.com-20111121124532-ndo2me1ehos7mu0m
This commit is contained in:
parent
8f67c5c367
commit
b40b60e278
|
@ -250,9 +250,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var method = call[1], args = [], context_index = null;
|
var method = call[1];
|
||||||
if (!_.str.trim(call[2])) {
|
if (!_.str.trim(call[2])) {
|
||||||
return {method: method, args: args, context_index: context_index}
|
return {method: method, args: [], context_index: null}
|
||||||
}
|
}
|
||||||
|
|
||||||
var argument_replacement = {
|
var argument_replacement = {
|
||||||
|
@ -265,20 +265,18 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||||
return ctx;
|
return ctx;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var parent_fields = null;
|
var parent_fields = null, context_index = null;
|
||||||
_.each(call[2].split(','), function (a, i) {
|
var args = _.map(call[2].split(','), function (a, i) {
|
||||||
var field = _.str.trim(a);
|
var field = _.str.trim(a);
|
||||||
|
|
||||||
// literal constant or context
|
// literal constant or context
|
||||||
if (field in argument_replacement) {
|
if (field in argument_replacement) {
|
||||||
args.push(argument_replacement[field](i));
|
return argument_replacement[field](i);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
// form field
|
// form field
|
||||||
if (self.fields[field]) {
|
if (self.fields[field]) {
|
||||||
var value = self.fields[field].get_on_change_value();
|
var value = self.fields[field].get_on_change_value();
|
||||||
args.push(value == null ? false : value);
|
return value == null ? false : value;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
// parent field
|
// parent field
|
||||||
var splitted = field.split('.');
|
var splitted = field.split('.');
|
||||||
|
@ -288,16 +286,14 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||||
}
|
}
|
||||||
var p_val = parent_fields[_.str.trim(splitted[1])];
|
var p_val = parent_fields[_.str.trim(splitted[1])];
|
||||||
if (p_val !== undefined) {
|
if (p_val !== undefined) {
|
||||||
args.push(p_val == null ? false : p_val);
|
return p_val == null ? false : p_val;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// string literal
|
// string literal
|
||||||
var first_char = field[0], last_char = field[field.length-1];
|
var first_char = field[0], last_char = field[field.length-1];
|
||||||
if ((first_char === '"' && last_char === '"')
|
if ((first_char === '"' && last_char === '"')
|
||||||
|| (first_char === "'" && last_char === "'")) {
|
|| (first_char === "'" && last_char === "'")) {
|
||||||
args.push(field.slice(1, -1));
|
return field.slice(1, -1);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error("Could not get field with name '" + field +
|
throw new Error("Could not get field with name '" + field +
|
||||||
|
|
Loading…
Reference in New Issue