aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2022-04-29 16:22:46 -0400
committerbobzel <zzzman@gmail.com>2022-04-29 16:22:46 -0400
commit32a7dfc6eae2def8d1b792edcb550316948f6ab0 (patch)
treee3703e75984cd612fcc4ad328a28915078d71afb
parent7b08cb4fd86a7e7048e14c05ab980f5b008d18d8 (diff)
more cleanup
-rw-r--r--src/client/documents/Documents.ts2
-rw-r--r--src/client/util/CurrentUserUtils.ts80
2 files changed, 30 insertions, 52 deletions
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 741868a99..dd3e13cfd 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -156,6 +156,8 @@ export class DocumentOptions {
_timelineLabel?: boolean; // whether the document exists on a timeline
"_carousel-caption-xMargin"?: number;
"_carousel-caption-yMargin"?: number;
+ "icon-nativeWidth"?: number;
+ "icon-nativeHeight"?: number;
x?: number;
y?: number;
z?: number; // whether document is in overlay (1) or not (0 or undefined)
diff --git a/src/client/util/CurrentUserUtils.ts b/src/client/util/CurrentUserUtils.ts
index 7948aa70b..57313cecc 100644
--- a/src/client/util/CurrentUserUtils.ts
+++ b/src/client/util/CurrentUserUtils.ts
@@ -290,65 +290,41 @@ export class CurrentUserUtils {
static setupDefaultIconTemplates(doc: Doc) {
const templateIconsDoc = Cast(doc["template-icons"], Doc, null);
- const makeIconTemplate = (type: DocumentType | undefined, templateField: string, iconTemplate: () => Doc, finalize: (icon: Doc) => Doc = (doc: Doc) => doc) => {
- const iconFieldName = type ? "icon_" + type : "icon";
- if (templateIconsDoc?.[iconFieldName] === undefined) {
- const template = finalize(MakeTemplate(iconTemplate(), true, iconFieldName, templateField));
+ const makeIconTemplate = (type: DocumentType | undefined, templateField: string, iconTemplate: () => Doc) => {
+ const iconFieldName = "icon" + (type ? "_" + type : "");
+ if (!templateIconsDoc?.[iconFieldName]) {
+ const template = MakeTemplate(iconTemplate(), true, iconFieldName, templateField);
if (templateIconsDoc) {
templateIconsDoc[iconFieldName] = new PrefetchProxy(template);
Doc.AddDocToList(templateIconsDoc, "data", template);
+ } else {
+ return template;
}
- return template;
}
- return templateIconsDoc[iconFieldName] as Doc;
- };
- const finalizeIconTemplate = (icon: Doc) => {
- const iconProto = Doc.GetProto(icon);
- iconProto["icon-nativeWidth"] = iconProto.width;
- iconProto["icon-nativeHeight"] = iconProto.height;
- return icon;
};
- const iconList = [
- makeIconTemplate(undefined, "title", () => Docs.Create.LabelDocument({
- textTransform: "unset", letterSpacing: "unset", _backgroundColor: "dimgray", _singleLine: false, _minFontSize: 14, _maxFontSize: 24, borderRounding: "5px",
- _width: 150, _height: 70, _xPadding: 10, _yPadding: 10,
- onClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- })),
- makeIconTemplate(DocumentType.AUDIO, "title", () => Docs.Create.LabelDocument({
- textTransform: "unset", letterSpacing: "unset", _backgroundColor: "lightgreen", _singleLine: false, _minFontSize: 14, _maxFontSize: 24, borderRounding: "5px",
- _width: 150, _height: 70, _xPadding: 10, _yPadding: 10,
- onClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- })),
- makeIconTemplate(DocumentType.RTF, "text", () => Docs.Create.LabelDocument({
- _showTitle: "creationDate", textTransform: "unset", letterSpacing: "unset", _singleLine: false, _minFontSize: 14, _maxFontSize: 24, borderRounding: "5px",
- _width: 150, _height: 70, _xPadding: 10, _yPadding: 10,
- onClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- })),
- makeIconTemplate(DocumentType.PDF, "title", () => Docs.Create.LabelDocument({
- textTransform: "unset", letterSpacing: "unset", _backgroundColor: "pink", _singleLine: false, _minFontSize: 10, _maxFontSize: 24, borderRounding: "5px",
- _width: 75, _height: 125, _xPadding: 10, _yPadding: 10,
- onClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- })),
- makeIconTemplate(DocumentType.BUTTON, "data", () => Docs.Create.FontIconDocument({
- _nativeHeight: 30, _nativeWidth: 30, _width: 30, _height: 30,
- onDoubleClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- })),
- makeIconTemplate(DocumentType.IMG, "data", () => Docs.Create.ImageDocument("", {
- _width: 150, _showTitle: "title", onClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- })),
- makeIconTemplate(DocumentType.COL, "icon", () => Docs.Create.ImageDocument("http://www.cs.brown.edu/~bcz/noImage.png", {
- _width: 360 / 4, _height: 270 / 4, _showTitle: "title", onClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- }), finalizeIconTemplate),
- makeIconTemplate(DocumentType.VID, "icon", () => Docs.Create.ImageDocument("http://www.cs.brown.edu/~bcz/noImage.png", {
- _width: 360 / 4, _height: 270 / 4, _showTitle: "title", onClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- }), finalizeIconTemplate),
- // makeIconTemplate(DocumentType.PDF, "data", () => Docs.Create.ImageDocument("http://www.cs.brown.edu/~bcz/noImage.png", {
- // _width: 360 / 4, _height: 270 / 4, _showTitle: "title", onClick: ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" }), system: true
- // }), setIconProtoFields)
- ];
+ const deiconifyScript = () => ScriptField.MakeScript("deiconifyView(documentView)", { documentView: "any" });
+ const labelBox = (extra: object) => Docs.Create.LabelDocument({
+ textTransform: "unset", letterSpacing: "unset", _singleLine: false, _minFontSize: 14, _maxFontSize: 24, borderRounding: "5px",
+ _width: 150, _height: 70, _xPadding: 10, _yPadding: 10, system: true, onClick: deiconifyScript(), ...extra,
+ });
+ const imageBox = (url: string, extra: object) => Docs.Create.ImageDocument(url, {
+ "icon-nativeWidth": 360 / 4, "icon-nativeHeight": 270 / 4, _width: 360 / 4, _height: 270 / 4,
+ _showTitle: "title", system: true, onClick: deiconifyScript(), ...extra
+ });
+ const newIconsList = [
+ makeIconTemplate(undefined, "title", () => labelBox({ _backgroundColor: "dimgray" })),
+ makeIconTemplate(DocumentType.AUDIO, "title", () => labelBox({ _backgroundColor: "lightgreen" })),
+ makeIconTemplate(DocumentType.PDF, "title", () => labelBox({ _backgroundColor: "pink" })),
+ makeIconTemplate(DocumentType.RTF, "text", () => labelBox({ _showTitle: "creationDate" })),
+ makeIconTemplate(DocumentType.IMG, "data", () => imageBox("", { _height: undefined, })),
+ makeIconTemplate(DocumentType.COL, "icon", () => imageBox("http://www.cs.brown.edu/~bcz/noImage.png", {})),
+ makeIconTemplate(DocumentType.VID, "icon", () => imageBox("http://www.cs.brown.edu/~bcz/noImage.png", {})),
+ makeIconTemplate(DocumentType.BUTTON, "data", () => Docs.Create.FontIconDocument({ _nativeHeight: 30, _nativeWidth: 30, _width: 30, _height: 30, system: true, onClick: deiconifyScript() })),
+ // makeIconTemplate(DocumentType.PDF, "icon", () => imageBox("http://www.cs.brown.edu/~bcz/noImage.png", {}), finalizeImageTemplate)
+ ].filter(d => d).map(d => d!);
if (!templateIconsDoc) {
- doc["template-icons"] = Docs.Create.TreeDocument(iconList, { title: "icon templates", _height: 75, system: true });
- iconList.map(ntype => (doc["template-icons"] as Doc)[StrCast(ntype.title)] = new PrefetchProxy(ntype));
+ doc["template-icons"] = Docs.Create.TreeDocument(newIconsList, { title: "icon templates", _height: 75, system: true });
+ newIconsList.map(d => (doc["template-icons"] as Doc)[StrCast(d.title)] = new PrefetchProxy(d));
}
}