[imp] refactored search.js

bzr revid: nicolas.vanhoren@openerp.com-20120417120210-kejvstgamtpufbeq
This commit is contained in:
niv-openerp 2012-04-17 14:02:10 +02:00
parent 753fac33ce
commit 827964936f
1 changed files with 131 additions and 131 deletions

View File

@ -1,7 +1,7 @@
openerp.web.search = function(openerp) {
var QWeb = openerp.web.qweb,
_t = openerp.web._t,
_lt = openerp.web._lt;
openerp.web.search = function(instance) {
var QWeb = instance.web.qweb,
_t = instance.web._t,
_lt = instance.web._lt;
_.mixin({
sum: function (obj) { return _.reduce(obj, function (a, b) { return a + b; }, 0); }
});
@ -70,11 +70,11 @@ _.extend(VS.model.SearchFacet.prototype, {
}
});
openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.SearchView# */{
instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.SearchView# */{
template: "SearchView",
/**
* @constructs openerp.web.SearchView
* @extends openerp.web.OldWidget
* @constructs instance.web.SearchView
* @extends instance.web.OldWidget
*
* @param parent
* @param element_id
@ -178,7 +178,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
var running_count = 0;
// get total filters count
var is_group = function (i) { return i instanceof openerp.web.search.FilterGroup; };
var is_group = function (i) { return i instanceof instance.web.search.FilterGroup; };
var filters_count = _(this.controls).chain()
.flatten()
.filter(is_group)
@ -212,12 +212,12 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
name: _t("Custom Filters"),
filters: _.map(this.custom_filters, function (filter) {
// FIXME: handling of ``disabled`` being set
var f = new openerp.web.search.Filter({attrs: {
var f = new instance.web.search.Filter({attrs: {
string: filter.name,
context: filter.context,
domain: filter.domain
}}, self);
return new openerp.web.search.FilterGroup([f], self);
return new instance.web.search.FilterGroup([f], self);
}),
length: 3
});
@ -225,7 +225,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
return $.when(
this.render_column(col1, $('<div>').appendTo($filters)),
this.render_column(col2, $('<div>').appendTo($filters)),
(new openerp.web.search.Advanced(this).appendTo($drawer)));
(new instance.web.search.Advanced(this).appendTo($drawer)));
},
render_column: function (column, $el) {
return $.when.apply(null, _(column).map(function (group) {
@ -314,10 +314,10 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
* @param {VS.model.SearchFacet} options.model facet object to render
*/
make_visualsearch_facet: function (options) {
return new openerp.web.search.FilterGroupFacet(options);
return new instance.web.search.FilterGroupFacet(options);
// if (options.model.get('field') instanceof openerp.web.search.FilterGroup) {
// return new openerp.web.search.FilterGroupFacet(options);
// if (options.model.get('field') instanceof instance.web.search.FilterGroup) {
// return new instance.web.search.FilterGroupFacet(options);
// }
// return new VS.ui.SearchFacet(options);
},
@ -363,7 +363,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
var filters = [];
_.each(items, function (item) {
if (filters.length && item.tag !== 'filter') {
group.push(new openerp.web.search.FilterGroup(filters, this));
group.push(new instance.web.search.FilterGroup(filters, this));
filters = [];
}
@ -371,7 +371,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
case 'separator': case 'newline':
break;
case 'filter':
filters.push(new openerp.web.search.Filter(item, this));
filters.push(new instance.web.search.Filter(item, this));
break;
case 'group':
self.make_widgets(item.children, fields, item.attrs.string);
@ -385,7 +385,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
}, this);
if (filters.length) {
group.push(new openerp.web.search.FilterGroup(filters, this));
group.push(new instance.web.search.FilterGroup(filters, this));
}
},
/**
@ -394,10 +394,10 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
*
* @param {Object} item fields_view_get node for the field
* @param {Object} field fields_get result for the field
* @returns openerp.web.search.Field
* @returns instance.web.search.Field
*/
make_field: function (item, field) {
var obj = openerp.web.search.fields.get_any( [item.attrs.widget, field.type]);
var obj = instance.web.search.fields.get_any( [item.attrs.widget, field.type]);
if(obj) {
return new (obj) (item, field, this);
} else {
@ -460,11 +460,11 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
break;
case 'save_filter':
var data = this.build_search_data();
var context = new openerp.web.CompoundContext();
var context = new instance.web.CompoundContext();
_.each(data.contexts, function(x) {
context.add(x);
});
var domain = new openerp.web.CompoundDomain();
var domain = new instance.web.CompoundDomain();
_.each(data.domains, function(x) {
domain.add(x);
});
@ -472,7 +472,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
context.add({"group_by": groupbys});
var dial_html = QWeb.render("SearchView.managed-filters.add");
var $dial = $(dial_html);
openerp.web.dialog($dial, {
instance.web.dialog($dial, {
modal: true,
title: _t("Filter Entry"),
buttons: [
@ -525,13 +525,13 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
on_add_to_dashboard: function() {
this.$element.find(".oe_search-view-filters-management")[0].selectedIndex = 0;
var self = this,
menu = openerp.webclient.menu,
menu = instance.webclient.menu,
$dialog = $(QWeb.render("SearchView.add_to_dashboard", {
dashboards : menu.data.data.children,
selected_menu_id : menu.$element.find('a.active').data('menu')
}));
$dialog.find('input').val(this.fields_view.name);
openerp.web.dialog($dialog, {
instance.web.dialog($dialog, {
modal: true,
title: _t("Add to Dashboard"),
buttons: [
@ -543,8 +543,8 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
var menu_id = $(this).find("select").val(),
title = $(this).find("input").val(),
data = self.build_search_data(),
context = new openerp.web.CompoundContext(),
domain = new openerp.web.CompoundDomain();
context = new instance.web.CompoundContext(),
domain = new instance.web.CompoundDomain();
_.each(data.contexts, function(x) {
context.add(x);
});
@ -573,10 +573,10 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
* Performs the search view collection of widget data.
*
* If the collection went well (all fields are valid), then triggers
* :js:func:`openerp.web.SearchView.on_search`.
* :js:func:`instance.web.SearchView.on_search`.
*
* If at least one field failed its validation, triggers
* :js:func:`openerp.web.SearchView.on_invalid` instead.
* :js:func:`instance.web.SearchView.on_invalid` instead.
*
* @param e jQuery event object coming from the "Search" button
*/
@ -599,7 +599,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
groupbys.push.apply(groupbys, group_by);
}
} catch (e) {
if (e instanceof openerp.web.search.Invalid) {
if (e instanceof instance.web.search.Invalid) {
errors.push(e);
} else {
throw e;
@ -648,9 +648,9 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
});
/** @namespace */
openerp.web.search = {};
instance.web.search = {};
openerp.web.search.FilterGroupFacet = VS.ui.SearchFacet.extend({
instance.web.search.FilterGroupFacet = VS.ui.SearchFacet.extend({
events: _.extend({
'click': 'selectFacet'
}, VS.ui.SearchFacet.prototype.events),
@ -682,30 +682,30 @@ openerp.web.search.FilterGroupFacet = VS.ui.SearchFacet.extend({
}
});
/**
* Registry of search fields, called by :js:class:`openerp.web.SearchView` to
* Registry of search fields, called by :js:class:`instance.web.SearchView` to
* find and instantiate its field widgets.
*/
openerp.web.search.fields = new openerp.web.Registry({
'char': 'openerp.web.search.CharField',
'text': 'openerp.web.search.CharField',
'boolean': 'openerp.web.search.BooleanField',
'integer': 'openerp.web.search.IntegerField',
'id': 'openerp.web.search.IntegerField',
'float': 'openerp.web.search.FloatField',
'selection': 'openerp.web.search.SelectionField',
'datetime': 'openerp.web.search.DateTimeField',
'date': 'openerp.web.search.DateField',
'many2one': 'openerp.web.search.ManyToOneField',
'many2many': 'openerp.web.search.CharField',
'one2many': 'openerp.web.search.CharField'
instance.web.search.fields = new instance.web.Registry({
'char': 'instance.web.search.CharField',
'text': 'instance.web.search.CharField',
'boolean': 'instance.web.search.BooleanField',
'integer': 'instance.web.search.IntegerField',
'id': 'instance.web.search.IntegerField',
'float': 'instance.web.search.FloatField',
'selection': 'instance.web.search.SelectionField',
'datetime': 'instance.web.search.DateTimeField',
'date': 'instance.web.search.DateField',
'many2one': 'instance.web.search.ManyToOneField',
'many2many': 'instance.web.search.CharField',
'one2many': 'instance.web.search.CharField'
});
openerp.web.search.Invalid = openerp.web.Class.extend( /** @lends openerp.web.search.Invalid# */{
instance.web.search.Invalid = instance.web.Class.extend( /** @lends instance.web.search.Invalid# */{
/**
* Exception thrown by search widgets when they hold invalid values,
* which they can not return when asked.
*
* @constructs openerp.web.search.Invalid
* @extends openerp.web.Class
* @constructs instance.web.search.Invalid
* @extends instance.web.Class
*
* @param field the name of the field holding an invalid value
* @param value the invalid value
@ -723,13 +723,13 @@ openerp.web.search.Invalid = openerp.web.Class.extend( /** @lends openerp.web.se
);
}
});
openerp.web.search.Widget = openerp.web.OldWidget.extend( /** @lends openerp.web.search.Widget# */{
instance.web.search.Widget = instance.web.OldWidget.extend( /** @lends instance.web.search.Widget# */{
template: null,
/**
* Root class of all search widgets
*
* @constructs openerp.web.search.Widget
* @extends openerp.web.OldWidget
* @constructs instance.web.search.Widget
* @extends instance.web.OldWidget
*
* @param view the ancestor view of this widget
*/
@ -738,14 +738,14 @@ openerp.web.search.Widget = openerp.web.OldWidget.extend( /** @lends openerp.web
this.view = view;
}
});
openerp.web.search.add_expand_listener = function($root) {
instance.web.search.add_expand_listener = function($root) {
$root.find('a.searchview_group_string').click(function (e) {
$root.toggleClass('folded expanded');
e.stopPropagation();
e.preventDefault();
});
};
openerp.web.search.Group = openerp.web.search.Widget.extend({
instance.web.search.Group = instance.web.search.Widget.extend({
template: 'SearchView.group',
init: function (view_section, view, fields) {
this._super(view);
@ -755,10 +755,10 @@ openerp.web.search.Group = openerp.web.search.Widget.extend({
}
});
openerp.web.search.Input = openerp.web.search.Widget.extend( /** @lends openerp.web.search.Input# */{
instance.web.search.Input = instance.web.search.Widget.extend( /** @lends instance.web.search.Input# */{
/**
* @constructs openerp.web.search.Input
* @extends openerp.web.search.Widget
* @constructs instance.web.search.Input
* @extends instance.web.search.Widget
*
* @param view
*/
@ -784,7 +784,7 @@ openerp.web.search.Input = openerp.web.search.Widget.extend( /** @lends openerp.
* they apply to this widget, or null if they don't.
*
* This default implementation will try calling
* :js:func:`openerp.web.search.Input#facet_for` if the widget's name
* :js:func:`instance.web.search.Input#facet_for` if the widget's name
* matches the input key
*
* @param {Object} defaults
@ -820,17 +820,17 @@ openerp.web.search.Input = openerp.web.search.Widget.extend( /** @lends openerp.
this.attrs = attrs;
}
});
openerp.web.search.FilterGroup = openerp.web.search.Input.extend(/** @lends openerp.web.search.FilterGroup# */{
instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends instance.web.search.FilterGroup# */{
template: 'SearchView.filters',
/**
* Inclusive group of filters, creates a continuous "button" with clickable
* sections (the normal display for filters is to be a self-contained button)
*
* @constructs openerp.web.search.FilterGroup
* @extends openerp.web.search.Input
* @constructs instance.web.search.FilterGroup
* @extends instance.web.search.Input
*
* @param {Array<openerp.web.search.Filter>} filters elements of the group
* @param {openerp.web.SearchView} view view in which the filters are contained
* @param {Array<instance.web.search.Filter>} filters elements of the group
* @param {instance.web.SearchView} view view in which the filters are contained
*/
init: function (filters, view) {
this._super(view);
@ -868,7 +868,7 @@ openerp.web.search.FilterGroup = openerp.web.search.Input.extend(/** @lends open
if (!contexts.length) { return; }
if (contexts.length === 1) { return contexts[0]; }
return _.extend(new openerp.web.CompoundContext, {
return _.extend(new instance.web.CompoundContext, {
__contexts: contexts
});
},
@ -901,7 +901,7 @@ openerp.web.search.FilterGroup = openerp.web.search.Input.extend(/** @lends open
for (var i=domains.length; --i;) {
domains.unshift(['|']);
}
return _.extend(new openerp.web.CompoundDomain(), {
return _.extend(new instance.web.CompoundDomain(), {
__domains: domains
});
},
@ -945,7 +945,7 @@ openerp.web.search.FilterGroup = openerp.web.search.Input.extend(/** @lends open
});
}
});
openerp.web.search.Filter = openerp.web.search.Input.extend(/** @lends openerp.web.search.Filter# */{
instance.web.search.Filter = instance.web.search.Input.extend(/** @lends instance.web.search.Filter# */{
template: 'SearchView.filter',
/**
* Implementation of the OpenERP filters (button with a context and/or
@ -955,8 +955,8 @@ openerp.web.search.Filter = openerp.web.search.Input.extend(/** @lends openerp.w
* domains and contexts, converting between facets and filters) is
* performed by the filter group.
*
* @constructs openerp.web.search.Filter
* @extends openerp.web.search.Input
* @constructs instance.web.search.Filter
* @extends instance.web.search.Input
*
* @param node
* @param view
@ -969,12 +969,12 @@ openerp.web.search.Filter = openerp.web.search.Input.extend(/** @lends openerp.w
get_context: function () { },
get_domain: function () { },
});
openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.web.search.Field# */ {
instance.web.search.Field = instance.web.search.Input.extend( /** @lends instance.web.search.Field# */ {
template: 'SearchView.field',
default_operator: '=',
/**
* @constructs openerp.web.search.Field
* @extends openerp.web.search.Input
* @constructs instance.web.search.Field
* @extends instance.web.search.Input
*
* @param view_section
* @param field
@ -1005,7 +1005,7 @@ openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.w
if (!(has_value && context)) {
return;
}
return new openerp.web.CompoundContext(context)
return new instance.web.CompoundContext(context)
.set_eval_context({self: val});
},
get_groupby: function () { },
@ -1036,7 +1036,7 @@ openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.w
this.attrs.operator || this.default_operator,
facet);
}
return new openerp.web.CompoundDomain(domain)
return new instance.web.CompoundDomain(domain)
.set_eval_context({self: val});
}
});
@ -1048,9 +1048,9 @@ openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.w
* * The Javascript and the HTML values are identical (strings)
*
* @class
* @extends openerp.web.search.Field
* @extends instance.web.search.Field
*/
openerp.web.search.CharField = openerp.web.search.Field.extend( /** @lends openerp.web.search.CharField# */ {
instance.web.search.CharField = instance.web.search.Field.extend( /** @lends instance.web.search.CharField# */ {
default_operator: 'ilike',
complete: function (value) {
if (_.isEmpty(value)) { return $.when(null); }
@ -1066,7 +1066,7 @@ openerp.web.search.CharField = openerp.web.search.Field.extend( /** @lends opene
}]);
}
});
openerp.web.search.NumberField = openerp.web.search.Field.extend(/** @lends openerp.web.search.NumberField# */{
instance.web.search.NumberField = instance.web.search.Field.extend(/** @lends instance.web.search.NumberField# */{
get_value: function () {
if (!this.$element.val()) {
return null;
@ -1075,7 +1075,7 @@ openerp.web.search.NumberField = openerp.web.search.Field.extend(/** @lends open
check = Number(this.$element.val());
if (isNaN(val) || val !== check) {
this.$element.addClass('error');
throw new openerp.web.search.Invalid(
throw new instance.web.search.Invalid(
this.attrs.name, this.$element.val(), this.error_message);
}
this.$element.removeClass('error');
@ -1084,13 +1084,13 @@ openerp.web.search.NumberField = openerp.web.search.Field.extend(/** @lends open
});
/**
* @class
* @extends openerp.web.search.NumberField
* @extends instance.web.search.NumberField
*/
openerp.web.search.IntegerField = openerp.web.search.NumberField.extend(/** @lends openerp.web.search.IntegerField# */{
instance.web.search.IntegerField = instance.web.search.NumberField.extend(/** @lends instance.web.search.IntegerField# */{
error_message: _t("not a valid integer"),
parse: function (value) {
try {
return openerp.web.parse_value(value, {'widget': 'integer'});
return instance.web.parse_value(value, {'widget': 'integer'});
} catch (e) {
return NaN;
}
@ -1098,13 +1098,13 @@ openerp.web.search.IntegerField = openerp.web.search.NumberField.extend(/** @len
});
/**
* @class
* @extends openerp.web.search.NumberField
* @extends instance.web.search.NumberField
*/
openerp.web.search.FloatField = openerp.web.search.NumberField.extend(/** @lends openerp.web.search.FloatField# */{
instance.web.search.FloatField = instance.web.search.NumberField.extend(/** @lends instance.web.search.FloatField# */{
error_message: _t("not a valid number"),
parse: function (value) {
try {
return openerp.web.parse_value(value, {'widget': 'float'});
return instance.web.parse_value(value, {'widget': 'float'});
} catch (e) {
return NaN;
}
@ -1112,9 +1112,9 @@ openerp.web.search.FloatField = openerp.web.search.NumberField.extend(/** @lends
});
/**
* @class
* @extends openerp.web.search.Field
* @extends instance.web.search.Field
*/
openerp.web.search.SelectionField = openerp.web.search.Field.extend(/** @lends openerp.web.search.SelectionField# */{
instance.web.search.SelectionField = instance.web.search.Field.extend(/** @lends instance.web.search.SelectionField# */{
// This implementation is a basic <select> field, but it may have to be
// altered to be more in line with the GTK client, which uses a combo box
// (~ jquery.autocomplete):
@ -1171,10 +1171,10 @@ openerp.web.search.SelectionField = openerp.web.search.Field.extend(/** @lends o
return facet.get('json');
}
});
openerp.web.search.BooleanField = openerp.web.search.SelectionField.extend(/** @lends openerp.web.search.BooleanField# */{
instance.web.search.BooleanField = instance.web.search.SelectionField.extend(/** @lends instance.web.search.BooleanField# */{
/**
* @constructs openerp.web.search.BooleanField
* @extends openerp.web.search.BooleanField
* @constructs instance.web.search.BooleanField
* @extends instance.web.search.BooleanField
*/
init: function () {
this._super.apply(this, arguments);
@ -1193,16 +1193,16 @@ openerp.web.search.BooleanField = openerp.web.search.SelectionField.extend(/** @
});
/**
* @class
* @extends openerp.web.search.DateField
* @extends instance.web.search.DateField
*/
openerp.web.search.DateField = openerp.web.search.Field.extend(/** @lends openerp.web.search.DateField# */{
instance.web.search.DateField = instance.web.search.Field.extend(/** @lends instance.web.search.DateField# */{
get_value: function (facet) {
return openerp.web.date_to_str(facet.get('json'));
return instance.web.date_to_str(facet.get('json'));
},
complete: function (needle) {
var d = Date.parse(needle);
if (!d) { return $.when(null); }
var value = openerp.web.format_value(d, this.attrs);
var value = instance.web.format_value(d, this.attrs);
var label = _.str.sprintf(_.str.escapeHTML(
_t("Search %(field)s at: %(value)s")), {
field: '<em>' + this.attrs.string + '</em>',
@ -1225,17 +1225,17 @@ openerp.web.search.DateField = openerp.web.search.Field.extend(/** @lends opener
* spanning the whole day selected by the date widget
*
* @class
* @extends openerp.web.DateField
* @extends instance.web.DateField
*/
openerp.web.search.DateTimeField = openerp.web.search.DateField.extend(/** @lends openerp.web.search.DateTimeField# */{
instance.web.search.DateTimeField = instance.web.search.DateField.extend(/** @lends instance.web.search.DateTimeField# */{
get_value: function (facet) {
return openerp.web.datetime_to_str(facet.get('json'));
return instance.web.datetime_to_str(facet.get('json'));
}
});
openerp.web.search.ManyToOneField = openerp.web.search.CharField.extend({
instance.web.search.ManyToOneField = instance.web.search.CharField.extend({
init: function (view_section, field, view) {
this._super(view_section, field, view);
this.model = new openerp.web.Model(this.attrs.relation);
this.model = new instance.web.Model(this.attrs.relation);
},
complete: function (needle) {
var self = this;
@ -1289,7 +1289,7 @@ openerp.web.search.ManyToOneField = openerp.web.search.CharField.extend({
}
});
openerp.web.search.Advanced = openerp.web.search.Input.extend({
instance.web.search.Advanced = instance.web.search.Input.extend({
template: 'SearchView.advanced',
start: function () {
var self = this;
@ -1314,7 +1314,7 @@ openerp.web.search.Advanced = openerp.web.search.Input.extend({
});
},
append_proposition: function () {
return (new openerp.web.search.ExtendedSearchProposition(this, this.fields))
return (new instance.web.search.ExtendedSearchProposition(this, this.fields))
.appendTo(this.$element.find('ul'));
},
commit_search: function () {
@ -1323,14 +1323,14 @@ openerp.web.search.Advanced = openerp.web.search.Input.extend({
var children = this.getChildren(),
domain = _.invoke(children, 'get_proposition');
var filters = _(domain).map(function (section) {
return new openerp.web.search.Filter({attrs: {
return new instance.web.search.Filter({attrs: {
string: _.str.sprintf('%s(%s)%s',
section[0], section[1], section[2]),
domain: [section]
}}, self.view);
});
// Create Filter (& FilterGroup around it) with that domain
var f = new openerp.web.search.FilterGroup(filters, this.view);
var f = new instance.web.search.FilterGroup(filters, this.view);
// add group to query
this.view.vs.searchQuery.add({
category: _t("Advanced"),
@ -1349,11 +1349,11 @@ openerp.web.search.Advanced = openerp.web.search.Input.extend({
}
});
openerp.web.search.ExtendedSearchProposition = openerp.web.OldWidget.extend(/** @lends openerp.web.search.ExtendedSearchProposition# */{
instance.web.search.ExtendedSearchProposition = instance.web.OldWidget.extend(/** @lends instance.web.search.ExtendedSearchProposition# */{
template: 'SearchView.extended_search.proposition',
/**
* @constructs openerp.web.search.ExtendedSearchProposition
* @extends openerp.web.OldWidget
* @constructs instance.web.search.ExtendedSearchProposition
* @extends instance.web.OldWidget
*
* @param parent
* @param fields
@ -1401,10 +1401,10 @@ openerp.web.search.ExtendedSearchProposition = openerp.web.OldWidget.extend(/**
}
var type = field.type;
var obj = openerp.web.search.custom_filters.get_object(type);
var obj = instance.web.search.custom_filters.get_object(type);
if(obj === null) {
console.log('Unknow field type ' + e.key);
obj = openerp.web.search.custom_filters.get_object("char");
obj = instance.web.search.custom_filters.get_object("char");
}
this.value = new (obj) (this);
if(this.value.set_field) {
@ -1430,12 +1430,12 @@ openerp.web.search.ExtendedSearchProposition = openerp.web.OldWidget.extend(/**
}
});
openerp.web.search.ExtendedSearchProposition.Field = openerp.web.OldWidget.extend({
instance.web.search.ExtendedSearchProposition.Field = instance.web.OldWidget.extend({
start: function () {
this.$element = $("#" + this.element_id);
}
});
openerp.web.search.ExtendedSearchProposition.Char = openerp.web.search.ExtendedSearchProposition.Field.extend({
instance.web.search.ExtendedSearchProposition.Char = instance.web.search.ExtendedSearchProposition.Field.extend({
template: 'SearchView.extended_search.proposition.char',
operators: [
{value: "ilike", text: _lt("contains")},
@ -1447,7 +1447,7 @@ openerp.web.search.ExtendedSearchProposition.Char = openerp.web.search.ExtendedS
return this.$element.val();
}
});
openerp.web.search.ExtendedSearchProposition.DateTime = openerp.web.search.ExtendedSearchProposition.Field.extend({
instance.web.search.ExtendedSearchProposition.DateTime = instance.web.search.ExtendedSearchProposition.Field.extend({
template: 'SearchView.extended_search.proposition.empty',
operators: [
{value: "=", text: _lt("is equal to")},
@ -1462,11 +1462,11 @@ openerp.web.search.ExtendedSearchProposition.DateTime = openerp.web.search.Exten
},
start: function() {
this._super();
this.datewidget = new openerp.web.DateTimeWidget(this);
this.datewidget = new instance.web.DateTimeWidget(this);
this.datewidget.prependTo(this.$element);
}
});
openerp.web.search.ExtendedSearchProposition.Date = openerp.web.search.ExtendedSearchProposition.Field.extend({
instance.web.search.ExtendedSearchProposition.Date = instance.web.search.ExtendedSearchProposition.Field.extend({
template: 'SearchView.extended_search.proposition.empty',
operators: [
{value: "=", text: _lt("is equal to")},
@ -1481,11 +1481,11 @@ openerp.web.search.ExtendedSearchProposition.Date = openerp.web.search.ExtendedS
},
start: function() {
this._super();
this.datewidget = new openerp.web.DateWidget(this);
this.datewidget = new instance.web.DateWidget(this);
this.datewidget.prependTo(this.$element);
}
});
openerp.web.search.ExtendedSearchProposition.Integer = openerp.web.search.ExtendedSearchProposition.Field.extend({
instance.web.search.ExtendedSearchProposition.Integer = instance.web.search.ExtendedSearchProposition.Field.extend({
template: 'SearchView.extended_search.proposition.integer',
operators: [
{value: "=", text: _lt("is equal to")},
@ -1497,16 +1497,16 @@ openerp.web.search.ExtendedSearchProposition.Integer = openerp.web.search.Extend
],
get_value: function() {
try {
return openerp.web.parse_value(this.$element.val(), {'widget': 'integer'});
return instance.web.parse_value(this.$element.val(), {'widget': 'integer'});
} catch (e) {
return "";
}
}
});
openerp.web.search.ExtendedSearchProposition.Id = openerp.web.search.ExtendedSearchProposition.Integer.extend({
instance.web.search.ExtendedSearchProposition.Id = instance.web.search.ExtendedSearchProposition.Integer.extend({
operators: [{value: "=", text: _lt("is")}]
});
openerp.web.search.ExtendedSearchProposition.Float = openerp.web.search.ExtendedSearchProposition.Field.extend({
instance.web.search.ExtendedSearchProposition.Float = instance.web.search.ExtendedSearchProposition.Field.extend({
template: 'SearchView.extended_search.proposition.float',
operators: [
{value: "=", text: _lt("is equal to")},
@ -1518,13 +1518,13 @@ openerp.web.search.ExtendedSearchProposition.Float = openerp.web.search.Extended
],
get_value: function() {
try {
return openerp.web.parse_value(this.$element.val(), {'widget': 'float'});
return instance.web.parse_value(this.$element.val(), {'widget': 'float'});
} catch (e) {
return "";
}
}
});
openerp.web.search.ExtendedSearchProposition.Selection = openerp.web.search.ExtendedSearchProposition.Field.extend({
instance.web.search.ExtendedSearchProposition.Selection = instance.web.search.ExtendedSearchProposition.Field.extend({
template: 'SearchView.extended_search.proposition.selection',
operators: [
{value: "=", text: _lt("is")},
@ -1537,7 +1537,7 @@ openerp.web.search.ExtendedSearchProposition.Selection = openerp.web.search.Exte
return this.$element.val();
}
});
openerp.web.search.ExtendedSearchProposition.Boolean = openerp.web.search.ExtendedSearchProposition.Field.extend({
instance.web.search.ExtendedSearchProposition.Boolean = instance.web.search.ExtendedSearchProposition.Field.extend({
template: 'SearchView.extended_search.proposition.boolean',
operators: [
{value: "=", text: _lt("is true")},
@ -1548,21 +1548,21 @@ openerp.web.search.ExtendedSearchProposition.Boolean = openerp.web.search.Extend
}
});
openerp.web.search.custom_filters = new openerp.web.Registry({
'char': 'openerp.web.search.ExtendedSearchProposition.Char',
'text': 'openerp.web.search.ExtendedSearchProposition.Char',
'one2many': 'openerp.web.search.ExtendedSearchProposition.Char',
'many2one': 'openerp.web.search.ExtendedSearchProposition.Char',
'many2many': 'openerp.web.search.ExtendedSearchProposition.Char',
instance.web.search.custom_filters = new instance.web.Registry({
'char': 'instance.web.search.ExtendedSearchProposition.Char',
'text': 'instance.web.search.ExtendedSearchProposition.Char',
'one2many': 'instance.web.search.ExtendedSearchProposition.Char',
'many2one': 'instance.web.search.ExtendedSearchProposition.Char',
'many2many': 'instance.web.search.ExtendedSearchProposition.Char',
'datetime': 'openerp.web.search.ExtendedSearchProposition.DateTime',
'date': 'openerp.web.search.ExtendedSearchProposition.Date',
'integer': 'openerp.web.search.ExtendedSearchProposition.Integer',
'float': 'openerp.web.search.ExtendedSearchProposition.Float',
'boolean': 'openerp.web.search.ExtendedSearchProposition.Boolean',
'selection': 'openerp.web.search.ExtendedSearchProposition.Selection',
'datetime': 'instance.web.search.ExtendedSearchProposition.DateTime',
'date': 'instance.web.search.ExtendedSearchProposition.Date',
'integer': 'instance.web.search.ExtendedSearchProposition.Integer',
'float': 'instance.web.search.ExtendedSearchProposition.Float',
'boolean': 'instance.web.search.ExtendedSearchProposition.Boolean',
'selection': 'instance.web.search.ExtendedSearchProposition.Selection',
'id': 'openerp.web.search.ExtendedSearchProposition.Id'
'id': 'instance.web.search.ExtendedSearchProposition.Id'
});
};