Skip to content

Commit a886bc4

Browse files
authored
Merge pull request Sofie-Automation#1309 from bbc/upstream/fix-action-triggers-previews
fix: action trigger settings ui previews
2 parents fa367ed + 005a0e5 commit a886bc4

File tree

9 files changed

+16
-36
lines changed

9 files changed

+16
-36
lines changed

meteor/server/publications/partInstancesUI/publication.ts

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
import {
2-
PartInstanceId,
3-
RundownId,
4-
RundownPlaylistActivationId,
5-
SegmentId,
6-
} from '@sofie-automation/corelib/dist/dataModel/Ids'
1+
import { PartInstanceId, RundownPlaylistActivationId, SegmentId } from '@sofie-automation/corelib/dist/dataModel/Ids'
72
import { check } from 'meteor/check'
83
import {
94
CustomPublishCollection,
@@ -26,7 +21,6 @@ import { RundownsObserver } from '../lib/rundownsObserver'
2621
import { RundownContentObserver } from './rundownContentObserver'
2722
import { protectString } from '@sofie-automation/corelib/dist/protectedString'
2823
import { Match } from '../../lib/check'
29-
import { RundownReadAccess } from '../../security/rundown'
3024
import { DBPartInstance } from '@sofie-automation/corelib/dist/dataModel/PartInstance'
3125
import {
3226
extractRanks,
@@ -37,7 +31,6 @@ import {
3731

3832
interface UIPartInstancesArgs {
3933
readonly playlistActivationId: RundownPlaylistActivationId
40-
readonly rundownIds: RundownId[]
4134
}
4235

4336
export interface UIPartInstancesState {
@@ -205,32 +198,26 @@ export async function manipulateUIPartInstancesPublicationData(
205198
meteorCustomPublish(
206199
MeteorPubSub.uiPartInstances,
207200
CustomCollectionName.UIPartInstances,
208-
async function (pub, rundownIds: RundownId[], playlistActivationId: RundownPlaylistActivationId | null) {
209-
check(rundownIds, [String])
201+
async function (pub, playlistActivationId: RundownPlaylistActivationId | null) {
210202
check(playlistActivationId, Match.Maybe(String))
211203

212204
const credentials = await resolveCredentials({ userId: this.userId, token: undefined })
213205

214-
if (
215-
playlistActivationId &&
216-
(!credentials ||
217-
NoSecurityReadAccess.any() ||
218-
(await RundownReadAccess.rundownContent({ $in: rundownIds }, credentials)))
219-
) {
206+
if (playlistActivationId && (!credentials || NoSecurityReadAccess.any())) {
220207
await setUpCollectionOptimizedObserver<
221208
Omit<DBPartInstance, PartInstanceOmitedFields>,
222209
UIPartInstancesArgs,
223210
UIPartInstancesState,
224211
UIPartInstancesUpdateProps
225212
>(
226-
`pub_${MeteorPubSub.uiPartInstances}_${rundownIds.join(',')}_${playlistActivationId}`,
227-
{ rundownIds, playlistActivationId },
213+
`pub_${MeteorPubSub.uiPartInstances}_${playlistActivationId}`,
214+
{ playlistActivationId },
228215
setupUIPartInstancesPublicationObservers,
229216
manipulateUIPartInstancesPublicationData,
230217
pub
231218
)
232219
} else {
233-
logger.warn(`Pub.uiPartInstances: Not allowed: [${rundownIds.join(',')}] "${playlistActivationId}"`)
220+
logger.warn(`Pub.uiPartInstances: Not allowed:"${playlistActivationId}"`)
234221
}
235222
}
236223
)

meteor/server/publications/partsUI/publication.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,15 +190,15 @@ export async function manipulateUIPartsPublicationData(
190190
meteorCustomPublish(
191191
MeteorPubSub.uiParts,
192192
CustomCollectionName.UIParts,
193-
async function (pub, playlistId: RundownPlaylistId) {
193+
async function (pub, playlistId: RundownPlaylistId | null) {
194194
check(playlistId, String)
195195

196196
const credentials = await resolveCredentials({ userId: this.userId, token: undefined })
197197

198198
if (
199199
!credentials ||
200200
NoSecurityReadAccess.any() ||
201-
(await RundownPlaylistReadAccess.rundownPlaylistContent(playlistId, credentials))
201+
(playlistId && (await RundownPlaylistReadAccess.rundownPlaylistContent(playlistId, credentials)))
202202
) {
203203
await setUpCollectionOptimizedObserver<
204204
Omit<DBPart, PartOmitedFields>,

packages/meteor-lib/src/api/pubsub.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {
22
BucketId,
33
OrganizationId,
44
PartId,
5-
RundownId,
65
RundownPlaylistActivationId,
76
RundownPlaylistId,
87
ShowStyleBaseId,
@@ -247,9 +246,8 @@ export interface MeteorPubSubTypes {
247246
bucketId: BucketId
248247
) => CustomCollectionName.UIBucketContentStatuses
249248
[MeteorPubSub.uiBlueprintUpgradeStatuses]: () => CustomCollectionName.UIBlueprintUpgradeStatuses
250-
[MeteorPubSub.uiParts]: (playlistId: RundownPlaylistId) => CustomCollectionName.UIParts
249+
[MeteorPubSub.uiParts]: (playlistId: RundownPlaylistId | null) => CustomCollectionName.UIParts
251250
[MeteorPubSub.uiPartInstances]: (
252-
rundownIds: RundownId[],
253251
playlistActivationId: RundownPlaylistActivationId | null
254252
) => CustomCollectionName.UIPartInstances
255253
}

packages/webui/src/client/ui/ClockView/CameraScreen/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ export function CameraScreen({ playlist, studioId }: Readonly<IProps>): JSX.Elem
100100
useSubscription(CorelibPubSub.segments, rundownIds, {})
101101

102102
const studioReady = useSubscription(MeteorPubSub.uiStudio, studioId)
103-
useSubscription(MeteorPubSub.uiPartInstances, rundownIds, playlist?.activationId ?? null)
103+
useSubscription(MeteorPubSub.uiPartInstances, playlist?.activationId ?? null)
104104

105105
useSubscription(CorelibPubSub.parts, rundownIds, null)
106106

packages/webui/src/client/ui/ClockView/PresenterScreen.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ export function usePresenterScreenSubscriptions(props: PresenterScreenProps): vo
341341

342342
useSubscription(CorelibPubSub.segments, rundownIds, {})
343343
useSubscription(CorelibPubSub.parts, rundownIds, null)
344-
useSubscription(MeteorPubSub.uiPartInstances, rundownIds, playlist?.activationId ?? null)
344+
useSubscription(MeteorPubSub.uiPartInstances, playlist?.activationId ?? null)
345345
useSubscriptions(
346346
MeteorPubSub.uiShowStyleBase,
347347
showStyleBaseIds.map((id) => [id])

packages/webui/src/client/ui/Prompter/PrompterView.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ function Prompter(props: Readonly<PropsWithChildren<IPrompterProps>>): JSX.Eleme
597597
const rundownIDs = playlist ? RundownPlaylistCollectionUtil.getRundownUnorderedIDs(playlist) : []
598598
useSubscription(CorelibPubSub.segments, rundownIDs, {})
599599
useSubscription(MeteorPubSub.uiParts, props.rundownPlaylistId)
600-
useSubscription(MeteorPubSub.uiPartInstances, rundownIDs, playlist?.activationId ?? null)
600+
useSubscription(MeteorPubSub.uiPartInstances, playlist?.activationId ?? null)
601601
useSubscription(CorelibPubSub.pieces, rundownIDs, null)
602602
useSubscription(CorelibPubSub.pieceInstancesSimple, rundownIDs, null)
603603

packages/webui/src/client/ui/RundownView.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1289,12 +1289,7 @@ export function RundownView(props: Readonly<IProps>): JSX.Element {
12891289
)
12901290
auxSubsReady.push(useSubscriptionIfEnabled(MeteorPubSub.uiParts, rundownIds.length > 0, playlistId))
12911291
auxSubsReady.push(
1292-
useSubscriptionIfEnabled(
1293-
MeteorPubSub.uiPartInstances,
1294-
rundownIds.length > 0,
1295-
rundownIds,
1296-
playlistActivationId ?? null
1297-
)
1292+
useSubscriptionIfEnabled(MeteorPubSub.uiPartInstances, !!playlistActivationId, playlistActivationId ?? null)
12981293
)
12991294

13001295
useTracker(() => {

packages/webui/src/client/ui/Settings/components/triggeredActions/TriggeredActionEntry.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export const TriggeredActionEntry: React.FC<IProps> = React.memo(function Trigge
198198
}
199199
return [] as IWrappedAdLib[]
200200
},
201-
[selected, resolvedActions, sourceLayers],
201+
[selected, resolvedActions, sourceLayers, previewContext],
202202
[] as IWrappedAdLib[]
203203
)
204204

packages/webui/src/client/ui/Settings/components/triggeredActions/TriggeredActionsEditor.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,8 @@ export const TriggeredActionsEditor: React.FC<IProps> = function TriggeredAction
191191
null
192192
)
193193

194-
useSubscription(MeteorPubSub.uiPartInstances, rundown ? [rundown._id] : [], rundownPlaylist?.activationId ?? null)
195-
useSubscription(CorelibPubSub.parts, rundown ? [rundown._id] : [], null)
194+
useSubscription(MeteorPubSub.uiPartInstances, rundownPlaylist?.activationId ?? null)
195+
useSubscription(MeteorPubSub.uiParts, rundownPlaylist?._id ?? null)
196196

197197
const previewContext = useTracker(
198198
() => {

0 commit comments

Comments
 (0)