139 lines
3.5 KiB
TypeScript
139 lines
3.5 KiB
TypeScript
import {Component, CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';
|
|
import {MatCard, MatCardContent, MatCardHeader} 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 {MatList, MatListItem} from '@angular/material/list';
|
|
import {MatIconButton} from '@angular/material/button';
|
|
import {SystemService} from '../../services/system.service';
|
|
import {Bean} from '../../models/Bean';
|
|
import {MatIcon} from '@angular/material/icon';
|
|
|
|
@Component({
|
|
selector: 'app-system.component',
|
|
imports: [
|
|
MatCard,
|
|
MatCardHeader,
|
|
MatCardContent,
|
|
MatDivider,
|
|
MatTabGroup,
|
|
MatTab,
|
|
MatTable,
|
|
MatColumnDef,
|
|
MatIcon,
|
|
MatCell,
|
|
MatCellDef,
|
|
MatList,
|
|
MatListItem,
|
|
MatRow,
|
|
MatHeaderRow,
|
|
MatRowDef,
|
|
MatHeaderCell,
|
|
MatHeaderCellDef,
|
|
MatIconButton,
|
|
MatIcon,
|
|
MatHeaderRowDef
|
|
],
|
|
templateUrl: './system.component.html',
|
|
styleUrl: './system.component.scss',
|
|
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
|
})
|
|
export class SystemComponent {
|
|
customBeans:Bean[] = [] ;
|
|
allBeans:Bean[] = [] ;
|
|
displayedColumns: string[] = ['shortName', 'typeShortName', 'scope'];
|
|
|
|
columnsToDisplayWithExpand = [...this.displayedColumns, 'expand'];
|
|
|
|
expandedElement: Bean | null = null;
|
|
|
|
resultsLength = 0;
|
|
isLoadingResults = true;
|
|
isRateLimitReached = false;
|
|
|
|
constructor(private systemService: SystemService) { }
|
|
|
|
ngOnInit(): void {
|
|
this.retrieveBeans();
|
|
}
|
|
|
|
retrieveBeans(): void {
|
|
this.systemService.getCustomBeans()
|
|
.subscribe(
|
|
(data: Bean[]) => {
|
|
this.customBeans = data;
|
|
console.log(data);
|
|
},
|
|
(error: any) => {
|
|
console.log(error);
|
|
});
|
|
this.systemService.getAllBeans()
|
|
.subscribe(
|
|
(data: Bean[]) => {
|
|
this.allBeans = data;
|
|
console.log(data);
|
|
},
|
|
(error: any) => {
|
|
console.log(error);
|
|
});
|
|
}
|
|
|
|
/** Checks whether an element is expanded. */
|
|
isExpanded(element: Bean) {
|
|
return this.expandedElement === element;
|
|
}
|
|
|
|
/** Toggles the expanded state of an element. */
|
|
toggle(element: Bean) {
|
|
this.expandedElement = this.isExpanded(element) ? null : element;
|
|
}
|
|
|
|
|
|
|
|
//ngAfterViewInit() {
|
|
//this.exampleDatabase = new ExampleHttpDatabase(this._httpClient);
|
|
|
|
// If the user changes the sort order, reset back to the first page.
|
|
/* this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));
|
|
|
|
merge(this.sort.sortChange, this.paginator.page)
|
|
.pipe(
|
|
startWith({}),
|
|
switchMap(() => {
|
|
this.isLoadingResults = true;
|
|
return this.exampleDatabase!.getRepoIssues(
|
|
this.sort.active,
|
|
this.sort.direction,
|
|
this.paginator.pageIndex,
|
|
).pipe(catchError(() => observableOf(null)));
|
|
}),
|
|
map(data => {
|
|
// Flip flag to show that loading has finished.
|
|
this.isLoadingResults = false;
|
|
this.isRateLimitReached = data === null;
|
|
|
|
if (data === null) {
|
|
return [];
|
|
}
|
|
|
|
// Only refresh the result length if there is new data. In case of rate
|
|
// limit errors, we do not want to reset the paginator to zero, as that
|
|
// would prevent users from re-triggering requests.
|
|
this.resultsLength = data.total_count;
|
|
return data.items;
|
|
}),
|
|
)
|
|
.subscribe(data => (this.data = data));*/
|
|
}
|
|
|
|
|