aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2021-03-09 10:50:15 -0500
committerbobzel <zzzman@gmail.com>2021-03-09 10:50:15 -0500
commit72f9988e5750f38d725aa0dd78e9af39a8794808 (patch)
tree3771318fdff2a844d3b3221ff8ca1409b8a36a50
parent2beec2fd2075f210054095dcd028c056dab48e28 (diff)
fixed following portal link to reset camera position. prevent warning errors in loading screen. hide textsidebar until text is selected. fixed link titles to handle case when link anchor is the link document and not infinitely recurse.
-rw-r--r--deploy/index.html29
-rw-r--r--src/client/documents/Documents.ts11
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx2
-rw-r--r--src/client/views/nodes/formattedText/FormattedTextBox.tsx2
4 files changed, 20 insertions, 24 deletions
diff --git a/deploy/index.html b/deploy/index.html
index f2eb5e2aa..dda0c6457 100644
--- a/deploy/index.html
+++ b/deploy/index.html
@@ -125,26 +125,15 @@
let load = getCookie("loadtime");
document.startLoad = Date.now();
console.log("Last Load = " + load);
- setTimeout(() => {
- document.getElementById("dash-progress").style.width = "10%"
- document.getElementById("dash-loader-text").innerHTML = "Loading Dash..."
- }, load / 10);
- setTimeout(() => {
- document.getElementById("dash-progress").style.width = "33%"
- document.getElementById("dash-loader-text").innerHTML = "Preparing dashboards..."
- }, load / 3);
- setTimeout(() => {
- document.getElementById("dash-progress").style.width = "50%"
- document.getElementById("dash-loader-text").innerHTML = "Initializing scripts..."
- }, load / 2);
- setTimeout(() => {
- document.getElementById("dash-progress").style.width = "75%"
- document.getElementById("dash-loader-text").innerHTML = "Fetching documents..."
- }, load / 4 * 3);
- setTimeout(() => {
- document.getElementById("dash-progress").style.width = "100%"
- document.getElementById("dash-loader-text").innerHTML = "Finalising setup..."
- }, load);
+ let dashmesg = (width, msg) => {
+ if (document.getElementById("dash-progress")) document.getElementById("dash-progress").style.width = width
+ if (document.getElementById("dash-progress")) document.getElementById("dash-progress").innerHTML = msg
+ }
+ setTimeout(() => dashmesg("10%", "Loading Dash..."), load / 10);
+ setTimeout(() => dashmesg("33%", "Preparing dashboards..."), load / 3);
+ setTimeout(() => dashmesg("50%", "Initializing scripts..."), load / 2);
+ setTimeout(() => dashmesg("75%", "Fetching documents..."), load / 4 * 3);
+ setTimeout(() => dashmesg("100%", "Finalising setup..."), load);
</script>
</div>
<div id="dash-loader-text" class="dash-loader-text">
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 0da80d2c4..754a0d0f8 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -59,6 +59,7 @@ import { DashWebRTCVideo } from "../views/webcam/DashWebRTCVideo";
import { DocumentType } from "./DocumentTypes";
import { EquationBox } from "../views/nodes/EquationBox";
import { FunctionPlotBox } from "../views/nodes/FunctionPlotBox";
+import { script } from "googleapis/build/src/apis/script";
const path = require('path');
const defaultNativeImageDim = Number(DFLT_IMAGE_NATIVE_DIM.replace("px", ""));
@@ -1135,7 +1136,7 @@ export namespace DocUtils {
linkDoc.hidden = true;
Doc.GetProto(linkDoc)["acl-Public"] = linkDoc["acl-Public"] = SharingPermissions.Add;
linkDoc.layout_linkView = Cast(Cast(Doc.UserDoc()["template-button-link"], Doc, null).dragFactory, Doc, null);
- Doc.GetProto(linkDoc).title = ComputedField.MakeFunction('self.anchor1?.title +" (" + (self.linkRelationship||"to") +") " + self.anchor2?.title');
+ Doc.GetProto(linkDoc).title = ComputedField.MakeFunction("generateLinkTitle(self)");
showPopup && makeLink(linkDoc, showPopup);
return linkDoc;
}
@@ -1416,4 +1417,10 @@ export namespace DocUtils {
}
Scripting.addGlobal("Docs", Docs);
-Scripting.addGlobal(function makeDelegate(proto: any) { const d = Docs.Create.DelegateDocument(proto, { title: "child of " + proto.title }); return d; }); \ No newline at end of file
+Scripting.addGlobal(function makeDelegate(proto: any) { const d = Docs.Create.DelegateDocument(proto, { title: "child of " + proto.title }); return d; });
+Scripting.addGlobal(function generateLinkTitle(self: Doc) {
+ const anchor1title = self.anchor1 && self.anchor1 !== self ? Cast(self.anchor1, Doc, null).title : "<?>";
+ const anchor2title = self.anchor2 && self.anchor2 !== self ? Cast(self.anchor2, Doc, null).title : "<?>";
+ const relation = self.linkRelationship || "to";
+ return `${anchor1title} (${relation}) ${anchor2title}`;
+}) \ No newline at end of file
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index 660790b11..ec5cb8a61 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -950,7 +950,7 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
doc.hidden && Doc.UnHighlightDoc(doc);
const resetView = options?.afterFocus ? await options?.afterFocus(moved) : ViewAdjustment.doNothing;
if (resetView) {
- const restoreState = !LightboxView.LightboxDoc || LightboxView.LightboxDoc === this.props.Document && savedState;
+ const restoreState = (!LightboxView.LightboxDoc || LightboxView.LightboxDoc === this.props.Document) && savedState;
if (typeof restoreState !== "boolean") {
this.Document._panX = restoreState.panX;
this.Document._panY = restoreState.panY;
diff --git a/src/client/views/nodes/formattedText/FormattedTextBox.tsx b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
index e741c3496..442b79603 100644
--- a/src/client/views/nodes/formattedText/FormattedTextBox.tsx
+++ b/src/client/views/nodes/formattedText/FormattedTextBox.tsx
@@ -1428,7 +1428,7 @@ export class FormattedTextBox extends ViewBoxAnnotatableComponent<(FieldViewProp
}
@computed get sidebarHandle() {
const annotated = DocListCast(this.dataDoc[this.SidebarKey]).filter(d => d?.author).length;
- return <div className="formattedTextBox-sidebar-handle" onPointerDown={this.sidebarDown}
+ return (!annotated && !this.active()) ? (null) : <div className="formattedTextBox-sidebar-handle" onPointerDown={this.sidebarDown}
style={{
left: `max(0px, calc(100% - ${this.sidebarWidthPercent} ${this.sidebarWidth() ? "- 5px" : "- 10px"}))`,
background: this.props.styleProvider?.(this.props.Document, this.props, StyleProp.WidgetColor + (annotated ? ":annotated" : ""))