From 0c852e8c41c449c7cc4fa5b9699921b1ed8ddffa Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Tue, 7 Jul 2026 21:29:15 -0400 Subject: [PATCH] Open recordings should open in a new tab. --- distro-packages/Arch-Linux/skald-git/PKGBUILD | 2 +- skald.md | 6 +++--- static/skald.js | 4 ++-- webserver/static_accessibility_test.go | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/distro-packages/Arch-Linux/skald-git/PKGBUILD b/distro-packages/Arch-Linux/skald-git/PKGBUILD index 984777c..4d41677 100644 --- a/distro-packages/Arch-Linux/skald-git/PKGBUILD +++ b/distro-packages/Arch-Linux/skald-git/PKGBUILD @@ -2,7 +2,7 @@ # shellcheck shell=bash disable=SC2034,SC2154 pkgname=skald-git -pkgver=0.0.0.r1551.g4e210db +pkgver=0.0.0.r1552.ge31bffd pkgrel=1 pkgdesc='Audio-only hall-based conferencing server' arch=('x86_64' 'aarch64') diff --git a/skald.md b/skald.md index b5abbcf..17aaf7d 100644 --- a/skald.md +++ b/skald.md @@ -62,9 +62,9 @@ that apply to the hall as a whole. Clicking on a different user opens a *user menu*, a menu that applies to that specific user. For operators who are allowed to record, the hall menu includes the current -recording control and an *Open recordings* action. *Open recordings* opens -the hall's recording archive, which lists completed recordings when there -are multiple files. +recording control and an *Open recordings (opens in new tab)* action. *Open +recordings (opens in new tab)* opens the hall's recording archive in a new tab, +which lists completed recordings when there are multiple files. ### Chat pane diff --git a/static/skald.js b/static/skald.js index c94d66d..e4049a2 100644 --- a/static/skald.js +++ b/static/skald.js @@ -1794,8 +1794,8 @@ function userMenu(elt) { onClick: () => { serverConnection.hallAction(hallRecording ? 'unrecord' : 'record'); }}); - items.push({label: 'Open recordings', onClick: () => { - window.location.href = recordingsUrl(); + items.push({label: 'Open recordings (opens in new tab)', onClick: () => { + window.open(recordingsUrl(), '_blank', 'noopener'); }}); } if(findUpMedia('audio')) diff --git a/webserver/static_accessibility_test.go b/webserver/static_accessibility_test.go index f385ee1..f398f23 100644 --- a/webserver/static_accessibility_test.go +++ b/webserver/static_accessibility_test.go @@ -116,6 +116,6 @@ func TestRecordingControlLivesInSelfMenu(t *testing.T) { requireFunctionContains(t, js, "userMenu", "if(canRecordHall())") requireFunctionContains(t, js, "userMenu", "hallRecording ? 'Stop recording' : 'Start recording'") requireFunctionContains(t, js, "userMenu", "serverConnection.hallAction(hallRecording ? 'unrecord' : 'record')") - requireFunctionContains(t, js, "userMenu", "Open recordings") - requireFunctionContains(t, js, "userMenu", "window.location.href = recordingsUrl()") + requireFunctionContains(t, js, "userMenu", "Open recordings (opens in new tab)") + requireFunctionContains(t, js, "userMenu", "window.open(recordingsUrl(), '_blank', 'noopener')") }