aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/LinkManager.ts
diff options
context:
space:
mode:
authorFawn <fangrui_tong@brown.edu>2019-06-13 11:47:50 -0400
committerFawn <fangrui_tong@brown.edu>2019-06-13 11:47:50 -0400
commitbd829aa067912baa08c18c09f5dcfcd3853e45ad (patch)
tree0bfad695a17ab1ee20aaa29020ec9dc7a33b3100 /src/client/util/LinkManager.ts
parent2843baddfa1fe4f46762c63b732eedb5ea7c6e41 (diff)
anchors show up in link group table and metadata values get copied on transfer
Diffstat (limited to 'src/client/util/LinkManager.ts')
-rw-r--r--src/client/util/LinkManager.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/client/util/LinkManager.ts b/src/client/util/LinkManager.ts
index cc8617052..02ecec88a 100644
--- a/src/client/util/LinkManager.ts
+++ b/src/client/util/LinkManager.ts
@@ -134,6 +134,33 @@ export class LinkManager {
return anchorGroups;
}
+ public findMetadataInGroup(groupType: string) {
+ let md: Doc[] = [];
+ let allLinks = LinkManager.Instance.allLinks;
+ // for every link find its groups
+ // allLinks.forEach(linkDoc => {
+ // let anchor1groups = LinkManager.Instance.findRelatedGroupedLinks(Cast(linkDoc["anchor1"], Doc, new Doc));
+ // if (anchor1groups.get(groupType)) {
+ // md.push(linkDoc["anchor1"]["group"])
+ // }
+ // })
+ allLinks.forEach(linkDoc => {
+ let anchor1Groups = Cast(linkDoc["anchor1Groups"], listSpec(Doc), []);
+ let anchor2Groups = Cast(linkDoc["anchor2Groups"], listSpec(Doc), []);
+ [...anchor1Groups, ...anchor2Groups].forEach(groupDoc => {
+ if (groupDoc instanceof Doc) {
+ if (StrCast(groupDoc["type"]) === groupType) {
+ md.push(Cast(groupDoc["metadata"], Doc, new Doc));
+ }
+ } else {
+ // TODO: promise
+ }
+ })
+
+ })
+ return md;
+ }
+
public deleteGroup(groupType: string) {
let deleted = LinkManager.Instance.allGroups.delete(groupType);
if (deleted) {