feat(base-table.component): Erstellt Klick-Ereignis.
- Klick-Ereignisse anstelle von OnSelectedRows-Ereignissen hinzugefügt
This commit is contained in:
parent
0657bbe2c4
commit
2e1bf69889
@ -15,5 +15,6 @@
|
||||
[theme]="theme"
|
||||
[rowStyle] = "rowStyle"
|
||||
[rowClass] = "rowClass"
|
||||
(selectedRows)="onSelectedRows($event)">
|
||||
(selectedRows)="onSelectedRows($event)"
|
||||
(click)="click && click(this)">
|
||||
</gui-grid>
|
||||
@ -69,6 +69,10 @@ export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>>
|
||||
|
||||
private themeSubscription: Subscription = new Subscription();
|
||||
|
||||
private static count: number = 0;
|
||||
|
||||
public readonly id: number = (BaseTableComponent.count++)
|
||||
|
||||
constructor(@Inject(ApiService<TModel>) service: TApiService, columns: Array<GuiColumn>, private cModeService: ColorModeService) {
|
||||
this.service = service;
|
||||
if (this.columns.length == 0)
|
||||
@ -114,7 +118,9 @@ export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>>
|
||||
@Input() rowStyle: GuiRowStyle = {}
|
||||
|
||||
@Input() rowClass: GuiRowClass = {}
|
||||
|
||||
|
||||
@Input() click: ((table: BaseTableComponent<TModel, TApiService>) => void) | undefined;
|
||||
|
||||
selected: boolean = false;
|
||||
safelyUnselectAll() {
|
||||
this.selected = true
|
||||
|
||||
@ -5,10 +5,10 @@
|
||||
<div class="col-5">
|
||||
<mat-tab-group>
|
||||
<mat-tab label="Benutzer">
|
||||
<app-user-table #users [onSelectedRows]="userOnSelectedRows"></app-user-table>
|
||||
<app-user-table #users [click]="userOnClick"></app-user-table>
|
||||
</mat-tab>
|
||||
<mat-tab label="Gruppe">
|
||||
<app-group-table #groups [columns]="groupColumns" [onSelectedRows]="groupOnSelectedRows"></app-group-table>
|
||||
<app-group-table #groups [columns]="groupColumns" [click]="groupOnClick"></app-group-table>
|
||||
</mat-tab>
|
||||
</mat-tab-group>
|
||||
</div>
|
||||
@ -16,10 +16,10 @@
|
||||
<div class="col-4">
|
||||
<mat-tab-group>
|
||||
<mat-tab label="Rep. Benutzer">
|
||||
<app-user-table #repUsers [onSelectedRows]="repUserOnSelectedRows"></app-user-table>
|
||||
<app-user-table #repUsers [click]="repUserOnClick"></app-user-table>
|
||||
</mat-tab>
|
||||
<mat-tab label="Rep. Gruppen">
|
||||
<app-group-table #repGroups [columns]="groupRepCols" [onSelectedRows]="repGroupOnSelectedRows"></app-group-table>
|
||||
<app-group-table #repGroups [columns]="groupRepCols" [click]="repGroupOnClick"></app-group-table>
|
||||
</mat-tab>
|
||||
</mat-tab-group>
|
||||
</div>
|
||||
@ -27,7 +27,7 @@
|
||||
<div class="col-3">
|
||||
<mat-tab-group>
|
||||
<mat-tab label="{{useRepLabel}}">
|
||||
<app-user-rep-table #userReps [initData]="initWithoutData" [onSelectedRows]="repOnSelectedRows" [rowClass]="rep_row_class"></app-user-rep-table>
|
||||
<app-user-rep-table #userReps [initData]="initWithoutData" [rowClass]="rep_row_class" [click]="repOnClick"></app-user-rep-table>
|
||||
</mat-tab>
|
||||
</mat-tab-group>
|
||||
</div>
|
||||
|
||||
@ -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<User, UserService>) => {
|
||||
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<Group, GroupService>) => {
|
||||
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<User, UserService>) => {
|
||||
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<Group, GroupService>) => {
|
||||
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<UserRep, UserRepService>) => {
|
||||
this.repOnSelectedRows(table.selectedRows);
|
||||
}
|
||||
|
||||
openCreateSheet(userRep: UserRep, afterCreation: (any: any) => any): void {
|
||||
|
||||
this.dialog.open(RepCreateFormComponent, {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user