aboutsummaryrefslogtreecommitdiff
path: root/src/fields/Doc.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2021-03-18 14:36:33 -0400
committerbobzel <zzzman@gmail.com>2021-03-18 14:36:33 -0400
commitee53c138015fcf232e424b61a4a9e5521e49ada9 (patch)
tree8dae663d6b218e82b0abd87c58be6429677e0930 /src/fields/Doc.ts
parentf692e63595bf7492178cc55de41808595bbe73e2 (diff)
extended Doc.setFilter to allow replacing/appending a filter. fixed anchor unhighlighting in WebBox. reorged some properties on baseProtos (usLInkSmallAnchor etc)
Diffstat (limited to 'src/fields/Doc.ts')
-rw-r--r--src/fields/Doc.ts7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/fields/Doc.ts b/src/fields/Doc.ts
index 5bc770c15..953d96ffa 100644
--- a/src/fields/Doc.ts
+++ b/src/fields/Doc.ts
@@ -13,7 +13,6 @@ import { CollectionDockingView } from "../client/views/collections/CollectionDoc
import { intersectRect, Utils } from "../Utils";
import { DateField } from "./DateField";
import { Copy, HandleUpdate, Id, OnUpdate, Parent, Self, SelfProxy, ToScriptString, ToString, Update } from "./FieldSymbols";
-import { InkTool } from "./InkField";
import { List } from "./List";
import { ObjectField } from "./ObjectField";
import { PrefetchProxy, ProxyField } from "./Proxy";
@@ -25,7 +24,6 @@ import { Cast, FieldValue, NumCast, StrCast, ToConstructor } from "./Types";
import { AudioField, ImageField, PdfField, VideoField, WebField } from "./URLField";
import { deleteProperty, GetEffectiveAcl, getField, getter, makeEditable, makeReadOnly, normalizeEmail, setter, SharingPermissions, updateFunction } from "./util";
import JSZip = require("jszip");
-import { prefix } from "@fortawesome/free-regular-svg-icons";
export namespace Field {
export function toKeyValueString(doc: Doc, key: string): string {
@@ -1069,9 +1067,9 @@ export namespace Doc {
// filters document in a container collection:
// all documents with the specified value for the specified key are included/excluded
// based on the modifiers :"check", "x", undefined
- export function setDocFilter(target: Opt<Doc>, key: string, value: any, modifiers: "remove" | "match" | "check" | "x", toggle?: boolean, fieldSuffix?: string) {
+ export function setDocFilter(target: Opt<Doc>, key: string, value: any, modifiers: "remove" | "match" | "check" | "x", toggle?: boolean, fieldPrefix?: string, append: boolean = true) {
const container = target ?? CollectionDockingView.Instance.props.Document;
- const filterField = "_" + (fieldSuffix ? fieldSuffix + "-" : "") + "docFilters";
+ const filterField = "_" + (fieldPrefix ? fieldPrefix + "-" : "") + "docFilters";
const docFilters = Cast(container[filterField], listSpec("string"), []);
runInAction(() => {
for (let i = 0; i < docFilters.length; i++) {
@@ -1089,6 +1087,7 @@ export namespace Doc {
if (!docFilters.length && modifiers === "match" && value === undefined) {
container[filterField] = undefined;
} else if (modifiers !== "remove") {
+ !append && (docFilters.length = 0);
docFilters.push(key + ":" + value + ":" + modifiers);
container[filterField] = new List<string>(docFilters);
}