Merge branch 'VM/RED-8382' into 'master'

RED-8382 - Missing Restore/Hard Delete button for trashed dossier without owner

Closes RED-8382

See merge request redactmanager/red-ui!274
This commit is contained in:
Dan Percic 2024-01-29 14:52:11 +01:00
commit 89037fcd5c
2 changed files with 9 additions and 3 deletions

View File

@ -40,14 +40,14 @@
<div class="action-buttons">
<iqser-circle-button
(action)="restore.emit([item])"
*ngIf="(item.canRestore && item.hasRestoreRights) || !item.ownerId"
*ngIf="(item.canRestore && item.hasRestoreRights) || canUserUpdateUnassignedDossier"
[tooltip]="'trash.action.restore' | translate"
icon="red:put-back"
></iqser-circle-button>
<iqser-circle-button
(action)="hardDelete.emit([item])"
*ngIf="item.hasHardDeleteRights || !item.ownerId"
*ngIf="item.hasHardDeleteRights || canUserUpdateUnassignedDossier"
[tooltip]="'trash.action.delete' | translate"
icon="iqser:trash"
></iqser-circle-button>

View File

@ -1,9 +1,10 @@
import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';
import { Dossier, DossierStats, TrashFile, TrashItem } from '@red/domain';
import { Dossier, DossierStats, TrashFile, TrashItem, User } from '@red/domain';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { DossierStatsService } from '@services/dossiers/dossier-stats.service';
import { PartialDossier } from '@shared/components/dossier-name-column/dossier-name-column.component';
import { Observable } from 'rxjs';
import { getCurrentUser } from '@common-ui/users';
@Component({
selector: 'redaction-trash-table-item [item]',
@ -17,6 +18,7 @@ export class TrashTableItemComponent implements OnChanges {
@Output() hardDelete = new EventEmitter<TrashItem[]>();
fileDossier$: Observable<Dossier>;
dossierStats$: Observable<DossierStats>;
readonly #currentUser = getCurrentUser<User>();
constructor(
private readonly _activeDossiersService: ActiveDossiersService,
@ -39,4 +41,8 @@ export class TrashTableItemComponent implements OnChanges {
this.dossierStats$ = this.dossierStatsService.watch$(this.item.id);
}
}
get canUserUpdateUnassignedDossier() {
return this.#currentUser.isManager && !this.item.ownerId;
}
}