From a0c8cf663a1a20cb8efe594ff7570635dbdd4b90 Mon Sep 17 00:00:00 2001 From: Alexandre Bourdin Date: Fri, 24 May 2024 10:52:00 +0200 Subject: [PATCH] Merge pull request #18000 from overleaf/ab-dev-enable-toolbar-default [web] Enable the dev-toolbar by default in the dev environment GitOrigin-RevId: 170e59e9b82268e621fe99ffcc82b7d68467e1b3 --- .../Features/SplitTests/SplitTestHandler.js | 10 +++---- .../web/app/views/_mixins/foot_scripts.pug | 2 +- services/web/app/views/layout-base.pug | 2 +- services/web/config/settings.defaults.js | 6 ++-- .../stylesheets/components/dev-toolbar.less | 30 +++++++++++++++++++ .../config/settings.test.defaults.js | 6 ++-- .../src/SplitTests/SplitTestHandlerTests.js | 6 ++-- 7 files changed, 43 insertions(+), 19 deletions(-) diff --git a/services/web/app/src/Features/SplitTests/SplitTestHandler.js b/services/web/app/src/Features/SplitTests/SplitTestHandler.js index 3c4e345c8e..230f88e561 100644 --- a/services/web/app/src/Features/SplitTests/SplitTestHandler.js +++ b/services/web/app/src/Features/SplitTests/SplitTestHandler.js @@ -237,7 +237,7 @@ async function _getAssignment( const splitTest = await _getSplitTest(splitTestName) const currentVersion = SplitTestUtils.getCurrentVersion(splitTest) - if (Settings.splitTest.devToolbar.enabled) { + if (Settings.devToolbar.enabled) { const override = session?.splitTestOverrides?.[splitTestName] if (override) { return _makeAssignment(splitTest, override, currentVersion) @@ -402,7 +402,7 @@ function getPercentile(analyticsId, splitTestName, splitTestPhase) { } function setOverrideInSession(session, splitTestName, variantName) { - if (!Settings.splitTest.devToolbar.enabled) { + if (!Settings.devToolbar.enabled) { return } if (!session.splitTestOverrides) { @@ -477,7 +477,7 @@ async function _loadSplitTestInfoInLocals(locals, splitTestName, session) { const override = session?.splitTestOverrides?.[splitTestName] const currentVersion = SplitTestUtils.getCurrentVersion(splitTest) - if (!currentVersion.active && !Settings.splitTest.devToolbar.enabled) { + if (!currentVersion.active && !Settings.devToolbar.enabled) { return } @@ -486,7 +486,7 @@ async function _loadSplitTestInfoInLocals(locals, splitTestName, session) { phase, badgeInfo: splitTest.badgeInfo?.[phase], } - if (Settings.splitTest.devToolbar.enabled) { + if (Settings.devToolbar.enabled) { info.active = currentVersion.active info.variants = currentVersion.variants.map(variant => ({ name: variant.name, @@ -495,7 +495,7 @@ async function _loadSplitTestInfoInLocals(locals, splitTestName, session) { info.hasOverride = !!override } LocalsHelper.setSplitTestInfo(locals, splitTestName, info) - } else if (Settings.splitTest.devToolbar.enabled) { + } else if (Settings.devToolbar.enabled) { LocalsHelper.setSplitTestInfo(locals, splitTestName, { missing: true, }) diff --git a/services/web/app/views/_mixins/foot_scripts.pug b/services/web/app/views/_mixins/foot_scripts.pug index 57ff265322..c6b65e81c7 100644 --- a/services/web/app/views/_mixins/foot_scripts.pug +++ b/services/web/app/views/_mixins/foot_scripts.pug @@ -1,6 +1,6 @@ mixin foot-scripts() each file in entrypointScripts(entrypoint) script(type="text/javascript", nonce=scriptNonce, src=file, defer=deferScripts) - if (settings.splitTest.devToolbar.enabled) + if (settings.devToolbar.enabled) each file in entrypointScripts("devToolbar") script(type="text/javascript", nonce=scriptNonce, src=file, defer=deferScripts) diff --git a/services/web/app/views/layout-base.pug b/services/web/app/views/layout-base.pug index dbba2aa313..2471639f27 100644 --- a/services/web/app/views/layout-base.pug +++ b/services/web/app/views/layout-base.pug @@ -80,7 +80,7 @@ html( block body - if (settings.splitTest.devToolbar.enabled) + if (settings.devToolbar.enabled) div#dev-toolbar block foot-scripts diff --git a/services/web/config/settings.defaults.js b/services/web/config/settings.defaults.js index d0c80dd274..700567ca2f 100644 --- a/services/web/config/settings.defaults.js +++ b/services/web/config/settings.defaults.js @@ -316,10 +316,8 @@ module.exports = { algorithm: process.env.OT_JWT_AUTH_ALG || 'HS256', }, - splitTest: { - devToolbar: { - enabled: false, - }, + devToolbar: { + enabled: false, }, splitTests: [], diff --git a/services/web/frontend/stylesheets/components/dev-toolbar.less b/services/web/frontend/stylesheets/components/dev-toolbar.less index a504e97efd..5e00528c46 100644 --- a/services/web/frontend/stylesheets/components/dev-toolbar.less +++ b/services/web/frontend/stylesheets/components/dev-toolbar.less @@ -15,6 +15,36 @@ border: none; text-decoration: none; } + + .collapse-button { + position: absolute; + padding: 0; + margin-top: -2px; + color: @neutral-50; + + span { + font-size: 28px; + } + + &:hover { + color: @neutral-30; + } + } +} + +.dev-tool-bar-open-button { + position: fixed; + bottom: -2px; + left: 6px; + color: @neutral-50; + + span { + font-size: 28px; + } + + &:hover { + color: @neutral-30; + } } .dev-toolbar-tooltip { diff --git a/services/web/test/acceptance/config/settings.test.defaults.js b/services/web/test/acceptance/config/settings.test.defaults.js index 17a3361d51..9cd99e3950 100644 --- a/services/web/test/acceptance/config/settings.test.defaults.js +++ b/services/web/test/acceptance/config/settings.test.defaults.js @@ -260,10 +260,8 @@ module.exports = { counterInit: 0, }, - splitTest: { - devToolbar: { - enabled: false, - }, + devToolbar: { + enabled: false, }, } diff --git a/services/web/test/unit/src/SplitTests/SplitTestHandlerTests.js b/services/web/test/unit/src/SplitTests/SplitTestHandlerTests.js index b7458e9c26..220d57d830 100644 --- a/services/web/test/unit/src/SplitTests/SplitTestHandlerTests.js +++ b/services/web/test/unit/src/SplitTests/SplitTestHandlerTests.js @@ -40,10 +40,8 @@ describe('SplitTestHandler', function () { this.Settings = { moduleImportSequence: [], overleaf: {}, - splitTest: { - devToolbar: { - enabled: false, - }, + devToolbar: { + enabled: false, }, } this.AnalyticsManager = {