Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ import { PassageTypeEnum } from '../../../model/passageType';
import { VertListDnd } from '../../../hoc/VertListDnd';
import usePassageDetailContext from '../../../context/usePassageDetailContext';
import { LaunchLink } from '../../../control/LaunchLink';
import {
getProjectResourceAssignments,
removeUnselectedProjectResourceAssignments,
} from './projectResourceAssignments';
import FindTabs from './FindTabs';
import { storedCompareKey } from '../../../utils/storedCompareKey';
import { mediaContentType } from '../../../utils/contentType';
Expand Down Expand Up @@ -384,12 +388,22 @@ export function PassageDetailArtifacts() {
const mf = mediafiles.find((m) => m.id === related(secRes, 'mediafile')) as
| MediaFileD
| undefined;
const sourceMedia = mediafiles.find(
(m) => m.id === related(mf, 'sourceMedia')
);
const projectMedia =
mf && related(mf, 'artifactType') === projResourceType
? mf
: sourceMedia &&
related(sourceMedia, 'artifactType') === projResourceType
? sourceMedia
: undefined;
// General (project) resources are reconfigured through the wizard, not the
// simple edit dialog (mockup: "use Edit to also configure the General Resource").
if (mf && related(mf, 'artifactType') === projResourceType) {
if (projectMedia) {
resourceTypeRef.current = ResourceTypeEnum.projectResource;
isAddingAudioResourceRef.current = false;
handleSelectProjectResource(mf);
handleSelectProjectResource(projectMedia);
return;
}
setEditResource(secRes);
Expand Down Expand Up @@ -768,6 +782,13 @@ export function PassageDetailArtifacts() {
cnt += 1;
setComplete(Math.min((cnt * 100) / total, 100));
}
await removeUnselectedProjectResourceAssignments({
memory,
sourceMedia: projMediaRef.current,
selectedItems: items,
mediafiles,
sectionResources,
});
// Ensure setComplete(0) is always called after processing
setComplete(0);
};
Expand Down Expand Up @@ -1045,12 +1066,17 @@ export function PassageDetailArtifacts() {
isOpen={projResPassageVisible}
onOpen={handleProjResPassageVisible}
disableBackdropClose
showTopCloseButton={false}
>
{projResPassageVisible ? (
<SelectSections
title={mediaFileName(projMediaRef.current) ?? ''}
visual={visual}
initialItems={getProjectResourceAssignments(
projMediaRef.current,
mediafiles,
sectionResources
)}
onSelect={handleSelectProjectResourcePassage}
onCancel={() => handleProjResPassageVisible(false)}
/>
) : (
<></>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ import { VertListDnd } from '../../../hoc/VertListDnd';
import usePassageDetailContext from '../../../context/usePassageDetailContext';
import { LaunchLink } from '../../../control/LaunchLink';
import FindTabs from './FindTabs';
import {
getProjectResourceAssignments,
removeUnselectedProjectResourceAssignments,
} from './projectResourceAssignments';
import { storedCompareKey } from '../../../utils/storedCompareKey';
import { mediaContentType } from '../../../utils/contentType';
import { useStepPermissions } from '../../../utils/useStepPermission';
Expand Down Expand Up @@ -381,12 +385,22 @@ export function PassageDetailArtifactsMobile() {
const mf = mediafiles.find((m) => m.id === related(secRes, 'mediafile')) as
| MediaFileD
| undefined;
const sourceMedia = mediafiles.find(
(m) => m.id === related(mf, 'sourceMedia')
);
const projectMedia =
mf && related(mf, 'artifactType') === projResourceType
? mf
: sourceMedia &&
related(sourceMedia, 'artifactType') === projResourceType
? sourceMedia
: undefined;
// General (project) resources are reconfigured through the wizard, not the
// simple edit dialog (mockup: "use Edit to also configure the General Resource").
if (mf && related(mf, 'artifactType') === projResourceType) {
if (projectMedia) {
resourceTypeRef.current = ResourceTypeEnum.projectResource;
isAddingAudioResourceRef.current = false;
handleSelectProjectResource(mf);
handleSelectProjectResource(projectMedia);
return;
}
setEditResource(secRes);
Expand Down Expand Up @@ -755,6 +769,13 @@ export function PassageDetailArtifactsMobile() {
cnt += 1;
setComplete(Math.min((cnt * 100) / total, 100));
}
await removeUnselectedProjectResourceAssignments({
memory,
sourceMedia: projMediaRef.current,
selectedItems: items,
mediafiles,
sectionResources,
});
// Ensure setComplete(0) is always called after processing
setComplete(0);
};
Expand Down Expand Up @@ -1053,12 +1074,17 @@ export function PassageDetailArtifactsMobile() {
isOpen={projResPassageVisible}
onOpen={handleProjResPassageVisible}
disableBackdropClose
showTopCloseButton={false}
>
{projResPassageVisible ? (
<SelectSections
title={mediaFileName(projMediaRef.current) ?? ''}
visual={visual}
initialItems={getProjectResourceAssignments(
projMediaRef.current,
mediafiles,
sectionResources
)}
onSelect={handleSelectProjectResourcePassage}
onCancel={() => handleProjResPassageVisible(false)}
/>
) : (
<></>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ import {
import { RecordIdentity, RecordTransformBuilder } from '@orbit/records';
import { useOrbitData } from '../../../hoc/useOrbitData';
import Confirm from '../../AlertDialog';
import { removeUnselectedProjectResourceAssignments } from './projectResourceAssignments';

const NotTable = 420;

Expand Down Expand Up @@ -267,6 +268,13 @@ export const ProjectResourceConfigure = (props: IProps) => {
}
setComplete(Math.min((ix * 100) / total, 100));
}
await removeUnselectedProjectResourceAssignments({
memory,
sourceMedia: media,
selectedItems: items,
mediafiles,
sectionResources,
});
projectSegmentSave({
media,
segments: updateSegments(
Expand Down
Loading
Loading