better toasts, better dashboard, first implementation of consumer status

This commit is contained in:
Jonas Winkler
2020-11-07 12:05:15 +01:00
parent 572e40ca27
commit 036f11acaa
28 changed files with 450 additions and 134 deletions

View File

@@ -1,14 +1,43 @@
import { Component } from '@angular/core';
import { Component, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Subscription } from 'rxjs';
import { ConsumerStatusService } from './services/consumer-status.service';
import { Toast, ToastService } from './services/toast.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
export class AppComponent implements OnInit, OnDestroy {
successSubscription: Subscription;
failedSubscription: Subscription;
constructor () {
constructor ( private consumerStatusService: ConsumerStatusService, private toastService: ToastService, private router: Router ) {
}
ngOnDestroy(): void {
this.consumerStatusService.disconnect()
this.successSubscription.unsubscribe()
this.failedSubscription.unsubscribe()
}
ngOnInit(): void {
this.consumerStatusService.connect()
this.successSubscription = this.consumerStatusService.onDocumentConsumptionFinished().subscribe(status => {
this.toastService.showToast({title: "Document added", content: `Document ${status.filename} was added to paperless.`, actionName: "Open document", action: () => {
this.router.navigate(['documents', status.document_id])
}})
})
this.failedSubscription = this.consumerStatusService.onDocumentConsumptionFailed().subscribe(status => {
this.toastService.showError(`Could not consume ${status.filename}: ${status.message}`)
})
}
}