mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	better toasts
This commit is contained in:
		| @@ -5,7 +5,7 @@ import { Observable } from 'rxjs'; | ||||
| import { MATCHING_ALGORITHMS } from 'src/app/data/matching-model'; | ||||
| import { ObjectWithId } from 'src/app/data/object-with-id'; | ||||
| import { AbstractPaperlessService } from 'src/app/services/rest/abstract-paperless-service'; | ||||
| import { Toast, ToastService } from 'src/app/services/toast.service'; | ||||
| import { ToastService } from 'src/app/services/toast.service'; | ||||
|  | ||||
| @Directive() | ||||
| export abstract class EditDialogComponent<T extends ObjectWithId> implements OnInit { | ||||
| @@ -66,7 +66,7 @@ export abstract class EditDialogComponent<T extends ObjectWithId> implements OnI | ||||
|       this.activeModal.close() | ||||
|       this.success.emit(result) | ||||
|     }, error => { | ||||
|       this.toastService.showToast(Toast.makeError(`Could not save ${this.entityName}: ${error.error.name}`)) | ||||
|       this.toastService.showError($localize`Could not save ${this.entityName}: ${error.error.name}`) | ||||
|     }) | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import { HttpEventType } from '@angular/common/http'; | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { FileSystemFileEntry, NgxFileDropEntry } from 'ngx-file-drop'; | ||||
| import { DocumentService } from 'src/app/services/rest/document.service'; | ||||
| import { Toast, ToastService } from 'src/app/services/toast.service'; | ||||
| import { ToastService } from 'src/app/services/toast.service'; | ||||
|  | ||||
|  | ||||
| interface UploadStatus { | ||||
| @@ -60,7 +60,7 @@ export class UploadFileWidgetComponent implements OnInit { | ||||
|             } else if (event.type == HttpEventType.Response) { | ||||
|               this.uploadStatus.splice(this.uploadStatus.indexOf(uploadStatusObject), 1) | ||||
|               this.completedFiles += 1 | ||||
|               this.toastService.showToast(Toast.make("Information", $localize`The document has been uploaded and will be processed by the consumer shortly.`)) | ||||
|               this.toastService.showInfo($localize`The document has been uploaded and will be processed by the consumer shortly.`) | ||||
|             } | ||||
|              | ||||
|           }, error => { | ||||
| @@ -68,11 +68,11 @@ export class UploadFileWidgetComponent implements OnInit { | ||||
|             this.completedFiles += 1 | ||||
|             switch (error.status) { | ||||
|               case 400: { | ||||
|                 this.toastService.showToast(Toast.makeError($localize`There was an error while uploading the document: ${error.error.document}`)) | ||||
|                 this.toastService.showInfo($localize`There was an error while uploading the document: ${error.error.document}`) | ||||
|                 break; | ||||
|               } | ||||
|               default: { | ||||
|                 this.toastService.showToast(Toast.makeError($localize`An error has occurred while uploading the document. Sorry!`)) | ||||
|                 this.toastService.showInfo($localize`An error has occurred while uploading the document. Sorry!`) | ||||
|                 break; | ||||
|               } | ||||
|             } | ||||
|   | ||||
| @@ -81,7 +81,7 @@ export class DocumentListComponent implements OnInit { | ||||
|  | ||||
|   saveViewConfig() { | ||||
|     this.savedViewService.update(this.list.savedView).subscribe(result => { | ||||
|       this.toastService.showToast(Toast.make("Information", $localize`View "${this.list.savedView.name}" saved successfully.`)) | ||||
|       this.toastService.showInfo($localize`View "${this.list.savedView.name}" saved successfully.`) | ||||
|     }) | ||||
|  | ||||
|   } | ||||
| @@ -100,7 +100,7 @@ export class DocumentListComponent implements OnInit { | ||||
|       } | ||||
|       this.savedViewService.create(savedView).subscribe(() => { | ||||
|         modal.close() | ||||
|         this.toastService.showToast(Toast.make("Information", $localize`View "${savedView.name}" created successfully.`)) | ||||
|         this.toastService.showInfo($localize`View "${savedView.name}" created successfully.`) | ||||
|       }) | ||||
|     }) | ||||
|   } | ||||
|   | ||||
| @@ -4,7 +4,7 @@ import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'; | ||||
| import { GENERAL_SETTINGS } from 'src/app/data/storage-keys'; | ||||
| import { DocumentListViewService } from 'src/app/services/document-list-view.service'; | ||||
| import { SavedViewService } from 'src/app/services/rest/saved-view.service'; | ||||
| import { Toast, ToastService } from 'src/app/services/toast.service'; | ||||
| import { ToastService } from 'src/app/services/toast.service'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-settings', | ||||
| @@ -46,14 +46,14 @@ export class SettingsComponent implements OnInit { | ||||
|     this.savedViewService.delete(savedView).subscribe(() => { | ||||
|       this.savedViewGroup.removeControl(savedView.id.toString()) | ||||
|       this.savedViews.splice(this.savedViews.indexOf(savedView), 1) | ||||
|       this.toastService.showToast(Toast.make("Information", $localize`Saved view "${savedView.name} deleted.`)) | ||||
|       this.toastService.showInfo($localize`Saved view "${savedView.name} deleted.`) | ||||
|     }) | ||||
|   } | ||||
|  | ||||
|   private saveLocalSettings() { | ||||
|     localStorage.setItem(GENERAL_SETTINGS.DOCUMENT_LIST_SIZE, this.settingsForm.value.documentListItemPerPage) | ||||
|     this.documentListViewService.updatePageSize() | ||||
|     this.toastService.showToast(Toast.make("Information", $localize`Settings saved successfully.`)) | ||||
|     this.toastService.showInfo($localize`Settings saved successfully.`) | ||||
|   } | ||||
|  | ||||
|   saveSettings() { | ||||
| @@ -65,7 +65,7 @@ export class SettingsComponent implements OnInit { | ||||
|       this.savedViewService.patchMany(x).subscribe(s => { | ||||
|         this.saveLocalSettings() | ||||
|       }, error => { | ||||
|         this.toastService.showToast(Toast.makeError($localize`Error while storing settings on server: ${JSON.stringify(error.error)}`)) | ||||
|         this.toastService.showError($localize`Error while storing settings on server: ${JSON.stringify(error.error)}`) | ||||
|       }) | ||||
|     } else { | ||||
|       this.saveLocalSettings() | ||||
|   | ||||
| @@ -1,30 +1,13 @@ | ||||
| import { Injectable } from '@angular/core'; | ||||
| import { Subject, zip } from 'rxjs'; | ||||
|  | ||||
| export class Toast { | ||||
|  | ||||
|   static make(title: string, content: string, classname?: string, delay?: number): Toast { | ||||
|     let t = new Toast() | ||||
|     t.title = title | ||||
|     t.content = content | ||||
|     t.classname = classname | ||||
|     if (delay) { | ||||
|       t.delay = delay | ||||
|     } | ||||
|     return t | ||||
|   } | ||||
|  | ||||
|   static makeError(content: string) { | ||||
|     return Toast.make("Error", content, null, 10000) | ||||
|   } | ||||
| export interface Toast { | ||||
|  | ||||
|   title: string | ||||
|  | ||||
|   classname: string | ||||
|  | ||||
|   content: string | ||||
|  | ||||
|   delay: number = 5000 | ||||
|   delay: number | ||||
|  | ||||
| } | ||||
|  | ||||
| @@ -39,11 +22,19 @@ export class ToastService { | ||||
|  | ||||
|   private toastsSubject: Subject<Toast[]> = new Subject() | ||||
|  | ||||
|   showToast(toast: Toast) { | ||||
|   show(toast: Toast) { | ||||
|     this.toasts.push(toast) | ||||
|     this.toastsSubject.next(this.toasts) | ||||
|   } | ||||
|  | ||||
|   showError(content: string, delay: number = 10000) { | ||||
|     this.show({title: $localize`Error`, content: content, delay: delay}) | ||||
|   } | ||||
|  | ||||
|   showInfo(content: string, delay: number = 5000) { | ||||
|     this.show({title: $localize`Information`, content: content, delay: delay}) | ||||
|   } | ||||
|  | ||||
|   closeToast(toast: Toast) { | ||||
|     let index = this.toasts.findIndex(t => t == toast) | ||||
|     if (index > -1) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 jonaswinkler
					jonaswinkler