aboutsummaryrefslogtreecommitdiff
path: root/src/client/views
diff options
context:
space:
mode:
authorab <abdullah_ahmed@brown.edu>2019-08-29 18:43:32 -0400
committerab <abdullah_ahmed@brown.edu>2019-08-29 18:43:32 -0400
commite0bfe978e029268b3901b5d098f946b1a6fc7d0d (patch)
tree72720028c5490417efd74766fc7910793d0c3204 /src/client/views
parent72a867862313aa2063e346a777d6b73e69b4c0ae (diff)
ui fixes, datadoc resolved
Diffstat (limited to 'src/client/views')
-rw-r--r--src/client/views/MainView.tsx1
-rw-r--r--src/client/views/Recommendations.tsx21
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx21
-rw-r--r--src/client/views/nodes/DocumentView.tsx26
-rw-r--r--src/client/views/nodes/ImageBox.tsx16
5 files changed, 33 insertions, 52 deletions
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index 57eb30439..3a5795077 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -204,6 +204,7 @@ export class MainView extends React.Component {
const targets = document.elementsFromPoint(e.x, e.y);
if (targets && targets.length && targets[0].className.toString().indexOf("contextMenu") === -1) {
ContextMenu.Instance.closeMenu();
+ Recommendations.Instance.closeMenu();
}
});
diff --git a/src/client/views/Recommendations.tsx b/src/client/views/Recommendations.tsx
index 8569996b3..cf1974c69 100644
--- a/src/client/views/Recommendations.tsx
+++ b/src/client/views/Recommendations.tsx
@@ -10,8 +10,10 @@ import { returnFalse, emptyFunction, returnEmptyString, returnOne } from "../../
import { Transform } from "../util/Transform";
import { ObjectField } from "../../new_fields/ObjectField";
import { DocumentView } from "./nodes/DocumentView";
-import { DocumentType } from "../documents/Documents";
-
+import { DocumentType } from '../documents/DocumentTypes';
+import { ClientRecommender } from "../ClientRecommender";
+import { DocServer } from "../DocServer";
+import { Id } from "../../new_fields/FieldSymbols";
export interface RecProps {
documents: { preview: Doc, similarity: number }[];
@@ -28,6 +30,7 @@ export class Recommendations extends React.Component<{}> {
@observable private _width: number = 0;
@observable private _height: number = 0;
@observable private _documents: { preview: Doc, score: number }[] = [];
+ private previewDocs: Doc[] = [];
constructor(props: {}) {
super(props);
@@ -52,7 +55,8 @@ export class Recommendations extends React.Component<{}> {
let returnXDimension = () => 50;
let returnYDimension = () => 50;
let scale = () => returnXDimension() / NumCast(renderDoc.nativeWidth, returnXDimension());
- let newRenderDoc = Doc.MakeDelegate(renderDoc); /// newRenderDoc -> renderDoc -> render"data"Doc -> TextProt
+ //let scale = () => 1;
+ //let newRenderDoc = Doc.MakeDelegate(renderDoc); /// newRenderDoc -> renderDoc -> render"data"Doc -> TextProt
const docview = <div>
{/* onPointerDown={action(() => {
this._useIcons = !this._useIcons;
@@ -62,7 +66,7 @@ export class Recommendations extends React.Component<{}> {
onPointerLeave={action(() => this._displayDim = 50)} > */}
<DocumentView
fitToBox={StrCast(doc.type).indexOf(DocumentType.COL) !== -1}
- Document={doc}
+ Document={renderDoc}
addDocument={returnFalse}
removeDocument={returnFalse}
ScreenToLocalTransform={Transform.Identity}
@@ -82,9 +86,10 @@ export class Recommendations extends React.Component<{}> {
ContentScaling={scale}
/>
</div>;
- const data = renderDoc.data;
- if (data instanceof ObjectField) newRenderDoc.data = ObjectField.MakeCopy(data);
- newRenderDoc.preview = true;
+ // const data = renderDoc.data;
+ // if (data instanceof ObjectField) newRenderDoc.data = ObjectField.MakeCopy(data);
+ // newRenderDoc.preview = true;
+ // this.previewDocs.push(newRenderDoc);
return docview;
}
@@ -92,6 +97,8 @@ export class Recommendations extends React.Component<{}> {
@action
closeMenu = () => {
this._display = false;
+ this.previewDocs.forEach(doc => DocServer.DeleteDocument(doc[Id]));
+ this.previewDocs = [];
}
@action
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 2d4775070..3cef93383 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -857,27 +857,6 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
input.click();
}
});
- ContextMenu.Instance.addItem({
- description: "Recommender System",
- event: async () => {
- // if (!ClientRecommender.Instance) new ClientRecommender({ title: "Client Recommender" });
- let activedocs = this.getActiveDocuments();
- let allDocs = await SearchUtil.GetAllDocs();
- allDocs.forEach(doc => console.log(doc.title));
- // clears internal representation of documents as vectors
- ClientRecommender.Instance.reset_docs();
- await Promise.all(allDocs.map((doc: Doc) => {
- console.log(StrCast(doc.title));
- if (doc.type === DocumentType.IMG) {
- console.log(doc.title);
- const extdoc = doc.data_ext as Doc;
- return ClientRecommender.Instance.extractText(doc, extdoc ? extdoc : doc);
- }
- }));
- console.log(ClientRecommender.Instance.createDistanceMatrix());
- },
- icon: "brain"
- });
layoutItems.push({ description: `${this.fitToBox ? "Unset" : "Set"} Fit To Container`, event: this.fitToContainer, icon: !this.fitToBox ? "expand-arrows-alt" : "compress-arrows-alt" });
layoutItems.push({ description: "reset view", event: () => { this.props.Document.panX = this.props.Document.panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" });
layoutItems.push({
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 2a6e91272..f708a7a3a 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -648,21 +648,31 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
if (!ClientRecommender.Instance) new ClientRecommender({ title: "Client Recommender" });
let documents: Doc[] = [];
let allDocs = await SearchUtil.GetAllDocs();
- allDocs.forEach(doc => console.log(doc.title));
+ //allDocs.forEach(doc => console.log(doc.title));
// clears internal representation of documents as vectors
ClientRecommender.Instance.reset_docs();
await Promise.all(allDocs.map((doc: Doc) => {
- if (doc.type === DocumentType.IMG) {
- console.log(StrCast(doc.title));
- documents.push(doc);
- const extdoc = doc.data_ext as Doc;
- return ClientRecommender.Instance.extractText(doc, extdoc ? extdoc : doc);
+ let mainDoc: boolean = false;
+ const dataDoc = Doc.GetDataDoc(doc);
+ if (doc.type === DocumentType.TEXT) {
+ if (dataDoc === Doc.GetDataDoc(this.props.Document)) {
+ mainDoc = true;
+ console.log(StrCast(doc.title));
+ }
+ if (!documents.includes(dataDoc)) {
+ documents.push(dataDoc);
+ const extdoc = doc.data_ext as Doc;
+ return ClientRecommender.Instance.extractText(doc, extdoc ? extdoc : doc, mainDoc);
+ }
}
}));
console.log(ClientRecommender.Instance.createDistanceMatrix());
+ const doclist = ClientRecommender.Instance.computeSimilarities();
let recDocs: { preview: Doc, score: number }[] = [];
- for (let i = 0; i < documents.length; i++) {
- recDocs.push({ preview: documents[i], score: i });
+ // tslint:disable-next-line: prefer-for-of
+ for (let i = 0; i < doclist.length; i++) {
+ console.log(doclist[i].score);
+ recDocs.push({ preview: doclist[i].actualDoc, score: doclist[i].score });
}
Recommendations.Instance.addDocuments(recDocs);
Recommendations.Instance.displayRecommendations(e.pageX + 100, e.pageY);
diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx
index ec35465eb..d94e92847 100644
--- a/src/client/views/nodes/ImageBox.tsx
+++ b/src/client/views/nodes/ImageBox.tsx
@@ -240,22 +240,6 @@ export class ImageBox extends DocComponent<FieldViewProps, ImageDocument>(ImageD
}
}
- extractText = async () => {
- //let activedocs = this.getActiveDocuments();
- let allDocs = await SearchUtil.GetAllDocs();
- allDocs.forEach(doc => console.log(doc.title));
- // clears internal representation of documents as vectors
- ClientRecommender.Instance.reset_docs();
- await Promise.all(allDocs.map((doc: Doc) => {
- //console.log(StrCast(doc.title));
- if (doc.type === DocumentType.IMG) {
- const extdoc = doc.data_ext as Doc;
- return ClientRecommender.Instance.extractText(doc, extdoc ? extdoc : doc);
- }
- }));
- console.log(ClientRecommender.Instance.createDistanceMatrix());
- }
-
generateMetadata = (threshold: Confidence = Confidence.Excellent) => {
let converter = (results: any) => {
let tagDoc = new Doc;