diff --git a/cassandra-distributed-task-queue-ui/src/RemoteTaskQueueApplication.tsx b/cassandra-distributed-task-queue-ui/src/RemoteTaskQueueApplication.tsx index c9b0c5a9..7944ecde 100644 --- a/cassandra-distributed-task-queue-ui/src/RemoteTaskQueueApplication.tsx +++ b/cassandra-distributed-task-queue-ui/src/RemoteTaskQueueApplication.tsx @@ -16,7 +16,7 @@ interface RemoteTaskQueueApplicationProps { customStateCaptions?: TaskStateDict; customSearchHelp?: JSX.Element; hideMissingMeta?: boolean; - isNotPagingOnBackend?: boolean; + useFrontPaging?: boolean; } export const RemoteTaskQueueApplication = ({ @@ -27,7 +27,7 @@ export const RemoteTaskQueueApplication = ({ customStateCaptions, customSearchHelp, hideMissingMeta, - isNotPagingOnBackend, + useFrontPaging, }: RemoteTaskQueueApplicationProps): JSX.Element => ( } /> diff --git a/cassandra-distributed-task-queue-ui/src/components/TaskQueueFilter/TaskQueueFilter.tsx b/cassandra-distributed-task-queue-ui/src/components/TaskQueueFilter/TaskQueueFilter.tsx index 2377b1e0..b852421e 100644 --- a/cassandra-distributed-task-queue-ui/src/components/TaskQueueFilter/TaskQueueFilter.tsx +++ b/cassandra-distributed-task-queue-ui/src/components/TaskQueueFilter/TaskQueueFilter.tsx @@ -42,6 +42,13 @@ export function TaskQueueFilter({ } }; + const onChangeTaskLimit = (value: string) => { + if (isNaN(Number(value)) || Number(value) > 9999) { + return; + } + onChange({ count: value === "" ? null : Number(value) }); + }; + const { enqueueTimestampRange, queryString, states, names, count } = value; const defaultEnqueueDateTimeRange = { lowerBound: null, @@ -75,7 +82,7 @@ export function TaskQueueFilter({ data-tid="MaxInput" placeholder="Max" value={String(count || "")} - onValueChange={value => onChange({ count: Number(value) })} + onValueChange={onChangeTaskLimit} onKeyDown={onKeyDown} /> diff --git a/cassandra-distributed-task-queue-ui/src/containers/TasksPageContainer.tsx b/cassandra-distributed-task-queue-ui/src/containers/TasksPageContainer.tsx index e1845b90..59f4743a 100644 --- a/cassandra-distributed-task-queue-ui/src/containers/TasksPageContainer.tsx +++ b/cassandra-distributed-task-queue-ui/src/containers/TasksPageContainer.tsx @@ -26,7 +26,7 @@ interface TasksPageContainerProps { rtqMonitoringApi: IRtqMonitoringApi; isSuperUser: boolean; useErrorHandlingContainer: boolean; - isNotPagingOnBackend?: boolean; + useFrontPaging?: boolean; } const maxTaskCountOnPage = 20; @@ -45,7 +45,7 @@ export const TasksPageContainer = ({ rtqMonitoringApi, isSuperUser, useErrorHandlingContainer, - isNotPagingOnBackend, + useFrontPaging, }: TasksPageContainerProps): JSX.Element => { const navigate = useNavigate(); const { search, pathname } = useLocation(); @@ -64,14 +64,12 @@ export const TasksPageContainer = ({ useEffect(() => { const newRequest = getRequestBySearchQuery(search); - if (isNotPagingOnBackend && request.offset !== newRequest.offset) { + if (useFrontPaging && request.offset !== newRequest.offset) { const offset = newRequest.offset || 0; setVisibleTasks(results.taskMetas.slice(offset, offset + maxTaskCountOnPage)); setLoading(false); } else { - loadData( - isNotPagingOnBackend ? { ...newRequest, offset: 0 } : { ...newRequest, count: maxTaskCountOnPage } - ); + loadData(useFrontPaging ? { ...newRequest, offset: 0 } : { ...newRequest, count: maxTaskCountOnPage }); } setRequest(newRequest); }, [search]); @@ -172,7 +170,7 @@ export const TasksPageContainer = ({ const getRequestBySearchQuery = (searchQuery: string): RtqMonitoringSearchRequest => { const request: RtqMonitoringSearchRequest = searchRequestMapping.parse(searchQuery); request.offset ||= 0; - request.count = isNotPagingOnBackend ? request.count : request.count || maxTaskCountOnPage; + request.count = useFrontPaging ? request.count : request.count || maxTaskCountOnPage; return request; }; @@ -204,7 +202,7 @@ export const TasksPageContainer = ({ availableTaskTypes={availableTaskNames} onChange={onChangeFilter} onSearchButtonClick={handleSearch} - withTaskLimit={isNotPagingOnBackend} + withTaskLimit={useFrontPaging} /> @@ -297,7 +295,7 @@ export const TasksPageContainer = ({ const results = await rtqMonitoringApi.search(request); setResults(results); setVisibleTasks( - isNotPagingOnBackend ? results.taskMetas.slice(offset, offset + maxTaskCountOnPage) : results.taskMetas + useFrontPaging ? results.taskMetas.slice(offset, offset + maxTaskCountOnPage) : results.taskMetas ); } finally { setLoading(false);