aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryipstanley <stanley_yip@brown.edu>2019-07-25 19:30:44 -0400
committeryipstanley <stanley_yip@brown.edu>2019-07-25 19:30:44 -0400
commit0baefb4e0b133df60f42d894733113c961740af3 (patch)
treeca0dd00010a2a74c8aacbfe519f65e6a4e19e828
parentdb560a8c43f77b9342e55a48dd96f695813b32ef (diff)
almost done
-rw-r--r--src/client/views/collections/CollectionStackingView.scss42
-rw-r--r--src/client/views/collections/CollectionStackingView.tsx8
-rw-r--r--src/client/views/collections/CollectionStackingViewFieldColumn.tsx26
-rw-r--r--src/client/views/collections/CollectionViewChromes.scss5
-rw-r--r--src/client/views/collections/CollectionViewChromes.tsx6
5 files changed, 48 insertions, 39 deletions
diff --git a/src/client/views/collections/CollectionStackingView.scss b/src/client/views/collections/CollectionStackingView.scss
index f43340967..9dbe4ccb8 100644
--- a/src/client/views/collections/CollectionStackingView.scss
+++ b/src/client/views/collections/CollectionStackingView.scss
@@ -96,7 +96,6 @@
outline: none;
border: 0px;
color: $light-color;
- text-transform: uppercase;
letter-spacing: 2px;
font-size: 75%;
transition: transform 0.2s;
@@ -118,9 +117,7 @@
padding: 12px 10px 11px 10px;
border: 0px;
color: grey;
- // font-size: 75%;
text-align: center;
- text-transform: uppercase;
letter-spacing: 2px;
outline-color: black;
}
@@ -142,15 +139,6 @@
width: 90%;
color: lightgrey;
overflow: ellipses;
- }
-
- .collectionStackingView-addGroupButton {
- background: rgb(238, 238, 238);
- font-size: 75%;
- text-align: center;
- text-transform: uppercase;
- letter-spacing: 2px;
- height: fit-content;
.editableView-container-editing-oneLine,
.editableView-container-editing {
@@ -165,14 +153,32 @@
}
.editableView-input {
- padding: 12px 10px 11px 10px;
- border: 0px;
- color: grey;
- // font-size: 75%;
- text-align: center;
- text-transform: uppercase;
+ outline-color: black;
letter-spacing: 2px;
+ color: grey;
+ border: 0px;
+ padding: 12px 10px 11px 10px;
+ }
+ }
+
+ .collectionStackingView-addDocumentButton {
+ font-size: 75%;
+ letter-spacing: 2px;
+
+ .editableView-input {
outline-color: black;
+ letter-spacing: 2px;
+ color: grey;
+ border: 0px;
+ padding: 12px 10px 11px 10px;
}
}
+
+ .collectionStackingView-addGroupButton {
+ background: rgb(238, 238, 238);
+ font-size: 75%;
+ text-align: center;
+ letter-spacing: 2px;
+ height: fit-content;
+ }
} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx
index b5c0fb3d6..7c93201fe 100644
--- a/src/client/views/collections/CollectionStackingView.tsx
+++ b/src/client/views/collections/CollectionStackingView.tsx
@@ -47,7 +47,7 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
let fields = new Map<SchemaHeaderField, Doc[]>(sectionHeaders.map(sh => [sh, []]));
if (sectionFilter) {
this.filteredChildren.map(d => {
- let sectionValue = (d[sectionFilter] ? d[sectionFilter] : `No ${sectionFilter} value`) as object;
+ let sectionValue = (d[sectionFilter] ? d[sectionFilter] : `NO ${sectionFilter.toUpperCase()} VALUE`) as object;
// the next five lines ensures that floating point rounding errors don't create more than one section -syip
let parsed = parseInt(sectionValue.toString());
let castedSectionValue: any = sectionValue;
@@ -56,12 +56,12 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
}
// look for if header exists already
- let existingHeader = sectionHeaders!.find(sh => sh.heading === (castedSectionValue ? castedSectionValue.toString() : `No ${sectionFilter} value`));
+ let existingHeader = sectionHeaders!.find(sh => sh.heading === (castedSectionValue ? castedSectionValue.toString() : `NO ${sectionFilter.toUpperCase()} VALUE`));
if (existingHeader) {
fields.get(existingHeader)!.push(d);
}
else {
- let newSchemaHeader = new SchemaHeaderField(castedSectionValue ? castedSectionValue.toString() : `No ${sectionFilter} value`);
+ let newSchemaHeader = new SchemaHeaderField(castedSectionValue ? castedSectionValue.toString() : `NO ${sectionFilter.toUpperCase()} VALUE`);
fields.set(newSchemaHeader, [d]);
sectionHeaders!.push(newSchemaHeader);
}
@@ -260,7 +260,7 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
let editableViewProps = {
GetValue: () => "",
SetValue: this.addGroup,
- contents: "+ Add a Group"
+ contents: "+ ADD A GROUP"
}
// let uniqueHeadings = headings.map((i, idx) => headings.indexOf(i) === idx);
return (
diff --git a/src/client/views/collections/CollectionStackingViewFieldColumn.tsx b/src/client/views/collections/CollectionStackingViewFieldColumn.tsx
index 582adc418..ea2a302ff 100644
--- a/src/client/views/collections/CollectionStackingViewFieldColumn.tsx
+++ b/src/client/views/collections/CollectionStackingViewFieldColumn.tsx
@@ -18,6 +18,7 @@ import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { ScriptField } from "../../../new_fields/ScriptField";
import { CompileScript } from "../../util/Scripting";
+import { RichTextField } from "../../../new_fields/RichTextField";
interface CSVFieldColumnProps {
@@ -168,11 +169,11 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
}
@action
- addDocument = () => {
+ addDocument = (value: string, shiftDown?: boolean) => {
let key = StrCast(this.props.parent.props.Document.sectionFilter);
- let newDoc = Docs.Create.TextDocument({ height: 18, title: "new text document" });
+ let newDoc = Docs.Create.TextDocument({ height: 18, width: 200, title: value });
newDoc[key] = this.getValue(this.props.heading);
- this.props.parent.props.addDocument(newDoc);
+ return this.props.parent.props.addDocument(newDoc);
}
@action
@@ -231,29 +232,34 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
let style = this.props.parent;
let singleColumn = style.singleColumn;
let uniqueHeadings = headings.map((i, idx) => headings.indexOf(i) === idx);
- let evContents = heading ? heading : this.props.type && this.props.type === "number" ? "0" : `No ${key} value`;
- let editableViewProps = {
+ let evContents = heading ? heading : this.props.type && this.props.type === "number" ? "0" : `NO ${key.toUpperCase()} VALUE`;
+ let headerEditableViewProps = {
GetValue: () => evContents,
SetValue: this.headingChanged,
contents: evContents,
oneLine: true
}
+ let newEditableViewProps = {
+ GetValue: () => "",
+ SetValue: this.addDocument,
+ contents: "+ NEW"
+ }
let headingView = this.props.headingObject ?
<div key={heading} className="collectionStackingView-sectionHeader" ref={this._headerRef}
style={{ width: (style.columnWidth) / (uniqueHeadings.length + 1) }}>
{/* the default bucket (no key value) has a tooltip that describes what it is.
Further, it does not have a color and cannot be deleted. */}
<div className="collectionStackingView-sectionHeader-subCont" onPointerDown={this.headerDown}
- title={evContents === `No ${key} value` ?
+ title={evContents === `NO ${key.toUpperCase()} VALUE` ?
`Documents that don't have a ${key} value will go here. This column cannot be removed.` : ""}
style={{
width: "100%",
- background: this.props.headingObject && evContents !== `No ${key} value` ?
+ background: this.props.headingObject && evContents !== `NO ${key.toUpperCase()} VALUE` ?
this.props.headingObject.color : "lightgrey",
color: "grey"
}}>
- <EditableView {...editableViewProps} />
- {evContents === `No ${key} value` ?
+ <EditableView {...headerEditableViewProps} />
+ {evContents === `NO ${key.toUpperCase()} VALUE` ?
(null) :
<button className="collectionStackingView-sectionDelete" onClick={this.deleteColumn}>
<FontAwesomeIcon icon="trash" />
@@ -282,7 +288,7 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
</div>
<div key={`${heading}-add-document`} className="collectionStackingView-addDocumentButton"
style={{ width: style.columnWidth / (uniqueHeadings.length + 1) }}>
- <button style={{ width: "100%" }} onClick={this.addDocument}>+ New</button>
+ <EditableView {...newEditableViewProps} />
</div>
</div>
);
diff --git a/src/client/views/collections/CollectionViewChromes.scss b/src/client/views/collections/CollectionViewChromes.scss
index 0faca0607..6525f3b07 100644
--- a/src/client/views/collections/CollectionViewChromes.scss
+++ b/src/client/views/collections/CollectionViewChromes.scss
@@ -5,7 +5,7 @@
position: relative;
z-index: 9001;
transition: top .5s;
- background: rgb(238, 238, 238);
+ background: lightslategray;
padding: 10px;
.collectionViewChrome {
@@ -48,7 +48,6 @@
border: 0px;
color: grey;
text-align: center;
- text-transform: uppercase;
letter-spacing: 2px;
outline-color: black;
font-size: 75%;
@@ -128,7 +127,6 @@
justify-self: right;
display: flex;
font-size: 75%;
- text-transform: uppercase;
letter-spacing: 2px;
.collectionStackingViewChrome-sectionFilter-label {
@@ -150,7 +148,6 @@
border: 0px;
color: grey;
text-align: center;
- text-transform: uppercase;
letter-spacing: 2px;
outline-color: black;
height: 100%;
diff --git a/src/client/views/collections/CollectionViewChromes.tsx b/src/client/views/collections/CollectionViewChromes.tsx
index 4129781f7..78ceaad86 100644
--- a/src/client/views/collections/CollectionViewChromes.tsx
+++ b/src/client/views/collections/CollectionViewChromes.tsx
@@ -180,11 +180,11 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
<option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="2">Schema View</option>
<option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="4">Tree View</option>
<option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="5">Stacking View</option>
- <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="6">Masonry View></option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="6">Masonry View</option>
</select>
<div className="collectionViewBaseChrome-viewSpecs">
<input className="collectionViewBaseChrome-viewSpecsInput"
- placeholder="Filter Documents"
+ placeholder="FILTER DOCUMENTS"
value={this.filterValue ? this.filterValue.script.originalScript : ""}
onPointerDown={this.openViewSpecs} />
<div className="collectionViewBaseChrome-viewSpecsMenu"
@@ -304,7 +304,7 @@ export class CollectionStackingViewChrome extends React.Component<CollectionView
</button>
<div className="collectionStackingViewChrome-sectionFilter-cont">
<div className="collectionStackingViewChrome-sectionFilter-label">
- Group items by:
+ GROUP ITEMS BY:
</div>
<div className="collectionStackingViewChrome-sectionFilter">
<EditableView