diff --git a/src/components/events/partials/ModalTabsAndPages/NewMetadataPage.tsx b/src/components/events/partials/ModalTabsAndPages/NewMetadataPage.tsx
index 064bea4495..fbe3467f8e 100644
--- a/src/components/events/partials/ModalTabsAndPages/NewMetadataPage.tsx
+++ b/src/components/events/partials/ModalTabsAndPages/NewMetadataPage.tsx
@@ -57,13 +57,13 @@ const NewMetadataPage = ({
{field.type === "mixed_text" &&
field.collection?.length !== 0 ? (
) : (
({
@@ -75,7 +75,7 @@ const NewEventSummary = ({
value: File,
}[] = [];
for (let i = 0; uploadAssetOptions.length > i; i++) {
- const fieldValue = formik.values[uploadAssetOptions[i].id] as File;
+ const fieldValue = formik.values.metadata[uploadAssetOptions[i].id] as File;
if (fieldValue) {
const displayOverride = uploadAssetOptions[i].displayOverride as ParseKeys;
setUploadAssetsNonTrack(uploadAssetsNonTrack.concat({
@@ -104,7 +104,7 @@ const NewEventSummary = ({
@@ -113,7 +113,7 @@ const NewEventSummary = ({
)}
diff --git a/src/components/events/partials/wizards/NewEventWizard.tsx b/src/components/events/partials/wizards/NewEventWizard.tsx
index 98c9bc3173..c4c8af6be9 100644
--- a/src/components/events/partials/wizards/NewEventWizard.tsx
+++ b/src/components/events/partials/wizards/NewEventWizard.tsx
@@ -269,15 +269,15 @@ const getInitialValues = (
aclDefaultActions?: string[],
aclDefaultTemplate?: AclTemplate,
) => {
- let initialValues = initialFormValuesNewEvents;
+ const initialValues = initialFormValuesNewEvents;
// Transform metadata fields provided by backend (saved in redux)
- initialValues = { ...initialValues, ...getInitialMetadataFieldValues(
+ initialValues.metadata = { ...initialValues.metadata, ...getInitialMetadataFieldValues(
metadataFields,
) };
for (const catalog of extendedMetadata) {
- initialValues = { ...initialValues, ...getInitialMetadataFieldValues(
+ initialValues.metadata = { ...initialValues.metadata, ...getInitialMetadataFieldValues(
catalog,
) };
}
@@ -290,17 +290,17 @@ const getInitialValues = (
// Transform additional metadata for source (provided by constant in newEventConfig)
if (sourceMetadata.UPLOAD) {
sourceMetadata.UPLOAD.metadata.forEach(field => {
- initialValues[field.id] = field.value;
+ initialValues.metadata[field.id] = field.value;
});
}
if (sourceMetadata.SCHEDULE_SINGLE) {
sourceMetadata.SCHEDULE_SINGLE.metadata.forEach(field => {
- initialValues[field.id] = field.value;
+ initialValues.metadata[field.id] = field.value;
});
}
if (sourceMetadata.SCHEDULE_MULTIPLE) {
sourceMetadata.SCHEDULE_MULTIPLE.metadata.forEach(field => {
- initialValues[field.id] = field.value;
+ initialValues.metadata[field.id] = field.value;
});
}
@@ -318,11 +318,6 @@ const getInitialValues = (
};
}
- // Add all initial form values known upfront listed in newEventsConfig
- for (const [key, value] of Object.entries(initialFormValuesNewEvents)) {
- initialValues[key] = value;
- }
-
const defaultDate = new Date();
// fill times with some default values
diff --git a/src/components/events/partials/wizards/NewSeriesSummary.tsx b/src/components/events/partials/wizards/NewSeriesSummary.tsx
index a785d63805..1c940eb4df 100644
--- a/src/components/events/partials/wizards/NewSeriesSummary.tsx
+++ b/src/components/events/partials/wizards/NewSeriesSummary.tsx
@@ -20,6 +20,7 @@ interface RequiredFormProps {
theme: string,
policies: TransformedAcl[],
selectedPage?: TobiraPage,
+ metadata: { [key: string]: unknown }
}
const NewSeriesSummary = ({
@@ -47,7 +48,7 @@ const NewSeriesSummary = ({
@@ -56,8 +57,7 @@ const NewSeriesSummary = ({
) : null}
diff --git a/src/components/events/partials/wizards/NewSeriesWizard.tsx b/src/components/events/partials/wizards/NewSeriesWizard.tsx
index 67a6e131f7..1879fe6071 100644
--- a/src/components/events/partials/wizards/NewSeriesWizard.tsx
+++ b/src/components/events/partials/wizards/NewSeriesWizard.tsx
@@ -142,7 +142,7 @@ const NewSeriesWizard = ({
const handleSubmit = (
values:
{
- [key: string]: any;
+ metadata: { [key: string]: unknown }
policies: TransformedAcl[];
theme: string;
},
@@ -247,7 +247,7 @@ const getInitialValues = (
aclDefaultActions: string[],
aclDefaultTemplate?: AclTemplate,
) => {
- let initialValues = initialFormValuesNewSeries;
+ const initialValues = initialFormValuesNewSeries;
// Transform metadata fields provided by backend (saved in redux)
let metadataInitialValues = getInitialMetadataFieldValues(
@@ -260,7 +260,7 @@ const getInitialValues = (
) };
}
- initialValues = { ...initialValues, ...metadataInitialValues };
+ initialValues.metadata = { ...initialValues, ...metadataInitialValues };
initialValues["policies"] = [
{
diff --git a/src/configs/modalConfig.ts b/src/configs/modalConfig.ts
index d31ae4a1bd..b1c9cf6ed9 100644
--- a/src/configs/modalConfig.ts
+++ b/src/configs/modalConfig.ts
@@ -34,7 +34,7 @@ export const initialFormValuesNewEvents: {
aclTemplate: string,
policies: TransformedAcl[],
uploadAssetsTrack?: UploadAssetsTrack[]
- [key: string]: unknown, // Metadata fields that are getting added later
+ metadata: { [key: string]: unknown }
} = {
sourceMode: "UPLOAD",
scheduleStartDate: new Date().toISOString(),
@@ -52,6 +52,7 @@ export const initialFormValuesNewEvents: {
configuration: {},
aclTemplate: "",
policies: [],
+ metadata: {},
};
// constants for hours and minutes (used in selection for start/end time and duration)
@@ -104,7 +105,8 @@ export const initialFormValuesNewSeries: {
breadcrumbs: TobiraPage[],
selectedPage?: TobiraPage,
- [key: string]: unknown, // Metadata fields that are getting added later
+ aclTemplate?: string,
+ metadata: { [key: string]: unknown }
} = {
policies: [
{
@@ -117,6 +119,7 @@ export const initialFormValuesNewSeries: {
theme: "",
breadcrumbs: [],
selectedPage: undefined,
+ metadata: {},
};
// All fields for new theme form that are fix and not depending on response of backend
diff --git a/src/slices/eventSlice.ts b/src/slices/eventSlice.ts
index baa4a318bc..c9dea803a8 100644
--- a/src/slices/eventSlice.ts
+++ b/src/slices/eventSlice.ts
@@ -450,7 +450,7 @@ export const postNewEvent = (params: {
scheduleStartMinute: string,
sourceMode: string,
uploadAssetsTrack?: UploadAssetsTrack[],
- [key: string]: unknown,
+ metadata: { [key: string]: unknown },
},
metadataInfo: MetadataCatalog,
extendedMetadata: MetadataCatalog[],
@@ -477,11 +477,11 @@ export const postNewEvent = (params: {
// prepare metadata provided by user
const metadata = prepareMetadataFieldsForPost(
[metadataInfo],
- values,
+ values.metadata,
);
const extendedMetadataCatalogs = prepareMetadataFieldsForPost(
extendedMetadata,
- values,
+ values.metadata,
);
// if source mode is UPLOAD than also put metadata fields of that in metadataFields
@@ -494,7 +494,7 @@ export const postNewEvent = (params: {
for (const smetadata of sourceMetadata.UPLOAD.metadata) {
metadata[0].fields = metadata[0].fields.concat({
id: smetadata.id,
- value: values[smetadata.id],
+ value: values.metadata[smetadata.id],
type: smetadata.type,
});
}
@@ -542,7 +542,7 @@ export const postNewEvent = (params: {
type: values.sourceMode,
metadata: {
start: startDate,
- device: values.location,
+ device: values.metadata.location,
inputs: values.inputs ? values.inputs.join(",") : "",
end: endDate,
duration: duration.toString(),
@@ -596,12 +596,12 @@ export const postNewEvent = (params: {
}
for (let i = 0; uploadAssetOptions.length > i; i++) {
if (
- !!values[uploadAssetOptions[i].id] &&
+ !!values.metadata[uploadAssetOptions[i].id] &&
values.sourceMode === "UPLOAD"
) {
formData.append(
uploadAssetOptions[i].id + ".0",
- values[uploadAssetOptions[i].id] as File,
+ values.metadata[uploadAssetOptions[i].id] as File,
);
assets.options = assets.options.concat(uploadAssetOptions[i]);
}
diff --git a/src/slices/seriesSlice.ts b/src/slices/seriesSlice.ts
index aaeeb5b544..9d5725c624 100644
--- a/src/slices/seriesSlice.ts
+++ b/src/slices/seriesSlice.ts
@@ -184,7 +184,6 @@ export const fetchSeriesThemes = createAppAsyncThunk("series/fetchSeriesThemes",
// post new series to backend
export const postNewSeries = (params: {
values: {
- [key: string]: any;
policies: TransformedAcl[],
// contributor: string[],
// creator: string[],
@@ -198,6 +197,7 @@ export const postNewSeries = (params: {
// title: string,
selectedPage?: TobiraPage,
breadcrumbs?: TobiraPage[],
+ metadata: { [key: string]: unknown }
},
metadataInfo: MetadataCatalog,
extendedMetadata: MetadataCatalog[]
@@ -207,11 +207,11 @@ export const postNewSeries = (params: {
// prepare metadata provided by user
const metadata = prepareMetadataFieldsForPost(
[metadataInfo],
- values,
+ values.metadata,
);
const extendedMetadataCatalogs = prepareMetadataFieldsForPost(
extendedMetadata,
- values,
+ values.metadata,
);
// metadata for post request
diff --git a/src/utils/validate.ts b/src/utils/validate.ts
index 15ce8cbdf6..9ef13471b9 100644
--- a/src/utils/validate.ts
+++ b/src/utils/validate.ts
@@ -68,7 +68,10 @@ export const MetadataSchema = (catalog: MetadataCatalog) => {
for (const [key, value] of Object.entries(schema)) {
schemaKeyReplace[catalog.flavor + "_" + key] = value;
}
- const validateSchema = Yup.object().shape(schemaKeyReplace);
+
+ const validateSchema = Yup.object({
+ metadata: Yup.object(schemaKeyReplace),
+ });
return validateSchema;
};