diff options
author | bobzel <zzzman@gmail.com> | 2020-08-09 20:36:39 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2020-08-09 20:36:39 -0400 |
commit | cc1d3df760efef033f5d5f03336cf7769b4dbfbf (patch) | |
tree | 7bac7039e03a42d6c5a8c7614640c75c03fd1609 /src/client/documents/Documents.ts | |
parent | be7011f5ba6b45b4bff21e73e6c4226c909d446a (diff) |
added '*' prefix for matching related families of fields in SchemaView & Search.
Diffstat (limited to 'src/client/documents/Documents.ts')
-rw-r--r-- | src/client/documents/Documents.ts | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts index 070068401..7b11cf0b7 100644 --- a/src/client/documents/Documents.ts +++ b/src/client/documents/Documents.ts @@ -865,6 +865,12 @@ export namespace DocUtils { const facet = filterFacets[facetKey]; const satisfiesFacet = Object.keys(facet).some(value => { if (facet[value] === "match") { + if (facetKey.startsWith("*")) { // fields starting with a '*' are used to match families of related fields. ie, *lastModified will match text-lastModified, data-lastModified, etc + const allKeys = Array.from(Object.keys(d)); + allKeys.push(...Object.keys(Doc.GetProto(d))); + const keys = allKeys.filter(key => key.includes(facetKey.substring(1))); + return keys.some(key => Field.toString(d[key] as Field).includes(value)); + } return d[facetKey] === undefined || Field.toString(d[facetKey] as Field).includes(value); } return (facet[value] === "x") !== Doc.matchFieldValue(d, facetKey, value); |