mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-05-01 11:19:32 -05:00
Fix: tweak doc detail component behavior while awaiting metadata (#5546)
This commit is contained in:
parent
d27d351635
commit
7de4b911bd
@ -324,44 +324,45 @@
|
|||||||
<ng-container i18n>Loading...</ng-container>
|
<ng-container i18n>Loading...</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
} @else {
|
||||||
@switch (contentRenderType) {
|
@switch (contentRenderType) {
|
||||||
@case (ContentRenderType.PDF) {
|
@case (ContentRenderType.PDF) {
|
||||||
@if (!useNativePdfViewer) {
|
@if (!useNativePdfViewer) {
|
||||||
<div class="preview-sticky pdf-viewer-container">
|
<div class="preview-sticky pdf-viewer-container">
|
||||||
<pngx-pdf-viewer
|
<pngx-pdf-viewer
|
||||||
[src]="{ url: previewUrl, password: password }"
|
[src]="{ url: previewUrl, password: password }"
|
||||||
[original-size]="false"
|
[original-size]="false"
|
||||||
[show-borders]="true"
|
[show-borders]="true"
|
||||||
[show-all]="true"
|
[show-all]="true"
|
||||||
[(page)]="previewCurrentPage"
|
[(page)]="previewCurrentPage"
|
||||||
[zoom-scale]="previewZoomScale"
|
[zoom-scale]="previewZoomScale"
|
||||||
[zoom]="previewZoomSetting"
|
[zoom]="previewZoomSetting"
|
||||||
(error)="onError($event)"
|
(error)="onError($event)"
|
||||||
(after-load-complete)="pdfPreviewLoaded($event)">
|
(after-load-complete)="pdfPreviewLoaded($event)">
|
||||||
</pngx-pdf-viewer>
|
</pngx-pdf-viewer>
|
||||||
|
</div>
|
||||||
|
} @else {
|
||||||
|
<object [data]="previewUrl | safeUrl" class="preview-sticky" width="100%"></object>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@case (ContentRenderType.Text) {
|
||||||
|
<div class="preview-sticky bg-light p-3 overflow-auto" width="100%">{{previewText}}</div>
|
||||||
|
}
|
||||||
|
@case (ContentRenderType.Image) {
|
||||||
|
<div class="preview-sticky">
|
||||||
|
<img [src]="previewUrl | safeUrl" width="100%" height="100%" alt="{{title}}" />
|
||||||
</div>
|
</div>
|
||||||
} @else {
|
}
|
||||||
|
@case (ContentRenderType.Other) {
|
||||||
<object [data]="previewUrl | safeUrl" class="preview-sticky" width="100%"></object>
|
<object [data]="previewUrl | safeUrl" class="preview-sticky" width="100%"></object>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@case (ContentRenderType.Text) {
|
@if (requiresPassword) {
|
||||||
<div class="preview-sticky bg-light p-3 overflow-auto" width="100%">{{previewText}}</div>
|
<div class="password-prompt">
|
||||||
}
|
<form>
|
||||||
@case (ContentRenderType.Image) {
|
<input autocomplete="" autofocus="true" class="form-control" i18n-placeholder placeholder="Enter Password" type="password" (keyup)="onPasswordKeyUp($event)" />
|
||||||
<div class="preview-sticky">
|
</form>
|
||||||
<img [src]="previewUrl | safeUrl" width="100%" height="100%" alt="{{title}}" />
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@case (ContentRenderType.Other) {
|
|
||||||
<object [data]="previewUrl | safeUrl" class="preview-sticky" width="100%"></object>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@if (requiresPassword) {
|
|
||||||
<div class="password-prompt">
|
|
||||||
<form>
|
|
||||||
<input autocomplete="" autofocus="true" class="form-control" i18n-placeholder placeholder="Enter Password" type="password" (keyup)="onPasswordKeyUp($event)" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
}
|
}
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
@ -681,6 +681,7 @@ describe('DocumentDetailComponent', () => {
|
|||||||
|
|
||||||
it('should support Enter key in password field', () => {
|
it('should support Enter key in password field', () => {
|
||||||
initNormally()
|
initNormally()
|
||||||
|
component.metadata = { has_archive_version: true }
|
||||||
component.onError({ name: 'PasswordException' }) // normally dispatched by pdf viewer
|
component.onError({ name: 'PasswordException' }) // normally dispatched by pdf viewer
|
||||||
fixture.detectChanges()
|
fixture.detectChanges()
|
||||||
expect(component.password).toBeUndefined()
|
expect(component.password).toBeUndefined()
|
||||||
|
@ -82,6 +82,7 @@ enum ContentRenderType {
|
|||||||
Image = 'image',
|
Image = 'image',
|
||||||
Text = 'text',
|
Text = 'text',
|
||||||
Other = 'other',
|
Other = 'other',
|
||||||
|
Unknown = 'unknown',
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ZoomSetting {
|
enum ZoomSetting {
|
||||||
@ -211,6 +212,7 @@ export class DocumentDetailComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
get contentRenderType(): ContentRenderType {
|
get contentRenderType(): ContentRenderType {
|
||||||
|
if (!this.metadata) return ContentRenderType.Unknown
|
||||||
const contentType = this.metadata?.has_archive_version
|
const contentType = this.metadata?.has_archive_version
|
||||||
? 'application/pdf'
|
? 'application/pdf'
|
||||||
: this.metadata?.original_mime_type
|
: this.metadata?.original_mime_type
|
||||||
|
Loading…
x
Reference in New Issue
Block a user