-
+
diff --git a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts
index 583fde4ee..0aa7bd758 100644
--- a/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts
+++ b/src-ui/src/app/components/document-list/document-card-small/document-card-small.component.ts
@@ -10,7 +10,6 @@ import { PaperlessDocument } from 'src/app/data/paperless-document'
import { DocumentService } from 'src/app/services/rest/document.service'
import { SettingsService } from 'src/app/services/settings.service'
import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'
-import { OpenDocumentsService } from 'src/app/services/open-documents.service'
import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
@@ -25,8 +24,7 @@ import { ComponentWithPermissions } from '../../with-permissions/with-permission
export class DocumentCardSmallComponent extends ComponentWithPermissions {
constructor(
private documentService: DocumentService,
- private settingsService: SettingsService,
- public openDocumentsService: OpenDocumentsService
+ private settingsService: SettingsService
) {
super()
}
diff --git a/src-ui/src/app/components/document-list/document-list.component.html b/src-ui/src/app/components/document-list/document-list.component.html
index 9aea041e4..e801ec9a4 100644
--- a/src-ui/src/app/components/document-list/document-list.component.html
+++ b/src-ui/src/app/components/document-list/document-list.component.html
@@ -181,7 +181,7 @@
- {{d.title | documentTitle}}
+ {{d.title | documentTitle}}
|
diff --git a/src-ui/src/app/services/document-list-view.service.ts b/src-ui/src/app/services/document-list-view.service.ts
index 3eb036710..3c5dbca21 100644
--- a/src-ui/src/app/services/document-list-view.service.ts
+++ b/src-ui/src/app/services/document-list-view.service.ts
@@ -213,7 +213,8 @@ export class DocumentListViewService {
this.currentPageSize,
activeListViewState.sortField,
activeListViewState.sortReverse,
- activeListViewState.filterRules
+ activeListViewState.filterRules,
+ { truncate_content: true }
)
.subscribe({
next: (result) => {
diff --git a/src-ui/src/app/services/open-documents.service.ts b/src-ui/src/app/services/open-documents.service.ts
index 8533166c3..a21523458 100644
--- a/src-ui/src/app/services/open-documents.service.ts
+++ b/src-ui/src/app/services/open-documents.service.ts
@@ -6,7 +6,6 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { ConfirmDialogComponent } from 'src/app/components/common/confirm-dialog/confirm-dialog.component'
import { Observable, Subject, of } from 'rxjs'
import { first } from 'rxjs/operators'
-import { Router } from '@angular/router'
@Injectable({
providedIn: 'root',
@@ -16,8 +15,7 @@ export class OpenDocumentsService {
constructor(
private documentService: DocumentService,
- private modalService: NgbModal,
- private router: Router
+ private modalService: NgbModal
) {
if (sessionStorage.getItem(OPEN_DOCUMENT_SERVICE.DOCUMENTS)) {
try {
@@ -57,39 +55,28 @@ export class OpenDocumentsService {
return this.openDocuments.find((d) => d.id == id)
}
- openDocument(
- doc: PaperlessDocument,
- navigate: boolean = true
- ): Observable {
+ openDocument(doc: PaperlessDocument): Observable {
if (this.openDocuments.find((d) => d.id == doc.id) == null) {
if (this.openDocuments.length == this.MAX_OPEN_DOCUMENTS) {
// at max, ensure changes arent lost
const docToRemove = this.openDocuments[this.MAX_OPEN_DOCUMENTS - 1]
const closeObservable = this.closeDocument(docToRemove)
closeObservable.pipe(first()).subscribe((closed) => {
- if (closed) this.finishOpenDocument(doc, navigate)
+ if (closed) this.finishOpenDocument(doc)
})
return closeObservable
} else {
// not at max
- this.finishOpenDocument(doc, navigate)
- }
- } else {
- // doc is open, just maybe navigate
- if (navigate) {
- this.router.navigate(['documents', doc.id])
+ this.finishOpenDocument(doc)
}
}
return of(true)
}
- private finishOpenDocument(doc: PaperlessDocument, navigate: boolean) {
+ private finishOpenDocument(doc: PaperlessDocument) {
this.openDocuments.unshift(doc)
this.dirtyDocuments.delete(doc.id)
this.save()
- if (navigate) {
- this.router.navigate(['documents', doc.id])
- }
}
setDirty(doc: PaperlessDocument, dirty: boolean) {
diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py
index 18c00bce9..6470beedc 100644
--- a/src/documents/serialisers.py
+++ b/src/documents/serialisers.py
@@ -364,6 +364,12 @@ class DocumentSerializer(DynamicFieldsModelSerializer, OwnedObjectSerializer):
else:
return None
+ def to_representation(self, instance):
+ doc = super().to_representation(instance)
+ if self.truncate_content:
+ doc["content"] = doc.get("content")[0:550]
+ return doc
+
def update(self, instance, validated_data):
if "created_date" in validated_data and "created" not in validated_data:
new_datetime = datetime.datetime.combine(
@@ -377,6 +383,11 @@ class DocumentSerializer(DynamicFieldsModelSerializer, OwnedObjectSerializer):
super().update(instance, validated_data)
return instance
+ def __init__(self, *args, **kwargs):
+ self.truncate_content = kwargs.pop("truncate_content", False)
+
+ super().__init__(*args, **kwargs)
+
class Meta:
model = Document
depth = 1
diff --git a/src/documents/views.py b/src/documents/views.py
index 312e0115c..a3ab7382f 100644
--- a/src/documents/views.py
+++ b/src/documents/views.py
@@ -256,10 +256,12 @@ class DocumentViewSet(
fields = fields_param.split(",")
else:
fields = None
+ truncate_content = self.request.query_params.get("truncate_content", "False")
serializer_class = self.get_serializer_class()
kwargs.setdefault("user", self.request.user) # PassUserMixin
kwargs.setdefault("context", self.get_serializer_context())
kwargs.setdefault("fields", fields)
+ kwargs.setdefault("truncate_content", truncate_content.lower() in ["true", "1"])
return serializer_class(*args, **kwargs)
def update(self, request, *args, **kwargs):
|