diff --git a/src/components/events/partials/EventsLanguageCell.tsx b/src/components/events/partials/EventsLanguageCell.tsx new file mode 100644 index 0000000000..b458faa337 --- /dev/null +++ b/src/components/events/partials/EventsLanguageCell.tsx @@ -0,0 +1,37 @@ +import { loadEventsIntoTable } from "../../../thunks/tableThunks"; +import { fetchEvents } from "../../../slices/eventSlice"; +import { Event } from "../../../slices/eventSlice"; +import FilterCell from "../../shared/FilterCell"; +import { useTranslation } from "react-i18next"; +import { ParseKeys } from "i18next"; + +/** + * This component renders the language cells of events in the table view + */ +const EventsLanguageCell = ({ + row, +}: { + row: Event +}) => { + const { t } = useTranslation(); + + return ( + <> + { row.language && + + } + + ); +}; + +export default EventsLanguageCell; diff --git a/src/configs/tableConfigs/eventsTableConfig.ts b/src/configs/tableConfigs/eventsTableConfig.ts index e09eab8747..87971e7477 100644 --- a/src/configs/tableConfigs/eventsTableConfig.ts +++ b/src/configs/tableConfigs/eventsTableConfig.ts @@ -86,6 +86,13 @@ export const eventsTableConfig: TableConfig = { translate: false, deactivated: true, }, + { + name: "language", + template: "EventsLanguageCell", + label: "EVENTS.EVENTS.TABLE.LANGUAGE", + translate: true, + deactivated: true, + }, ], caption: "EVENTS.EVENTS.TABLE.CAPTION", resource: "events", diff --git a/src/configs/tableConfigs/eventsTableMap.ts b/src/configs/tableConfigs/eventsTableMap.ts index 3a493c1ba8..3bab04afd6 100644 --- a/src/configs/tableConfigs/eventsTableMap.ts +++ b/src/configs/tableConfigs/eventsTableMap.ts @@ -8,6 +8,7 @@ import EventsLocationCell from "../../components/events/partials/EventsLocationC import EventsEndCell from "../../components/events/partials/EventsEndCell"; import EventsStartCell from "../../components/events/partials/EventsStartCell"; import EventsNotesCell from "../../components/events/partials/EventsNotesCell"; +import EventsLanguageCell from "../../components/events/partials/EventsLanguageCell"; /** * This map contains the mapping between the template strings above and the corresponding react component. @@ -24,4 +25,5 @@ export const eventsTemplateMap = { EventsStatusCell: EventsStatusCell, PublishedCell: PublishedCell, EventsNotesCell: EventsNotesCell, + EventsLanguageCell: EventsLanguageCell, }; diff --git a/src/i18n/org/opencastproject/adminui/languages/lang-en_US.json b/src/i18n/org/opencastproject/adminui/languages/lang-en_US.json index 4b2843ff91..d906ebdd9b 100644 --- a/src/i18n/org/opencastproject/adminui/languages/lang-en_US.json +++ b/src/i18n/org/opencastproject/adminui/languages/lang-en_US.json @@ -650,6 +650,7 @@ "PUBLISHED": "Published", "WEEKDAY": "Weekday", "ADMINUI_NOTES": "Notes", + "LANGUAGE": "Language", "TOOLTIP": { "ASSETS": "Open asset details", "START": "Filter for this start date", @@ -664,7 +665,8 @@ "COMMENTS": "View comments", "PAUSED_WORKFLOW": "View paused workflow", "PLAYER": "Open player", - "PRESENTER": "Filter for this presenter" + "PRESENTER": "Filter for this presenter", + "LANGUAGE": "Filter for this language" }, "SELECT_ALL": "Select all events", "SELECT_EVENT": "Select event \"{{title}}\"" diff --git a/src/slices/eventSlice.ts b/src/slices/eventSlice.ts index baa4a318bc..c6cab1327c 100644 --- a/src/slices/eventSlice.ts +++ b/src/slices/eventSlice.ts @@ -84,6 +84,8 @@ export type Event = { technical_start: string, title: string, workflow_state: string, + language: string, + language_translation_key: string, } export type MetadataField = {