): JSX.Element {
)
const hideRundownHeader = params['hideRundownHeader'] === '1'
+ const lockView = props.inActiveRundownView && params['lockView'] === '1'
return (
): JSX.Element {
uiSegmentMap={miniShelfData.uiSegmentMap}
miniShelfFilter={miniShelfData.miniShelfFilter}
hideRundownHeader={hideRundownHeader}
+ lockView={lockView}
/>
)
@@ -323,6 +325,7 @@ interface IPropsWithReady extends IProps {
subsReady: boolean
userPermissions: Readonly
hideRundownHeader?: boolean
+ lockView?: boolean
}
interface IRundownViewContentSnapshot {
@@ -1410,6 +1413,7 @@ const RundownViewContent = translateWithTracker
)}
@@ -1516,7 +1520,7 @@ const RundownViewContent = translateWithTracker
{this.props.userPermissions.studio && (
)}
diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownContextMenu.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownContextMenu.tsx
index 137bad1312b..96ad5a138f3 100644
--- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownContextMenu.tsx
+++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownContextMenu.tsx
@@ -26,6 +26,7 @@ interface RundownContextMenuProps {
playlist: DBRundownPlaylist
studio: UIStudio
firstRundown: Rundown | undefined
+ lockView?: boolean
onShow?: () => void
onHide?: () => void
}
@@ -39,6 +40,7 @@ export function RundownContextMenu({
playlist,
studio,
firstRundown,
+ lockView,
onShow,
onHide,
}: Readonly): JSX.Element {
@@ -133,8 +135,12 @@ export function RundownContextMenu({
})}
-
-
+ {!lockView && (
+ <>
+
+
+ >
+ )}
) : (
diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss
index 41ab77e042e..0ed5bea2101 100644
--- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss
+++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.scss
@@ -536,6 +536,11 @@
flex-shrink: 0;
transition: opacity 0.2s;
+ &--placeholder {
+ visibility: hidden;
+ pointer-events: none;
+ }
+
svg,
i {
filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0));
@@ -578,7 +583,7 @@
color: #fff;
}
- .rundown-header__close-btn {
+ .rundown-header__close-btn:not(.rundown-header__close-btn--placeholder) {
opacity: 1;
}
diff --git a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.tsx b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.tsx
index dc7414a8d0e..8f3f5539ec7 100644
--- a/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.tsx
+++ b/packages/webui/src/client/ui/RundownView/RundownHeader/RundownHeader.tsx
@@ -27,6 +27,7 @@ interface IRundownHeaderProps {
studio: UIStudio
firstRundown: Rundown | undefined
rundownCount: number
+ lockView?: boolean
}
export function RundownHeader({
@@ -35,6 +36,7 @@ export function RundownHeader({
firstRundown,
currentRundown,
rundownCount,
+ lockView,
}: IRundownHeaderProps): JSX.Element {
const { t } = useTranslation()
const timingDurations = useTiming()
@@ -80,6 +82,7 @@ export function RundownHeader({
playlist={playlist}
studio={studio}
firstRundown={firstRundown}
+ lockView={lockView}
onShow={() => setIsContextMenuOpen(true)}
onHide={() => {
setIsMenuOpen(false)
@@ -157,9 +160,15 @@ export function RundownHeader({
-
-
-
+ {lockView ? (
+
+
+
+ ) : (
+
+
+
+ )}