diff options
Diffstat (limited to 'src/client/util')
-rw-r--r-- | src/client/util/CurrentUserUtils.ts | 1 | ||||
-rw-r--r-- | src/client/util/Import & Export/DirectoryImportBox.tsx | 36 | ||||
-rw-r--r-- | src/client/util/ScriptManager.ts | 27 |
3 files changed, 29 insertions, 35 deletions
diff --git a/src/client/util/CurrentUserUtils.ts b/src/client/util/CurrentUserUtils.ts index 76eb8c4e5..49af892c9 100644 --- a/src/client/util/CurrentUserUtils.ts +++ b/src/client/util/CurrentUserUtils.ts @@ -703,6 +703,7 @@ export class CurrentUserUtils { this.setupDefaultPresentation(doc); // presentation that's initially triggered await this.setupSidebarButtons(doc); // the pop-out left sidebar of tools/panels doc.globalLinkDatabase = Docs.Prototypes.MainLinkDocument(); + doc.globalScriptDatabase = Docs.Prototypes.MainScriptDocument(); // setup reactions to change the highlights on the undo/redo buttons -- would be better to encode this in the undo/redo buttons, but the undo/redo stacks are not wired up that way yet doc["dockedBtn-undo"] && reaction(() => UndoManager.undoStack.slice(), () => Doc.GetProto(doc["dockedBtn-undo"] as Doc).opacity = UndoManager.CanUndo() ? 1 : 0.4, { fireImmediately: true }); diff --git a/src/client/util/Import & Export/DirectoryImportBox.tsx b/src/client/util/Import & Export/DirectoryImportBox.tsx index 25c556697..af6c57e68 100644 --- a/src/client/util/Import & Export/DirectoryImportBox.tsx +++ b/src/client/util/Import & Export/DirectoryImportBox.tsx @@ -1,33 +1,33 @@ -import "fs"; -import React = require("react"); -import { Doc, DocListCast, DocListCastAsync, Opt } from "../../../fields/Doc"; -import { action, observable, runInAction, computed, reaction, IReactionDisposer } from "mobx"; -import { FieldViewProps, FieldView } from "../../views/nodes/FieldView"; -import Measure, { ContentRect } from "react-measure"; import { library } from '@fortawesome/fontawesome-svg-core'; +import { faCloudUploadAlt, faPlus, faTag } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faTag, faPlus, faCloudUploadAlt } from '@fortawesome/free-solid-svg-icons'; -import { Docs, DocumentOptions, DocUtils } from "../../documents/Documents"; +import { BatchedArray } from "array-batcher"; +import "fs"; +import { action, computed, IReactionDisposer, observable, reaction, runInAction } from "mobx"; import { observer } from "mobx-react"; -import ImportMetadataEntry, { keyPlaceholder, valuePlaceholder } from "./ImportMetadataEntry"; -import { Utils } from "../../../Utils"; -import { DocumentManager } from "../DocumentManager"; +import * as path from 'path'; +import Measure, { ContentRect } from "react-measure"; +import { Doc, DocListCast, DocListCastAsync, Opt } from "../../../fields/Doc"; import { Id } from "../../../fields/FieldSymbols"; import { List } from "../../../fields/List"; -import { Cast, BoolCast, NumCast } from "../../../fields/Types"; import { listSpec } from "../../../fields/Schema"; -import { GooglePhotos } from "../../apis/google_docs/GooglePhotosClientUtils"; import { SchemaHeaderField } from "../../../fields/SchemaHeaderField"; -import "./DirectoryImportBox.scss"; -import { Networking } from "../../Network"; -import { BatchedArray } from "array-batcher"; -import * as path from 'path'; +import { BoolCast, Cast, NumCast } from "../../../fields/Types"; import { AcceptibleMedia, Upload } from "../../../server/SharedMediaTypes"; +import { Utils } from "../../../Utils"; +import { GooglePhotos } from "../../apis/google_docs/GooglePhotosClientUtils"; +import { Docs, DocumentOptions, DocUtils } from "../../documents/Documents"; +import { Networking } from "../../Network"; +import { FieldView, FieldViewProps } from "../../views/nodes/FieldView"; +import { DocumentManager } from "../DocumentManager"; +import "./DirectoryImportBox.scss"; +import ImportMetadataEntry, { keyPlaceholder, valuePlaceholder } from "./ImportMetadataEntry"; +import React = require("react"); const unsupported = ["text/html", "text/plain"]; @observer -export default class DirectoryImportBox extends React.Component<FieldViewProps> { +export class DirectoryImportBox extends React.Component<FieldViewProps> { private selector = React.createRef<HTMLInputElement>(); @observable private top = 0; @observable private left = 0; diff --git a/src/client/util/ScriptManager.ts b/src/client/util/ScriptManager.ts index e8bbe180a..edcc15b56 100644 --- a/src/client/util/ScriptManager.ts +++ b/src/client/util/ScriptManager.ts @@ -1,28 +1,28 @@ import { Doc, DocListCast } from "../../fields/Doc"; import { List } from "../../fields/List"; -import { Docs } from "../documents/Documents"; import { Scripting } from "./Scripting"; import { StrCast, Cast } from "../../fields/Types"; import { listSpec } from "../../fields/Schema"; -import { ScriptingBox } from "../views/nodes/ScriptingBox"; - +import { Docs } from "../documents/Documents"; export class ScriptManager { + static _initialized = false; private static _instance: ScriptManager; public static get Instance(): ScriptManager { return this._instance || (this._instance = new this()); } private constructor() { console.log("CONSTRUCTED"); - ScriptingBox.DeleteScript = this.deleteScript; - ScriptingBox.AddScript = this.addScript; + if (!ScriptManager._initialized) { + ScriptManager._initialized = true; + this.getAllScripts().forEach(scriptDoc => ScriptManager.addScriptToGlobals(scriptDoc)); + } } public get ScriptManagerDoc(): Doc | undefined { return Docs.Prototypes.MainScriptDocument(); } - public getAllScripts(): Doc[] { const sdoc = ScriptManager.Instance.ScriptManagerDoc; if (sdoc) { @@ -35,7 +35,7 @@ export class ScriptManager { public addScript(scriptDoc: Doc): boolean { console.log("in add script method"); - const scriptList = ScriptManager.Instance.getAllScripts(); + const scriptList = this.getAllScripts(); scriptList.push(scriptDoc); if (ScriptManager.Instance.ScriptManagerDoc) { ScriptManager.Instance.ScriptManagerDoc.data = new List<Doc>(scriptList); @@ -53,8 +53,8 @@ export class ScriptManager { if (scriptDoc.functionName) { Scripting.removeGlobal(StrCast(scriptDoc.functionName)); } - const scriptList = ScriptManager.Instance.getAllScripts(); - const index = ScriptManager.Instance.getAllScripts().indexOf(scriptDoc); + const scriptList = this.getAllScripts(); + const index = scriptList.indexOf(scriptDoc); if (index > -1) { scriptList.splice(index, 1); if (ScriptManager.Instance.ScriptManagerDoc) { @@ -98,11 +98,4 @@ export class ScriptManager { Scripting.addGlobal(f, StrCast(scriptDoc.functionDescription), parameters); } } -} - - -const scriptList = ScriptManager.Instance.getAllScripts(); - -scriptList.forEach((scriptDoc: Doc) => { - ScriptManager.addScriptToGlobals(scriptDoc); -});
\ No newline at end of file +}
\ No newline at end of file |