mirror of
				https://github.com/ClusterCockpit/cc-backend
				synced 2025-11-04 01:25:06 +01:00 
			
		
		
		
	Merge pull request #366 from ClusterCockpit/hotfix
fix: always return hasNextPage boolean to frontend
This commit is contained in:
		@@ -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}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user