aboutsummaryrefslogtreecommitdiff
path: root/src/fields
diff options
context:
space:
mode:
Diffstat (limited to 'src/fields')
-rw-r--r--src/fields/Doc.ts10
-rw-r--r--src/fields/InkField.ts5
-rw-r--r--src/fields/ScriptField.ts4
-rw-r--r--src/fields/documentSchemas.ts4
-rw-r--r--src/fields/util.ts3
5 files changed, 18 insertions, 8 deletions
diff --git a/src/fields/Doc.ts b/src/fields/Doc.ts
index f4505d475..6bfe91378 100644
--- a/src/fields/Doc.ts
+++ b/src/fields/Doc.ts
@@ -508,9 +508,9 @@ export namespace Doc {
alias.aliasOf = doc;
alias.title = ComputedField.MakeFunction(`renameAlias(this, ${Doc.GetProto(doc).aliasNumber = NumCast(Doc.GetProto(doc).aliasNumber) + 1})`);
alias.author = Doc.CurrentUserEmail;
+ alias[AclSym] = doc[AclSym];
- if (!doc.aliases) doc.aliases = new List<Doc>([alias]);
- else Doc.AddDocToList(doc, "aliases", alias);
+ Doc.AddDocToList(doc[DataSym], "aliases", alias);
return alias;
}
@@ -627,7 +627,7 @@ export namespace Doc {
const zip = new JSZip();
- zip.file("doc.json", docString);
+ zip.file(doc.title + ".json", docString);
// // Generate a directory within the Zip file structure
// var img = zip.folder("images");
@@ -639,7 +639,7 @@ export namespace Doc {
zip.generateAsync({ type: "blob" })
.then((content: any) => {
// Force down of the Zip file
- saveAs(content, "download.zip");
+ saveAs(content, doc.title + ".zip"); // glr: Possibly change the name of the document to match the title?
});
}
//
@@ -1266,4 +1266,4 @@ Scripting.addGlobal(function selectedDocs(container: Doc, excludeCollections: bo
return docs.length ? new List(docs) : prevValue;
});
Scripting.addGlobal(function setDocFilter(container: Doc, key: string, value: any, modifiers?: "match" | "check" | "x" | undefined) { Doc.setDocFilter(container, key, value, modifiers); });
-Scripting.addGlobal(function setDocFilterRange(container: Doc, key: string, range: number[]) { Doc.setDocFilterRange(container, key, range); }); \ No newline at end of file
+Scripting.addGlobal(function setDocFilterRange(container: Doc, key: string, range: number[]) { Doc.setDocFilterRange(container, key, range); });
diff --git a/src/fields/InkField.ts b/src/fields/InkField.ts
index 7cfd74cc4..dbe51b24a 100644
--- a/src/fields/InkField.ts
+++ b/src/fields/InkField.ts
@@ -2,6 +2,7 @@ import { Deserializable } from "../client/util/SerializationHelper";
import { serializable, custom, createSimpleSchema, list, object, map } from "serializr";
import { ObjectField } from "./ObjectField";
import { Copy, ToScriptString, ToString, Update } from "./FieldSymbols";
+import { Scripting } from "../client/util/Scripting";
export enum InkTool {
None = "none",
@@ -44,9 +45,11 @@ export class InkField extends ObjectField {
}
[ToScriptString]() {
- return "invalid";
+ return "new InkField([" + this.inkData.map(i => `{X: ${i.X}, Y: ${i.Y}} `) + "])";
}
[ToString]() {
return "InkField";
}
}
+
+Scripting.addGlobal("InkField", InkField); \ No newline at end of file
diff --git a/src/fields/ScriptField.ts b/src/fields/ScriptField.ts
index f55483a5b..4cc3a7cc7 100644
--- a/src/fields/ScriptField.ts
+++ b/src/fields/ScriptField.ts
@@ -53,6 +53,9 @@ async function deserializeScript(script: ScriptField) {
if (script.script.originalScript === 'convertToButtons(dragData)') {
return (script as any).script = (ScriptField.ConvertToButtons ?? (ScriptField.ConvertToButtons = ComputedField.MakeFunction('convertToButtons(dragData)', { dragData: "DocumentDragData" })))?.script;
}
+ if (script.script.originalScript === 'self.userDoc.noviceMode') {
+ return (script as any).script = (ScriptField.NoviceMode ?? (ScriptField.NoviceMode = ComputedField.MakeFunction('self.userDoc.noviceMode')))?.script;
+ }
const captures: ProxyField<Doc> = (script as any).captures;
if (captures) {
const doc = (await captures.value())!;
@@ -85,6 +88,7 @@ export class ScriptField extends ObjectField {
public static OpenOnRight: Opt<ScriptField>;
public static DeiconifyView: Opt<ScriptField>;
public static ConvertToButtons: Opt<ScriptField>;
+ public static NoviceMode: Opt<ScriptField>;
constructor(script: CompiledScript, setterscript?: CompiledScript) {
super();
diff --git a/src/fields/documentSchemas.ts b/src/fields/documentSchemas.ts
index 8cf8f47b7..ada13226e 100644
--- a/src/fields/documentSchemas.ts
+++ b/src/fields/documentSchemas.ts
@@ -19,6 +19,10 @@ export const documentSchema = createSchema({
currentTimecode: "number", // current play back time of a temporal document (video / audio)
displayTimecode: "number", // the time that a document should be displayed (e.g., time an annotation should be displayed on a video)
inOverlay: "boolean", // whether the document is rendered in an OverlayView which handles selection/dragging differently
+ isLabel: "boolean", // whether the document is a label or not (video / audio)
+ audioStart: "number", // the time frame where the audio should begin playing
+ audioEnd: "number", // the time frame where the audio should stop playing
+ markers: listSpec(Doc), // list of markers for audio / video
x: "number", // x coordinate when in a freeform view
y: "number", // y coordinate when in a freeform view
z: "number", // z "coordinate" - non-zero specifies the overlay layer of a freeformview
diff --git a/src/fields/util.ts b/src/fields/util.ts
index 957b2c8cd..4c71572db 100644
--- a/src/fields/util.ts
+++ b/src/fields/util.ts
@@ -10,7 +10,6 @@ import { DocServer } from "../client/DocServer";
import { ComputedField } from "./ScriptField";
import { ScriptCast, StrCast } from "./Types";
import { returnZero } from "../Utils";
-import { addSyntheticLeadingComment } from "typescript";
function _readOnlySetter(): never {
@@ -221,7 +220,7 @@ export function distributeAcls(key: string, acl: SharingPermissions, target: Doc
// maps over the aliases of the document
if (target.aliases) {
DocListCast(target.aliases).map(alias => {
- distributeAcls(key, acl, alias);
+ distributeAcls(key, acl, alias, inheritingFromCollection);
});
}