_onNewGroupby: function (event) { var isDate = event.data.isDate; var attrs = { context:"{'group_by':'" + event.data.fieldName + "''}", name: event.data.description, fieldName: event.data.fieldName, isDate: isDate, }; var groupby = new search_inputs.Filter({attrs: attrs}, this); if (event.data.optionId) { var interval = event.data.optionId; this.intervalMapping.push({groupby: groupby, interval: interval}); } var group = new search_inputs.FilterGroup([groupby], this, this.intervalMapping, this.periodMapping); this.groupbysMapping.push({ groupbyId: event.data.itemId, groupby: groupby, groupId: event.data.groupId, }); this.groupsMapping.push({ groupId: event.data.groupId, group: group, category: 'Group By', }); group.toggle(groupby); },
add_groupby_to_menu: function (field_name) { var filter = new search_inputs.Filter({attrs:{ context:"{'group_by':'" + field_name + "''}", name: _.find(this.groupable_fields, {name: field_name}).string, }}, this.searchview); var group = new search_inputs.FilterGroup([filter], this.searchview), divider = this.$('.divider').show(); group.insertBefore(divider); group.toggle(filter); },
var addedFilters = _.map(newFilters, function (filter) { filter = { attrs: {domain: filter.domain, help: filter.help}, }; var filterWidget = new search_inputs.Filter(filter); var filterGroup = new search_inputs.FilterGroup([filterWidget], self); var facet = filterGroup.make_facet([filterGroup.make_value(filter)]); self.query.add([facet], {silent: true}); return _.last(self.query.models); })
addFilter: function (domain, help) { var filter = { attrs: { domain: domain, help: help, }, }; var filterWidget = new search_inputs.Filter(filter); var filterGroup = new search_inputs.FilterGroup([filterWidget], this); var facet = filterGroup.make_facet([filterGroup.make_value(filter)]); this.query.add([facet], {silent: true}); this.query.trigger('reset'); },
var addedFilters = _.map(newFilters, function (filter) { var domain = filter.domain; if (domain instanceof Array) { domain = Domain.prototype.arrayToString(domain); } filter = { attrs: {domain: domain, help: filter.help}, }; var filterWidget = new search_inputs.Filter(filter); var filterGroup = new search_inputs.FilterGroup([filterWidget], self, self.intervalMapping, self.periodMapping); var facet = filterGroup.make_facet([filterGroup.make_value(filter)]); self.query.add([facet], {silent: true}); return _.last(self.query.models); });
_onNewFilters: function (event) { var self= this; var filter; var filters = []; var groupId; _.each(event.data, function (filterDescription) { filter = new search_inputs.Filter(filterDescription.filter, this); filters.push(filter); self.filtersMapping.push({ filterId: filterDescription.itemId, filter: filter, groupId: filterDescription.groupId, }); // filters belong to the same group if (!groupId) { groupId = filterDescription.groupId; } }); var group = new search_inputs.FilterGroup(filters, this, this.intervalMapping, this.periodMapping); filters.forEach(function (filter) { group.toggle(filter, {silent: true}); }); this.groupsMapping.push({ groupId: groupId, group: group, category: 'Filters', }); this.query.trigger('reset'); },
commit_search: function () { var filters = _.invoke(this.propositions, 'get_filter'), filters_widgets = _.map(filters, function (filter) { return new search_inputs.Filter(filter, this); }), filter_group = new search_inputs.FilterGroup(filters_widgets, this.searchview), facets = filters_widgets.map(function (filter) { return filter_group.make_facet([filter_group.make_value(filter)]); }); filter_group.insertBefore(this.$add_filter); $('<li class="divider">').insertBefore(this.$add_filter); this.searchview.query.add(facets, {silent: true}); this.searchview.query.trigger('reset'); _.invoke(this.propositions, 'destroy'); this.propositions = []; this.append_proposition(); this.toggle_custom_filter_menu(false); },
facets = filters_widgets.map(function (filter) { return filter_group.make_facet([filter_group.make_value(filter)]); });
filters.forEach(function (filter) { group.toggle(filter, {silent: true}); });