mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Merge pull request #2966 from paperless-ngx/feature-double-click
Feature: double-click docs
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
				
			|||||||
<div class="card mb-3 shadow-sm" [class.card-selected]="selected" [class.document-card]="selectable" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()">
 | 
					<div class="card mb-3 shadow-sm" [class.card-selected]="selected" [class.document-card]="selectable" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()">
 | 
				
			||||||
  <div class="row g-0">
 | 
					  <div class="row g-0">
 | 
				
			||||||
    <div class="col-md-2 doc-img-background rounded-start" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)">
 | 
					    <div class="col-md-2 doc-img-background rounded-start" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)" (dblclick)="dblClickDocument.emit()">
 | 
				
			||||||
      <img [src]="getThumbUrl()" class="card-img doc-img border-end rounded-start" [class.inverted]="getIsThumbInverted()">
 | 
					      <img [src]="getThumbUrl()" class="card-img doc-img border-end rounded-start" [class.inverted]="getIsThumbInverted()">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="border-end border-bottom bg-light document-card-check">
 | 
					      <div class="border-end border-bottom bg-light document-card-check">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,6 +41,9 @@ export class DocumentCardLargeComponent extends ComponentWithPermissions {
 | 
				
			|||||||
  @Input()
 | 
					  @Input()
 | 
				
			||||||
  document: PaperlessDocument
 | 
					  document: PaperlessDocument
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Output()
 | 
				
			||||||
 | 
					  dblClickDocument = new EventEmitter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Output()
 | 
					  @Output()
 | 
				
			||||||
  clickTag = new EventEmitter<number>()
 | 
					  clickTag = new EventEmitter<number>()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
<div class="col p-2 h-100">
 | 
					<div class="col p-2 h-100">
 | 
				
			||||||
  <div class="card h-100 shadow-sm document-card" [class.card-selected]="selected" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()">
 | 
					  <div class="card h-100 shadow-sm document-card" [class.card-selected]="selected" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()">
 | 
				
			||||||
    <div class="border-bottom doc-img-container" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)">
 | 
					    <div class="border-bottom doc-img-container" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)" (dblclick)="dblClickDocument.emit(this)">
 | 
				
			||||||
      <img class="card-img doc-img rounded-top" [class.inverted]="getIsThumbInverted()" [src]="getThumbUrl()">
 | 
					      <img class="card-img doc-img rounded-top" [class.inverted]="getIsThumbInverted()" [src]="getThumbUrl()">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="border-end border-bottom bg-light py-1 px-2 document-card-check">
 | 
					      <div class="border-end border-bottom bg-light py-1 px-2 document-card-check">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,6 +38,9 @@ export class DocumentCardSmallComponent extends ComponentWithPermissions {
 | 
				
			|||||||
  @Input()
 | 
					  @Input()
 | 
				
			||||||
  document: PaperlessDocument
 | 
					  document: PaperlessDocument
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @Output()
 | 
				
			||||||
 | 
					  dblClickDocument = new EventEmitter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Output()
 | 
					  @Output()
 | 
				
			||||||
  clickTag = new EventEmitter<number>()
 | 
					  clickTag = new EventEmitter<number>()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -114,7 +114,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<ng-template #documentListNoError>
 | 
					<ng-template #documentListNoError>
 | 
				
			||||||
  <div *ngIf="displayMode === 'largeCards'">
 | 
					  <div *ngIf="displayMode === 'largeCards'">
 | 
				
			||||||
    <app-document-card-large [selected]="list.isSelected(d)" (toggleSelected)="toggleSelected(d, $event)" *ngFor="let d of list.documents; trackBy: trackByDocumentId" [document]="d" (clickTag)="clickTag($event)" (clickCorrespondent)="clickCorrespondent($event)" (clickDocumentType)="clickDocumentType($event)" (clickStoragePath)="clickStoragePath($event)" (clickMoreLike)="clickMoreLike(d.id)">
 | 
					    <app-document-card-large [selected]="list.isSelected(d)" (toggleSelected)="toggleSelected(d, $event)" (dblClickDocument)="openDocumentDetail(d)" *ngFor="let d of list.documents; trackBy: trackByDocumentId" [document]="d" (clickTag)="clickTag($event)" (clickCorrespondent)="clickCorrespondent($event)" (clickDocumentType)="clickDocumentType($event)" (clickStoragePath)="clickStoragePath($event)" (clickMoreLike)="clickMoreLike(d.id)">
 | 
				
			||||||
    </app-document-card-large>
 | 
					    </app-document-card-large>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -179,7 +179,7 @@
 | 
				
			|||||||
        i18n>Added</th>
 | 
					        i18n>Added</th>
 | 
				
			||||||
    </thead>
 | 
					    </thead>
 | 
				
			||||||
    <tbody>
 | 
					    <tbody>
 | 
				
			||||||
      <tr *ngFor="let d of list.documents; trackBy: trackByDocumentId" (click)="toggleSelected(d, $event); $event.stopPropagation();" [ngClass]="list.isSelected(d) ? 'table-row-selected' : ''">
 | 
					      <tr *ngFor="let d of list.documents; trackBy: trackByDocumentId" (click)="toggleSelected(d, $event); $event.stopPropagation();" (dblclick)="openDocumentDetail(d)" [ngClass]="list.isSelected(d) ? 'table-row-selected' : ''">
 | 
				
			||||||
        <td>
 | 
					        <td>
 | 
				
			||||||
          <div class="form-check">
 | 
					          <div class="form-check">
 | 
				
			||||||
            <input type="checkbox" class="form-check-input" id="docCheck{{d.id}}" [checked]="list.isSelected(d)" (click)="toggleSelected(d, $event); $event.stopPropagation();">
 | 
					            <input type="checkbox" class="form-check-input" id="docCheck{{d.id}}" [checked]="list.isSelected(d)" (click)="toggleSelected(d, $event); $event.stopPropagation();">
 | 
				
			||||||
@@ -228,7 +228,7 @@
 | 
				
			|||||||
  </table>
 | 
					  </table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <div class="row row-cols-paperless-cards" *ngIf="displayMode === 'smallCards'">
 | 
					  <div class="row row-cols-paperless-cards" *ngIf="displayMode === 'smallCards'">
 | 
				
			||||||
    <app-document-card-small class="p-0" [selected]="list.isSelected(d)" (toggleSelected)="toggleSelected(d, $event)" [document]="d" *ngFor="let d of list.documents; trackBy: trackByDocumentId" (clickTag)="clickTag($event)" (clickCorrespondent)="clickCorrespondent($event)" (clickStoragePath)="clickStoragePath($event)" (clickDocumentType)="clickDocumentType($event)"></app-document-card-small>
 | 
					    <app-document-card-small class="p-0" [selected]="list.isSelected(d)" (toggleSelected)="toggleSelected(d, $event)" (dblClickDocument)="openDocumentDetail(d)" [document]="d" *ngFor="let d of list.documents; trackBy: trackByDocumentId" (clickTag)="clickTag($event)" (clickCorrespondent)="clickCorrespondent($event)" (clickStoragePath)="clickStoragePath($event)" (clickDocumentType)="clickDocumentType($event)"></app-document-card-small>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div *ngIf="list.documents?.length > 15" class="mt-3">
 | 
					  <div *ngIf="list.documents?.length > 15" class="mt-3">
 | 
				
			||||||
    <ng-container *ngTemplateOutlet="pagination"></ng-container>
 | 
					    <ng-container *ngTemplateOutlet="pagination"></ng-container>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -258,6 +258,10 @@ export class DocumentListComponent
 | 
				
			|||||||
    })
 | 
					    })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  openDocumentDetail(document: PaperlessDocument) {
 | 
				
			||||||
 | 
					    this.router.navigate(['documents', document.id])
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  toggleSelected(document: PaperlessDocument, event: MouseEvent): void {
 | 
					  toggleSelected(document: PaperlessDocument, event: MouseEvent): void {
 | 
				
			||||||
    if (!event.shiftKey) this.list.toggleSelected(document)
 | 
					    if (!event.shiftKey) this.list.toggleSelected(document)
 | 
				
			||||||
    else this.list.selectRangeTo(document)
 | 
					    else this.list.selectRangeTo(document)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user