diff --git a/SAS/TMSS/frontend/tmss_webapp/src/components/ViewTable.js b/SAS/TMSS/frontend/tmss_webapp/src/components/ViewTable.js index 5f859d59a95117166dc79a230cd1a0e37dd51306..3d9c1e655a7a0ff9ff1993ea8a723e5bbd48ecf2 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/components/ViewTable.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/components/ViewTable.js @@ -476,7 +476,7 @@ function MultiSelectFilter({ // slider to set the filter value between a column's // min and max values function SliderColumnFilter({ - column: { filterValue, setFilter, preFilteredRows, id }, + column: { filterValue, setFilter, preFilteredRows, id, Header }, }) { // Calculate the min and max // using the preFilteredRows @@ -491,9 +491,25 @@ function SliderColumnFilter({ return [min, max] }, [id, preFilteredRows])*/ + React.useEffect(() => { + if (storeFilter) { + const filterValue = TableUtil.getFilter(currentTableName, Header); + if (filterValue && !value) { + setValue(filterValue); + setFilter(filterValue); + } + } + }); + return ( <div onClick={e => { e.stopPropagation() }} className="table-slider"> - <Slider value={value} onChange={(e) => { setFilter(e.value); setValue(e.value) }} /> + <Slider value={value} + onChange={(e) => { + setFilter(e.value); setValue(e.value); + if (storeFilter) { + TableUtil.saveFilter(currentTableName, Header, e.value); + } + }} /> </div> ) } @@ -511,6 +527,13 @@ function BooleanColumnFilter({ if (!filterValue && value) { setValue(null); } + if (storeFilter) { + const filterValue = TableUtil.getFilter(currentTableName, Header); + if(filterValue && !value){ + setValue(filterValue); + setFilter(filterValue); + } + } }, [filterValue, value]); // Function to call the server side filtering const callServerFilter = (isCleared) => { @@ -538,6 +561,9 @@ function BooleanColumnFilter({ setValue(e.target.value); setFilter(e.target.value || undefined); setFiltered(true); + if (storeFilter) { + TableUtil.saveFilter(currentTableName, Header, e.target.value); + } if (doServersideFilter) { callServerFilter(e.value); } @@ -711,18 +737,16 @@ function CalendarColumnFilter({ if (!filterValue && value) { setValue(null); } - }, [filterValue, value]); - - React.useEffect(() => { if (storeFilter) { - const getValue = TableUtil.getFilter(currentTableName, Header); - if (getValue) { - const valueAsDate = new Date(getValue) + const filterValue = TableUtil.getFilter(currentTableName, Header); + if(filterValue && !value){ + const valueAsDate = new Date(filterValue) setValue(valueAsDate); setFilter(valueAsDate); } } - }, []); + + }, [filterValue, value]); // Function to call the server side filtering const callServerFilter = (event, isCleared) => { @@ -783,20 +807,17 @@ function DateTimeColumnFilter({ if (!filterValue && value) { setValue(null); } - }, [filterValue, value]); - - React.useEffect(() => { if (storeFilter) { const getValue = TableUtil.getFilter(currentTableName, Header); - if (getValue) { + if (getValue && !value) { const valueAsDate = new Date(getValue) setValue(valueAsDate); setFilter(valueAsDate); } } - }, []); - - // Function to call the server side filtering + }, [filterValue, value]); + + // Function to call the server side filtering const callServerFilter = (event, isCleared) => { hasFilters = true; _.remove(tableOptionsState.filters, function(filter) { return filter.id === Header }); @@ -839,6 +860,9 @@ function DateTimeColumnFilter({ setValue(''); callServerFilter(e, true); } + if (storeFilter) { + TableUtil.clearColumnFilter(currentTableName, Header); + } }} className="tb-cal-reset fa fa-times" />} </div> ) @@ -981,7 +1005,8 @@ function dateFilterFn(rows, id, filterValue) { function RangeColumnFilter({ column: { filterValue = [], preFilteredRows, setFilter, id, Header }, }) { - const [value, setValue] = useState(''); + let [value, setValue] = useState(''); + let [firstLoad, setFirstLoad] = useState(true); const [min, max] = React.useMemo(() => { let min = 0; let max = 0; @@ -992,25 +1017,19 @@ function RangeColumnFilter({ min = Math.min(row.values[id] ? row.values[id] : 0, min); max = Math.max(row.values[id] ? row.values[id] : 0, max); }); + if (storeFilter && firstLoad) { + let storedFilter = TableUtil.getFilter(currentTableName, Header); + if (storedFilter) { + setValue(storedFilter); + setFilter(storedFilter); + setFirstLoad(false); + } + } return [min, max]; }, [id, preFilteredRows]); if (filterValue.length === 0) { filterValue = [min, max]; } - React.useEffect(() => { - let localstorage_key = currentTableName; - let storage = UtilService.localStore({ type: 'get', key: localstorage_key }); - let storageStatus =_.filter(storage, function (filter) { - if ( filter.name === id && storeFilter) { - if(!value){ - setValue(filter.value) - setFilter(filter.value); - } - return true; - } - }) - }, [filterValue, value]); - return ( <> <div className="filter-slider-label"> diff --git a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/CustomDialog.js b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/CustomDialog.js index 2fd3c9c2c3be1cd013b31ecc8f371361c542b33e..36fdcb1febdf2569f4944e362bfb076c043ffa43 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/layout/components/CustomDialog.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/layout/components/CustomDialog.js @@ -46,7 +46,7 @@ export class CustomDialog extends Component { })} </div> } > - <div className="p-grid"> + <div className="p-grid" style={{marginTop: '10px'}}> {showIcon && <div className="col-lg-2 col-md-2 col-sm-2"> <span style={{position: 'absolute', top: '50%', '-ms-transform': 'translateY(-50%)', transform: 'translateY(-50%)'}}> @@ -57,10 +57,13 @@ export class CustomDialog extends Component { <div className= {(showIcon)? "col-lg-10 col-md-10 col-sm-10":"dialog-delete-msg"}> {/* Display message passed */} {this.props.message?this.props.message:""} - {/* Render subcomponent passed as function */} - {this.props.content?this.props.content():""} + </div> </div> + <div> + {/* Render subcomponent passed as function */} + {this.props.content?this.props.content():""} + </div> </Dialog> </div> ); diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Reservation/reservation.list.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Reservation/reservation.list.js index e8c1accf00f7828c231346b8868eb9c1a6992d12..220ae97b1bd3014092190d2069bfe2a1e933bfa6 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Reservation/reservation.list.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Reservation/reservation.list.js @@ -80,9 +80,18 @@ export class ReservationList extends Component{ name: "Project", filter:"select" }, - expert: "Expert", - hba_rfi: "HBA-RFI", - lba_rfi: "LBA-RFI", + expert: { + name: "Expert", + filter:"switch" + }, + hba_rfi: { + name: "HBA-RFI", + filter: 'switch' + }, + lba_rfi: { + name: "LBA-RFI", + filter: 'switch' + }, actionpath: "actionpath" }], optionalcolumns: [{