paperless-ngx/src-ui/src/app/services/open-documents.service.ts
2020-11-04 01:42:23 +01:00

52 lines
1.3 KiB
TypeScript

import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { PaperlessDocument } from '../data/paperless-document';
import { OPEN_DOCUMENT_SERVICE } from '../data/storage-keys';
@Injectable({
providedIn: 'root'
})
export class OpenDocumentsService {
constructor() {
if (sessionStorage.getItem(OPEN_DOCUMENT_SERVICE.DOCUMENTS)) {
try {
this.openDocuments = JSON.parse(sessionStorage.getItem(OPEN_DOCUMENT_SERVICE.DOCUMENTS))
} catch (e) {
sessionStorage.removeItem(OPEN_DOCUMENT_SERVICE.DOCUMENTS)
this.openDocuments = []
}
}
}
private openDocuments: PaperlessDocument[] = []
getOpenDocuments(): PaperlessDocument[] {
return this.openDocuments
}
getOpenDocument(id: number): PaperlessDocument {
return this.openDocuments.find(d => d.id == id)
}
openDocument(doc: PaperlessDocument) {
if (this.openDocuments.find(d => d.id == doc.id) == null) {
this.openDocuments.push(doc)
this.save()
}
}
closeDocument(doc: PaperlessDocument) {
let index = this.openDocuments.findIndex(d => d.id == doc.id)
if (index > -1) {
this.openDocuments.splice(index, 1)
this.save()
}
}
save() {
sessionStorage.setItem(OPEN_DOCUMENT_SERVICE.DOCUMENTS, JSON.stringify(this.openDocuments))
}
}