aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbob <bcz@cs.brown.edu>2019-05-21 12:35:36 -0400
committerbob <bcz@cs.brown.edu>2019-05-21 12:35:36 -0400
commit7bafa21e8c37826686a012151674b71631fa9c8b (patch)
treedd313df373c15f67a253eea249339ba8567a2ace
parent3abf1b817a5ed0e2bcacaa08f4a15a9193794a3a (diff)
fixed dragging headers for histograms
-rw-r--r--src/client/documents/Documents.ts1
-rw-r--r--src/client/views/collections/CollectionSchemaView.tsx16
-rw-r--r--src/client/views/collections/collectionFreeForm/MarqueeView.tsx5
3 files changed, 17 insertions, 5 deletions
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 9d2f4d3cd..3d65826a9 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -33,7 +33,6 @@ import { DocServer } from "../DocServer";
import { StrokeData, InkField } from "../../new_fields/InkField";
import { dropActionType } from "../util/DragManager";
import { DateField } from "../../new_fields/DateField";
-import { schema } from "prosemirror-schema-basic";
import { UndoManager } from "../util/UndoManager";
export interface DocumentOptions {
diff --git a/src/client/views/collections/CollectionSchemaView.tsx b/src/client/views/collections/CollectionSchemaView.tsx
index b25b48339..c42a0332d 100644
--- a/src/client/views/collections/CollectionSchemaView.tsx
+++ b/src/client/views/collections/CollectionSchemaView.tsx
@@ -68,7 +68,7 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
return this.columns.map(col => {
const ref = React.createRef<HTMLParagraphElement>();
return {
- Header: <p ref={ref} onPointerDown={SetupDrag(ref, () => this.onHeaderDrag(col))}>{col}</p>,
+ Header: <p ref={ref} onPointerDown={SetupDrag(ref, () => this.onHeaderDrag(col), undefined, "copy")}>{col}</p>,
accessor: (doc: Doc) => doc ? doc[col] : 0,
id: col
};
@@ -76,6 +76,15 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
}
onHeaderDrag = (columnName: string) => {
+ let dbDoc = Cast(this.props.Document.DBDoc, Doc);
+ if (dbDoc instanceof Doc) {
+ let columnDocs = DocListCast(dbDoc.data);
+ if (columnDocs) {
+ let ddoc = columnDocs.find(doc => doc.title === columnName);
+ if (ddoc)
+ return ddoc;
+ }
+ }
return this.props.Document;
}
@@ -237,7 +246,7 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
csv = csv.substr(0, csv.length - 1) + "\n";
let self = this;
DocListCast(this.props.Document.data).map(doc => {
- csv += self.columns.reduce((val, col) => val + (doc[col] ? doc[col]!.toString() : "") + ",", "");
+ csv += self.columns.reduce((val, col) => val + (doc[col] ? doc[col]!.toString() : "0") + ",", "");
csv = csv.substr(0, csv.length - 1) + "\n";
});
csv.substring(0, csv.length - 1);
@@ -246,7 +255,8 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
if (self.props.CollectionView.props.addDocument) {
let schemaDoc = await Docs.DBDocument("https://www.cs.brown.edu/" + dbName, { title: dbName });
if (schemaDoc) {
- self.props.CollectionView.props.addDocument(schemaDoc, false);
+ //self.props.CollectionView.props.addDocument(schemaDoc, false);
+ self.props.Document.DBDoc = schemaDoc;
}
}
}
diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
index 31864f357..7ccf480f3 100644
--- a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
+++ b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
@@ -98,18 +98,21 @@ export class MarqueeView extends React.Component<MarqueeViewProps>
let columns = ns[0].split("\t");
let docList: Doc[] = [];
let groupAttr: string | number = "";
+ let rowProto = new Doc();
+ rowProto.width = 200;
for (let i = 1; i < ns.length - 1; i++) {
let values = ns[i].split("\t");
if (values.length === 1 && columns.length > 1) {
groupAttr = values[0];
continue;
}
- let doc = new Doc();
+ let doc = Doc.MakeDelegate(rowProto);
columns.forEach((col, i) => doc[columns[i]] = (values.length > i ? ((values[i].indexOf(Number(values[i]).toString()) !== -1) ? Number(values[i]) : values[i]) : undefined));
if (groupAttr) {
doc._group = groupAttr;
}
doc.title = i.toString();
+ doc.width = 200;
docList.push(doc);
}
let newCol = Docs.SchemaDocument([...(groupAttr ? ["_group"] : []), ...columns.filter(c => c)], docList, { x: x, y: y, title: "droppedTable", width: 300, height: 100 });