[13.0][IMP] web_m2x_options

This is a forward port of

* https://github.com/OCA/web/pull/651
pull/1761/head
Thierry Ducrest 2020-12-14 08:58:45 +01:00
parent 21eee65a4e
commit ee1e795a00
1 changed files with 51 additions and 49 deletions

View File

@ -235,57 +235,59 @@ odoo.define("web_m2x_options.web_m2x_options", function(require) {
self.ir_options["web_m2x_options.search_more"]
);
if (values.length > self.limit) {
if (
(values.length > self.limit &&
(can_search_more || search_more_undef)) ||
search_more
) {
values = values.slice(0, self.limit);
if (can_search_more || search_more_undef || search_more) {
values.push({
label: _t("Search More..."),
action: function() {
var prom = [];
if (search_val !== "") {
prom = self._rpc({
model: self.field.relation,
method: "name_search",
kwargs: {
name: search_val,
args: domain,
operator: "ilike",
limit: self.SEARCH_MORE_LIMIT,
context: context,
},
});
}
Promise.resolve(prom).then(function(results) {
var dynamicFilters = [];
if (results) {
var ids = _.map(results, function(x) {
return x[0];
});
if (search_val) {
dynamicFilters = [
{
description: _.str.sprintf(
_t("Quick search: %s"),
search_val
),
domain: [["id", "in", ids]],
},
];
} else {
dynamicFilters = [];
}
}
self._searchCreatePopup(
"search",
false,
{},
dynamicFilters
);
values.push({
label: _t("Search More..."),
action: function() {
var prom = [];
if (search_val !== "") {
prom = self._rpc({
model: self.field.relation,
method: "name_search",
kwargs: {
name: search_val,
args: domain,
operator: "ilike",
limit: self.SEARCH_MORE_LIMIT,
context: context,
},
});
},
classname: "o_m2o_dropdown_option",
});
}
}
Promise.resolve(prom).then(function(results) {
var dynamicFilters = [];
if (results) {
var ids = _.map(results, function(x) {
return x[0];
});
if (search_val) {
dynamicFilters = [
{
description: _.str.sprintf(
_t("Quick search: %s"),
search_val
),
domain: [["id", "in", ids]],
},
];
} else {
dynamicFilters = [];
}
}
self._searchCreatePopup(
"search",
false,
{},
dynamicFilters
);
});
},
classname: "o_m2o_dropdown_option",
});
}
var create_enabled = self.can_create && !self.nodeOptions.no_create;