mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2025-04-01 18:15:54 +02:00
Merge pull request #366 from ClusterCockpit/hotfix
fix: always return hasNextPage boolean to frontend
This commit is contained in:
commit
e41525d40a
@ -354,30 +354,28 @@ func (r *queryResolver) Jobs(ctx context.Context, filter []*model.JobFilter, pag
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if !config.Keys.UiDefaults["job_list_usePaging"].(bool) {
|
// Note: Even if App-Default 'config.Keys.UiDefaults["job_list_usePaging"]' is set, always return hasNextPage boolean.
|
||||||
hasNextPage := false
|
// Users can decide in frontend to use continuous scroll, even if app-default is paging!
|
||||||
// page.Page += 1 : Simple, but expensive
|
/*
|
||||||
// Example Page 4 @ 10 IpP : Does item 41 exist?
|
Example Page 4 @ 10 IpP : Does item 41 exist?
|
||||||
// Minimal Page 41 @ 1 IpP : If len(result) is 1, Page 5 @ 10 IpP exists.
|
Minimal Page 41 @ 1 IpP : If len(result) is 1, Page 5 @ 10 IpP exists.
|
||||||
nextPage := &model.PageRequest{
|
*/
|
||||||
ItemsPerPage: 1,
|
nextPage := &model.PageRequest{
|
||||||
Page: ((page.Page * page.ItemsPerPage) + 1),
|
ItemsPerPage: 1,
|
||||||
}
|
Page: ((page.Page * page.ItemsPerPage) + 1),
|
||||||
|
|
||||||
nextJobs, err := r.Repo.QueryJobs(ctx, filter, nextPage, order)
|
|
||||||
if err != nil {
|
|
||||||
log.Warn("Error while querying next jobs")
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(nextJobs) == 1 {
|
|
||||||
hasNextPage = true
|
|
||||||
}
|
|
||||||
|
|
||||||
return &model.JobResultList{Items: jobs, Count: &count, HasNextPage: &hasNextPage}, nil
|
|
||||||
} else {
|
|
||||||
return &model.JobResultList{Items: jobs, Count: &count}, nil
|
|
||||||
}
|
}
|
||||||
|
nextJobs, err := r.Repo.QueryJobs(ctx, filter, nextPage, order)
|
||||||
|
if err != nil {
|
||||||
|
log.Warn("Error while querying next jobs")
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
hasNextPage := false
|
||||||
|
if len(nextJobs) == 1 {
|
||||||
|
hasNextPage = true
|
||||||
|
}
|
||||||
|
|
||||||
|
return &model.JobResultList{Items: jobs, Count: &count, HasNextPage: &hasNextPage}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// JobsStatistics is the resolver for the jobsStatistics field.
|
// JobsStatistics is the resolver for the jobsStatistics field.
|
||||||
|
@ -231,7 +231,7 @@
|
|||||||
<Col xs={12} md={6} xl={3} class="mb-3 mb-xxl-0">
|
<Col xs={12} md={6} xl={3} class="mb-3 mb-xxl-0">
|
||||||
{#if $initq.error}
|
{#if $initq.error}
|
||||||
<Card body color="danger">{$initq.error.message}</Card>
|
<Card body color="danger">{$initq.error.message}</Card>
|
||||||
{:else if $initq.data}
|
{:else if $initq?.data}
|
||||||
<Card class="overflow-auto" style="height: 400px;">
|
<Card class="overflow-auto" style="height: 400px;">
|
||||||
<TabContent> <!-- on:tab={(e) => (status = e.detail)} -->
|
<TabContent> <!-- on:tab={(e) => (status = e.detail)} -->
|
||||||
{#if $initq.data?.job?.metaData?.message}
|
{#if $initq.data?.job?.metaData?.message}
|
||||||
@ -305,7 +305,7 @@
|
|||||||
<Card class="mb-3">
|
<Card class="mb-3">
|
||||||
<CardBody>
|
<CardBody>
|
||||||
<Row class="mb-2">
|
<Row class="mb-2">
|
||||||
{#if $initq.data}
|
{#if $initq?.data}
|
||||||
<Col xs="auto">
|
<Col xs="auto">
|
||||||
<Button outline on:click={() => (isMetricsSelectionOpen = true)} color="primary">
|
<Button outline on:click={() => (isMetricsSelectionOpen = true)} color="primary">
|
||||||
Select Metrics (Selected {selectedMetrics.length} of {availableMetrics.size} available)
|
Select Metrics (Selected {selectedMetrics.length} of {availableMetrics.size} available)
|
||||||
@ -318,7 +318,7 @@
|
|||||||
{#if $jobMetrics.error}
|
{#if $jobMetrics.error}
|
||||||
<Row class="mt-2">
|
<Row class="mt-2">
|
||||||
<Col>
|
<Col>
|
||||||
{#if $initq.data.job.monitoringStatus == 0 || $initq.data.job.monitoringStatus == 2}
|
{#if $initq?.data && ($initq.data.job?.monitoringStatus == 0 || $initq.data.job?.monitoringStatus == 2)}
|
||||||
<Card body color="warning">Not monitored or archiving failed</Card>
|
<Card body color="warning">Not monitored or archiving failed</Card>
|
||||||
<br />
|
<br />
|
||||||
{/if}
|
{/if}
|
||||||
@ -365,7 +365,7 @@
|
|||||||
<!-- Statistcics Table -->
|
<!-- Statistcics Table -->
|
||||||
<Row class="mb-3">
|
<Row class="mb-3">
|
||||||
<Col>
|
<Col>
|
||||||
{#if $initq.data}
|
{#if $initq?.data}
|
||||||
<Card>
|
<Card>
|
||||||
<TabContent>
|
<TabContent>
|
||||||
{#if somethingMissing}
|
{#if somethingMissing}
|
||||||
@ -440,7 +440,7 @@
|
|||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
||||||
{#if $initq.data}
|
{#if $initq?.data}
|
||||||
<MetricSelection
|
<MetricSelection
|
||||||
cluster={$initq.data.job.cluster}
|
cluster={$initq.data.job.cluster}
|
||||||
subCluster={$initq.data.job.subCluster}
|
subCluster={$initq.data.job.subCluster}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user