mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Pre-load pdf contents
This commit is contained in:
		@@ -1,5 +1,5 @@
 | 
			
		||||
<div class="col p-2 h-100">
 | 
			
		||||
  <div class="card h-100 shadow-sm document-card" [class.card-selected]="selected">
 | 
			
		||||
  <div class="card h-100 shadow-sm document-card" [class.card-selected]="selected" [class.popover-hidden]="popoverHidden">
 | 
			
		||||
    <div class="border-bottom doc-img-container" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)">
 | 
			
		||||
      <img class="card-img doc-img rounded-top" [src]="getThumbUrl()">
 | 
			
		||||
 | 
			
		||||
@@ -48,10 +48,10 @@
 | 
			
		||||
          <ng-template #previewContent>
 | 
			
		||||
            <ng-container *ngIf="getContentType() == 'application/pdf'">
 | 
			
		||||
                <div class="preview pdf-viewer-container" *ngIf="!useNativePdfViewer ; else nativePdfViewer">
 | 
			
		||||
                  <div class="spinner-border spinner-border-sm" role="status">
 | 
			
		||||
                  <div class="spinner-border text-primary spinner-border-sm" role="status">
 | 
			
		||||
                    <span class="sr-only">Loading...</span>
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <pdf-viewer [src]="previewUrl" [original-size]="false" [show-borders]="false" [show-all]="true" [render-text-mode]="2" (after-load-complete)="pdfPreviewLoaded($event)"></pdf-viewer>
 | 
			
		||||
                  <pdf-viewer [src]="previewUrl" [original-size]="false" [show-borders]="false" [show-all]="true" [render-text-mode]="2"></pdf-viewer>
 | 
			
		||||
                </div>
 | 
			
		||||
                <ng-template #nativePdfViewer>
 | 
			
		||||
                    <object [data]="previewUrl | safe" type="application/pdf" class="preview" width="100%"></object>
 | 
			
		||||
 
 | 
			
		||||
@@ -52,3 +52,8 @@
 | 
			
		||||
    z-index: 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.popover-hidden ::ng-deep .popover {
 | 
			
		||||
  opacity: 0;
 | 
			
		||||
  pointer-events: none;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,9 @@ export class DocumentCardSmallComponent implements OnInit {
 | 
			
		||||
 | 
			
		||||
  @ViewChild('popover') popover: NgbPopover
 | 
			
		||||
 | 
			
		||||
  mouseOnPreview = false
 | 
			
		||||
  popoverHidden = true
 | 
			
		||||
 | 
			
		||||
  metadata: PaperlessDocumentMetadata
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {
 | 
			
		||||
@@ -81,10 +84,16 @@ export class DocumentCardSmallComponent implements OnInit {
 | 
			
		||||
  mouseEnterPreview() {
 | 
			
		||||
    this.mouseOnPreview = true
 | 
			
		||||
    if (!this.popover.isOpen()) {
 | 
			
		||||
      // we're going to open but hide to pre-load content during hover delay
 | 
			
		||||
      this.popover.open()
 | 
			
		||||
      this.popoverHidden = true
 | 
			
		||||
      setTimeout(() => {
 | 
			
		||||
        if (this.mouseOnPreview) {
 | 
			
		||||
          // show popover
 | 
			
		||||
          this.popoverHidden = false
 | 
			
		||||
          this.showPreview.emit(this)
 | 
			
		||||
          this.popover.open()
 | 
			
		||||
        } else {
 | 
			
		||||
          this.popover.close()
 | 
			
		||||
        }
 | 
			
		||||
      }, 600);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user