User listing fixes

This commit is contained in:
Adina Țeudan 2021-10-08 19:45:08 +03:00
parent 85d3c2b378
commit 882ecd30fe
6 changed files with 20 additions and 21 deletions

View File

@ -123,7 +123,7 @@ export class UserDetailsComponent implements OnInit {
} }
delete() { delete() {
this._dialogService.openDialog('deleteUsers', null, [this.user], () => { this._dialogService.openDialog('deleteUsers', null, [this.user.id], () => {
this.closeDialog.emit(true); this.closeDialog.emit(true);
}); });
} }

View File

@ -1,5 +1,9 @@
<section class="dialog"> <section class="dialog">
<div [translateParams]="{ usersCount: users.length }" [translate]="'confirm-delete-users.title'" class="dialog-header heading-l"></div> <div
[translateParams]="{ usersCount: userIds.length }"
[translate]="'confirm-delete-users.title'"
class="dialog-header heading-l"
></div>
<div *ngIf="showToast" class="inline-dialog-toast toast-error"> <div *ngIf="showToast" class="inline-dialog-toast toast-error">
<div translate="confirm-delete-users.toast-error"></div> <div translate="confirm-delete-users.toast-error"></div>
@ -22,7 +26,7 @@
| translate | translate
: { : {
dossiersCount: dossiersCount, dossiersCount: dossiersCount,
usersCount: users.length usersCount: userIds.length
} }
}} }}
</mat-checkbox> </mat-checkbox>
@ -30,11 +34,11 @@
<div class="dialog-actions"> <div class="dialog-actions">
<button (click)="deleteUser()" color="primary" mat-flat-button> <button (click)="deleteUser()" color="primary" mat-flat-button>
{{ 'confirm-delete-users.delete' | translate: { usersCount: users.length } }} {{ 'confirm-delete-users.delete' | translate: { usersCount: userIds.length } }}
</button> </button>
<div <div
(click)="cancel()" (click)="cancel()"
[translateParams]="{ usersCount: users.length }" [translateParams]="{ usersCount: userIds.length }"
[translate]="'confirm-delete-users.cancel'" [translate]="'confirm-delete-users.cancel'"
class="all-caps-label cancel" class="all-caps-label cancel"
></div> ></div>

View File

@ -2,7 +2,6 @@ import { Component, Inject } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { List, LoadingService } from '@iqser/common-ui'; import { List, LoadingService } from '@iqser/common-ui';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { User } from '@models/user';
import { DossiersService } from '../../../dossier/services/dossiers.service'; import { DossiersService } from '../../../dossier/services/dossiers.service';
import { UserService } from '@services/user.service'; import { UserService } from '@services/user.service';
@ -23,17 +22,12 @@ export class ConfirmDeleteUsersDialogComponent {
private readonly _userService: UserService, private readonly _userService: UserService,
private readonly _loadingService: LoadingService, private readonly _loadingService: LoadingService,
private readonly _dossiersService: DossiersService, private readonly _dossiersService: DossiersService,
@Inject(MAT_DIALOG_DATA) readonly users: List<User>, @Inject(MAT_DIALOG_DATA) readonly userIds: List<string>,
readonly dialogRef: MatDialogRef<ConfirmDeleteUsersDialogComponent>, readonly dialogRef: MatDialogRef<ConfirmDeleteUsersDialogComponent>,
) { ) {
this.dossiersCount = this._dossiersService.all.filter(dw => { this.dossiersCount = this._dossiersService.all.filter(dw =>
for (const user of this.users) { this.userIds.reduce((prev, userId) => prev || dw.memberIds.includes(userId), false),
if (dw.memberIds.indexOf(user.id) !== -1) { ).length;
return true;
}
}
return false;
}).length;
} }
get valid() { get valid() {
@ -43,7 +37,7 @@ export class ConfirmDeleteUsersDialogComponent {
async deleteUser() { async deleteUser() {
if (this.valid) { if (this.valid) {
this._loadingService.start(); this._loadingService.start();
await this._userService.delete(this.users.map(u => u.id)).toPromise(); await this._userService.delete(this.userIds).toPromise();
this.dialogRef.close(true); this.dialogRef.close(true);
} else { } else {
this.showToast = true; this.showToast = true;

View File

@ -93,7 +93,7 @@
icon="iqser:edit" icon="iqser:edit"
></iqser-circle-button> ></iqser-circle-button>
<iqser-circle-button <iqser-circle-button
(action)="openDeleteUsersDialog([user], $event)" (action)="openDeleteUsersDialog([user.id], $event)"
[disabled]="user.id === userService.currentUser.id" [disabled]="user.id === userService.currentUser.id"
[tooltip]="'user-listing.action.delete' | translate" [tooltip]="'user-listing.action.delete' | translate"
[type]="circleButtonTypes.dark" [type]="circleButtonTypes.dark"

View File

@ -77,9 +77,10 @@ export class UserListingScreenComponent extends ListingComponent<User> implement
}); });
} }
openDeleteUsersDialog(users: User[], $event?: MouseEvent) { openDeleteUsersDialog(userIds: string[], $event?: MouseEvent) {
this._dialogService.openDialog('deleteUsers', $event, users, async () => { this._dialogService.openDialog('deleteUsers', $event, userIds, async () => {
await this._loadData(); await this._loadData();
this.listingService.updateSelection();
}); });
} }
@ -99,7 +100,7 @@ export class UserListingScreenComponent extends ListingComponent<User> implement
} }
bulkDelete() { bulkDelete() {
this.openDeleteUsersDialog(this.entitiesService.all.filter(u => this.isSelected(u))); this.openDeleteUsersDialog(this.listingService.selectedIds as string[]);
} }
private async _loadData() { private async _loadData() {

@ -1 +1 @@
Subproject commit ed518bbfd4ec827b7849d9badd55fc38ed6bc1ee Subproject commit 6a13ac5e483eee3438982bacdb38d3345614e1f3