diff --git a/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/components/tables/base-table/base-table.component.html b/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/components/tables/base-table/base-table.component.html index 95fdbff..fbacd8c 100644 --- a/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/components/tables/base-table/base-table.component.html +++ b/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/components/tables/base-table/base-table.component.html @@ -15,5 +15,6 @@ [theme]="theme" [rowStyle] = "rowStyle" [rowClass] = "rowClass" - (selectedRows)="onSelectedRows($event)"> + (selectedRows)="onSelectedRows($event)" + (click)="click && click(this)"> \ No newline at end of file diff --git a/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/components/tables/base-table/base-table.component.ts b/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/components/tables/base-table/base-table.component.ts index eb213de..eefa47f 100644 --- a/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/components/tables/base-table/base-table.component.ts +++ b/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/components/tables/base-table/base-table.component.ts @@ -69,6 +69,10 @@ export class BaseTableComponent> private themeSubscription: Subscription = new Subscription(); + private static count: number = 0; + + public readonly id: number = (BaseTableComponent.count++) + constructor(@Inject(ApiService) service: TApiService, columns: Array, private cModeService: ColorModeService) { this.service = service; if (this.columns.length == 0) @@ -114,7 +118,9 @@ export class BaseTableComponent> @Input() rowStyle: GuiRowStyle = {} @Input() rowClass: GuiRowClass = {} - + + @Input() click: ((table: BaseTableComponent) => void) | undefined; + selected: boolean = false; safelyUnselectAll() { this.selected = true diff --git a/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/pages/user-representation/user-representation.component.html b/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/pages/user-representation/user-representation.component.html index 798d5c0..8eb8218 100644 --- a/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/pages/user-representation/user-representation.component.html +++ b/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/pages/user-representation/user-representation.component.html @@ -5,10 +5,10 @@
- + - +
@@ -16,10 +16,10 @@
- + - +
@@ -27,7 +27,7 @@
- +
diff --git a/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/pages/user-representation/user-representation.component.ts b/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/pages/user-representation/user-representation.component.ts index a583a2a..cc651c5 100644 --- a/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/pages/user-representation/user-representation.component.ts +++ b/DigitalData.UserManager.API/ClientApp/user_manager_ui/src/app/pages/user-representation/user-representation.component.ts @@ -8,9 +8,12 @@ import Swal from 'sweetalert2'; import { MatTabsModule, MatTabGroup } from '@angular/material/tabs'; import { env } from '../../../environments/environment'; import { BasePageComponent } from '../base-page/base-page.component'; -import { UserRep } from '../../models/user-management.api.models'; +import { Group, User, UserRep } from '../../models/user-management.api.models'; import { RepCreateFormComponent } from '../../components/forms/rep-create-form/rep-create-form.component'; import { MatDialog } from '@angular/material/dialog'; +import { BaseTableComponent } from '../../components/tables/base-table/base-table.component'; +import { GroupService } from '../../services/api/group.service'; +import { UserService } from '../../services/api/user.service'; @Component({ standalone: true, @@ -78,16 +81,22 @@ export class UserRepresentationComponent extends BasePageComponent implements Af @ViewChild("repGroups") repGroups!: GroupTableComponent; @ViewChild("userReps") userReps!: UserRepTableComponent; + // user userOnSelectedRows = (rows: GuiSelectedRow[]) => { if (rows.length > 0) { this.useRepLabel = `Vertretungen von ${rows[0].source?.username}` - this.users.safelyUnselectAll(); + //this.users.safelyUnselectAll(); this.userReps.fetchByUser(rows[0].source?.id); this.slGroupId = undefined; this.slUserId = rows[0].source?.id } } + userOnClick = (table: BaseTableComponent) => { + this.userOnSelectedRows(table.selectedRows); + } + + // group groupOnSelectedRows = (rows: GuiSelectedRow[]) => { if (rows.length > 0) { this.useRepLabel = `Vertretungen von ${rows[0].source?.name}` @@ -98,6 +107,11 @@ export class UserRepresentationComponent extends BasePageComponent implements Af } } + groupOnClick = (table: BaseTableComponent) => { + this.groupOnSelectedRows(table.selectedRows); + } + + //repUser repUserOnSelectedRows = (rows: GuiSelectedRow[]) => { if (rows.length == 0 && this.slRepUserId) { if (!this.slUserId && !this.slGroupId) { @@ -149,6 +163,11 @@ export class UserRepresentationComponent extends BasePageComponent implements Af } } + repUserOnClick = (table: BaseTableComponent) => { + this.repUserOnSelectedRows(table.selectedRows); + } + + // repGroup repGroupOnSelectedRows = (rows: GuiSelectedRow[]) => { if (rows.length == 0 && this.slRepGroupId) { if (!this.slUserId && !this.slGroupId) { @@ -199,6 +218,11 @@ export class UserRepresentationComponent extends BasePageComponent implements Af } } + repGroupOnClick = (table: BaseTableComponent) => { + this.repGroupOnSelectedRows(table.selectedRows); + } + + // rep events repOnSelectedRows = (rows: GuiSelectedRow[]) => { if (rows.length == 0 && this.slRepId) { this.userRepService.delete(this.slRepId).subscribe({ @@ -226,6 +250,10 @@ export class UserRepresentationComponent extends BasePageComponent implements Af } } + repOnClick = (table: BaseTableComponent) => { + this.repOnSelectedRows(table.selectedRows); + } + openCreateSheet(userRep: UserRep, afterCreation: (any: any) => any): void { this.dialog.open(RepCreateFormComponent, {