<pngx-page-header [(title)]="title">
+
+ @if (document?.versions?.length > 0) {
+ <div class="btn-group" ngbDropdown role="group">
+ <div class="btn-group" ngbDropdown role="group">
+ <button class="btn btn-sm btn-outline-secondary dropdown-toggle" ngbDropdownToggle>
+ <i-bs name="layers"></i-bs>
+ <span class="d-none d-lg-inline ps-1" i18n>Version</span>
+ </button>
+ <div class="dropdown-menu shadow" ngbDropdownMenu>
+ @for (vid of document.versions; track vid) {
+ <button ngbDropdownItem (click)="selectVersion(vid)">
+ <span i18n>Version</span> {{vid}}
+ @if (selectedVersionId === vid) { <span> ✓</span> }
+ </button>
+ }
+ </div>
+ </div>
+ <input #versionFileInput type="file" class="visually-hidden" (change)="onVersionFileSelected($event)" />
+ <button class="btn btn-sm btn-outline-secondary" title="Upload new version" i18n-title (click)="triggerUploadVersion()" [disabled]="!userIsOwner || !userCanEdit">
+ <i-bs name="file-earmark-plus"></i-bs><span class="visually-hidden" i18n>Upload new version</span>
+ </button>
+ </div>
+ }
@if (archiveContentRenderType === ContentRenderType.PDF && !useNativePdfViewer) {
@if (previewNumPages) {
- <div class="input-group input-group-sm d-none d-md-flex">
+ <div class="input-group input-group-sm ms-2 d-none d-md-flex">
<div class="input-group-text" i18n>Page</div>
<input class="form-control flex-grow-0 w-auto" type="number" min="1" [max]="previewNumPages" [(ngModel)]="previewCurrentPage" />
<div class="input-group-text" i18n>of {{previewNumPages}}</div>
}
</div>
- @if (document?.versions?.length > 0) {
- <div class="btn-group ms-2" ngbDropdown role="group">
- <button class="btn btn-sm btn-outline-secondary dropdown-toggle" ngbDropdownToggle>
- <i-bs name="layers"></i-bs>
- <span class="d-none d-lg-inline ps-1" i18n>Version</span>
- </button>
- <div class="dropdown-menu shadow" ngbDropdownMenu>
- <button ngbDropdownItem (click)="selectVersion(document.id)">
- <span i18n>Current</span>
- @if (selectedVersionId === document.id) { <span> ✓</span> }
- </button>
- @for (vid of document.versions; track vid) {
- <button ngbDropdownItem (click)="selectVersion(vid)">
- <span i18n>Version</span> {{vid}}
- @if (selectedVersionId === vid) { <span> ✓</span> }
- </button>
- }
- </div>
- </div>
- }
-
<div class="ms-auto" ngbDropdown>
<button class="btn btn-sm btn-outline-primary" id="actionsDropdown" ngbDropdownToggle>
<i-bs name="three-dots"></i-bs>
<button ngbDropdownItem (click)="editPdf()" [disabled]="!userIsOwner || !userCanEdit || originalContentRenderType !== ContentRenderType.PDF">
<i-bs name="pencil"></i-bs> <ng-container i18n>PDF Editor</ng-container>
</button>
-
- <div class="dropdown-divider"></div>
- <button ngbDropdownItem (click)="triggerUploadVersion()" [disabled]="!userIsOwner || !userCanEdit">
- <i-bs name="file-earmark-plus"></i-bs> <ng-container i18n>Upload new version</ng-container>
- </button>
- <input #versionFileInput type="file" class="visually-hidden" (change)="onVersionFileSelected($event)" />
</div>
</div>
updateComponent(doc: Document) {
this.document = doc
- // Default selected version is the head document
- this.selectedVersionId = doc.id
+ // Default selected version is the newest version
+ this.selectedVersionId = doc.versions?.length
+ ? Math.max(...doc.versions)
+ : doc.id
this.requiresPassword = false
this.updateFormForCustomFields()
if (this.archiveContentRenderType === ContentRenderType.TIFF) {
selectVersion(versionId: number) {
this.selectedVersionId = versionId
this.previewUrl = this.documentsService.getPreviewUrl(
+ this.documentId,
+ false,
this.selectedVersionId
)
this.thumbUrl = this.documentsService.getThumbUrl(this.selectedVersionId)
})
}
- getPreviewUrl(id: number, original: boolean = false): string {
+ getPreviewUrl(
+ id: number,
+ original: boolean = false,
+ versionID: number = null
+ ): string {
let url = new URL(this.getResourceUrl(id, 'preview'))
if (this._searchQuery) url.hash = `#search="${this.searchQuery}"`
if (original) {
url.searchParams.append('original', 'true')
}
+ if (versionID) {
+ url.searchParams.append('version', versionID.toString())
+ }
return url.toString()
}