Loading indicator
This commit is contained in:
parent
2d1efd0b4e
commit
825ce7998d
@ -240,6 +240,12 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ng-template #previewContent>
|
<ng-template #previewContent>
|
||||||
|
<div *ngIf="previewLoading" class="w-100 h-100 d-flex align-items-center justify-content-center">
|
||||||
|
<div>
|
||||||
|
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
||||||
|
<ng-container i18n>Loading...</ng-container>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<ng-container *ngIf="getContentType() === 'application/pdf'">
|
<ng-container *ngIf="getContentType() === 'application/pdf'">
|
||||||
<div class="preview-sticky pdf-viewer-container" *ngIf="!useNativePdfViewer ; else nativePdfViewer">
|
<div class="preview-sticky pdf-viewer-container" *ngIf="!useNativePdfViewer ; else nativePdfViewer">
|
||||||
<ngx-extended-pdf-viewer
|
<ngx-extended-pdf-viewer
|
||||||
@ -248,6 +254,7 @@
|
|||||||
[showToolbar]="false"
|
[showToolbar]="false"
|
||||||
[zoom]="previewZoomSetting"
|
[zoom]="previewZoomSetting"
|
||||||
(pagesLoaded)="onPagesLoaded($event)"
|
(pagesLoaded)="onPagesLoaded($event)"
|
||||||
|
(pdfLoadingStarts)="onPdfLoadingStarts()"
|
||||||
(pdfLoadingFailed)="onPdfLoadingFailed($event)"
|
(pdfLoadingFailed)="onPdfLoadingFailed($event)"
|
||||||
[(page)]="previewCurrentPage">
|
[(page)]="previewCurrentPage">
|
||||||
</ngx-extended-pdf-viewer>
|
</ngx-extended-pdf-viewer>
|
||||||
|
@ -154,6 +154,7 @@ export class DocumentDetailComponent
|
|||||||
previewCurrentPage: number = 1
|
previewCurrentPage: number = 1
|
||||||
previewNumPages: number = 1
|
previewNumPages: number = 1
|
||||||
previewZoomSetting: ZoomSetting = ZoomSetting.Width
|
previewZoomSetting: ZoomSetting = ZoomSetting.Width
|
||||||
|
previewLoading: boolean = true
|
||||||
|
|
||||||
store: BehaviorSubject<any>
|
store: BehaviorSubject<any>
|
||||||
isDirty$: Observable<boolean>
|
isDirty$: Observable<boolean>
|
||||||
@ -445,6 +446,8 @@ export class DocumentDetailComponent
|
|||||||
.subscribe({
|
.subscribe({
|
||||||
next: (result) => {
|
next: (result) => {
|
||||||
this.metadata = result
|
this.metadata = result
|
||||||
|
if (this.getContentType() !== 'application/pdf')
|
||||||
|
this.previewLoading = false
|
||||||
},
|
},
|
||||||
error: (error) => {
|
error: (error) => {
|
||||||
this.metadata = null
|
this.metadata = null
|
||||||
@ -766,6 +769,10 @@ export class DocumentDetailComponent
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onPdfLoadingStarts() {
|
||||||
|
this.previewLoading = false
|
||||||
|
}
|
||||||
|
|
||||||
onPagesLoaded(event: PagesLoadedEvent) {
|
onPagesLoaded(event: PagesLoadedEvent) {
|
||||||
this.previewNumPages = event.pagesCount
|
this.previewNumPages = event.pagesCount
|
||||||
}
|
}
|
||||||
@ -784,6 +791,54 @@ export class DocumentDetailComponent
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onZoomSelect(event: Event) {
|
||||||
|
this.previewZoomSetting = (event.target as HTMLSelectElement)
|
||||||
|
?.value as ZoomSetting
|
||||||
|
}
|
||||||
|
|
||||||
|
get zoomSettings() {
|
||||||
|
return Object.values(ZoomSetting)
|
||||||
|
}
|
||||||
|
|
||||||
|
getZoomSettingTitle(setting: ZoomSetting = null): string {
|
||||||
|
switch (setting) {
|
||||||
|
case ZoomSetting.Auto:
|
||||||
|
return $localize`Auto`
|
||||||
|
case ZoomSetting.Actual:
|
||||||
|
return $localize`Actual Size`
|
||||||
|
case ZoomSetting.Fit:
|
||||||
|
return $localize`Page Fit`
|
||||||
|
case ZoomSetting.Width:
|
||||||
|
return $localize`Page Width`
|
||||||
|
default:
|
||||||
|
return setting
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
increaseZoom(): void {
|
||||||
|
let currentIndex = Object.values(ZoomSetting).indexOf(
|
||||||
|
this.previewZoomSetting
|
||||||
|
)
|
||||||
|
if (currentIndex < 4) currentIndex = 7
|
||||||
|
this.previewZoomSetting =
|
||||||
|
Object.values(ZoomSetting)[
|
||||||
|
Math.min(Object.values(ZoomSetting).length - 1, currentIndex + 1)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
decreaseZoom(): void {
|
||||||
|
let currentIndex = Object.values(ZoomSetting).indexOf(
|
||||||
|
this.previewZoomSetting
|
||||||
|
)
|
||||||
|
if (currentIndex < 4) currentIndex = 7
|
||||||
|
this.previewZoomSetting =
|
||||||
|
Object.values(ZoomSetting)[Math.max(4, currentIndex - 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
print(): void {
|
||||||
|
this.printService.print()
|
||||||
|
}
|
||||||
|
|
||||||
get showPermissions(): boolean {
|
get showPermissions(): boolean {
|
||||||
return (
|
return (
|
||||||
this.permissionsService.currentUserCan(
|
this.permissionsService.currentUserCan(
|
||||||
@ -937,52 +992,4 @@ export class DocumentDetailComponent
|
|||||||
this.updateFormForCustomFields(true)
|
this.updateFormForCustomFields(true)
|
||||||
this.documentForm.updateValueAndValidity()
|
this.documentForm.updateValueAndValidity()
|
||||||
}
|
}
|
||||||
|
|
||||||
onZoomSelect(event: Event) {
|
|
||||||
this.previewZoomSetting = (event.target as HTMLSelectElement)
|
|
||||||
?.value as ZoomSetting
|
|
||||||
}
|
|
||||||
|
|
||||||
get zoomSettings() {
|
|
||||||
return Object.values(ZoomSetting)
|
|
||||||
}
|
|
||||||
|
|
||||||
getZoomSettingTitle(setting: ZoomSetting = null): string {
|
|
||||||
switch (setting) {
|
|
||||||
case ZoomSetting.Auto:
|
|
||||||
return $localize`Auto`
|
|
||||||
case ZoomSetting.Actual:
|
|
||||||
return $localize`Actual Size`
|
|
||||||
case ZoomSetting.Fit:
|
|
||||||
return $localize`Page Fit`
|
|
||||||
case ZoomSetting.Width:
|
|
||||||
return $localize`Page Width`
|
|
||||||
default:
|
|
||||||
return setting
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
increaseZoom(): void {
|
|
||||||
let currentIndex = Object.values(ZoomSetting).indexOf(
|
|
||||||
this.previewZoomSetting
|
|
||||||
)
|
|
||||||
if (currentIndex < 4) currentIndex = 7
|
|
||||||
this.previewZoomSetting =
|
|
||||||
Object.values(ZoomSetting)[
|
|
||||||
Math.min(Object.values(ZoomSetting).length - 1, currentIndex + 1)
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
decreaseZoom(): void {
|
|
||||||
let currentIndex = Object.values(ZoomSetting).indexOf(
|
|
||||||
this.previewZoomSetting
|
|
||||||
)
|
|
||||||
if (currentIndex < 4) currentIndex = 7
|
|
||||||
this.previewZoomSetting =
|
|
||||||
Object.values(ZoomSetting)[Math.max(4, currentIndex - 1)]
|
|
||||||
}
|
|
||||||
|
|
||||||
print(): void {
|
|
||||||
this.printService.print()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user