From 9418ca10d5844d90097c29adf048ab8c58621a9b Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Thu, 7 Dec 2023 09:34:45 -0800
Subject: [PATCH] Fix: disable share link archive switch if archive version
doesnt exist
---
.../share-links-dropdown.component.html | 2 +-
.../share-links-dropdown.component.spec.ts | 15 ++++++++++++++-
.../share-links-dropdown.component.ts | 8 ++++++--
.../document-detail.component.html | 2 +-
src-ui/src/app/data/paperless-document.ts | 2 ++
5 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.html b/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.html
index 2d708981f..c88933686 100644
--- a/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.html
+++ b/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.html
@@ -38,7 +38,7 @@
diff --git a/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.spec.ts b/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.spec.ts
index 27955a8a5..74a40d529 100644
--- a/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.spec.ts
+++ b/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.spec.ts
@@ -19,6 +19,7 @@ import { ToastService } from 'src/app/services/toast.service'
import { environment } from 'src/environments/environment'
import { ShareLinksDropdownComponent } from './share-links-dropdown.component'
import { Clipboard } from '@angular/cdk/clipboard'
+import { By } from '@angular/platform-browser'
describe('ShareLinksDropdownComponent', () => {
let component: ShareLinksDropdownComponent
@@ -97,7 +98,7 @@ describe('ShareLinksDropdownComponent', () => {
const createSpy = jest.spyOn(shareLinkService, 'createLinkForDocument')
component.documentId = 99
component.expirationDays = 7
- component.archiveVersion = false
+ component.useArchiveVersion = false
const expiration = new Date()
expiration.setDate(expiration.getDate() + 7)
@@ -212,4 +213,16 @@ describe('ShareLinksDropdownComponent', () => {
'http://example.domainwithapiinit.com:1234/subpath/share/123abc123'
)
})
+
+ it('should disable archive switch & option if no archive available', () => {
+ component.hasArchiveVersion = false
+ component.ngOnInit()
+ fixture.detectChanges()
+ expect(component.useArchiveVersion).toBeFalsy()
+ expect(
+ fixture.debugElement.query(By.css("input[type='checkbox']")).attributes[
+ 'ng-reflect-is-disabled'
+ ]
+ ).toBeTruthy()
+ })
})
diff --git a/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.ts b/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.ts
index fa2df3a54..d211dd171 100644
--- a/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.ts
+++ b/src-ui/src/app/components/common/share-links-dropdown/share-links-dropdown.component.ts
@@ -38,6 +38,9 @@ export class ShareLinksDropdownComponent implements OnInit {
@Input()
disabled: boolean = false
+ @Input()
+ hasArchiveVersion: boolean = true
+
shareLinks: PaperlessShareLink[]
loading: boolean = false
@@ -46,7 +49,7 @@ export class ShareLinksDropdownComponent implements OnInit {
expirationDays: number = 7
- archiveVersion: boolean = true
+ useArchiveVersion: boolean = true
constructor(
private shareLinkService: ShareLinkService,
@@ -56,6 +59,7 @@ export class ShareLinksDropdownComponent implements OnInit {
ngOnInit(): void {
if (this._documentId !== undefined) this.refresh()
+ this.useArchiveVersion = this.hasArchiveVersion
}
refresh() {
@@ -132,7 +136,7 @@ export class ShareLinksDropdownComponent implements OnInit {
this.shareLinkService
.createLinkForDocument(
this._documentId,
- this.archiveVersion
+ this.useArchiveVersion
? PaperlessFileVersion.Archive
: PaperlessFileVersion.Original,
expiration
diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html
index ea14b750d..aa2f91a35 100644
--- a/src-ui/src/app/components/document-detail/document-detail.component.html
+++ b/src-ui/src/app/components/document-detail/document-detail.component.html
@@ -69,7 +69,7 @@
(added)="addField($event)">
-
+
diff --git a/src-ui/src/app/data/paperless-document.ts b/src-ui/src/app/data/paperless-document.ts
index b00c478fc..8071e2b45 100644
--- a/src-ui/src/app/data/paperless-document.ts
+++ b/src-ui/src/app/data/paperless-document.ts
@@ -50,6 +50,8 @@ export interface PaperlessDocument extends ObjectWithPermissions {
original_file_name?: string
+ archived_file_name?: string
+
download_url?: string
thumbnail_url?: string