mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-02-14 00:09:35 -06:00
Only append when needed
This commit is contained in:
@@ -1897,6 +1897,47 @@ describe('DocumentDetailComponent', () => {
|
||||
expect(urlRevokeSpy).toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('should include version in download and print only for non-latest selected version', () => {
|
||||
initNormally()
|
||||
component.document.versions = [
|
||||
{ id: doc.id, is_root: true },
|
||||
{ id: 10, is_root: false },
|
||||
] as any
|
||||
|
||||
const getDownloadUrlSpy = jest
|
||||
.spyOn(documentService, 'getDownloadUrl')
|
||||
.mockReturnValueOnce('download-latest')
|
||||
.mockReturnValueOnce('print-latest')
|
||||
.mockReturnValueOnce('download-non-latest')
|
||||
.mockReturnValueOnce('print-non-latest')
|
||||
|
||||
component.selectedVersionId = 10
|
||||
component.download()
|
||||
expect(getDownloadUrlSpy).toHaveBeenNthCalledWith(1, doc.id, false, null)
|
||||
httpTestingController
|
||||
.expectOne('download-latest')
|
||||
.error(new ProgressEvent('failed'))
|
||||
|
||||
component.printDocument()
|
||||
expect(getDownloadUrlSpy).toHaveBeenNthCalledWith(2, doc.id, false, null)
|
||||
httpTestingController
|
||||
.expectOne('print-latest')
|
||||
.error(new ProgressEvent('failed'))
|
||||
|
||||
component.selectedVersionId = doc.id
|
||||
component.download()
|
||||
expect(getDownloadUrlSpy).toHaveBeenNthCalledWith(3, doc.id, false, doc.id)
|
||||
httpTestingController
|
||||
.expectOne('download-non-latest')
|
||||
.error(new ProgressEvent('failed'))
|
||||
|
||||
component.printDocument()
|
||||
expect(getDownloadUrlSpy).toHaveBeenNthCalledWith(4, doc.id, false, doc.id)
|
||||
httpTestingController
|
||||
.expectOne('print-non-latest')
|
||||
.error(new ProgressEvent('failed'))
|
||||
})
|
||||
|
||||
it('should download a file with the correct filename', () => {
|
||||
const mockBlob = new Blob(['test content'], { type: 'text/plain' })
|
||||
const mockResponse = new HttpResponse({
|
||||
|
||||
@@ -1399,11 +1399,24 @@ export class DocumentDetailComponent
|
||||
this.versionUploadError = null
|
||||
}
|
||||
|
||||
private getSelectedNonLatestVersionId(): number | null {
|
||||
const versions = this.document?.versions ?? []
|
||||
if (!versions.length || !this.selectedVersionId) {
|
||||
return null
|
||||
}
|
||||
const latestVersionId = Math.max(...versions.map((version) => version.id))
|
||||
return this.selectedVersionId === latestVersionId
|
||||
? null
|
||||
: this.selectedVersionId
|
||||
}
|
||||
|
||||
download(original: boolean = false) {
|
||||
this.downloading = true
|
||||
const selectedVersionId = this.getSelectedNonLatestVersionId()
|
||||
const downloadUrl = this.documentsService.getDownloadUrl(
|
||||
this.selectedVersionId || this.documentId,
|
||||
original
|
||||
this.documentId,
|
||||
original,
|
||||
selectedVersionId
|
||||
)
|
||||
this.http
|
||||
.get(downloadUrl, { observe: 'response', responseType: 'blob' })
|
||||
@@ -1835,9 +1848,11 @@ export class DocumentDetailComponent
|
||||
}
|
||||
|
||||
printDocument() {
|
||||
const selectedVersionId = this.getSelectedNonLatestVersionId()
|
||||
const printUrl = this.documentsService.getDownloadUrl(
|
||||
this.document.id,
|
||||
false
|
||||
false,
|
||||
selectedVersionId
|
||||
)
|
||||
this.http
|
||||
.get(printUrl, { responseType: 'blob' })
|
||||
|
||||
Reference in New Issue
Block a user