Skip to content

Commit 779e167

Browse files
committed
Merge branch 'textfilter-persist' of Arnei/opencast-admin-interface into develop
Pull request #1297 Make textFilter persist across tabs
2 parents 9ea77b3 + 66c4741 commit 779e167

15 files changed

Lines changed: 53 additions & 54 deletions

File tree

src/components/configuration/Themes.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useEffect, useState } from "react";
22
import { useTranslation } from "react-i18next";
33
import TableFilters from "../shared/TableFilters";
44
import Table from "../shared/Table";
5-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
5+
import { fetchFilters } from "../../slices/tableFilterSlice";
66
import { themesTemplateMap } from "../../configs/tableConfigs/themesTableMap";
77
import { getTotalThemes } from "../../selectors/themeSelectors";
88
import { loadThemesIntoTable } from "../../thunks/tableThunks";
@@ -35,9 +35,6 @@ const Themes = () => {
3535

3636
dispatch(fetchFilters("themes"));
3737

38-
// Reset text filter
39-
dispatch(editTextFilter(""));
40-
4138
// Load themes on mount
4239
const loadThemes = async () => {
4340
// Fetching themes from server

src/components/events/Events.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { eventsTemplateMap } from "../../configs/tableConfigs/eventsTableMap";
1313
import {
1414
loadEventsIntoTable,
1515
} from "../../thunks/tableThunks";
16-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
16+
import { fetchFilters } from "../../slices/tableFilterSlice";
1717
import {
1818
getTotalEvents,
1919
isFetchingAssetUploadOptions as getIsFetchingAssetUploadOptions,
@@ -72,9 +72,6 @@ const Events = () => {
7272

7373
dispatch(fetchFilters("events"));
7474

75-
// Reset text filter
76-
dispatch(editTextFilter(""));
77-
7875
// disable actions button
7976
dispatch(setShowActions(false));
8077

src/components/events/Series.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { seriesTemplateMap } from "../../configs/tableConfigs/seriesTableMap";
99
import {
1010
loadSeriesIntoTable,
1111
} from "../../thunks/tableThunks";
12-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
12+
import { fetchFilters } from "../../slices/tableFilterSlice";
1313
import { getTotalSeries, isShowActions } from "../../selectors/seriesSeletctor";
1414
import Header from "../Header";
1515
import NavBar from "../NavBar";
@@ -53,9 +53,6 @@ const Series = () => {
5353

5454
dispatch(fetchFilters("series"));
5555

56-
// Reset text filer
57-
dispatch(editTextFilter(""));
58-
5956
// disable actions button
6057
dispatch(showActionsSeries(false));
6158

src/components/recordings/Recordings.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Notifications from "../shared/Notifications";
66
import { recordingsTemplateMap } from "../../configs/tableConfigs/recordingsTableMap";
77
import { getTotalRecordings } from "../../selectors/recordingSelectors";
88
import { loadRecordingsIntoTable } from "../../thunks/tableThunks";
9-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
9+
import { fetchFilters } from "../../slices/tableFilterSlice";
1010
import Header from "../Header";
1111
import NavBar from "../NavBar";
1212
import MainView from "../MainView";
@@ -35,9 +35,6 @@ const Recordings = () => {
3535

3636
dispatch(fetchFilters("recordings"));
3737

38-
// Reset text filter
39-
dispatch(editTextFilter(""));
40-
4138
// Load recordings on mount
4239
const loadRecordings = async () => {
4340
// Fetching recordings from server

src/components/shared/Stats.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ const Stats = () => {
3030
let filterValue;
3131
await stats.filters.forEach(f => {
3232
if (f.name.toLowerCase() === "textfilter") {
33-
dispatch(editTextFilter(f.value));
33+
dispatch(editTextFilter({ text: f.value, resource: "events" }));
3434
return;
3535
} else {
36-
dispatch(removeTextFilter());
36+
dispatch(removeTextFilter("events"));
3737
}
3838
const filter = filterMap.find(({ name }) => name === f.name);
3939
filterValue = f.value;

src/components/shared/TableFilters.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import DropDown from "./DropDown";
3131
import { AsyncThunk } from "@reduxjs/toolkit";
3232
import ButtonLikeAnchor from "./ButtonLikeAnchor";
3333
import { ParseKeys } from "i18next";
34+
import { Resource } from "../../slices/tableSlice";
3435

3536
/**
3637
* This component renders the table filters in the upper right corner of the table
@@ -42,15 +43,15 @@ const TableFilters = ({
4243
}: {
4344
loadResource: AsyncThunk<any, void, any>,
4445
loadResourceIntoTable: () => AppThunk,
45-
resource: string,
46+
resource: Resource,
4647
}) => {
4748
const { t } = useTranslation();
4849
const dispatch = useAppDispatch();
4950

5051
const filterMap = useAppSelector(state => getFilters(state, resource));
5152
const secondFilter = useAppSelector(state => getSecondFilter(state));
5253
const selectedFilter = useAppSelector(state => getSelectedFilter(state));
53-
const textFilter = useAppSelector(state => getTextFilter(state));
54+
const textFilter = useAppSelector(state => getTextFilter(state, resource));
5455

5556
// Variables for showing different dialogs depending on what was clicked
5657
const [showFilterSelector, setFilterSelector] = useState(false);
@@ -71,7 +72,7 @@ const TableFilters = ({
7172
setEndDate(undefined);
7273
setFilterSelector(false);
7374

74-
dispatch(removeTextFilter());
75+
dispatch(removeTextFilter(resource));
7576
dispatch(removeSelectedFilter());
7677
dispatch(removeSelectedFilter());
7778

@@ -102,7 +103,7 @@ const TableFilters = ({
102103
const handleChange = (name: string, value: string) => {
103104
let mustApplyChanges = false;
104105
if (name === "textFilter") {
105-
dispatch(editTextFilter(value));
106+
dispatch(editTextFilter({ text: value, resource: resource }));
106107
mustApplyChanges = true;
107108
}
108109

src/components/systems/Jobs.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Table from "../shared/Table";
55
import Notifications from "../shared/Notifications";
66
import { jobsTemplateMap } from "../../configs/tableConfigs/jobsTableConfig";
77
import { getTotalJobs } from "../../selectors/jobSelectors";
8-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
8+
import { fetchFilters } from "../../slices/tableFilterSlice";
99
import {
1010
loadJobsIntoTable,
1111
} from "../../thunks/tableThunks";
@@ -37,9 +37,6 @@ const Jobs = () => {
3737

3838
dispatch(fetchFilters("jobs"));
3939

40-
// Reset text filter
41-
dispatch(editTextFilter(""));
42-
4340
// Load jobs on mount
4441
const loadJobs = async () => {
4542
// Fetching jobs from server

src/components/systems/Servers.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Table from "../shared/Table";
55
import Notifications from "../shared/Notifications";
66
import { serversTemplateMap } from "../../configs/tableConfigs/serversTableMap";
77
import { getTotalServers } from "../../selectors/serverSelectors";
8-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
8+
import { fetchFilters } from "../../slices/tableFilterSlice";
99
import {
1010
loadServersIntoTable,
1111
} from "../../thunks/tableThunks";
@@ -37,9 +37,6 @@ const Servers = () => {
3737

3838
dispatch(fetchFilters("servers"));
3939

40-
// Reset text filter
41-
dispatch(editTextFilter(""));
42-
4340
// Load servers on mount
4441
const loadServers = async () => {
4542
// Fetching servers from server

src/components/systems/Services.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import TableFilters from "../shared/TableFilters";
44
import Table from "../shared/Table";
55
import Notifications from "../shared/Notifications";
66
import { servicesTemplateMap } from "../../configs/tableConfigs/servicesTableMap";
7-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
7+
import { fetchFilters } from "../../slices/tableFilterSlice";
88
import {
99
loadServicesIntoTable,
1010
} from "../../thunks/tableThunks";
@@ -37,9 +37,6 @@ const Services = () => {
3737

3838
dispatch(fetchFilters("services"));
3939

40-
// Reset text filter
41-
dispatch(editTextFilter(""));
42-
4340
// Load services on mount
4441
const loadServices = async () => {
4542
// Fetching services from server

src/components/users/Acls.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import TableFilters from "../shared/TableFilters";
44
import Table from "../shared/Table";
55
import Notifications from "../shared/Notifications";
66
import { aclsTemplateMap } from "../../configs/tableConfigs/aclsTableMap";
7-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
7+
import { fetchFilters } from "../../slices/tableFilterSlice";
88
import {
99
loadAclsIntoTable,
1010
} from "../../thunks/tableThunks";
@@ -37,9 +37,6 @@ const Acls = () => {
3737

3838
dispatch(fetchFilters("acls"));
3939

40-
// Reset text filter
41-
dispatch(editTextFilter(""));
42-
4340
// Load acls on mount
4441
const loadAcls = async () => {
4542
// Fetching acls from server

0 commit comments

Comments
 (0)