= {
- width: 45,
- topSrc: 'title',
- bottomSrc: 'lowerMsg',
- topColour: '000000',
- bottomColour: '000000',
- topBg: 'FFF0',
- bottomBg: 'FFF0',
- topSize: 5,
- bottomSize: 4,
- transitionIn: 3,
- transitionOut: 3,
- hold: 3,
- delay: 0,
- key: 'FFF0',
- lineColour: 'FF0000',
-};
-
-/**
- * Utility extract the view options from URL Params
- * the names and fallbacks are manually matched with defaultOptions
- */
-function getOptionsFromParams(searchParams: URLSearchParams): LowerOptions {
- // we manually make an object that matches the key above
- return {
- width: safeParseNumber(searchParams.get('width'), defaultOptions.width),
- topSrc: searchParams.get('top-src') ?? defaultOptions.topSrc,
- bottomSrc: searchParams.get('bottom-src') ?? defaultOptions.bottomSrc,
- topColour: searchParams.get('top-colour') ?? defaultOptions.topColour,
- bottomColour: searchParams.get('bottom-colour') ?? defaultOptions.bottomColour,
- topBg: searchParams.get('top-bg') ?? defaultOptions.topBg,
- bottomBg: searchParams.get('bottom-bg') ?? defaultOptions.bottomBg,
- topSize: safeParseNumber(searchParams.get('top-size'), defaultOptions.topSize),
- bottomSize: safeParseNumber(searchParams.get('bottom-size'), defaultOptions.bottomSize),
- transitionIn: safeParseNumber(searchParams.get('transition-in'), defaultOptions.transitionIn),
- transitionOut: safeParseNumber(searchParams.get('transition-out'), defaultOptions.transitionOut),
- hold: safeParseNumber(searchParams.get('hold'), defaultOptions.hold),
- delay: safeParseNumber(searchParams.get('hold'), defaultOptions.delay),
- key: searchParams.get('key') ?? defaultOptions.key,
- lineColour: searchParams.get('line-colour') ?? defaultOptions.lineColour,
- };
-}
-
-/**
- * Hook exposes the timer view options
- */
-export function useLowerOptions(): LowerOptions {
- const [searchParams] = useSearchParams();
- const options = useMemo(() => getOptionsFromParams(searchParams), [searchParams]);
- return options;
-}
diff --git a/apps/client/src/features/viewers/minimal-timer/MinimalTimer.scss b/apps/client/src/features/viewers/minimal-timer/MinimalTimer.scss
deleted file mode 100644
index 692269bc6..000000000
--- a/apps/client/src/features/viewers/minimal-timer/MinimalTimer.scss
+++ /dev/null
@@ -1,70 +0,0 @@
-@use '../../../theme/viewerDefs' as *;
-
-.minimal-timer {
- margin: 0;
- box-sizing: border-box; /* reset */
- overflow: hidden;
- width: 100%; /* restrict the page width to viewport */
- height: 100vh;
- transition: opacity 0.5s ease-in-out;
-
- background: var(--background-color-override, $viewer-background-color);
- color: var(--color-override, $viewer-color);
- display: grid;
- place-content: center;
-
- &--finished {
- outline: clamp(4px, 1vw, 16px) solid $timer-finished-color;
- outline-offset: calc(clamp(4px, 1vw, 16px) * -1);
- transition: $viewer-transition-time;
- }
-
- .timer {
- opacity: 1;
- font-family: var(--font-family-bold-override, $timer-bold-font-family);
- font-size: 20vw;
- position: relative;
- color: var(--timer-color-override, var(--phase-color));
- transition: $viewer-transition-time;
- transition-property: opacity;
- background-color: transparent;
- letter-spacing: 0.05em;
-
- &--paused {
- opacity: $viewer-opacity-disabled;
- transition: $viewer-transition-time;
- }
-
- &--finished {
- color: $timer-finished-color;
- }
- }
-
- /* =================== OVERLAY ===================*/
-
- .end-message {
- text-align: center;
- font-size: 12vw;
- line-height: 0.9em;
- font-weight: 600;
- color: $timer-finished-color;
- padding: 0;
- }
-
- .logo {
- position: absolute;
- top: 2vw;
- left: 2vw;
- max-width: min(200px, 20vw);
- }
-}
-
-
-/* =================== MOBILE ===================*/
-@media screen and (max-width: 768px) {
- .minimal-timer {
- .logo img {
- height: min(50px, 10vh);
- }
- }
-}
diff --git a/apps/client/src/features/viewers/minimal-timer/MinimalTimer.tsx b/apps/client/src/features/viewers/minimal-timer/MinimalTimer.tsx
deleted file mode 100644
index 85c20e3d6..000000000
--- a/apps/client/src/features/viewers/minimal-timer/MinimalTimer.tsx
+++ /dev/null
@@ -1,185 +0,0 @@
-import { useSearchParams } from 'react-router-dom';
-import { Playback, ProjectData, TimerPhase, TimerType, ViewSettings } from 'ontime-types';
-
-import ViewLogo from '../../../common/components/view-logo/ViewLogo';
-import ViewParamsEditor from '../../../common/components/view-params-editor/ViewParamsEditor';
-import { useWindowTitle } from '../../../common/hooks/useWindowTitle';
-import { ViewExtendedTimer } from '../../../common/models/TimeManager.type';
-import { OverridableOptions } from '../../../common/models/View.types';
-import { useTranslation } from '../../../translation/TranslationProvider';
-import { getFormattedTimer, getTimerByType, isStringBoolean } from '../common/viewUtils';
-
-import { MINIMAL_TIMER_OPTIONS } from './minimalTimer.options';
-
-import './MinimalTimer.scss';
-
-interface MinimalTimerProps {
- general: ProjectData;
- isMirrored: boolean;
- time: ViewExtendedTimer;
- viewSettings: ViewSettings;
-}
-
-export default function MinimalTimer(props: MinimalTimerProps) {
- const { general, isMirrored, time, viewSettings } = props;
- const { getLocalizedString } = useTranslation();
- const [searchParams] = useSearchParams();
-
- useWindowTitle('Minimal Timer');
-
- // TODO: this should be tied to the params
- // USER OPTIONS
- const userOptions: OverridableOptions = {
- size: 1,
- };
-
- // key: string
- // Should be a hex string '#00FF00' with key colour
- const key = searchParams.get('key');
- if (key) {
- userOptions.keyColour = `#${key}`;
- }
-
- // textColour: string
- // Should be a hex string '#ffffff'
- const textColour = searchParams.get('text');
- if (textColour) {
- userOptions.textColour = `#${textColour}`;
- }
-
- // textBackground: string
- // Should be a hex string '#ffffff'
- const textBackground = searchParams.get('textbg');
- if (textBackground) {
- userOptions.textBackground = `#${textBackground}`;
- }
-
- // font: string
- // Should be a string with a font name 'arial'
- const font = searchParams.get('font');
- if (font) {
- userOptions.font = font;
- }
-
- // size: multiplier
- // Should be a number 0.0-n
- const size = searchParams.get('size');
- if (size !== null && typeof size !== 'undefined') {
- if (!Number.isNaN(Number(size))) {
- userOptions.size = Number(size);
- }
- }
-
- // alignX: flex justification
- // start | center | end
- const alignX = searchParams.get('alignx');
- if (alignX) {
- if (alignX === 'start' || alignX === 'center' || alignX === 'end') {
- userOptions.justifyContent = alignX;
- }
- }
-
- // alignX: flex alignment
- // start | center | end
- const alignY = searchParams.get('aligny');
- if (alignY) {
- if (alignY === 'start' || alignY === 'center' || alignY === 'end') {
- userOptions.alignItems = alignY;
- }
- }
-
- // offsetX: position in pixels
- // Should be a number 0 - 1920
- const offsetX = searchParams.get('offsetx');
- if (offsetX) {
- const pixels = Number(offsetX);
- if (!isNaN(pixels)) {
- userOptions.left = `${pixels}px`;
- }
- }
-
- // offsetX: position in pixels
- // Should be a number 0 - 1920
- const offsetY = searchParams.get('offsety');
- if (offsetY) {
- const pixels = Number(offsetY);
- if (!isNaN(pixels)) {
- userOptions.top = `${pixels}px`;
- }
- }
-
- const hideOvertime = searchParams.get('hideovertime');
- userOptions.hideOvertime = isStringBoolean(hideOvertime);
-
- const hideEndMessage = searchParams.get('hideendmessage');
- userOptions.hideEndMessage = isStringBoolean(hideEndMessage);
-
- const hideTimerSeconds = searchParams.get('hideTimerSeconds');
- userOptions.hideTimerSeconds = isStringBoolean(hideTimerSeconds);
-
- const showLeadingZeros = searchParams.get('showLeadingZeros');
- userOptions.removeLeadingZeros = !isStringBoolean(showLeadingZeros);
-
- const timerIsTimeOfDay = time.timerType === TimerType.Clock;
-
- const isPlaying = time.playback !== Playback.Pause;
-
- const shouldShowModifiers = time.timerType === TimerType.CountDown || time.countToEnd;
- const finished = time.phase === TimerPhase.Overtime;
- const showEndMessage = shouldShowModifiers && finished && viewSettings.endMessage && !hideEndMessage;
- const showFinished =
- shouldShowModifiers && finished && !userOptions?.hideOvertime && (shouldShowModifiers || showEndMessage);
-
- const showProgress = time.playback !== Playback.Stop;
- const showWarning = shouldShowModifiers && time.phase === TimerPhase.Warning;
- const showDanger = shouldShowModifiers && time.phase === TimerPhase.Danger;
-
- let timerColor = viewSettings.normalColor;
- if (!timerIsTimeOfDay && showProgress && showWarning) timerColor = viewSettings.warningColor;
- if (!timerIsTimeOfDay && showProgress && showDanger) timerColor = viewSettings.dangerColor;
-
- const stageTimer = getTimerByType(viewSettings.freezeEnd, time);
- const display = getFormattedTimer(stageTimer, time.timerType, getLocalizedString('common.minutes'), {
- removeSeconds: userOptions.hideTimerSeconds,
- removeLeadingZero: userOptions.removeLeadingZeros,
- });
-
- const stageTimerCharacters = display.replace('/:/g', '').length;
-
- const timerFontSize = (89 / (stageTimerCharacters - 1)) * (userOptions.size || 1);
-
- const timerClasses = `timer ${!isPlaying ? 'timer--paused' : ''} ${showFinished ? 'timer--finished' : ''}`;
- const baseClasses = `minimal-timer ${isMirrored ? 'mirror' : ''}`;
- return (
-
- {general?.logo &&
}
-
- {showEndMessage ? (
-
{viewSettings.endMessage}
- ) : (
-
- {display}
-
- )}
-
- );
-}
diff --git a/apps/client/src/features/viewers/minimal-timer/minimalTimer.options.ts b/apps/client/src/features/viewers/minimal-timer/minimalTimer.options.ts
deleted file mode 100644
index 6833a36dd..000000000
--- a/apps/client/src/features/viewers/minimal-timer/minimalTimer.options.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-import { hideTimerSeconds, showLeadingZeros } from '../../../common/components/view-params-editor/common.options';
-import { OptionTitle } from '../../../common/components/view-params-editor/constants';
-import { ViewOption } from '../../../common/components/view-params-editor/viewParams.types';
-
-export const MINIMAL_TIMER_OPTIONS: ViewOption[] = [
- { title: OptionTitle.TimerOptions, collapsible: true, options: [hideTimerSeconds, showLeadingZeros] },
- {
- title: OptionTitle.ElementVisibility,
- collapsible: true,
- options: [
- {
- id: 'hideovertime',
- title: 'Hide Overtime',
- description: 'Whether to suppress overtime styles (red borders and red text)',
- type: 'boolean',
- defaultValue: false,
- },
- {
- id: 'hideendmessage',
- title: 'Hide End Message',
- description: 'Whether to hide end message and continue showing the clock if timer is in overtime',
- type: 'boolean',
- defaultValue: false,
- },
- ],
- },
- {
- title: OptionTitle.StyleOverride,
- collapsible: true,
- options: [
- {
- id: 'key',
- title: 'Key Colour',
- description: 'Background or key colour for entire view. Default: #000000',
- type: 'colour',
- defaultValue: '000000',
- },
- {
- id: 'text',
- title: 'Text Colour',
- description: 'Text colour. Default: #FFFFFF',
- type: 'colour',
- defaultValue: 'FFFFFF',
- },
- {
- id: 'textbg',
- title: 'Text Background',
- description: 'Background colour for timer text. Default: #FFF0 (transparent)',
- type: 'colour',
- defaultValue: 'FFF0',
- },
- {
- id: 'font',
- title: 'Font',
- description: 'Font family, will use the fonts available in the system',
- type: 'string',
- placeholder: 'Arial Black (default)',
- },
- {
- id: 'size',
- title: 'Text Size',
- description: 'Scales the current style (0.5 = 50% 1 = 100% 2 = 200%)',
- type: 'number',
- placeholder: '1 (default)',
- },
- {
- id: 'alignx',
- title: 'Align Horizontal',
- description: 'Moves the horizontally in page to start = left | center | end = right',
- type: 'option',
- values: [
- { value: 'start', label: 'Start' },
- { value: 'center', label: 'Center' },
- { value: 'end', label: 'End' },
- ],
- defaultValue: 'center',
- },
- {
- id: 'offsetx',
- title: 'Offset Horizontal',
- description: 'Offsets the timer horizontal position by a given amount in pixels',
- type: 'number',
- placeholder: '0 (default)',
- },
- {
- id: 'aligny',
- title: 'Align Vertical',
- description: 'Moves the vertically in page to start = left | center | end = right',
- type: 'option',
- values: [
- { value: 'start', label: 'Start' },
- { value: 'center', label: 'Center' },
- { value: 'end', label: 'End' },
- ],
- defaultValue: 'center',
- },
- {
- id: 'offsety',
- title: 'Offset Vertical',
- description: 'Offsets the timer vertical position by a given amount in pixels',
- type: 'number',
- placeholder: '0 (default)',
- },
- ],
- },
-];
diff --git a/apps/client/src/viewerConfig.ts b/apps/client/src/viewerConfig.ts
index f45600ecc..45da1714d 100644
--- a/apps/client/src/viewerConfig.ts
+++ b/apps/client/src/viewerConfig.ts
@@ -2,7 +2,6 @@ export const navigatorConstants = [
{ url: 'timer', label: 'Timer' },
{ url: 'backstage', label: 'Backstage' },
{ url: 'timeline', label: 'Timeline (beta)' },
- { url: 'lower', label: 'Lower Thirds' },
{ url: 'studio', label: 'Studio Clock' },
{ url: 'countdown', label: 'Countdown' },
{ url: 'info', label: 'Project Info' },
diff --git a/apps/client/src/views/ViewLoader.module.scss b/apps/client/src/views/ViewLoader.module.scss
index 28d27cc47..0d00acd37 100644
--- a/apps/client/src/views/ViewLoader.module.scss
+++ b/apps/client/src/views/ViewLoader.module.scss
@@ -1,4 +1,4 @@
-@use '../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
$dot-size: 0.5rem;
$dot-spacing: 1.5rem;
diff --git a/apps/client/src/views/backstage/Backstage.scss b/apps/client/src/views/backstage/Backstage.scss
index 27ccfdbd7..f47645359 100644
--- a/apps/client/src/views/backstage/Backstage.scss
+++ b/apps/client/src/views/backstage/Backstage.scss
@@ -1,4 +1,4 @@
-@use '../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
.backstage {
margin: 0;
diff --git a/apps/client/src/views/common/schedule/Schedule.scss b/apps/client/src/views/common/schedule/Schedule.scss
index 61ca13327..65159b706 100644
--- a/apps/client/src/views/common/schedule/Schedule.scss
+++ b/apps/client/src/views/common/schedule/Schedule.scss
@@ -1,4 +1,4 @@
-@use '../../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
$circle-size: clamp(8px, 0.75vw, 12px);
$indeterminate-width: clamp(32px, 3vw, 48px);
diff --git a/apps/client/src/views/countdown/Countdown.scss b/apps/client/src/views/countdown/Countdown.scss
index 637f1fc3a..ef297fcff 100644
--- a/apps/client/src/views/countdown/Countdown.scss
+++ b/apps/client/src/views/countdown/Countdown.scss
@@ -1,4 +1,4 @@
-@use '../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
$item-height: 3.5rem;
diff --git a/apps/client/src/views/project-info/ProjectInfo.scss b/apps/client/src/views/project-info/ProjectInfo.scss
index eae60edb0..77f8ce0a2 100644
--- a/apps/client/src/views/project-info/ProjectInfo.scss
+++ b/apps/client/src/views/project-info/ProjectInfo.scss
@@ -1,4 +1,4 @@
-@use '../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
.project {
margin: 0;
diff --git a/apps/client/src/views/studio/Studio.scss b/apps/client/src/views/studio/Studio.scss
index e5807e93d..29ffb2a38 100644
--- a/apps/client/src/views/studio/Studio.scss
+++ b/apps/client/src/views/studio/Studio.scss
@@ -1,4 +1,4 @@
-@use '../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
.studio {
margin: 0;
diff --git a/apps/client/src/views/studio/Studio.tsx b/apps/client/src/views/studio/Studio.tsx
index 9841622c0..cb94c5d6a 100644
--- a/apps/client/src/views/studio/Studio.tsx
+++ b/apps/client/src/views/studio/Studio.tsx
@@ -1,3 +1,4 @@
+import { useMemo } from 'react';
import { MessageState, OntimeEvent, ProjectData, Runtime, Settings, ViewSettings } from 'ontime-types';
import ViewLogo from '../../common/components/view-logo/ViewLogo';
@@ -43,7 +44,7 @@ export default function Studio({
// gather option data
const defaultFormat = getDefaultFormat(settings?.timeFormat);
- const studioOptions = getStudioOptions(defaultFormat);
+ const studioOptions = useMemo(() => getStudioOptions(defaultFormat), [defaultFormat]);
return (
diff --git a/apps/client/src/views/studio/StudioClock.scss b/apps/client/src/views/studio/StudioClock.scss
index 10bf95ef1..4075e63a6 100644
--- a/apps/client/src/views/studio/StudioClock.scss
+++ b/apps/client/src/views/studio/StudioClock.scss
@@ -1,4 +1,4 @@
-@use '../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
$studio-red: $red-600;
$studio-idle: $red-1300;
diff --git a/apps/client/src/views/studio/StudioTimers.scss b/apps/client/src/views/studio/StudioTimers.scss
index cd199d91d..121eb8a58 100644
--- a/apps/client/src/views/studio/StudioTimers.scss
+++ b/apps/client/src/views/studio/StudioTimers.scss
@@ -1,4 +1,4 @@
-@use '../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
.studio__timers {
display: flex;
diff --git a/apps/client/src/views/timeline/Timeline.module.scss b/apps/client/src/views/timeline/Timeline.module.scss
index a6bdef718..f3f450eed 100644
--- a/apps/client/src/views/timeline/Timeline.module.scss
+++ b/apps/client/src/views/timeline/Timeline.module.scss
@@ -1,4 +1,4 @@
-@use '../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
$timeline-height: 1rem;
$timeline-color: color-mix(in srgb, transparent 60%, var(--background-color-override, $viewer-background-color));
diff --git a/apps/client/src/views/timeline/TimelinePage.scss b/apps/client/src/views/timeline/TimelinePage.scss
index 709ca5b56..da0f45743 100644
--- a/apps/client/src/views/timeline/TimelinePage.scss
+++ b/apps/client/src/views/timeline/TimelinePage.scss
@@ -1,4 +1,4 @@
-@use '../../theme/viewerDefs' as *;
+@use '@/theme/viewerDefs' as *;
.timeline {
width: 100vw;
diff --git a/apps/electron/src/menu/applicationMenu.js b/apps/electron/src/menu/applicationMenu.js
index 78d3b7bb4..01186e795 100644
--- a/apps/electron/src/menu/applicationMenu.js
+++ b/apps/electron/src/menu/applicationMenu.js
@@ -155,7 +155,6 @@ function makeViewMenu(clientUrl) {
makeItemOpenInBrowser('Timer', `${clientUrl}/timer`),
makeItemOpenInBrowser('Backstage', `${clientUrl}/backstage`),
makeItemOpenInBrowser('Timeline (beta)', `${clientUrl}/timeline`),
- makeItemOpenInBrowser('Lower Thirds', `${clientUrl}/lower`),
makeItemOpenInBrowser('Studio Clock', `${clientUrl}/studio`),
makeItemOpenInBrowser('Countdown', `${clientUrl}/countdown`),
makeItemOpenInBrowser('Project info', `${clientUrl}/info`),
diff --git a/apps/server/src/models/demoProject.ts b/apps/server/src/models/demoProject.ts
index 024a777c7..1a6e2ffda 100644
--- a/apps/server/src/models/demoProject.ts
+++ b/apps/server/src/models/demoProject.ts
@@ -539,7 +539,7 @@ export const demoDb: DatabaseModel = {
{
enabled: true,
alias: 'test',
- pathAndParams: 'lower?bg=ff2&text=f00&size=0.6&transition=5',
+ pathAndParams: 'timer?timerType=clock',
},
],
automation: {
diff --git a/apps/server/src/user/styles/bundledCss.ts b/apps/server/src/user/styles/bundledCss.ts
index e3c9f9702..8d62558f7 100644
--- a/apps/server/src/user/styles/bundledCss.ts
+++ b/apps/server/src/user/styles/bundledCss.ts
@@ -34,9 +34,6 @@ export const defaultCss = `
/** Font used for all text in views */
--font-family-override: 'Open Sans';
- /** Font used for clock in /minimal and /clock views */
- --font-family-bold-override: 'Arial Black';
-
/** Colour used for external message and aux timer in /timer */
--external-color-override: #161616;
@@ -58,15 +55,6 @@ export const defaultCss = `
--studio-active-label: #101010;
--studio-idle-label: #595959;
--studio-overtime: #101010;
-
- /** View specific features: /lower */
- --lowerThird-font-family-override: 'Courier New';
- --lowerThird-top-font-weight-override: bold;
- --lowerThird-bottom-font-weight-override: bold;
- --lowerThird-top-font-style-override: normal;
- --lowerThird-bottom-font-style-override: italic;
- --lowerThird-line-height-override: 1vh;
- --lowerThird-text-align-override: end;
}
/**
diff --git a/apps/server/src/user/styles/override.css b/apps/server/src/user/styles/override.css
index 19af31668..a235a8268 100644
--- a/apps/server/src/user/styles/override.css
+++ b/apps/server/src/user/styles/override.css
@@ -34,9 +34,6 @@
/** Font used for all text in views */
--font-family-override: 'Open Sans';
- /** Font used for clock in /minimal and /clock views */
- --font-family-bold-override: 'Arial Black';
-
/** Colour used for external message and aux timer in /timer */
--external-color-override: #161616;
@@ -58,15 +55,6 @@
--studio-active-label: #101010;
--studio-idle-label: #595959;
--studio-overtime: #101010;
-
- /** View specific features: /lower */
- --lowerThird-font-family-override: 'Courier New';
- --lowerThird-top-font-weight-override: bold;
- --lowerThird-bottom-font-weight-override: bold;
- --lowerThird-top-font-style-override: normal;
- --lowerThird-bottom-font-style-override: italic;
- --lowerThird-line-height-override: 1vh;
- --lowerThird-text-align-override: end;
}
/**
diff --git a/apps/server/test-db/db.json b/apps/server/test-db/db.json
index 7205174cf..915403eaa 100644
--- a/apps/server/test-db/db.json
+++ b/apps/server/test-db/db.json
@@ -487,8 +487,8 @@
"urlPresets": [
{
"enabled": true,
- "alias": "test",
- "pathAndParams": "lower?bg=ff2&text=f00&size=0.6&transition=5"
+ "alias": "clock",
+ "pathAndParams": "timer?timerType=clock"
}
],
"automation": {
diff --git a/e2e/tests/002-view-navigation.spec.ts b/e2e/tests/002-view-navigation.spec.ts
index ba269b2ec..24a8d9daf 100644
--- a/e2e/tests/002-view-navigation.spec.ts
+++ b/e2e/tests/002-view-navigation.spec.ts
@@ -20,14 +20,6 @@ test.describe('test view navigation feature', () => {
await expect(page).toHaveURL('http://localhost:4001/backstage');
});
- test('Lower Thirds', async ({ page }) => {
- await openNavigationMenu(page);
- await page.getByRole('button', { name: 'Lower Thirds' }).click();
- await expect(page).toHaveURL('http://localhost:4001/lower');
- const errorBoundary = page.locator('data-testid=error-container');
- await expect(errorBoundary).toHaveCount(0);
- });
-
test('Studio Clock', async ({ page }) => {
await openNavigationMenu(page);
await page.getByRole('button', { name: 'Studio Clock' }).click();
diff --git a/e2e/tests/features/210-client-remote.spec.ts b/e2e/tests/features/210-client-remote.spec.ts
index dbd403fbf..cc547d152 100644
--- a/e2e/tests/features/210-client-remote.spec.ts
+++ b/e2e/tests/features/210-client-remote.spec.ts
@@ -8,11 +8,11 @@ test('redirect', async ({ context }) => {
await remotePage.goto('http://localhost:4001/timer');
await controllerPage.getByTestId('not-self-redirect').click();
- await controllerPage.getByPlaceholder('minimal?key=0000ffff').click();
- await controllerPage.getByPlaceholder('minimal?key=0000ffff').fill('clock');
+ await controllerPage.getByRole('textbox', { name: 'http://localhost:' }).click();
+ await controllerPage.getByRole('textbox', { name: 'http://localhost:' }).fill('studio');
await controllerPage.getByLabel('Redirect', { exact: true }).click();
- await expect(remotePage.getByTestId('clock-view')).toBeVisible();
+ await expect(remotePage.getByTestId('studio-view')).toBeVisible();
});
test('identify', async ({ context }) => {
diff --git a/e2e/tests/fixtures/e2e-test-db.json b/e2e/tests/fixtures/e2e-test-db.json
index bd4c03224..533697add 100644
--- a/e2e/tests/fixtures/e2e-test-db.json
+++ b/e2e/tests/fixtures/e2e-test-db.json
@@ -504,8 +504,8 @@
"urlPresets": [
{
"enabled": true,
- "alias": "test",
- "pathAndParams": "lower?bg=ff2&text=f00&size=0.6&transition=5"
+ "alias": "clock",
+ "pathAndParams": "timer?timerType=clock"
}
],
"automation": {