aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/CurrentUserUtils.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/util/CurrentUserUtils.ts')
-rw-r--r--src/client/util/CurrentUserUtils.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/client/util/CurrentUserUtils.ts b/src/client/util/CurrentUserUtils.ts
index 083530ce7..c4e2afd08 100644
--- a/src/client/util/CurrentUserUtils.ts
+++ b/src/client/util/CurrentUserUtils.ts
@@ -745,6 +745,7 @@ export class CurrentUserUtils {
{ title: "Left", toolTip: "Left align", btnType: ButtonType.ToggleButton, icon: "align-left", click: 'setAlignment("left", _readOnly_)' },
{ title: "Center", toolTip: "Center align", btnType: ButtonType.ToggleButton, icon: "align-center", click: 'setAlignment("center", _readOnly_)' },
{ title: "Right", toolTip: "Right align", btnType: ButtonType.ToggleButton, icon: "align-right", click: 'setAlignment("right", _readOnly_)' },
+ { title: "NoLink", toolTip: "Auto Link", btnType: ButtonType.ToggleButton, icon: "link", click: 'toggleNoAutoLinkAnchor(_readOnly_)' },
];
return tools;
}
@@ -834,11 +835,44 @@ export class CurrentUserUtils {
!params.subMenu ?
btnFunc(params) :
CurrentUserUtils.linearButtonList({
+ title: params.title,
linearViewSubMenu: true, flexGap: 0, ignoreClick: true,
linearViewExpandable: true, icon: params.title, _height: 30,
linearViewIsExpanded: params.expanded ? !(ComputedField.MakeFunction(params.expanded) as any) : undefined,
hidden: params.hidden ? ComputedField.MakeFunction(params.hidden) as any : undefined,
}, params.subMenu.map(btnFunc))));
+ } else {
+ const menuBtnList = DocListCast((doc.contextMenuBtns as Doc).data);
+ let prev = "";
+ CurrentUserUtils.contextMenuTools(doc).forEach(params => {
+ const menuBtnDoc = menuBtnList.find(doc => doc.title === params.title);
+ if (!menuBtnDoc) {
+ const newMenuBtnDoc = !params.subMenu ?
+ btnFunc(params) :
+ CurrentUserUtils.linearButtonList({
+ title: params.title,
+ linearViewSubMenu: true, flexGap: 0, ignoreClick: true,
+ linearViewExpandable: true, icon: params.title, _height: 30,
+ linearViewIsExpanded: params.expanded ? !(ComputedField.MakeFunction(params.expanded) as any) : undefined,
+ hidden: params.hidden ? ComputedField.MakeFunction(params.hidden) as any : undefined,
+ }, params.subMenu.map(btnFunc));
+ const after = menuBtnList.find(doc => doc.title === prev);
+ Doc.AddDocToList(doc.contextMenuBtns as Doc, "data", newMenuBtnDoc, after, false, !after);
+ }
+ const subMenuBtnList = menuBtnDoc?.data ? DocListCast(menuBtnDoc.data) : undefined;
+ if (menuBtnDoc && subMenuBtnList && params.subMenu && DocListCast(doc.data).length !== subMenuBtnList.length) {
+ let prevSub = "";
+ params.subMenu.forEach(sub => {
+ if (!subMenuBtnList.find(doc => doc.title === sub.title)) {
+ const newSubMenuBtnDoc = btnFunc(sub);
+ const after = subMenuBtnList.find(doc => doc.title === prevSub);
+ Doc.AddDocToList(menuBtnDoc, "data", newSubMenuBtnDoc, after, false, !prevSub);
+ }
+ prevSub = params.title;
+ })
+ }
+ prev = params.title;
+ });
}
}