Skip to content

Commit 3557185

Browse files
committed
Merge branch 'r/19.x' into develop
2 parents 343cc8e + f5fabb3 commit 3557185

31 files changed

Lines changed: 162 additions & 126 deletions

.github/workflows/crowdin-download-translations.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
env:
2727
CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }}
2828
run: |
29-
crowdin download --config .crowdin.yaml -b main
29+
crowdin download --config .crowdin.yaml -b "${GITHUB_REF##*/}"
3030
3131
- name: Add new translations
3232
run: |

src/components/configuration/partials/wizard/NewThemeWizard.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { useEffect } from "react";
21
import { Formik } from "formik";
32
import GeneralPage from "./GeneralPage";
43
import BumperPage from "./BumperPage";
@@ -83,12 +82,6 @@ const NewThemeWizard = ({
8382
>
8483
{/* Render wizard pages depending on current value of page variable */}
8584
{formik => {
86-
// eslint-disable-next-line react-hooks/rules-of-hooks
87-
useEffect(() => {
88-
formik.validateForm();
89-
// eslint-disable-next-line react-hooks/exhaustive-deps
90-
}, [page]);
91-
9285
return (
9386
<>
9487
{/* Stepper that shows each step of wizard as header */}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { loadEventsIntoTable } from "../../../thunks/tableThunks";
2+
import { fetchEvents } from "../../../slices/eventSlice";
3+
import { Event } from "../../../slices/eventSlice";
4+
import FilterCell from "../../shared/FilterCell";
5+
import { useTranslation } from "react-i18next";
6+
import { ParseKeys } from "i18next";
7+
8+
/**
9+
* This component renders the language cells of events in the table view
10+
*/
11+
const EventsLanguageCell = ({
12+
row,
13+
}: {
14+
row: Event
15+
}) => {
16+
const { t } = useTranslation();
17+
18+
return (
19+
<>
20+
{ row.language &&
21+
<FilterCell
22+
resource={"events"}
23+
filterName={"language"}
24+
filterItems={[{
25+
filterValue: row.language,
26+
children: t(row.language_translation_key as ParseKeys),
27+
// cellTooltipText: "EVENTS.EVENTS.TABLE.TOOLTIP.LANGUAGE", // Disabled due to performance concerns
28+
}]}
29+
fetchResource={fetchEvents}
30+
loadResourceIntoTable={loadEventsIntoTable}
31+
/>
32+
}
33+
</>
34+
);
35+
};
36+
37+
export default EventsLanguageCell;

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
fetchRolesWithTarget,
1010
} from "../../../../slices/aclSlice";
1111
import { FormikProps } from "formik";
12-
import { filterRoles, policiesFiltered, rolesFilteredbyPolicies } from "../../../../utils/aclUtils";
12+
import { policiesFiltered, rolesFiltered } from "../../../../utils/aclUtils";
1313
import { useAppDispatch, useAppSelector } from "../../../../store";
1414
import { fetchSeriesDetailsAcls } from "../../../../slices/seriesDetailsSlice";
1515
import { getSeriesDetailsAcl } from "../../../../selectors/seriesDetailsSelectors";
@@ -122,7 +122,7 @@ const NewAccessPage = <T extends RequiredFormProps>({
122122
<AccessPolicyTable
123123
isUserTable={true}
124124
policiesFiltered={policiesFiltered(formik.values.policies, true)}
125-
rolesFilteredbyPolicies={rolesFilteredbyPolicies(roles, formik.values.policies, true)}
125+
rolesFilteredbyPolicies={rolesFiltered(roles, true)}
126126
header={"EVENTS.EVENTS.DETAILS.ACCESS.ACCESS_POLICY.USERS"}
127127
firstColumnHeader={"EVENTS.EVENTS.DETAILS.ACCESS.ACCESS_POLICY.USER"}
128128
createLabel={"EVENTS.EVENTS.DETAILS.ACCESS.ACCESS_POLICY.NEW_USER"}
@@ -139,7 +139,7 @@ const NewAccessPage = <T extends RequiredFormProps>({
139139
<AccessPolicyTable
140140
isUserTable={false}
141141
policiesFiltered={policiesFiltered(formik.values.policies, false)}
142-
rolesFilteredbyPolicies={rolesFilteredbyPolicies(roles, formik.values.policies, false)}
142+
rolesFilteredbyPolicies={rolesFiltered(roles, false)}
143143
header={"USERS.ACLS.NEW.ACCESS.ACCESS_POLICY.NON_USER_ROLES"}
144144
firstColumnHeader={"EVENTS.EVENTS.DETAILS.ACCESS.ACCESS_POLICY.ROLE"}
145145
createLabel={"EVENTS.EVENTS.DETAILS.ACCESS.ACCESS_POLICY.NEW"}
@@ -159,7 +159,7 @@ const NewAccessPage = <T extends RequiredFormProps>({
159159
<AccessPolicyTable
160160
isUserTable={false}
161161
policiesFiltered={formik.values.policies}
162-
rolesFilteredbyPolicies={filterRoles(roles, formik.values.policies)}
162+
rolesFilteredbyPolicies={roles}
163163
firstColumnHeader={"EVENTS.EVENTS.DETAILS.ACCESS.ACCESS_POLICY.ROLE"}
164164
createLabel={"EVENTS.EVENTS.DETAILS.ACCESS.ACCESS_POLICY.NEW"}
165165
formik={formik}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ const NewMetadataPage = ({
5757
{field.type === "mixed_text" &&
5858
field.collection?.length !== 0 ? (
5959
<Field
60-
name={catalog.flavor + "_" + field.id}
60+
name={"metadata" + "." + catalog.flavor + "_" + field.id}
6161
fieldInfo={field}
6262
component={RenderMultiField}
6363
/>
6464
) : (
6565
<Field
66-
name={catalog.flavor + "_" + field.id}
66+
name={"metadata" + "." + catalog.flavor + "_" + field.id}
6767
metadataField={field}
6868
isFirstField={index === 0 && key === 0}
6969
component={RenderField}

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import {
88
import { removeNotificationWizardForm } from "../../../../slices/notificationSlice";
99
import { useAppDispatch, useAppSelector } from "../../../../store";
1010
import { ParseKeys } from "i18next";
11+
import {
12+
getOrgProperties,
13+
} from "../../../../selectors/userInfoSelectors";
1114

1215
/**
1316
* This component manages the access policy tab of the series details modal
@@ -28,6 +31,9 @@ const SeriesDetailsAccessTab = ({
2831
const policies = useAppSelector(state => getSeriesDetailsAcl(state));
2932
const policyTemplateId = useAppSelector(state => getPolicyTemplateId(state));
3033

34+
const orgProperties = useAppSelector(state => getOrgProperties(state));
35+
const overrideEnabled = (orgProperties["admin.series.acl.event.update.mode"] || "optional").toLowerCase() === "optional";
36+
3137
useEffect(() => {
3238
dispatch(removeNotificationWizardForm());
3339
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -54,7 +60,7 @@ const SeriesDetailsAccessTab = ({
5460
viewNonUsersAccessRole={"ROLE_UI_SERIES_DETAILS_ACL_NONUSER_ROLES_VIEW"}
5561
policyChanged={policyChanged}
5662
setPolicyChanged={setPolicyChanged}
57-
withOverrideButton={true}
63+
withOverrideButton={overrideEnabled}
5864
/>
5965
);
6066
};

src/components/events/partials/modals/EditScheduledEventsModal.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,6 @@ const EditScheduledEventsModal = ({
125125
>
126126
{/* Render wizard pages depending on current value of page variable */}
127127
{formik => {
128-
// eslint-disable-next-line react-hooks/rules-of-hooks
129-
useEffect(() => {
130-
formik.validateForm().then();
131-
// eslint-disable-next-line react-hooks/exhaustive-deps
132-
}, [page]);
133-
134128
return (
135129
<>
136130
{/* Stepper that shows each step of wizard as header */}

src/components/events/partials/modals/StartTaskModal.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { useEffect } from "react";
21
import { Formik } from "formik";
32
import { initialFormValuesStartTask } from "../../../../configs/modalConfig";
43
import WizardStepper, { WizardStep } from "../../../shared/wizard/WizardStepper";
@@ -92,12 +91,6 @@ const StartTaskModal = ({
9291
>
9392
{/* Render wizard pages depending on current value of page variable */}
9493
{formik => {
95-
// eslint-disable-next-line react-hooks/rules-of-hooks
96-
useEffect(() => {
97-
formik.validateForm().then();
98-
// eslint-disable-next-line react-hooks/exhaustive-deps
99-
}, [page]);
100-
10194
return (
10295
<>
10396
{/* Stepper that shows each step of wizard as header */}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ interface RequiredFormProps {
3939
configuration: { [key: string]: string }
4040
policies: TransformedAcl[]
4141
uploadAssetsTrack?: UploadAssetsTrack[]
42-
[key: string]: unknown, // Metadata fields
42+
metadata: { [key: string]: unknown }
4343
}
4444

4545
const NewEventSummary = <T extends RequiredFormProps>({
@@ -75,7 +75,7 @@ const NewEventSummary = <T extends RequiredFormProps>({
7575
value: File,
7676
}[] = [];
7777
for (let i = 0; uploadAssetOptions.length > i; i++) {
78-
const fieldValue = formik.values[uploadAssetOptions[i].id] as File;
78+
const fieldValue = formik.values.metadata[uploadAssetOptions[i].id] as File;
7979
if (fieldValue) {
8080
const displayOverride = uploadAssetOptions[i].displayOverride as ParseKeys;
8181
setUploadAssetsNonTrack(uploadAssetsNonTrack.concat({
@@ -104,7 +104,7 @@ const NewEventSummary = <T extends RequiredFormProps>({
104104
<MetadataSummaryTable
105105
metadataCatalogs={[metadataEvents]}
106106
// @ts-expect-error: Metadata not correctly typed
107-
formikValues={formik.values}
107+
formikValues={formik.values.metadata}
108108
header={"EVENTS.EVENTS.NEW.METADATA.CAPTION"}
109109
/>
110110

@@ -113,7 +113,7 @@ const NewEventSummary = <T extends RequiredFormProps>({
113113
<MetadataSummaryTable
114114
metadataCatalogs={extendedMetadata}
115115
// @ts-expect-error: Metadata not correctly typed
116-
formikValues={formik.values}
116+
formikValues={formik.values.metadata}
117117
header={"EVENTS.EVENTS.NEW.METADATA_EXTENDED.CAPTION"}
118118
/>
119119
)}

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

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,6 @@ const NewEventWizard = ({
173173
>
174174
{/* Render wizard pages depending on current value of page variable */}
175175
{formik => {
176-
// eslint-disable-next-line react-hooks/rules-of-hooks
177-
useEffect(() => {
178-
formik.validateForm();
179-
// eslint-disable-next-line react-hooks/exhaustive-deps
180-
}, [page]);
181-
182176
return (
183177
<>
184178
{/* Stepper that shows each step of wizard as header */}
@@ -269,15 +263,15 @@ const getInitialValues = (
269263
aclDefaultActions?: string[],
270264
aclDefaultTemplate?: AclTemplate,
271265
) => {
272-
let initialValues = initialFormValuesNewEvents;
266+
const initialValues = initialFormValuesNewEvents;
273267

274268
// Transform metadata fields provided by backend (saved in redux)
275-
initialValues = { ...initialValues, ...getInitialMetadataFieldValues(
269+
initialValues.metadata = { ...initialValues.metadata, ...getInitialMetadataFieldValues(
276270
metadataFields,
277271
) };
278272

279273
for (const catalog of extendedMetadata) {
280-
initialValues = { ...initialValues, ...getInitialMetadataFieldValues(
274+
initialValues.metadata = { ...initialValues.metadata, ...getInitialMetadataFieldValues(
281275
catalog,
282276
) };
283277
}
@@ -290,17 +284,17 @@ const getInitialValues = (
290284
// Transform additional metadata for source (provided by constant in newEventConfig)
291285
if (sourceMetadata.UPLOAD) {
292286
sourceMetadata.UPLOAD.metadata.forEach(field => {
293-
initialValues[field.id] = field.value;
287+
initialValues.metadata[field.id] = field.value;
294288
});
295289
}
296290
if (sourceMetadata.SCHEDULE_SINGLE) {
297291
sourceMetadata.SCHEDULE_SINGLE.metadata.forEach(field => {
298-
initialValues[field.id] = field.value;
292+
initialValues.metadata[field.id] = field.value;
299293
});
300294
}
301295
if (sourceMetadata.SCHEDULE_MULTIPLE) {
302296
sourceMetadata.SCHEDULE_MULTIPLE.metadata.forEach(field => {
303-
initialValues[field.id] = field.value;
297+
initialValues.metadata[field.id] = field.value;
304298
});
305299
}
306300

@@ -318,11 +312,6 @@ const getInitialValues = (
318312
};
319313
}
320314

321-
// Add all initial form values known upfront listed in newEventsConfig
322-
for (const [key, value] of Object.entries(initialFormValuesNewEvents)) {
323-
initialValues[key] = value;
324-
}
325-
326315
const defaultDate = new Date();
327316

328317
// fill times with some default values

0 commit comments

Comments
 (0)