Constructor
new Filters()
- Source:
Extends
Members
mustMatchIds :boolean
If the search results must always match one of the ids in the id filters,
then the id filters will be added to the query with an AND operator.
Type:
- Source:
Methods
addOwnershipFilter()
Creates and adds a Filter to this collection that filters datasets
to only those that the logged-in user has permission to change permission of.
- Source:
addWritePermissionFilter()
Creates and adds a Filter to this collection that filters datasets
to only those that the logged-in user has permission to write to.
- Source:
createCatalogSearchQuery() → {string}
Create a partial query string that's required for catalog searches
- Source:
Returns:
- Returns the query string fragment for a catalog search
-
Type
-
string
filterIsAvailable()
Given a Solr field name, determines if that field is set as a filter option
- Source:
getGroupQuery(filterModels, operatoropt) → {string}
Get a query string for a group of Filters.
The Filters will be ANDed together, unless a different operator is given.
Parameters:
- Source:
Returns:
The query string
-
Type
-
string
Searches the Filter models in this collection and returns any that have at
least one field that matches any of the ID query fields, such as by id, seriesId, or the isPartOf relationship.
- Source:
Returns:
Returns an array of filter models that include at least one ID field
-
Type
-
Filter
|
BooleanFilter
|
ChoiceFilter
|
DateFilter
|
NumericFilter
|
ToggleFilter
|
Array.<FilterGroup>
getNonEmptyFilters - Returns the array of filters that are not empty
- Source:
Returns:
returns an array of Filter or FilterGroup models that are not empty
-
Type
-
Filter
|
BooleanFilter
|
ChoiceFilter
|
DateFilter
|
NumericFilter
|
ToggleFilter
|
Array.<FilterGroup>
Searches the Filter models in this collection and returns all have no fields
matching any of the ID query fields.
- Source:
Returns:
Returns an array of filter models that do not include any ID fields
-
Type
-
Filter
|
BooleanFilter
|
ChoiceFilter
|
DateFilter
|
NumericFilter
|
ToggleFilter
|
Array.<FilterGroup>
getQuery(operatoropt) → {string}
Builds the query string to send to the query engine. Iterates over each filter
in the collection and adds to the query string.
Parameters:
| Name |
Type |
Attributes |
Default |
Description |
operator |
string
|
<optional>
|
AND
|
The operator to use to combine multiple filters in this filter group. Must be AND or OR. |
- Source:
Returns:
The query string to send to Solr
-
Type
-
string
initialize(models, optionsopt)
Function executed whenever a new Filters collection is created.
Parameters:
Properties:
| Name |
Type |
Description |
isUIFilterType |
boolean
|
Set to true to indicate that these filters
or filterGroups are part of a UIFilterGroup (aka custom Portal search filter).
Otherwise, it's assumed that this model is in a Collection model definition. |
objectDOM |
XMLElement
|
A FilterGroupType or UIFilterGroupType XML
element from a portal or collection document. If provided, the XML will be
parsed and the Filters models extracted |
catalogSearch |
boolean
|
If set to true, a catalog search phrase
will be appended to the search query that limits the results to un-obsoleted
metadata. |
- Source:
Creates the type of Filter Model based on the given filter type. This
function is typically not called directly. It is used by Backbone.js when adding
a new model to the collection.
Parameters:
| Name |
Type |
Description |
attrs |
object
|
A literal object that contains the attributes to pass to the model |
options |
object
|
A literal object of additional options to pass to the model |
Properties:
| Name |
Type |
Description |
attrs.filterType |
string
|
The type of Filter to create |
attrs.objectDOM |
XMLElement
|
The Filter XML |
- Source:
Returns:
-
Type
-
Filter
|
BooleanFilter
|
ChoiceFilter
|
DateFilter
|
NumericFilter
|
ToggleFilter
|
FilterGroup
parse(objectDOM, isUIFilterType) → {JSON}
Parses a or element from a collection or portal
document and sets the resulting models on this collection.
Parameters:
| Name |
Type |
Description |
objectDOM |
XMLElement
|
A FilterGroupType or UIFilterGroupType XML
element from a portal or collection document |
isUIFilterType |
boolean
|
Set to true to indicate that these filters
or filterGroups are part of a UIFilterGroup (aka custom Portal search filter).
Otherwise, it's assumed that the filters are part of a Collection model
definition. |
- Source:
Returns:
The result of the parsed XML, in JSON.
-
Type
-
JSON
removeEmptyFilters(recursiveopt)
Remove filters from the collection that are
lacking fields, values, and in the case of a numeric filter,
a min and max value.
Parameters:
| Name |
Type |
Attributes |
Default |
Description |
recursive |
boolean
|
<optional>
|
false
|
Set to true to also remove empty filters
from within any and all nested filterGroups. |
- Source:
removeFiltersByField(field)
Removes Filter models from this collection if they match the given field
Parameters:
| Name |
Type |
Description |
field |
string
|
The field whose matching filters that should be removed from this collection |
- Source:
replaceModel(model, newAttrs) → {Filter}
Remove a Filter from the Filters collection silently, and
replace it with a new model.
Parameters:
| Name |
Type |
Description |
model |
Filter
|
The model to replace |
newAttrs |
object
|
Attributes for the replacement model. Use the filterType attribute to replace with a different type of Filter. |
- Source:
Returns:
Returns the replacement Filter model, which is already part of the Filters collection.
-
Type
-
Filter
visibleIndexOf(model) → {number}
visibleIndexOf - Get the index of a given model, excluding any
filters that are marked as invisible.
Parameters:
- Source:
Returns:
An integer representing the filter model's position in the list of visible filters.
-
Type
-
number