diff --git a/html/admin.html b/html/admin.html index 9d1f0b6..919266b 100644 --- a/html/admin.html +++ b/html/admin.html @@ -561,7 +561,7 @@ + "
@@ -581,11 +581,11 @@
-
- {{ .strings.invites }} - {{ .strings.accounts }} - {{ .strings.activity }} - {{ .strings.settings }} +
+ + + +
diff --git a/ts/admin.ts b/ts/admin.ts index 22a65fd..9226417 100644 --- a/ts/admin.ts +++ b/ts/admin.ts @@ -101,6 +101,34 @@ window.availableProfiles = window.availableProfiles || []; } })(); +// Make the navbar horizontally scrollable by dragging (with mouse) +// doesn't work incredibly well so disabled. +/*[...document.getElementsByClassName("horizontally-scrollable")].forEach((c: HTMLElement) => { + c.classList.add("cursor-pointer"); + let down = false; + let startX: number, scrollLeft: number; + c.addEventListener("mousedown", (ev: MouseEvent) => { + console.log("down"); + down = true; + c.classList.add("active"); + startX = ev.pageX - c.offsetLeft; + scrollLeft = c.scrollLeft; + }); + const leave = () => { + console.log("up"); + down = false; + c.classList.remove("active"); + }; + c.addEventListener("mouseleave", leave); + c.addEventListener("mouseup", leave); + c.addEventListener("mousemove", (ev: MouseEvent) => { + if (!down) return; + const x = ev.pageX - c.offsetLeft; + const walk = x - startX; + c.scrollLeft = scrollLeft - walk; + }); +});*/ + var inviteCreator = new createInvite(); var accounts = new accountsList(); diff --git a/ts/modules/tabs.ts b/ts/modules/tabs.ts index 130c064..d688d4b 100644 --- a/ts/modules/tabs.ts +++ b/ts/modules/tabs.ts @@ -33,13 +33,20 @@ export class Tabs implements Tabs { let tab: Tab = { page: null, tabEl: document.getElementById("tab-" + tabID) as HTMLDivElement, - buttonEl: document.getElementById("button-tab-" + tabID) as HTMLSpanElement, + buttonEl: document.getElementById("button-tab-" + tabID) as HTMLButtonElement, preFunc: preFunc, postFunc: postFunc, }; if (this._baseOffset == -1) { this._baseOffset = tab.buttonEl.offsetLeft; } + const order = Array.from(this.tabs.keys()); + let scrollTo: () => number = (): number => tab.buttonEl.offsetLeft - this._baseOffset; + if (order.length > 0) { + scrollTo = (): number => + tab.buttonEl.offsetLeft - (tab.buttonEl.parentElement.offsetWidth - tab.buttonEl.offsetWidth) / 2; + } + tab.page = { name: tabID, title: document.title /*FIXME: Get actual names from translations*/, @@ -47,7 +54,11 @@ export class Tabs implements Tabs { show: () => { tab.buttonEl.classList.add("active", "~urge"); tab.tabEl.classList.remove("unfocused"); - tab.buttonEl.parentElement.scrollTo(tab.buttonEl.offsetLeft - this._baseOffset, 0); + tab.buttonEl.parentElement.scrollTo({ + left: scrollTo(), + top: 0, + behavior: "auto", + }); document.dispatchEvent(new CustomEvent("tab-change", { detail: tabID })); return true; },