mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	loading indicator for dashboard widgets
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
				
			|||||||
<app-widget-frame [title]="savedView.name">
 | 
					<app-widget-frame [title]="savedView.name" [loading]="loading">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <a class="btn-link" header-buttons [routerLink]="[]" (click)="showAll()" i18n>Show all</a>
 | 
					  <a class="btn-link" header-buttons [routerLink]="[]" (click)="showAll()" i18n>Show all</a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,8 @@ import { QueryParamsService } from 'src/app/services/query-params.service'
 | 
				
			|||||||
  styleUrls: ['./saved-view-widget.component.scss'],
 | 
					  styleUrls: ['./saved-view-widget.component.scss'],
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class SavedViewWidgetComponent implements OnInit, OnDestroy {
 | 
					export class SavedViewWidgetComponent implements OnInit, OnDestroy {
 | 
				
			||||||
 | 
					  loading: boolean = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(
 | 
					  constructor(
 | 
				
			||||||
    private documentService: DocumentService,
 | 
					    private documentService: DocumentService,
 | 
				
			||||||
    private router: Router,
 | 
					    private router: Router,
 | 
				
			||||||
@@ -43,6 +45,7 @@ export class SavedViewWidgetComponent implements OnInit, OnDestroy {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reload() {
 | 
					  reload() {
 | 
				
			||||||
 | 
					    this.loading = true
 | 
				
			||||||
    this.documentService
 | 
					    this.documentService
 | 
				
			||||||
      .listFiltered(
 | 
					      .listFiltered(
 | 
				
			||||||
        1,
 | 
					        1,
 | 
				
			||||||
@@ -52,6 +55,7 @@ export class SavedViewWidgetComponent implements OnInit, OnDestroy {
 | 
				
			|||||||
        this.savedView.filter_rules
 | 
					        this.savedView.filter_rules
 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
      .subscribe((result) => {
 | 
					      .subscribe((result) => {
 | 
				
			||||||
 | 
					        this.loading = false
 | 
				
			||||||
        this.documents = result.results
 | 
					        this.documents = result.results
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
<app-widget-frame title="Statistics" i18n-title>
 | 
					<app-widget-frame title="Statistics" [loading]="loading" i18n-title>
 | 
				
			||||||
  <ng-container content>
 | 
					  <ng-container content>
 | 
				
			||||||
    <p class="card-text" i18n *ngIf="statistics?.documents_inbox != null">Documents in inbox: {{statistics?.documents_inbox}}</p>
 | 
					    <p class="card-text" i18n *ngIf="statistics?.documents_inbox != null">Documents in inbox: {{statistics?.documents_inbox}}</p>
 | 
				
			||||||
    <p class="card-text" i18n>Total documents: {{statistics?.documents_total}}</p>
 | 
					    <p class="card-text" i18n>Total documents: {{statistics?.documents_total}}</p>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,8 @@ export interface Statistics {
 | 
				
			|||||||
  styleUrls: ['./statistics-widget.component.scss'],
 | 
					  styleUrls: ['./statistics-widget.component.scss'],
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class StatisticsWidgetComponent implements OnInit, OnDestroy {
 | 
					export class StatisticsWidgetComponent implements OnInit, OnDestroy {
 | 
				
			||||||
 | 
					  loading: boolean = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(
 | 
					  constructor(
 | 
				
			||||||
    private http: HttpClient,
 | 
					    private http: HttpClient,
 | 
				
			||||||
    private consumerStatusService: ConsumerStatusService
 | 
					    private consumerStatusService: ConsumerStatusService
 | 
				
			||||||
@@ -29,7 +31,9 @@ export class StatisticsWidgetComponent implements OnInit, OnDestroy {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reload() {
 | 
					  reload() {
 | 
				
			||||||
 | 
					    this.loading = true
 | 
				
			||||||
    this.getStatistics().subscribe((statistics) => {
 | 
					    this.getStatistics().subscribe((statistics) => {
 | 
				
			||||||
 | 
					      this.loading = false
 | 
				
			||||||
      this.statistics = statistics
 | 
					      this.statistics = statistics
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,10 @@
 | 
				
			|||||||
  <div class="card-header">
 | 
					  <div class="card-header">
 | 
				
			||||||
    <div class="d-flex justify-content-between align-items-center">
 | 
					    <div class="d-flex justify-content-between align-items-center">
 | 
				
			||||||
      <h5 class="card-title mb-0">{{title}}</h5>
 | 
					      <h5 class="card-title mb-0">{{title}}</h5>
 | 
				
			||||||
 | 
					      <ng-container *ngIf="loading">
 | 
				
			||||||
 | 
					        <div class="spinner-border spinner-border-sm fw-normal ms-2 me-auto" role="status"></div>
 | 
				
			||||||
 | 
					        <div class="visually-hidden" i18n>Loading...</div>
 | 
				
			||||||
 | 
					      </ng-container>
 | 
				
			||||||
      <ng-content select ="[header-buttons]"></ng-content>
 | 
					      <ng-content select ="[header-buttons]"></ng-content>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,5 +11,8 @@ export class WidgetFrameComponent implements OnInit {
 | 
				
			|||||||
  @Input()
 | 
					  @Input()
 | 
				
			||||||
  title: string
 | 
					  title: string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Input()
 | 
				
			||||||
 | 
					  loading: boolean = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ngOnInit(): void {}
 | 
					  ngOnInit(): void {}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user