mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	error messages for invalid search queries
This commit is contained in:
		@@ -89,12 +89,18 @@
 | 
				
			|||||||
  [rotate]="true" aria-label="Default pagination"></ngb-pagination>
 | 
					  [rotate]="true" aria-label="Default pagination"></ngb-pagination>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div *ngIf="displayMode == 'largeCards'">
 | 
					<ng-container *ngIf="list.error ; else documentListNoError">
 | 
				
			||||||
 | 
					  <div class="alert alert-danger" role="alert">Error while loading documents: {{list.error}}</div>
 | 
				
			||||||
 | 
					</ng-container>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<ng-template #documentListNoError>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <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)" (clickMoreLike)="clickMoreLike(d.id)">
 | 
					    <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)" (clickMoreLike)="clickMoreLike(d.id)">
 | 
				
			||||||
    </app-document-card-large>
 | 
					    </app-document-card-large>
 | 
				
			||||||
</div>
 | 
					  </div>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
<table class="table table-sm border shadow-sm" *ngIf="displayMode == 'details'">
 | 
					  <table class="table table-sm border shadow-sm" *ngIf="displayMode == 'details'">
 | 
				
			||||||
    <thead>
 | 
					    <thead>
 | 
				
			||||||
      <th></th>
 | 
					      <th></th>
 | 
				
			||||||
      <th class="d-none d-lg-table-cell"
 | 
					      <th class="d-none d-lg-table-cell"
 | 
				
			||||||
@@ -167,8 +173,11 @@
 | 
				
			|||||||
        </td>
 | 
					        </td>
 | 
				
			||||||
      </tr>
 | 
					      </tr>
 | 
				
			||||||
    </tbody>
 | 
					    </tbody>
 | 
				
			||||||
</table>
 | 
					  </table>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
<div class="m-n2 row row-cols-paperless-cards" *ngIf="displayMode == 'smallCards'">
 | 
					  <div class="m-n2 row row-cols-paperless-cards" *ngIf="displayMode == 'smallCards'">
 | 
				
			||||||
    <app-document-card-small [selected]="list.isSelected(d)" (toggleSelected)="toggleSelected(d, $event)" [document]="d" *ngFor="let d of list.documents; trackBy: trackByDocumentId" (clickTag)="clickTag($event)" (clickCorrespondent)="clickCorrespondent($event)" (clickDocumentType)="clickDocumentType($event)"></app-document-card-small>
 | 
					    <app-document-card-small [selected]="list.isSelected(d)" (toggleSelected)="toggleSelected(d, $event)" [document]="d" *ngFor="let d of list.documents; trackBy: trackByDocumentId" (clickTag)="clickTag($event)" (clickCorrespondent)="clickCorrespondent($event)" (clickDocumentType)="clickDocumentType($event)"></app-document-card-small>
 | 
				
			||||||
</div>
 | 
					  </div>
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</ng-template>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,7 @@
 | 
				
			|||||||
import { Route } from '@angular/compiler/src/core';
 | 
					 | 
				
			||||||
import { Injectable } from '@angular/core';
 | 
					import { Injectable } from '@angular/core';
 | 
				
			||||||
import { ActivatedRoute, Router } from '@angular/router';
 | 
					import { ActivatedRoute, Router } from '@angular/router';
 | 
				
			||||||
import { Observable } from 'rxjs';
 | 
					import { Observable } from 'rxjs';
 | 
				
			||||||
import { cloneFilterRules, FilterRule } from '../data/filter-rule';
 | 
					import { cloneFilterRules, FilterRule } from '../data/filter-rule';
 | 
				
			||||||
import { FILTER_FULLTEXT_MORELIKE, FILTER_FULLTEXT_QUERY } from '../data/filter-rule-type';
 | 
					 | 
				
			||||||
import { PaperlessDocument } from '../data/paperless-document';
 | 
					import { PaperlessDocument } from '../data/paperless-document';
 | 
				
			||||||
import { PaperlessSavedView } from '../data/paperless-saved-view';
 | 
					import { PaperlessSavedView } from '../data/paperless-saved-view';
 | 
				
			||||||
import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys';
 | 
					import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys';
 | 
				
			||||||
@@ -40,6 +38,7 @@ interface ListViewState {
 | 
				
			|||||||
export class DocumentListViewService {
 | 
					export class DocumentListViewService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  isReloading: boolean = false
 | 
					  isReloading: boolean = false
 | 
				
			||||||
 | 
					  error: string = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  rangeSelectionAnchorIndex: number
 | 
					  rangeSelectionAnchorIndex: number
 | 
				
			||||||
  lastRangeSelectionToIndex: number
 | 
					  lastRangeSelectionToIndex: number
 | 
				
			||||||
@@ -103,6 +102,7 @@ export class DocumentListViewService {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  reload(onFinish?) {
 | 
					  reload(onFinish?) {
 | 
				
			||||||
    this.isReloading = true
 | 
					    this.isReloading = true
 | 
				
			||||||
 | 
					    this.error = null
 | 
				
			||||||
    let activeListViewState = this.activeListViewState
 | 
					    let activeListViewState = this.activeListViewState
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.documentService.listFiltered(
 | 
					    this.documentService.listFiltered(
 | 
				
			||||||
@@ -126,6 +126,8 @@ export class DocumentListViewService {
 | 
				
			|||||||
            // this happens when applying a filter: the current page might not be available anymore due to the reduced result set.
 | 
					            // this happens when applying a filter: the current page might not be available anymore due to the reduced result set.
 | 
				
			||||||
            activeListViewState.currentPage = 1
 | 
					            activeListViewState.currentPage = 1
 | 
				
			||||||
            this.reload()
 | 
					            this.reload()
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.error = error.error
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user