-<div class="card mb-3 shadow-sm" [class.card-selected]="selected" [class.document-card]="selectable" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()">
+<div class="card mb-3 shadow-sm bg-light" [class.card-selected]="selected" [class.document-card]="selectable" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()">
<div class="row g-0">
<div class="col-md-2 doc-img-background rounded-start" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)" (dblclick)="dblClickDocument.emit()">
<img [src]="getThumbUrl()" class="card-img doc-img border-end rounded-start" [class.inverted]="getIsThumbInverted()">
</div>
<div class="col">
- <div class="card-body bg-light">
-
+ <div class="card-body">
<div class="d-flex justify-content-between align-items-center">
<h5 class="card-title">
@if (document.correspondent) {
}
</p>
-
<div class="d-flex flex-column flex-md-row align-items-md-center">
<div class="btn-group">
<a class="btn btn-sm btn-outline-secondary" (click)="clickMoreLike.emit()">
- <i-bs name="diagram-3"></i-bs> <span class="d-none d-md-inline" i18n>More like this</span>
+ <i-bs name="diagram-3"></i-bs> <span class="d-none d-md-inline" i18n>More like this</span>
+ </a>
+ <a routerLink="/documents/{{document.id}}" class="btn btn-sm btn-outline-secondary" *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.Document }">
+ <i-bs name="pencil"></i-bs> <span class="d-none d-md-inline" i18n>Edit</span>
+ </a>
+ <a class="btn btn-sm btn-outline-secondary" target="_blank" [href]="previewUrl"
+ [ngbPopover]="previewContent" [popoverTitle]="document.title | documentTitle"
+ autoClose="true" popoverClass="shadow popover-preview" (mouseenter)="mouseEnterPreview()" (mouseleave)="mouseLeavePreview()" #popover="ngbPopover">
+ <i-bs name="eye"></i-bs> <span class="d-none d-md-inline" i18n>View</span>
+ </a>
+ <ng-template #previewContent>
+ <pngx-preview-popup [document]="document"></pngx-preview-popup>
+ </ng-template>
+ <a class="btn btn-sm btn-outline-secondary" [href]="getDownloadUrl()">
+ <i-bs name="download"></i-bs> <span class="d-none d-md-inline" i18n>Download</span>
</a>
- <a routerLink="/documents/{{document.id}}" class="btn btn-sm btn-outline-secondary" *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.Document }">
- <i-bs name="pencil"></i-bs> <span class="d-none d-md-inline" i18n>Edit</span>
- </a>
- <a class="btn btn-sm btn-outline-secondary" target="_blank" [href]="previewUrl"
- [ngbPopover]="previewContent" [popoverTitle]="document.title | documentTitle"
- autoClose="true" popoverClass="shadow popover-preview" (mouseenter)="mouseEnterPreview()" (mouseleave)="mouseLeavePreview()" #popover="ngbPopover">
- <i-bs name="eye"></i-bs> <span class="d-none d-md-inline" i18n>View</span>
- </a>
- <ng-template #previewContent>
- <pngx-preview-popup [document]="document"></pngx-preview-popup>
- </ng-template>
- <a class="btn btn-sm btn-outline-secondary" [href]="getDownloadUrl()">
- <i-bs name="download"></i-bs> <span class="d-none d-md-inline" i18n>Download</span>
- </a>
- </div>
-
+ </div>
- <div class="list-group list-group-horizontal border-0 card-info ms-md-auto mt-2 mt-md-0">
- @if (notesEnabled && document.notes.length) {
- <button routerLink="/documents/{{document.id}}/notes" class="list-group-item btn btn-sm bg-light text-dark p-1 border-0 me-2 d-flex align-items-center" title="View notes" i18n-title>
- <i-bs width="09.rem" height="0.9rem" class="me-2 text-muted" name="chat-left-text"></i-bs><small i18n>{{document.notes.length}} Notes</small>
- </button>
- }
- @if (document.document_type) {
- <button type="button" class="list-group-item btn btn-sm bg-light text-dark p-1 border-0 me-2 d-flex align-items-center" title="Filter by document type" i18n-title
- (click)="clickDocumentType.emit(document.document_type);$event.stopPropagation()">
- <i-bs width="09.rem" height="0.9rem" class="me-2 text-muted" name="file-earmark"></i-bs><small>{{(document.document_type$ | async)?.name}}</small>
- </button>
- }
- @if (document.storage_path) {
- <button type="button" class="list-group-item btn btn-sm bg-light text-dark p-1 border-0 me-2 d-flex align-items-center" title="Filter by storage path" i18n-title
- (click)="clickStoragePath.emit(document.storage_path);$event.stopPropagation()">
- <i-bs width="09.rem" height="0.9rem" class="me-2 text-muted" name="archive"></i-bs><small>{{(document.storage_path$ | async)?.name}}</small>
- </button>
- }
- @if (document.archive_serial_number | isNumber) {
- <div class="list-group-item me-2 bg-light text-dark p-1 border-0 d-flex align-items-center">
- <i-bs width="09.rem" height="0.9rem" class="me-2 text-muted" name="upc-scan"></i-bs><small>#{{document.archive_serial_number}}</small>
- </div>
- }
- <ng-template #dateTooltip>
- <div class="d-flex flex-column text-light">
- <span i18n>Created: {{ document.created | customDate }}</span>
- <span i18n>Added: {{ document.added | customDate }}</span>
- <span i18n>Modified: {{ document.modified | customDate }}</span>
- </div>
- </ng-template>
- <div class="list-group-item bg-light text-dark p-1 border-0 d-flex align-items-center" [ngbTooltip]="dateTooltip">
- <i-bs width="09.rem" height="0.9rem" class="me-2 text-muted" name="calendar-event"></i-bs><small>{{document.created_date | customDate:'mediumDate'}}</small>
- </div>
- @if (document.owner && document.owner !== settingsService.currentUser.id) {
- <div class="list-group-item bg-light text-dark p-1 border-0 d-flex align-items-center">
- <i-bs width="09.rem" height="0.9rem" class="me-2 text-muted" name="person-fill-lock"></i-bs><small>{{document.owner | username}}</small>
- </div>
- }
- @if (document.is_shared_by_requester) {
- <div class="list-group-item bg-light text-dark p-1 border-0 d-flex align-items-center">
- <i-bs width="09.rem" height="0.9rem" class="me-2 text-muted" name="people-fill"></i-bs><small i18n>Shared</small>
- </div>
- }
- @if (document.__search_hit__?.score) {
- <div class="list-group-item bg-light text-dark border-0 d-flex p-0 ps-4 search-score">
- <small class="text-muted" i18n>Score:</small>
- <ngb-progressbar [type]="searchScoreClass" [value]="document.__search_hit__.score" class="search-score-bar mx-2 mt-1" [max]="1"></ngb-progressbar>
- </div>
- }
- </div>
+ <div class="list-group list-group-horizontal border-0 card-info ms-md-auto mt-2 mt-md-0">
+ @if (notesEnabled && document.notes.length) {
+ <button routerLink="/documents/{{document.id}}/notes" class="list-group-item btn btn-sm bg-light text-dark p-1 border-0 me-2 d-flex align-items-center" title="View notes" i18n-title>
+ <i-bs width=".9em" height=".9em" class="me-2 text-muted" name="chat-left-text"></i-bs><small i18n>{{document.notes.length}} Notes</small>
+ </button>
+ }
+ @if (document.document_type) {
+ <button type="button" class="list-group-item btn btn-sm bg-light text-dark p-1 border-0 me-2 d-flex align-items-center" title="Filter by document type" i18n-title
+ (click)="clickDocumentType.emit(document.document_type);$event.stopPropagation()">
+ <i-bs width=".9em" height=".9em" class="me-2 text-muted" name="file-earmark"></i-bs><small>{{(document.document_type$ | async)?.name}}</small>
+ </button>
+ }
+ @if (document.storage_path) {
+ <button type="button" class="list-group-item btn btn-sm bg-light text-dark p-1 border-0 me-2 d-flex align-items-center" title="Filter by storage path" i18n-title
+ (click)="clickStoragePath.emit(document.storage_path);$event.stopPropagation()">
+ <i-bs width=".9em" height=".9em" class="me-2 text-muted" name="archive"></i-bs><small>{{(document.storage_path$ | async)?.name}}</small>
+ </button>
+ }
+ @if (document.archive_serial_number | isNumber) {
+ <div class="list-group-item me-2 bg-light text-dark p-1 border-0 d-flex align-items-center">
+ <i-bs width=".9em" height=".9em" class="me-2 text-muted" name="upc-scan"></i-bs><small>#{{document.archive_serial_number}}</small>
</div>
-
+ }
+ <ng-template #dateTooltip>
+ <div class="d-flex flex-column text-light">
+ <span i18n>Created: {{ document.created | customDate }}</span>
+ <span i18n>Added: {{ document.added | customDate }}</span>
+ <span i18n>Modified: {{ document.modified | customDate }}</span>
+ </div>
+ </ng-template>
+ <div class="list-group-item bg-light text-dark p-1 border-0 d-flex align-items-center" [ngbTooltip]="dateTooltip">
+ <i-bs width=".9em" height=".9em" class="me-2 text-muted" name="calendar-event"></i-bs><small>{{document.created_date | customDate:'mediumDate'}}</small>
</div>
+ @if (document.owner && document.owner !== settingsService.currentUser.id) {
+ <div class="list-group-item bg-light text-dark p-1 border-0 d-flex align-items-center">
+ <i-bs width=".9em" height=".9em" class="me-2 text-muted" name="person-fill-lock"></i-bs><small>{{document.owner | username}}</small>
+ </div>
+ }
+ @if (document.is_shared_by_requester) {
+ <div class="list-group-item bg-light text-dark p-1 border-0 d-flex align-items-center">
+ <i-bs width=".9em" height=".9em" class="me-2 text-muted" name="people-fill"></i-bs><small i18n>Shared</small>
+ </div>
+ }
+ @if (document.__search_hit__?.score) {
+ <div class="list-group-item bg-light text-dark border-0 d-flex p-0 ps-4 search-score">
+ <small class="me-2 text-muted" i18n>Score:</small>
+ <ngb-progressbar [type]="searchScoreClass" [value]="document.__search_hit__.score" class="search-score-bar mx-2 mt-1" [max]="1"></ngb-progressbar>
+ </div>
+ }
</div>
</div>
</div>
+ </div>
+ </div>
+ </div>