diff --git a/src/app/shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog.html b/src/app/shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog.html index 9e1b9d9ced8b8754dd49d2da7ee8fc92dde61a5b..0b1549125302ba461cd059f86241c05f3bd5fece 100644 --- a/src/app/shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog.html +++ b/src/app/shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog.html @@ -7,7 +7,8 @@ <!-- TODO USE COMPONENT BUTTON-TOOLBAR-DETAIL.PRESENTATIONAL--> <button mat-button *ngIf="!button.displayCondition || (button.displayCondition(data.aip) | solidifyAsync)" - [disabled]="!button.disableCondition || (button.disableCondition(data.aip) | solidifyAsync)" + [disabled]="(button.disableCondition | isNullOrUndefined) ? false : ((button.disableCondition(data.aip) | isObservable) ? + (button.disableCondition(data.aip) | async) : button.disableCondition(data.aip))" [color]="button.color" (keydown.enter)="button.callback ? button.callback(data.aip) : undefined" (click)="button.callback ? button.callback(data.aip) : undefined" @@ -17,17 +18,6 @@ </button> </ng-container> - <button mat-button - *ngIf="data.isLoading !== null" - color="primary" - solidifyShortCuts - (onEnter)="showHistory()" - (click)="showHistory()" - > - <mat-icon>history</mat-icon> - {{'deposit.file.button.showHistory' | translate}} - </button> - <button mat-button color="primary" solidifyShortCuts @@ -39,171 +29,223 @@ </button> </div> - <div class="container"> - <div class="left-part"> - <dlcm-shared-panel-expandable [titleToTranslate]="'deposit.file.details.delimiter.fileInfo' | translate" - [isOpen]="true" - > - <mat-list> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.fileName' | translate}}</span> - <span class="value">{{data.aip.info.name}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.smartSize' | translate}}</span> - <span class="value">{{data.aip.smartSize}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <ng-container *ngIf="data.aip.fileFormat !== null"> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.mimeType' | translate}}</span> - <span class="value">{{data.aip.fileFormat.contentType}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.fileFormat' | translate}}</span> - <span class="value">{{data.aip.fileFormat.format}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.puid' | translate}}</span> - <span class="value"><a [href]="getPuidLink(data.aip.fileFormat.puid)" - target="_blank" - >{{data.aip.fileFormat.puid}}</a></span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - </ng-container> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.complianceLevel' | translate}}</span> - <span class="value"> - <dlcm-shared-compliance-level-rating [value]="data.aip.info.complianceLevel" - [withLabel]="false" - ></dlcm-shared-compliance-level-rating> - </span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - </mat-list> - </dlcm-shared-panel-expandable> + <ng-template [ngIf]="breakpointService.isSmallerOrEqualThanMdObs() | async "> + <div class="container"> + <ng-template [ngTemplateOutlet]="leftPartTemplate"></ng-template> </div> - <div class="right-part"> - <dlcm-shared-panel-expandable *ngIf="data.aip.checksums !== undefined && data.aip.checksums !== null && data.aip.checksums.length > 0" - [isOpen]="true" - [titleToTranslate]="'deposit.file.details.delimiter.checksum' | translate" - > - <dlcm-shared-checksum [checksums]="data.aip.checksums"></dlcm-shared-checksum> - </dlcm-shared-panel-expandable> - - <dlcm-shared-panel-expandable *ngIf="data.aip.fileFormat?.tool !== null" - [titleToTranslate]="'deposit.file.details.delimiter.analyticalTool' | translate" - > - <mat-list> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.name' | translate}}</span> - <span class="value">{{data.aip.fileFormat.tool.name}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.version' | translate}}</span> - <span class="value">{{data.aip.fileFormat.tool.version}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> + </ng-template> + + <mat-tab-group #matTabGroup + mat-align-tabs="center" + animationDuration="0ms" + > + <mat-tab #infoTab> + <ng-template mat-tab-label> + <mat-icon class="tab-header-icon">info</mat-icon> + <span class="tab-header-label"> {{'crud.list.action.info' | translate}}</span> + </ng-template> + </mat-tab> + <mat-tab #historyTab> + <ng-template mat-tab-label> + <mat-icon class="tab-header-icon">history</mat-icon> + <span class="tab-header-label"> {{'crud.list.action.history' | translate}}</span> + </ng-template> + </mat-tab> + </mat-tab-group> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.description' | translate}}</span> - <span class="value">{{data.aip.fileFormat.tool.description}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> + <div class="container"> + <ng-template [ngIf]="breakpointService.isBiggerThanMdObs() | async " + [ngIfThen]="leftPartTemplate" + ></ng-template> + <ng-template [ngTemplateOutlet]="rightPartTemplate"></ng-template> + </div> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.puid' | translate}}</span> - <span class="value"><a [href]="getPuidLink(data.aip.fileFormat.tool.puid)" - target="_blank" - >{{data.aip.fileFormat.tool.puid}}</a></span> - </div> - </mat-list-item> - </mat-list> - </dlcm-shared-panel-expandable> +</dlcm-shared-base-info-dialog> - <dlcm-shared-panel-expandable *ngIf="data.aip.virusCheck !== null" - [titleToTranslate]="'deposit.file.details.delimiter.antivirus' | translate" - > - <mat-list> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.name' | translate}}</span> - <span class="value">{{data.aip.virusCheck.tool.name}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> +<ng-template #rightPartTemplate> + <div class="right-part"> + <ng-template [ngIf]="infoTab.isActive" + [ngIfThen]="checksumTemplate" + ></ng-template> + <ng-template [ngIf]="historyTab.isActive" + [ngIfThen]="historyTemplate" + ></ng-template> + </div> +</ng-template> +<ng-template #leftPartTemplate> + <div class="left-part"> + <dlcm-shared-panel-expandable [titleToTranslate]="'deposit.file.details.delimiter.fileInfo' | translate" + [isOpen]="true" + > + <mat-list> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.fileName' | translate}}</span> + <span class="value">{{data.aip.info.name}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.smartSize' | translate}}</span> + <span class="value">{{data.aip.smartSize}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <ng-container *ngIf="data.aip.fileFormat !== null"> <mat-list-item> <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.description' | translate}}</span> - <span class="value">{{data.aip.virusCheck.tool.description}}</span> + <span class="key">{{'deposit.file.detail.data.mimeType' | translate}}</span> + <span class="value">{{data.aip.fileFormat.contentType}}</span> </div> </mat-list-item> <mat-divider></mat-divider> <mat-list-item> <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.version' | translate}}</span> - <span class="value">{{data.aip.virusCheck.tool.version}}</span> + <span class="key">{{'deposit.file.detail.data.fileFormat' | translate}}</span> + <span class="value">{{data.aip.fileFormat.format}}</span> </div> </mat-list-item> <mat-divider></mat-divider> <mat-list-item> <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.puid' | translate}}</span> - <span class="value"><a [href]="getPuidLink(data.aip.virusCheck.tool.puid)" + <span class="key">{{'deposit.file.detail.data.puid' | translate}}</span> + <span class="value"><a [href]="getPuidLink(data.aip.fileFormat.puid)" target="_blank" - >{{data.aip.virusCheck.tool.puid}}</a></span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.virusCheck.checkDate' | translate}}</span> - <span class="value">{{data.aip.virusCheck.checkDate}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.virusCheck.details' | translate}}</span> - <span class="value">{{data.aip.virusCheck.details}}</span> + >{{data.aip.fileFormat.puid}}</a></span> </div> </mat-list-item> <mat-divider></mat-divider> - </mat-list> - </dlcm-shared-panel-expandable> - </div> + </ng-container> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.complianceLevel' | translate}}</span> + <span class="value"> + <dlcm-shared-compliance-level-rating [value]="data.aip.info.complianceLevel" + [withLabel]="false" + ></dlcm-shared-compliance-level-rating> + </span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + </mat-list> + </dlcm-shared-panel-expandable> </div> -</dlcm-shared-base-info-dialog> +</ng-template> + +<ng-template #checksumTemplate> + <dlcm-shared-panel-expandable *ngIf="data.aip.checksums !== undefined && data.aip.checksums !== null && data.aip.checksums.length > 0" + [isOpen]="true" + [titleToTranslate]="'deposit.file.details.delimiter.checksum' | translate" + > + <dlcm-shared-checksum [checksums]="data.aip.checksums"></dlcm-shared-checksum> + </dlcm-shared-panel-expandable> + + <dlcm-shared-panel-expandable *ngIf="data.aip.fileFormat?.tool !== null" + [titleToTranslate]="'deposit.file.details.delimiter.analyticalTool' | translate" + > + <mat-list> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.name' | translate}}</span> + <span class="value">{{data.aip.fileFormat.tool.name}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.version' | translate}}</span> + <span class="value">{{data.aip.fileFormat.tool.version}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.description' | translate}}</span> + <span class="value">{{data.aip.fileFormat.tool.description}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.puid' | translate}}</span> + <span class="value"><a [href]="getPuidLink(data.aip.fileFormat.tool.puid)" + target="_blank" + >{{data.aip.fileFormat.tool.puid}}</a></span> + </div> + </mat-list-item> + </mat-list> + </dlcm-shared-panel-expandable> + + <dlcm-shared-panel-expandable *ngIf="data.aip.virusCheck !== null" + [titleToTranslate]="'deposit.file.details.delimiter.antivirus' | translate" + > + <mat-list> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.name' | translate}}</span> + <span class="value">{{data.aip.virusCheck.tool.name}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.description' | translate}}</span> + <span class="value">{{data.aip.virusCheck.tool.description}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.version' | translate}}</span> + <span class="value">{{data.aip.virusCheck.tool.version}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.puid' | translate}}</span> + <span class="value"><a [href]="getPuidLink(data.aip.virusCheck.tool.puid)" + target="_blank" + >{{data.aip.virusCheck.tool.puid}}</a></span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.virusCheck.checkDate' | translate}}</span> + <span class="value">{{data.aip.virusCheck.checkDate}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.virusCheck.details' | translate}}</span> + <span class="value">{{data.aip.virusCheck.details}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + </mat-list> + </dlcm-shared-panel-expandable> +</ng-template> +<ng-template #historyTemplate> + <dlcm-shared-data-table [columns]="columns" + [isLoading]="data.isLoading | async" + [datas]="data.statusHistory | async" + [queryParameters]="data.queryParametersObs | async" + (queryParametersChange)="pagination($event)" + ></dlcm-shared-data-table> +</ng-template> diff --git a/src/app/shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog.ts b/src/app/shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog.ts index 385cae6687b8c954fda9d0ed9bdd03e080f751b0..c38a5c6f759f6435d9d25d7d985dbc85e0487f9e 100644 --- a/src/app/shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog.ts +++ b/src/app/shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog.ts @@ -18,6 +18,7 @@ import { SharedDetailDialog, SharedDetailDialogData, } from "@shared/components/dialogs/shared-detail-dialog/shared-detail.dialog"; +import {BreakpointService} from "@shared/services/breakpoint.service"; import { BaseResource, NotificationService, @@ -30,15 +31,15 @@ import { changeDetection: ChangeDetectionStrategy.OnPush, }) export class SharedAipDetailDialog<TResource extends BaseResource> extends SharedDetailDialog<TResource> implements OnInit { - paramMessage: { name: string } = {name: ""}; constructor(protected readonly _store: Store, protected readonly _dialog: MatDialog, protected readonly _actions$: Actions, + protected readonly _breakpointService: BreakpointService, protected readonly _notificationService: NotificationService, protected dialogRef: MatDialogRef<SharedDetailDialog<TResource>>, @Inject(MAT_DIALOG_DATA) public data: SharedAipDetailDialogData<TResource>) { - super(_store, _dialog, _actions$, _notificationService, dialogRef, data); + super(_store, _dialog, _actions$, _breakpointService, _notificationService, dialogRef, data); } } diff --git a/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.scss b/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.scss index 89d7b8fa3cbf0625376b3e0668194ecc93e0eded..cc30606716e3bb14c223558ef279173c371c6a0b 100644 --- a/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.scss +++ b/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.scss @@ -12,15 +12,37 @@ h2 { margin-top: 10px; } +.tab-header-label { + padding-left: 10px; +} + +.visualization { + .warning-area { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 300px; + + .icon { + padding: 10px; + } + + .visualization-error-message { + + } + } +} + @include respond-to-breakpoint-and-bigger('md') { .container { display: flex; flex-direction: row; margin-top: 20px; + max-height: 505px; .left-part, .right-part { - width: 100%; overflow: hidden } @@ -30,16 +52,54 @@ h2 { .right-part { padding-left: 20px; + max-height: 100%; + overflow: auto; + flex: 1; + } + + ::ng-deep .mat-paginator-container { + flex-wrap: initial; + } + } +} + +@include respond-to-breakpoint-and-bigger('lg') { + .container { + .left-part, + .right-part { + flex: 1; + overflow: hidden + } + + .left-part { + padding-right: 20px; + } + + .right-part { + padding-left: 20px; + max-height: 100%; + overflow: auto; } } } .item-content { - display: flex; - justify-content: flex-end; + display: grid; + grid-template-columns: max-content 10px 1fr; + grid-template-areas: "key . value"; width: 100%; flex-wrap: wrap; + .key { + grid-area: key; + } + + .value { + grid-area: value; + display: flex; + justify-content: flex-end; + } + .value-list { word-break: break-all; } diff --git a/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.ts b/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.ts index 59323ae87ee8248eb2df209e1f60b1a983b4ac89..c3237b0f458a70eba71236e7521c18a1dd337257 100644 --- a/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.ts +++ b/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.ts @@ -14,35 +14,84 @@ import { Store, } from "@ngxs/store"; import {SharedHistoryDialog} from "@shared/components/dialogs/shared-history/shared-history.dialog"; +import {FieldTypeEnum} from "@shared/enums/field-type.enum"; import {LocalStateEnum} from "@shared/enums/local-state.enum"; +import {HistoryStatusEnumHelper} from "@shared/helpers/history-status-enum.helper"; +import {DataTableColumns} from "@shared/models/data-table-columns.model"; import {ExtraButtonToolbar} from "@shared/models/extra-button-toolbar.model"; import {StatusHistoryDialog} from "@shared/models/status-history-dialog.model"; import {StatusHistory} from "@shared/models/status-history.model"; +import {BreakpointService} from "@shared/services/breakpoint.service"; import {StatusHistoryNamespace} from "@shared/stores/status-history/status-history-namespace.model"; import {Observable} from "rxjs"; import { BaseResource, ClipboardUtil, NotificationService, + OrderEnum, QueryParameters, TRANSLATE, } from "solidify-frontend"; export abstract class SharedDetailDialog<TResource extends BaseResource> extends SharedAbstractContainer implements OnInit { paramMessage: { name: string } = {name: ""}; + columns: DataTableColumns[]; protected constructor(protected readonly _store: Store, protected readonly _dialog: MatDialog, protected readonly _actions$: Actions, + protected readonly _breakpointService: BreakpointService, protected readonly _notificationService: NotificationService, protected dialogRef: MatDialogRef<SharedDetailDialog<TResource>>, @Inject(MAT_DIALOG_DATA) public data: SharedDetailDialogData<TResource>) { super(); } + get breakpointService(): BreakpointService { + return this._breakpointService; + } + ngOnInit(): void { super.ngOnInit(); this.paramMessage.name = this.data.name; + this.columns = [ + { + field: "changeTime", + header: TRANSLATE("app.history.table.changeTime"), + type: FieldTypeEnum.datetime, + order: OrderEnum.descending, + isSortable: true, + isFilterable: false, + }, + { + field: "status", + header: TRANSLATE("app.history.table.status"), + type: FieldTypeEnum.singleSelect, + order: OrderEnum.none, + isSortable: false, + isFilterable: false, + filterEnum: HistoryStatusEnumHelper.getListKeyValue(), + translate: true, + width: "110px", + }, + { + field: "description", + header: TRANSLATE("app.history.table.description"), + type: FieldTypeEnum.number, + order: OrderEnum.none, + isSortable: true, + isFilterable: false, + }, + { + field: "creatorName", + header: TRANSLATE("app.history.table.createdBy"), + type: FieldTypeEnum.string, + order: OrderEnum.none, + isSortable: false, + isFilterable: false, + width: "140px", + }, + ]; } close(): void { @@ -72,6 +121,11 @@ export abstract class SharedDetailDialog<TResource extends BaseResource> extends ClipboardUtil.copyStringToClipboard(this.data.resId); this._notificationService.showInformation(TRANSLATE("app.notification.idCopyToClipboard")); } + + pagination($event: QueryParameters): void { + this._store.dispatch(new this.data.state.ChangeQueryParameters($event, this.data.resId, this.data.parentId)); + } + } export interface SharedDetailDialogData<TResource extends BaseResource> { diff --git a/src/app/shared/components/dialogs/shared-file-detail/shared-file-detail.dialog.html b/src/app/shared/components/dialogs/shared-file-detail/shared-file-detail.dialog.html index e55923d7d984d26fa64b826e3c75389c82b28368..56a3b6119ab6e8776384d07a634a37349dba3910 100644 --- a/src/app/shared/components/dialogs/shared-file-detail/shared-file-detail.dialog.html +++ b/src/app/shared/components/dialogs/shared-file-detail/shared-file-detail.dialog.html @@ -20,24 +20,6 @@ </button> </ng-container> - <button mat-button - color="primary" - (keydown.enter)="showHistory()" - (click)="showHistory()" - > - <mat-icon>history</mat-icon> - {{'deposit.file.button.showHistory' | translate}} - </button> - - <button mat-button - color="primary" - (keydown.enter)="showPreview()" - (click)="showPreview()" - > - <fa-icon [icon]="'eye'"></fa-icon> - {{'deposit.file.button.showPreview' | translate}} - </button> - <button mat-button color="primary" (keydown.enter)="copyKey()" @@ -48,204 +30,290 @@ </button> </div> + <ng-template [ngIf]="breakpointService.isSmallerOrEqualThanMdObs() | async "> + <div class="container"> + <ng-template [ngTemplateOutlet]="leftPartTemplate"></ng-template> + </div> + </ng-template> + + <mat-tab-group #matTabGroup + mat-align-tabs="center" + animationDuration="0ms" + > + <mat-tab #infoTab> + <ng-template mat-tab-label> + <mat-icon class="tab-header-icon">info</mat-icon> + <span class="tab-header-label"> {{'crud.list.action.info' | translate}}</span> + </ng-template> + </mat-tab> + <mat-tab #historyTab> + <ng-template mat-tab-label> + <mat-icon class="tab-header-icon">history</mat-icon> + <span class="tab-header-label"> {{'crud.list.action.history' | translate}}</span> + </ng-template> + </mat-tab> + <mat-tab #showPreviewTab> + <ng-template mat-tab-label> + <mat-icon class="tab-header-icon">remove_red_eye</mat-icon> + <span class="tab-header-label">{{'deposit.file.button.showPreview' | translate}}</span> + </ng-template> + </mat-tab> + </mat-tab-group> + <div class="container"> - <div class="left-part"> - <dlcm-shared-panel-expandable [titleToTranslate]="'deposit.file.details.delimiter.fileInfo' | translate" - [isOpen]="true" - > - <mat-list> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.fileName' | translate}}</span> - <span class="value">{{data.dataFile.fileName}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.location' | translate}}</span> - <span class="value">{{data.dataFile.relativeLocation}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.smartSize' | translate}}</span> - <span class="value">{{data.dataFile.smartSize}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.category' | translate}}</span> - <span class="value">{{data.dataFile.dataCategory}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.type' | translate}}</span> - <span class="value">{{data.dataFile.dataType}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <ng-container *ngIf="data.dataFile.metadataType?.fullName | isNotNullNorUndefined"> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.metadataType' | translate}}</span> - <span class="value">{{data.dataFile.metadataType.fullName}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - </ng-container> - - <ng-container *ngIf="data.dataFile.fileFormat !== null"> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.mimeType' | translate}}</span> - <span class="value">{{data.dataFile.fileFormat.contentType}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.fileFormat' | translate}}</span> - <span class="value">{{data.dataFile.fileFormat.format}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.puid' | translate}}</span> - <span class="value"><a [href]="getPuidLink(data.dataFile.fileFormat.puid)" - target="_blank" - >{{data.dataFile.fileFormat.puid}}</a></span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - </ng-container> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.complianceLevel' | translate}}</span> - <span class="value"> + <ng-template [ngIf]="breakpointService.isBiggerThanMdObs() | async " + [ngIfThen]="leftPartTemplate" + ></ng-template> + <ng-template [ngTemplateOutlet]="rightPartTemplate"></ng-template> + </div> + +</dlcm-shared-base-info-dialog> + +<ng-template #rightPartTemplate> + <div class="right-part"> + <ng-template [ngIf]="historyTab.isActive" + [ngIfThen]="historyTemplate" + ></ng-template> + <ng-template [ngIf]="infoTab.isActive" + [ngIfThen]="checkSumTemplate" + ></ng-template> + <ng-template [ngIf]="showPreviewTab.isActive" + [ngIfThen]="visualizationTemplate" + ></ng-template> + </div> +</ng-template> +<ng-template #leftPartTemplate> + <div class="left-part"> + <ng-template [ngTemplateOutlet]="infoTemplate"></ng-template> + </div> +</ng-template> + +<ng-template #visualizationTemplate> + + <div class="visualization" + *ngIf="showPreviewTab.isActive" + > + <dlcm-file-visualizer + [fileToVisualize]="getFileInput()" + (errorMessageChange)="visualizationErrorMessage = $event" + ></dlcm-file-visualizer> + <div *ngIf="visualizationErrorMessage" + class="warning-area" + > + <mat-icon class="icon">warning</mat-icon> + <div class="visualization-error-message">{{visualizationErrorMessage | translate}}</div> + </div> + </div> + +</ng-template> + +<ng-template #checkSumTemplate> + <dlcm-shared-panel-expandable *ngIf="data.dataFile.checksums !== undefined && data.dataFile.checksums !== null && data.dataFile.checksums.length > 0" + [isOpen]="true" + [titleToTranslate]="'deposit.file.details.delimiter.checksum' | translate" + > + <dlcm-shared-checksum [checksums]="data.dataFile.checksums"></dlcm-shared-checksum> + </dlcm-shared-panel-expandable> + + <dlcm-shared-panel-expandable *ngIf="data.dataFile.fileFormat?.tool !== null" + [titleToTranslate]="'deposit.file.details.delimiter.analyticalTool' | translate" + > + <mat-list> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.name' | translate}}</span> + <span class="value">{{data.dataFile.fileFormat.tool.name}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.version' | translate}}</span> + <span class="value">{{data.dataFile.fileFormat.tool.version}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.description' | translate}}</span> + <span class="value">{{data.dataFile.fileFormat.tool.description}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.puid' | translate}}</span> + <span class="value"><a [href]="getPuidLink(data.dataFile.fileFormat.tool.puid)" + target="_blank" + >{{data.dataFile.fileFormat.tool.puid}}</a></span> + </div> + </mat-list-item> + </mat-list> + </dlcm-shared-panel-expandable> + + <dlcm-shared-panel-expandable [titleToTranslate]="'deposit.file.details.delimiter.antivirus' | translate"> + <mat-list *ngIf="data.dataFile.virusCheck !== null"> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.name' | translate}}</span> + <span class="value">{{data.dataFile.virusCheck.tool.name}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.description' | translate}}</span> + <span class="value">{{data.dataFile.virusCheck.tool.description}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.version' | translate}}</span> + <span class="value">{{data.dataFile.virusCheck.tool.version}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.tool.puid' | translate}}</span> + <span class="value"><a [href]="getPuidLink(data.dataFile.virusCheck.tool.puid)" + target="_blank" + >{{data.dataFile.virusCheck.tool.puid}}</a></span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.virusCheck.checkDate' | translate}}</span> + <span class="value">{{data.dataFile.virusCheck.checkDate}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.virusCheck.details' | translate}}</span> + <span class="value">{{data.dataFile.virusCheck.details}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + </mat-list> + </dlcm-shared-panel-expandable> +</ng-template> + +<ng-template #historyTemplate> + <dlcm-shared-data-table [columns]="columns" + [isLoading]="data.isLoading | async" + [datas]="data.statusHistory | async" + [queryParameters]="data.queryParametersObs | async" + (queryParametersChange)="pagination($event)" + ></dlcm-shared-data-table> +</ng-template> + +<ng-template #infoTemplate> + <dlcm-shared-panel-expandable [titleToTranslate]="'deposit.file.details.delimiter.fileInfo' | translate" + [isOpen]="true" + > + <mat-list> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.fileName' | translate}}</span> + <span class="value">{{data.dataFile.fileName}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.location' | translate}}</span> + <span class="value">{{data.dataFile.relativeLocation}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.smartSize' | translate}}</span> + <span class="value">{{data.dataFile.smartSize}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.category' | translate}}</span> + <span class="value">{{data.dataFile.dataCategory}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.type' | translate}}</span> + <span class="value">{{data.dataFile.dataType}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <ng-container *ngIf="data.dataFile.metadataType?.fullName | isNotNullNorUndefined"> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.metadataType' | translate}}</span> + <span class="value">{{data.dataFile.metadataType.fullName}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + </ng-container> + + <ng-container *ngIf="data.dataFile.fileFormat !== null"> + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.mimeType' | translate}}</span> + <span class="value">{{data.dataFile.fileFormat.contentType}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.fileFormat' | translate}}</span> + <span class="value">{{data.dataFile.fileFormat.format}}</span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.puid' | translate}}</span> + <span class="value"><a [href]="getPuidLink(data.dataFile.fileFormat.puid)" + target="_blank" + >{{data.dataFile.fileFormat.puid}}</a></span> + </div> + </mat-list-item> + <mat-divider></mat-divider> + </ng-container> + + <mat-list-item> + <div class="item-content"> + <span class="key">{{'deposit.file.detail.data.complianceLevel' | translate}}</span> + <span class="value"> <dlcm-shared-compliance-level-rating [value]="data.dataFile.complianceLevel" [withLabel]="false" ></dlcm-shared-compliance-level-rating> </span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - </mat-list> - </dlcm-shared-panel-expandable> - </div> - <div class="right-part"> - <dlcm-shared-panel-expandable *ngIf="data.dataFile.checksums !== undefined && data.dataFile.checksums !== null && data.dataFile.checksums.length > 0" - [isOpen]="true" - [titleToTranslate]="'deposit.file.details.delimiter.checksum' | translate" - > - <dlcm-shared-checksum [checksums]="data.dataFile.checksums"></dlcm-shared-checksum> - </dlcm-shared-panel-expandable> + </div> + </mat-list-item> + <mat-divider></mat-divider> + </mat-list> + </dlcm-shared-panel-expandable> +</ng-template> + - <dlcm-shared-panel-expandable *ngIf="data.dataFile.fileFormat?.tool !== null" - [titleToTranslate]="'deposit.file.details.delimiter.analyticalTool' | translate" - > - <mat-list> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.name' | translate}}</span> - <span class="value">{{data.dataFile.fileFormat.tool.name}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.version' | translate}}</span> - <span class="value">{{data.dataFile.fileFormat.tool.version}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.description' | translate}}</span> - <span class="value">{{data.dataFile.fileFormat.tool.description}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.puid' | translate}}</span> - <span class="value"><a [href]="getPuidLink(data.dataFile.fileFormat.tool.puid)" - target="_blank" - >{{data.dataFile.fileFormat.tool.puid}}</a></span> - </div> - </mat-list-item> - </mat-list> - </dlcm-shared-panel-expandable> - - <dlcm-shared-panel-expandable [titleToTranslate]="'deposit.file.details.delimiter.antivirus' | translate"> - <mat-list *ngIf="data.dataFile.virusCheck !== null"> - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.name' | translate}}</span> - <span class="value">{{data.dataFile.virusCheck.tool.name}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.description' | translate}}</span> - <span class="value">{{data.dataFile.virusCheck.tool.description}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.version' | translate}}</span> - <span class="value">{{data.dataFile.virusCheck.tool.version}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.tool.puid' | translate}}</span> - <span class="value"><a [href]="getPuidLink(data.dataFile.virusCheck.tool.puid)" - target="_blank" - >{{data.dataFile.virusCheck.tool.puid}}</a></span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.virusCheck.checkDate' | translate}}</span> - <span class="value">{{data.dataFile.virusCheck.checkDate}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - - <mat-list-item> - <div class="item-content"> - <span class="key">{{'deposit.file.detail.data.virusCheck.details' | translate}}</span> - <span class="value">{{data.dataFile.virusCheck.details}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - </mat-list> - </dlcm-shared-panel-expandable> - </div> - </div> -</dlcm-shared-base-info-dialog> diff --git a/src/app/shared/components/dialogs/shared-file-detail/shared-file-detail.dialog.ts b/src/app/shared/components/dialogs/shared-file-detail/shared-file-detail.dialog.ts index 169dabcf2a826429f8df5e710f504d5bf013dd3e..e5fcf68a509361bb8ae4496f76aca4657327d121 100644 --- a/src/app/shared/components/dialogs/shared-file-detail/shared-file-detail.dialog.ts +++ b/src/app/shared/components/dialogs/shared-file-detail/shared-file-detail.dialog.ts @@ -2,7 +2,6 @@ import { ChangeDetectionStrategy, Component, Inject, - OnInit, } from "@angular/core"; import { MAT_DIALOG_DATA, @@ -17,9 +16,9 @@ import { SharedDetailDialog, SharedDetailDialogData, } from "@shared/components/dialogs/shared-detail-dialog/shared-detail.dialog"; -import {SharedPreviewDialogData} from "@shared/components/dialogs/shared-preview/shared-preview-dialog-data.model"; -import {SharedPreviewDialog} from "@shared/components/dialogs/shared-preview/shared-preview.dialog"; +import {FileInput} from "@shared/filevisualizer/models/file-info.model"; import {DataFile} from "@shared/models/business/data-file.model"; +import {BreakpointService} from "@shared/services/breakpoint.service"; import { BaseResource, NotificationService, @@ -31,30 +30,24 @@ import { styleUrls: ["../shared-detail-dialog/shared-detail.dialog.scss"], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class SharedFileDetailDialog<TResource extends BaseResource> extends SharedDetailDialog<TResource> implements OnInit { - paramMessage: { name: string } = {name: ""}; +export class SharedFileDetailDialog<TResource extends BaseResource> extends SharedDetailDialog<TResource> { + + visualizationErrorMessage: string; constructor(protected readonly _store: Store, protected readonly _dialog: MatDialog, protected readonly _actions$: Actions, + protected readonly _breakpointService: BreakpointService, protected readonly _notificationService: NotificationService, protected dialogRef: MatDialogRef<SharedDetailDialog<TResource>>, @Inject(MAT_DIALOG_DATA) public data: SharedFileDetailDialogData<TResource>) { - super(_store, _dialog, _actions$, _notificationService, dialogRef, data); + super(_store, _dialog, _actions$, _breakpointService, _notificationService, dialogRef, data); } - showPreview(): void { - const previewDialogRef = this._dialog.open(SharedPreviewDialog, { - width: "min-content", - minWidth: "500px", - height: "min-content", - data: { - fileInput: { - dataFile: this.data.dataFile, - }, - - } as SharedPreviewDialogData, - }); + getFileInput(): FileInput { + return { + dataFile: this.data.dataFile, + }; } } diff --git a/src/app/shared/components/presentationals/shared-data-table/shared-data-table.presentational.ts b/src/app/shared/components/presentationals/shared-data-table/shared-data-table.presentational.ts index ebddd85d51af12815617dca79534bf5907028929..3f24add56999fdd034757d13567dfd080cc9f533 100644 --- a/src/app/shared/components/presentationals/shared-data-table/shared-data-table.presentational.ts +++ b/src/app/shared/components/presentationals/shared-data-table/shared-data-table.presentational.ts @@ -128,8 +128,8 @@ export class SharedDataTablePresentational<TResource extends BaseResource> exten this.resetBannerSelectAll(); } this._queryParameters = QueryParametersUtil.clone(value); - if (isNullOrUndefined(value.paging)) { - this._queryParameters.paging = new Paging(environment.defaultPageSize); + if (isNullOrUndefined(value?.paging)) { + this._queryParameters.paging = new Paging(environment?.defaultPageSize); } } diff --git a/src/app/shared/components/routables/shared-abstract-detail-edit/shared-abstract-detail-edit.routable.ts b/src/app/shared/components/routables/shared-abstract-detail-edit/shared-abstract-detail-edit.routable.ts index 15934258af9968ab92b621ffb0cc140a51ddfe9f..d1cac989796c43bbf090c4407d0657c84401cf98 100644 --- a/src/app/shared/components/routables/shared-abstract-detail-edit/shared-abstract-detail-edit.routable.ts +++ b/src/app/shared/components/routables/shared-abstract-detail-edit/shared-abstract-detail-edit.routable.ts @@ -27,6 +27,7 @@ import {AppRoutesEnum} from "@shared/enums/routes.enum"; import {CrudHelper} from "@shared/helpers/crud.helper"; import {FormControlKey} from "@shared/models/form-control-key.model"; import {LocalStateModel} from "@shared/models/local-state.model"; +import {BreakpointService} from "@shared/services/breakpoint.service"; import {Observable} from "rxjs"; import { distinctUntilChanged, @@ -79,7 +80,7 @@ export abstract class SharedAbstractDetailEditRoutable<TResourceModel extends Ba protected readonly _parentState?: LocalStateEnum) { super(_store, _state, _parentState); } - + ngOnInit(): void { super.ngOnInit(); this.subscribe(this.getRetrieveEditModeObs()); diff --git a/src/app/shared/filevisualizer/components/file-visualizer.component.ts b/src/app/shared/filevisualizer/components/file-visualizer.component.ts index 2ab1ed4501350a6dea979f74208cf2d6d76327fe..62ee7a83a7d52915c607b7898d48940b1e0fab6a 100644 --- a/src/app/shared/filevisualizer/components/file-visualizer.component.ts +++ b/src/app/shared/filevisualizer/components/file-visualizer.component.ts @@ -71,6 +71,11 @@ export class FileVisualizerPresentational extends CoreAbstractAngularElement imp @Output("closeVisualizerChange") readonly closeVisualizerObs: Observable<boolean | undefined> = ObservableUtil.asObservable(this._closeBS); + private readonly _errorMessageBS: BehaviorSubject<string> = new BehaviorSubject<string>(""); + + @Output("errorMessageChange") + readonly errorMessageObs: Observable<string> = ObservableUtil.asObservable(this._errorMessageBS); + @Input() visualizationContainerInput: ElementRef<Element>; @@ -110,9 +115,13 @@ export class FileVisualizerPresentational extends CoreAbstractAngularElement imp if (!this.canHandle(fileInfo)) { this.closeVisualization(); if (!this.canHandleBySize(fileInfo)) { - this._notificationService.showInformation(TRANSLATE("notification.file.visualizer.file.toobig"), true); + const sizeNotSupported = "notification.file.visualizer.file.toobig"; + this._notificationService.showInformation(TRANSLATE(sizeNotSupported), true); + this._errorMessageBS.next(sizeNotSupported); } else { - this._notificationService.showInformation(TRANSLATE("notification.file.visualizer.file.notsupported"), true); + const notSupportedMessage = "notification.file.visualizer.file.notsupported"; + this._notificationService.showInformation(TRANSLATE(notSupportedMessage), true); + this._errorMessageBS.next(notSupportedMessage); } return; } diff --git a/src/app/shared/filevisualizer/services/image-file-visualizer.service.ts b/src/app/shared/filevisualizer/services/image-file-visualizer.service.ts index f3ed5d3e25f20da8501d4a5d6ff22606bef16756..e0fb4e6856a474586e4ba2579ce6c74bd68231ed 100644 --- a/src/app/shared/filevisualizer/services/image-file-visualizer.service.ts +++ b/src/app/shared/filevisualizer/services/image-file-visualizer.service.ts @@ -63,7 +63,7 @@ export class ImageFileVisualizerService implements AbstractFileVisualizer { const url = URL.createObjectURL(fileInfo.blob); this.img.src = url; this.img.style.objectFit = "contain"; - this.img.height = 500; + this.img.height = 404; this.img.width = 500; domElement.appendChild(this.img); domElement.classList.add("zoom-in"); diff --git a/src/app/shared/filevisualizer/services/mol-file-visualizer.service.ts b/src/app/shared/filevisualizer/services/mol-file-visualizer.service.ts index 0a7911423f017a02e38c98d5140e1b924cdbc486..1098192ee177a42e6242f2936fe8d09a1bacdd98 100644 --- a/src/app/shared/filevisualizer/services/mol-file-visualizer.service.ts +++ b/src/app/shared/filevisualizer/services/mol-file-visualizer.service.ts @@ -66,7 +66,7 @@ export class MolFileVisualizerService implements AbstractFileVisualizer { const html = "<script src=\"./assets/jsmol/JSmol.min.js\" type=\"text/javascript\"></script>" + "<script>var info = {\n" + " color: \"#FFFFFF\",\n" + - " height: 450,\n" + + " height: 375,\n" + " width: 450,\n" + " script: \"set antialiasDisplay true;load " + molUrl + " ;cartoon on;color cartoon structure;rotate z 118.48; rotate y 117.66; rotate z -47.64;;\",\n" + " use: \"HTML5\",\n" + @@ -82,7 +82,7 @@ export class MolFileVisualizerService implements AbstractFileVisualizer { iframe.contentWindow.document.write(html); iframe.contentWindow.document.close(); iframe.width = "500px"; - iframe.height = "500px"; + iframe.height = "404"; iframe.style.border = "0"; } diff --git a/src/app/shared/filevisualizer/services/video-classical-file-visualizer.service.ts b/src/app/shared/filevisualizer/services/video-classical-file-visualizer.service.ts index 6a669de4aa632510c962d29eea6ae9ec7edb7a39..edfe853ae7184054acedcdba312d7fc43676b5a6 100644 --- a/src/app/shared/filevisualizer/services/video-classical-file-visualizer.service.ts +++ b/src/app/shared/filevisualizer/services/video-classical-file-visualizer.service.ts @@ -72,7 +72,7 @@ export class VideoClassicalFileVisualizerService implements AbstractFileVisualiz } autoResizeElement(): void { - this.video.height = 500; + this.video.height = 404; this.video.width = 500; this.video.style.objectFit = "contain"; } diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 66209c1eedfa9b076dfeb43dd6db3c8f70384f76..da8f3aba1a5a7450725a7eb865ef5e0fec840578 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -1228,6 +1228,7 @@ "goToEdit": "Edit", "goToReceivedRequestNotification": "See received request", "goToSentRequestNotification": "See request sent", + "info": "Informations", "history": "History", "move": "Move", "resume": "Resume", diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index decedd1ab046e1004218acec402ad6573f630ba9..0928337ed756bee14875a99d61ecf3cfad0930ca 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -1228,6 +1228,7 @@ "goToEdit": "Edit", "goToReceivedRequestNotification": "See received request", "goToSentRequestNotification": "See request sent", + "info": "Informations", "history": "History", "move": "Move", "resume": "Resume", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index 0bedde76601a53444275a11d9a2f0a7fe32c5333..98d2eec06a66c41652646df7f0ffc505f301307a 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -1228,6 +1228,7 @@ "goToEdit": "Modifier", "goToReceivedRequestNotification": "Voir les requêtes reçues", "goToSentRequestNotification": "Voir les requêtes envoyées", + "info": "Informations", "history": "Historique", "move": "Déplacer", "resume": "Relancer",