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"
|
[theme]="theme"
|
||||||
[rowStyle] = "rowStyle"
|
[rowStyle] = "rowStyle"
|
||||||
[rowClass] = "rowClass"
|
[rowClass] = "rowClass"
|
||||||
(selectedRows)="onSelectedRows($event)">
|
(selectedRows)="onSelectedRows($event)"
|
||||||
|
(click)="click && click(this)">
|
||||||
</gui-grid>
|
</gui-grid>
|
||||||
@ -69,6 +69,10 @@ export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>>
|
|||||||
|
|
||||||
private themeSubscription: Subscription = new Subscription();
|
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) {
|
constructor(@Inject(ApiService<TModel>) service: TApiService, columns: Array<GuiColumn>, private cModeService: ColorModeService) {
|
||||||
this.service = service;
|
this.service = service;
|
||||||
if (this.columns.length == 0)
|
if (this.columns.length == 0)
|
||||||
@ -114,7 +118,9 @@ export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>>
|
|||||||
@Input() rowStyle: GuiRowStyle = {}
|
@Input() rowStyle: GuiRowStyle = {}
|
||||||
|
|
||||||
@Input() rowClass: GuiRowClass = {}
|
@Input() rowClass: GuiRowClass = {}
|
||||||
|
|
||||||
|
@Input() click: ((table: BaseTableComponent<TModel, TApiService>) => void) | undefined;
|
||||||
|
|
||||||
selected: boolean = false;
|
selected: boolean = false;
|
||||||
safelyUnselectAll() {
|
safelyUnselectAll() {
|
||||||
this.selected = true
|
this.selected = true
|
||||||
|
|||||||
@ -5,10 +5,10 @@
|
|||||||
<div class="col-5">
|
<div class="col-5">
|
||||||
<mat-tab-group>
|
<mat-tab-group>
|
||||||
<mat-tab label="Benutzer">
|
<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>
|
||||||
<mat-tab label="Gruppe">
|
<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>
|
||||||
</mat-tab-group>
|
</mat-tab-group>
|
||||||
</div>
|
</div>
|
||||||
@ -16,10 +16,10 @@
|
|||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<mat-tab-group>
|
<mat-tab-group>
|
||||||
<mat-tab label="Rep. Benutzer">
|
<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>
|
||||||
<mat-tab label="Rep. Gruppen">
|
<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>
|
||||||
</mat-tab-group>
|
</mat-tab-group>
|
||||||
</div>
|
</div>
|
||||||
@ -27,7 +27,7 @@
|
|||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<mat-tab-group>
|
<mat-tab-group>
|
||||||
<mat-tab label="{{useRepLabel}}">
|
<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>
|
||||||
</mat-tab-group>
|
</mat-tab-group>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -8,9 +8,12 @@ import Swal from 'sweetalert2';
|
|||||||
import { MatTabsModule, MatTabGroup } from '@angular/material/tabs';
|
import { MatTabsModule, MatTabGroup } from '@angular/material/tabs';
|
||||||
import { env } from '../../../environments/environment';
|
import { env } from '../../../environments/environment';
|
||||||
import { BasePageComponent } from '../base-page/base-page.component';
|
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 { RepCreateFormComponent } from '../../components/forms/rep-create-form/rep-create-form.component';
|
||||||
import { MatDialog } from '@angular/material/dialog';
|
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({
|
@Component({
|
||||||
standalone: true,
|
standalone: true,
|
||||||
@ -78,16 +81,22 @@ export class UserRepresentationComponent extends BasePageComponent implements Af
|
|||||||
@ViewChild("repGroups") repGroups!: GroupTableComponent;
|
@ViewChild("repGroups") repGroups!: GroupTableComponent;
|
||||||
@ViewChild("userReps") userReps!: UserRepTableComponent;
|
@ViewChild("userReps") userReps!: UserRepTableComponent;
|
||||||
|
|
||||||
|
// user
|
||||||
userOnSelectedRows = (rows: GuiSelectedRow[]) => {
|
userOnSelectedRows = (rows: GuiSelectedRow[]) => {
|
||||||
if (rows.length > 0) {
|
if (rows.length > 0) {
|
||||||
this.useRepLabel = `Vertretungen von ${rows[0].source?.username}`
|
this.useRepLabel = `Vertretungen von ${rows[0].source?.username}`
|
||||||
this.users.safelyUnselectAll();
|
//this.users.safelyUnselectAll();
|
||||||
this.userReps.fetchByUser(rows[0].source?.id);
|
this.userReps.fetchByUser(rows[0].source?.id);
|
||||||
this.slGroupId = undefined;
|
this.slGroupId = undefined;
|
||||||
this.slUserId = rows[0].source?.id
|
this.slUserId = rows[0].source?.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userOnClick = (table: BaseTableComponent<User, UserService>) => {
|
||||||
|
this.userOnSelectedRows(table.selectedRows);
|
||||||
|
}
|
||||||
|
|
||||||
|
// group
|
||||||
groupOnSelectedRows = (rows: GuiSelectedRow[]) => {
|
groupOnSelectedRows = (rows: GuiSelectedRow[]) => {
|
||||||
if (rows.length > 0) {
|
if (rows.length > 0) {
|
||||||
this.useRepLabel = `Vertretungen von ${rows[0].source?.name}`
|
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[]) => {
|
repUserOnSelectedRows = (rows: GuiSelectedRow[]) => {
|
||||||
if (rows.length == 0 && this.slRepUserId) {
|
if (rows.length == 0 && this.slRepUserId) {
|
||||||
if (!this.slUserId && !this.slGroupId) {
|
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[]) => {
|
repGroupOnSelectedRows = (rows: GuiSelectedRow[]) => {
|
||||||
if (rows.length == 0 && this.slRepGroupId) {
|
if (rows.length == 0 && this.slRepGroupId) {
|
||||||
if (!this.slUserId && !this.slGroupId) {
|
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[]) => {
|
repOnSelectedRows = (rows: GuiSelectedRow[]) => {
|
||||||
if (rows.length == 0 && this.slRepId) {
|
if (rows.length == 0 && this.slRepId) {
|
||||||
this.userRepService.delete(this.slRepId).subscribe({
|
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 {
|
openCreateSheet(userRep: UserRep, afterCreation: (any: any) => any): void {
|
||||||
|
|
||||||
this.dialog.open(RepCreateFormComponent, {
|
this.dialog.open(RepCreateFormComponent, {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user