From a8b25f2af656fcb5155c960030f4032d06c599f5 Mon Sep 17 00:00:00 2001 From: Alicia de Dios Fuente <Alicia.DeDiosFuente@unige.ch> Date: Thu, 9 Jan 2020 11:52:07 +0100 Subject: [PATCH] fix: refresh AipDetailEdit component when routing change --- .../aip-detail-edit.routable.ts | 4 +- .../preservation/aip/stores/aip.state.ts | 1 - .../shared-detail.dialog.html | 195 ------------------ .../shared-detail.dialog.ts | 20 +- src/app/shared/shared.module.ts | 4 +- 5 files changed, 9 insertions(+), 215 deletions(-) delete mode 100644 src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.html diff --git a/src/app/features/preservation/aip/components/routables/aip-detail-edit/aip-detail-edit.routable.ts b/src/app/features/preservation/aip/components/routables/aip-detail-edit/aip-detail-edit.routable.ts index a112901b8..974c53650 100644 --- a/src/app/features/preservation/aip/components/routables/aip-detail-edit/aip-detail-edit.routable.ts +++ b/src/app/features/preservation/aip/components/routables/aip-detail-edit/aip-detail-edit.routable.ts @@ -93,7 +93,6 @@ export class AipDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl protected route: ActivatedRoute, protected readonly _actions$: Actions, protected readonly _changeDetector: ChangeDetectorRef, - private location: Location, protected readonly _router: Router, protected readonly dialog: MatDialog) { super(_store, route, _actions$, _changeDetector, dialog, LocalStateEnum.preservation_aip, preservationAipActionNameSpace, LocalStateEnum.preservation); @@ -111,6 +110,7 @@ export class AipDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl filter( event => event instanceof NavigationCancel || event instanceof NavigationEnd), distinctUntilChanged(), tap( event => { + this.retrieveResIdFromUrl(); this._computeCurrentTab(); this.matTabGroup.selectedIndex = this.tabSelected; }) @@ -122,7 +122,7 @@ export class AipDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl } backToList(): void { - this.location.back(); + this._store.dispatch(new Navigate([RoutesEnum.preservationAip + urlSeparator + this.storagion_number])); } simpleChecksum(): void { diff --git a/src/app/features/preservation/aip/stores/aip.state.ts b/src/app/features/preservation/aip/stores/aip.state.ts index 15e5982e7..4b7fb0920 100644 --- a/src/app/features/preservation/aip/stores/aip.state.ts +++ b/src/app/features/preservation/aip/stores/aip.state.ts @@ -283,7 +283,6 @@ export class PreservationAipState extends ResourceState<PreservationAipStateMode }); const pathAipDetail = RoutesEnum.preservationAip + urlSeparator + action.storagion_number + urlSeparator + PreservationPlanningRoutesEnum.aipDetail + AppRoutesEnum.separator ; const path = [pathAipDetail, action.aip.resId]; - console.error(path); ctx.dispatch(new Navigate(path)); } } diff --git a/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.html b/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.html deleted file mode 100644 index 74785899f..000000000 --- a/src/app/shared/components/dialogs/shared-detail-dialog/shared-detail.dialog.html +++ /dev/null @@ -1,195 +0,0 @@ -<h1 mat-dialog-title - [matTooltip]="data.name" ->{{'deposit.file.details.title' | translate:paramMessage}}</h1> - -<div mat-dialog-content> - <div class="button-wrapper"> - <ng-container *ngFor="let button of data.buttons"> - <button mat-button - *ngIf="button.displayCondition ? button.displayCondition(data.aip) : true" - [disabled]="button.disableCondition ? button.disableCondition(data.aip) : false" - [color]="button.color" - (click)="button.callback ? button.callback(data.aip) : undefined" - > - <mat-icon>{{button.icon}}</mat-icon> - {{button.labelToTranslate | translate}} - </button> - </ng-container> - - <button mat-button - color="accent" - (click)="showHistory()" - > - <fa-icon icon="history"></fa-icon> - {{'deposit.file.button.showHistory' | translate}} - </button> - </div> - - <mat-list> - <h2 mat-dialog-title>{{'deposit.file.details.delimiter.fileInfo' | translate}} </h2> - <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> - - <div *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">{{data.aip.fileFormat.puid}}</span> - </div> - </mat-list-item> - <mat-divider></mat-divider> - </div> - - <div *ngIf="data.aip.info.complianceLevel !== null"> - <h2 mat-dialog-title>{{'deposit.file.details.delimiter.complianceLevel' | translate }}</h2> - <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> - </div> - - <div *ngIf="data.aip.fileFormat?.tool !== null"> - <h2 mat-dialog-title>{{'deposit.file.details.delimiter.analyticalTool' | translate }}</h2> - <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">{{data.aip.fileFormat.tool.puid}}</span> - </div> - </mat-list-item> - </div> - - <div *ngIf="data.aip.virusCheck !== null"> - <h2 mat-dialog-title>{{'deposit.file.details.delimiter.antivirus' | translate }}</h2> - <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">{{data.aip.virusCheck.tool.puid}}</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> - </div> - - <div *ngIf="data.aip.checksums !== undefined && data.aip.checksums !== null && data.aip.checksums.length > 0"> - <h2 mat-dialog-title>{{'deposit.file.details.delimiter.checksum' | translate }}</h2> - <mat-list-item> - <div class="item-content"> - <span class="value"> - <ul class="value-list"> - <li *ngFor="let checksum of data.aip.checksums"> - {{checksum.checksumAlgo}}: {{checksum.checksum}} - </li> - </ul> - </span> - </div> - </mat-list-item> - </div> - - - </mat-list> -</div> -<div mat-dialog-actions> - <button mat-button - cdkFocusInitial - (click)="close()" - >{{'deposit.file.details.close' | translate}}</button> -</div> 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 a9e3de88d..34cec04df 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 @@ -1,6 +1,4 @@ import { - ChangeDetectionStrategy, - Component, Inject, OnInit, } from "@angular/core"; @@ -26,20 +24,14 @@ import { QueryParameters, } from "solidify-frontend"; -@Component({ - selector: "dlcm-shared-detail-dialog", - templateUrl: "./shared-detail.dialog.html", - styleUrls: ["./shared-detail.dialog.scss"], - changeDetection: ChangeDetectionStrategy.OnPush, -}) -export class SharedDetailDialog<TResource extends BaseResource> extends SharedAbstractContainer implements OnInit { +export abstract class SharedDetailDialog<TResource extends BaseResource> extends SharedAbstractContainer implements OnInit { paramMessage: { name: string } = {name: ""}; - constructor(protected readonly _store: Store, - protected readonly _dialog: MatDialog, - protected readonly _actions$: Actions, - protected dialogRef: MatDialogRef<SharedDetailDialog<TResource>>, - @Inject(MAT_DIALOG_DATA) public data: SharedDetailDialogData<TResource>) { + protected constructor(protected readonly _store: Store, + protected readonly _dialog: MatDialog, + protected readonly _actions$: Actions, + protected dialogRef: MatDialogRef<SharedDetailDialog<TResource>>, + @Inject(MAT_DIALOG_DATA) public data: SharedDetailDialogData<TResource>) { super(); } diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 2a4ed6b63..6e83610db 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -35,7 +35,6 @@ import {fas} from "@fortawesome/free-solid-svg-icons"; import {TranslateModule} from "@ngx-translate/core"; import {NgxsModule} from "@ngxs/store"; import {SharedAipDetailDialog} from "@shared/components/dialogs/shared-aip-detail/shared-aip-detail.dialog"; -import {SharedDetailDialog} from "@shared/components/dialogs/shared-detail-dialog/shared-detail.dialog"; import {SharedFileDetailDialog} from "@shared/components/dialogs/shared-file-detail/shared-file-detail.dialog"; import {SharedHistoryDialog} from "@shared/components/dialogs/shared-history/shared-history.dialog"; import {AipStatusSummaryPresentational} from "@shared/components/presentationals/aip-status-summary/aip-status-summary.presentational"; @@ -73,8 +72,7 @@ const routables = []; const dialogs = [ SharedHistoryDialog, SharedFileDetailDialog, - SharedAipDetailDialog, - SharedDetailDialog + SharedAipDetailDialog ]; const presentationals = [ ButtonToolbarDetailPresentational, -- GitLab