Add data source properties retrieval and update related components

This commit is contained in:
liosha84
2025-06-30 19:14:15 +03:00
parent 5fce34dfb8
commit 0eeb93cd57
15 changed files with 209 additions and 15 deletions
@@ -1 +1,27 @@
<p>settings.component works!</p>
<mat-card>
<mat-card-content>
<mat-divider></mat-divider>
<mat-tab-group>
<mat-tab label="Data Source properties">
<table mat-table
[dataSource]="properties" multiTemplateDataRows="true" class="mat-elevation-z8">
@for (column of displayedColumns; track column) {
<ng-container matColumnDef="{{column}}">
<th mat-header-cell *matHeaderCellDef>{{column}}</th>
<td mat-cell *matCellDef="let element ; let k = dataIndex;">{{element[column]}}</td>
</ng-container>
}
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let element; columns: displayedColumns;"
class="example-element-row"
>
</tr>
</table>
</mat-tab>
</mat-tab-group>
</mat-card-content>
</mat-card>
@@ -1,11 +1,66 @@
import { Component } from '@angular/core';
import {MatCard, MatCardContent} from '@angular/material/card';
import {MatDivider} from '@angular/material/divider';
import {MatTab, MatTabGroup} from '@angular/material/tabs';
import {
MatCell,
MatCellDef,
MatColumnDef,
MatHeaderCell, MatHeaderCellDef,
MatHeaderRow,
MatHeaderRowDef,
MatRow, MatRowDef, MatTable
} from '@angular/material/table';
import {MatIconButton} from '@angular/material/button';
import {MatList, MatListItem} from '@angular/material/list';
import {Bean} from '../../models/Bean';
import {SystemService} from '../../services/system.service';
import {NameValueItem} from '../../models/name-value-item';
@Component({
selector: 'app-settings.component',
imports: [],
imports: [
MatCard,
MatCardContent,
MatDivider,
MatTab,
MatTabGroup,
MatCell,
MatCellDef,
MatColumnDef,
MatHeaderCell,
MatTable,
MatHeaderCellDef,
MatHeaderRow,
MatHeaderRowDef,
MatRow,
MatRowDef
],
templateUrl: './settings.component.html',
styleUrl: './settings.component.scss'
})
export class SettingsComponent {
properties: NameValueItem[] = [] ;
displayedColumns: string[] = ['name', 'value'];
constructor(private systemService: SystemService) {
this.retrieveProperties();
}
retrieveProperties(): void {
this.systemService.getDataSourceProperties()
.subscribe(
(data: NameValueItem[]) => {
this.properties = data;
console.log(data);
},
(error: any) => {
console.log(error);
}
);
}
}