Skip to content

Commit fcf6484

Browse files
committed
All metadata should be in the metadata step of the add event wizard
The “source” step of the add event wizard also contains metadata. This doesn't really make sense since there is a whole step dedicated to metadata. We should move “Start date” in there. - The problem: This field should only be shown for a file upload. Not for a scheduled event. - The solution: Make “Source” step 1 and metadata step 2. We then know if we need a start date once we are in the metadata tab. This fixes #487
1 parent 77cb35e commit fcf6484

File tree

4 files changed

+56
-58
lines changed

4 files changed

+56
-58
lines changed

src/components/events/partials/ModalTabsAndPages/NewMetadataPage.tsx

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@ import RenderField from "../../../shared/wizard/RenderField";
55
import WizardNavigationButtons from "../../../shared/wizard/WizardNavigationButtons";
66
import RenderMultiField from "../../../shared/wizard/RenderMultiField";
77
import { MetadataCatalog } from "../../../../slices/eventSlice";
8+
import { sourceMetadata } from "../../../../configs/sourceConfig";
89

910
/**
1011
* This component renders the metadata page for new events and series in the wizards.
1112
*/
1213
const NewMetadataPage = <T,>({
1314
formik,
15+
previousPage,
1416
nextPage,
1517
metadataFields,
1618
header
1719
}: {
1820
formik: FormikProps<T>,
21+
previousPage: (values: T, twoPagesBack?: boolean) => void,
1922
nextPage: (values: T) => void,
2023
metadataFields: MetadataCatalog,
2124
header: string
@@ -67,12 +70,41 @@ const NewMetadataPage = <T,>({
6770
</table>
6871
</div>
6972
</div>
73+
{formik.values.sourceMode === "UPLOAD" && (
74+
<div className="obj list-obj">
75+
<header className="no-expand">
76+
{t("EVENTS.EVENTS.NEW.SOURCE.UPLOAD.RECORDING_METADATA")}
77+
</header>
78+
<div className="obj-container">
79+
<table className="main-tbl">
80+
<tbody>
81+
{/* One row for each metadata field*/}
82+
{sourceMetadata.UPLOAD && sourceMetadata.UPLOAD.metadata.map((field, key) => (
83+
<tr key={key}>
84+
<td>
85+
<span>{t(field.label)}</span>
86+
{field.required && <i className="required">*</i>}
87+
</td>
88+
<td className="editable">
89+
<Field
90+
name={field.id}
91+
metadataField={field}
92+
component={RenderField}
93+
/>
94+
</td>
95+
</tr>
96+
))}
97+
</tbody>
98+
</table>
99+
</div>
100+
</div>
101+
)}
70102
</div>
71103
</div>
72104
</div>
73105

74106
{/* Button for navigation to next page */}
75-
<WizardNavigationButtons isFirst formik={formik} nextPage={nextPage} />
107+
<WizardNavigationButtons formik={formik} previousPage={previousPage} nextPage={nextPage} />
76108
</>
77109
);
78110
};

src/components/events/partials/ModalTabsAndPages/NewSourcePage.tsx

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
import { Field, FieldArray, FormikProps } from "formik";
1212
import RenderField from "../../../shared/wizard/RenderField";
1313
import { getRecordings } from "../../../../selectors/recordingSelectors";
14-
import { sourceMetadata } from "../../../../configs/sourceConfig";
1514
import { hours, minutes, weekdays } from "../../../../configs/modalConfig";
1615
import { getUserInformation } from "../../../../selectors/userInfoSelectors";
1716
import {
@@ -84,6 +83,7 @@ const NewSourcePage = <T extends RequiredFormProps>({
8483
dispatch(fetchRecordings("inputs"));
8584

8685
// validate form because dependent default values need to be checked
86+
console.info(formik);
8787
formik.validateForm().then((r) => console.info(r));
8888
// eslint-disable-next-line react-hooks/exhaustive-deps
8989
}, []);
@@ -246,13 +246,6 @@ const NewSourcePage = <T extends RequiredFormProps>({
246246
>
247247
{t("WIZARD.NEXT_STEP")}
248248
</button>
249-
<button
250-
className="cancel"
251-
onClick={() => previousPage(formik.values, false)}
252-
tabIndex={101}
253-
>
254-
{t("WIZARD.BACK")}
255-
</button>
256249
</footer>
257250

258251
<div className="btm-spacer" />
@@ -343,33 +336,6 @@ const Upload = ({ formik }) => {
343336
</table>
344337
</div>
345338
</div>
346-
<div className="obj list-obj">
347-
<header className="no-expand">
348-
{t("EVENTS.EVENTS.NEW.SOURCE.UPLOAD.RECORDING_METADATA")}
349-
</header>
350-
<div className="obj-container">
351-
<table className="main-tbl">
352-
<tbody>
353-
{/* One row for each metadata field*/}
354-
{sourceMetadata.UPLOAD && sourceMetadata.UPLOAD.metadata.map((field, key) => (
355-
<tr key={key}>
356-
<td>
357-
<span>{t(field.label)}</span>
358-
{field.required && <i className="required">*</i>}
359-
</td>
360-
<td className="editable">
361-
<Field
362-
name={field.id}
363-
metadataField={field}
364-
component={RenderField}
365-
/>
366-
</td>
367-
</tr>
368-
))}
369-
</tbody>
370-
</table>
371-
</div>
372-
</div>
373339
</>
374340
);
375341
};

src/components/events/partials/wizards/NewEventWizard.tsx

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,6 @@ const NewEventWizard: React.FC<{
5050

5151
// Caption of steps used by Stepper
5252
const steps = [
53-
{
54-
translation: "EVENTS.EVENTS.NEW.METADATA.CAPTION",
55-
name: "metadata",
56-
hidden: false,
57-
},
58-
{
59-
translation: "EVENTS.EVENTS.DETAILS.TABS.EXTENDED-METADATA",
60-
name: "metadata-extended",
61-
hidden: !(!!extendedMetadata && extendedMetadata.length > 0),
62-
},
6353
{
6454
translation: "EVENTS.EVENTS.NEW.SOURCE.CAPTION",
6555
name: "source",
@@ -72,6 +62,16 @@ const NewEventWizard: React.FC<{
7262
uploadAssetOptions.filter((asset) => asset.type !== "track").length ===
7363
0,
7464
},
65+
{
66+
translation: "EVENTS.EVENTS.NEW.METADATA.CAPTION",
67+
name: "metadata",
68+
hidden: false,
69+
},
70+
{
71+
translation: "EVENTS.EVENTS.DETAILS.TABS.EXTENDED-METADATA",
72+
name: "metadata-extended",
73+
hidden: !(!!extendedMetadata && extendedMetadata.length > 0),
74+
},
7575
{
7676
translation: "EVENTS.EVENTS.NEW.PROCESSING.CAPTION",
7777
name: "processing",
@@ -151,33 +151,33 @@ const NewEventWizard: React.FC<{
151151
/>
152152
<div>
153153
{page === 0 && (
154-
<NewMetadataPage
154+
<NewSourcePage
155155
nextPage={nextPage}
156156
formik={formik}
157-
metadataFields={metadataFields}
158-
header={steps[page].translation}
159157
/>
160158
)}
161159
{page === 1 && (
162-
<NewMetadataExtendedPage
160+
<NewAssetUploadPage
163161
previousPage={previousPage}
164162
nextPage={nextPage}
165163
formik={formik}
166-
extendedMetadataFields={extendedMetadata}
167164
/>
168165
)}
169166
{page === 2 && (
170-
<NewSourcePage
167+
<NewMetadataPage
171168
previousPage={previousPage}
172169
nextPage={nextPage}
173170
formik={formik}
171+
metadataFields={metadataFields}
172+
header={steps[page].translation}
174173
/>
175174
)}
176175
{page === 3 && (
177-
<NewAssetUploadPage
176+
<NewMetadataExtendedPage
178177
previousPage={previousPage}
179178
nextPage={nextPage}
180179
formik={formik}
180+
extendedMetadataFields={extendedMetadata}
181181
/>
182182
)}
183183
{page === 4 && (

src/utils/validate.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ today.setHours(0, 0, 0, 0);
99

1010
// Validation Schema used in new event wizard (each step has its own yup validation object)
1111
export const NewEventSchema = [
12-
Yup.object().shape({
13-
title: Yup.string().required("Required"),
14-
}),
15-
Yup.object().shape({}),
1612
Yup.object().shape({
1713
uploadAssetsTrack: Yup.array().when("sourceMode", {
1814
// @ts-expect-error TS(7006): Parameter 'value' implicitly has an 'any' type.
@@ -84,7 +80,11 @@ export const NewEventSchema = [
8480
}),
8581
}),
8682
Yup.object().shape({
87-
processingWorkflow: Yup.string().required("Required"),
83+
title: Yup.string().required("Title is required"),
84+
}),
85+
Yup.object().shape({}),
86+
Yup.object().shape({
87+
processingWorkflow: Yup.string().required("Workflow is required"),
8888
}),
8989
];
9090

0 commit comments

Comments
 (0)