diff --git a/web_advanced_search_x2x/static/src/css/web_advanced_search_x2x.css b/web_advanced_search_x2x/static/src/css/web_advanced_search_x2x.css
index a2585b83..67c3e194 100644
--- a/web_advanced_search_x2x/static/src/css/web_advanced_search_x2x.css
+++ b/web_advanced_search_x2x/static/src/css/web_advanced_search_x2x.css
@@ -2,27 +2,35 @@
{
position: relative;
}
+.openerp .oe_searchview_drawer .web_advanced_search_x2x_domain
+{
+ max-width: 20em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: inline-block;
+}
/* copy search view's button style */
.openerp .oe_searchview_drawer .web_advanced_search_x2x_search:before
{
font: 21px "mnmliconsRegular";
content: "r";
color: #a3a3a3;
+ margin-left: 5px;
}
.openerp .oe_searchview_drawer .web_advanced_search_x2x_search
{
- font-size: 1px;
- letter-spacing: -1px;
- color: transparent;
- text-shadow: none;
- font-weight: normal;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
- border-radius: 0;
- padding: 0;
- border: none;
- background: transparent;
+ font-size: 1px;
+ letter-spacing: -1px;
+ color: transparent;
+ text-shadow: none;
+ font-weight: normal;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+ border-radius: 0;
+ padding: 0;
+ border: none;
+ background: transparent;
}
diff --git a/web_advanced_search_x2x/static/src/js/web_advanced_search_x2x.js b/web_advanced_search_x2x/static/src/js/web_advanced_search_x2x.js
index 6265d5be..e34c2e1a 100644
--- a/web_advanced_search_x2x/static/src/js/web_advanced_search_x2x.js
+++ b/web_advanced_search_x2x/static/src/js/web_advanced_search_x2x.js
@@ -149,9 +149,15 @@ openerp.web_advanced_search_x2x = function(instance)
},
get_domain: function()
{
- if(this.show_domain_selection() && this.domain)
+ if(this.show_domain_selection())
{
var self = this;
+ if(!this.domain || this.domain.length == 0)
+ {
+ throw new instance.web.search.Invalid(
+ this.field.string, this.domain_representation,
+ instance.web._lt('invalid search domain'));
+ }
return _.extend(new instance.web.CompoundDomain(), {
__domains: [
_.map(this.domain, function(leaf)
@@ -209,12 +215,14 @@ openerp.web_advanced_search_x2x = function(instance)
{
self.$buttonpane.find(".oe_selectcreatepopup-search-create").remove();
self.$buttonpane.prepend(
- //TODO: take care that this is only clicked if we have a domain
- jQuery('')
+ jQuery('')
.addClass('oe_highlight')
+ .addClass('oe_selectcreatepopup-search-select-domain')
.text(instance.web._lt('Use criteria'))
.click(self.proxy(self.select_domain))
);
+ self.$buttonpane.find('.oe_selectcreatepopup-search-select-domain')
+ .prop('disabled', self.searchview.build_search_data().domains.length == 0);
self.$buttonpane.find(".oe_selectcreatepopup-search-select")
.unbind('click')
.click(function()
@@ -246,8 +254,17 @@ openerp.web_advanced_search_x2x = function(instance)
groupbys: search.groupbys || []
}).then(function(search)
{
- //TODO: get representation from search view
- self.trigger('domain_selected', search.domain, String(search.domain));
+ var representation = self.searchview.query.reduce(function(memo, term)
+ {
+ return _.str.sprintf(
+ '%s%s(%s: %s)', memo, (memo ? ' ' : ''),
+ term.attributes.category,
+ _.reduce(term.get('values'), function(memo, value)
+ {
+ return memo + (memo ? ', ' : '') + value.label;
+ }, ''));
+ }, '');
+ self.trigger('domain_selected', search.domain, representation);
self.destroy();
})
},