@@ -9,7 +9,16 @@ import {
99} from "../../selectors/tableSelectors" ;
1010import { DragDropContext , Droppable , OnDragEndResponder , Draggable as Draggablee } from "@hello-pangea/dnd" ;
1111import { useAppDispatch , useAppSelector } from "../../store" ;
12- import { TableColumn } from "../../configs/tableConfigs/aclsTableConfig" ;
12+ import { aclsTableConfig , TableColumn } from "../../configs/tableConfigs/aclsTableConfig" ;
13+ import { eventsTableConfig } from "../../configs/tableConfigs/eventsTableConfig" ;
14+ import { seriesTableConfig } from "../../configs/tableConfigs/seriesTableConfig" ;
15+ import { recordingsTableConfig } from "../../configs/tableConfigs/recordingsTableConfig" ;
16+ import { jobsTableConfig } from "../../configs/tableConfigs/jobsTableConfig" ;
17+ import { serversTableConfig } from "../../configs/tableConfigs/serversTableConfig" ;
18+ import { servicesTableConfig } from "../../configs/tableConfigs/servicesTableConfig" ;
19+ import { usersTableConfig } from "../../configs/tableConfigs/usersTableConfig" ;
20+ import { groupsTableConfig } from "../../configs/tableConfigs/groupsTableConfig" ;
21+ import { themesTableConfig } from "../../configs/tableConfigs/themesTableConfig" ;
1322import { Modal , ModalHandle } from "./modals/Modal" ;
1423
1524/**
@@ -100,6 +109,32 @@ const EditTableViewModalContent = ({
100109 close ( ) ;
101110 } ;
102111
112+ // Reset columns to how they were before the user made any changes ever
113+ const resetToInitialConfig = ( ) => {
114+ const initialConfig = getConfigByResource ( resource ) ;
115+ setActiveColumns ( initialConfig ?. columns . filter ( ( column ) => ! column . deactivated ) ?? [ ] ) ;
116+ setDeactivatedColumns ( initialConfig ?. columns . filter ( ( column ) => column . deactivated ) ?? [ ] ) ;
117+ }
118+
119+ const getConfigByResource = ( resource : string ) => {
120+ switch ( resource ) {
121+ case "events" : return eventsTableConfig ;
122+ case "series" : return seriesTableConfig ;
123+ case "recordings" : return recordingsTableConfig ;
124+ case "jobs" : return jobsTableConfig ;
125+ case "servers" : return serversTableConfig ;
126+ case "services" : return servicesTableConfig ;
127+ case "users" : return usersTableConfig ;
128+ case "groups" : return groupsTableConfig ;
129+ case "acls" : return aclsTableConfig ;
130+ case "themes" : return themesTableConfig ;
131+ default : {
132+ console . warn ( "Resource of type " + resource + " is undefined for tableConfigs." )
133+ return undefined ;
134+ }
135+ }
136+ }
137+
103138 // change column order based on where column was dragged and dropped
104139 const onDragEnd : OnDragEndResponder = ( result ) => {
105140 // dropped outside the list
@@ -253,6 +288,9 @@ const EditTableViewModalContent = ({
253288 < button onClick = { ( ) => save ( ) } className = "submit active" >
254289 { t ( "SAVE" ) /* Save As Default */ }
255290 </ button >
291+ < button onClick = { ( ) => resetToInitialConfig ( ) } className = "cancel active" >
292+ { t ( "RESET" ) /* Reset saved setting */ }
293+ </ button >
256294 </ footer >
257295 </ >
258296 ) ;
0 commit comments