diff --git a/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.css b/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.css index d6a2964..2b7e42c 100644 --- a/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.css +++ b/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.css @@ -140,3 +140,7 @@ border-top-width: 1px; border-bottom-width: 1px; } + +.node-name { + font-style: normal; +} diff --git a/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.html b/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.html index 77e3667..e576d32 100644 --- a/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.html +++ b/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.html @@ -1,7 +1,21 @@ - + - - - - + + + + + + + + + + + + + diff --git a/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.ts b/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.ts index bfba540..acf9627 100644 --- a/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.ts +++ b/frontend/src/app/dashboard/taskgroup-overview/taskgroup-overview.component.ts @@ -1,5 +1,55 @@ import { Component } from '@angular/core'; +import {MatIconModule} from "@angular/material/icon"; +import {MatButtonModule} from "@angular/material/button"; +import {MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule} from "@angular/material/tree"; +import {FlatTreeControl} from "@angular/cdk/tree"; + +interface TreeNode { + name: string + children?: TreeNode[] +} + +const TREE_DATA: TreeNode[] = [ + { + name: "KIT", + children: [ + { + name: "WS23", + children: [ + { + name: "Computergrafik", + children: [{name: "Vorlesungen"}, {name: "Globalübungen"}] + }, + { + name: "Softwaretechnik II", + children: [{name: "Vorlesungen"}, {name: "Globalübungen"}] + }, + { + name: "Algorithmen II", + children: [{name: "Vorlesungen"}, {name: "Globalübungen"}] + } + ] + }, + { + name: "SS24", + children: [ + { + name: "Interaktive Computergrafik", + children: [{name: "Vorlesungen"}, {name: "Globalübungen"}] + } + ] + } + ] + } +] + +/** Flat node with expandable and level information */ +interface ExampleFlatNode { + expandable: boolean; + name: string; + level: number; +} @Component({ selector: 'app-taskgroup-overview', templateUrl: './taskgroup-overview.component.html', @@ -7,8 +57,31 @@ import { Component } from '@angular/core'; }) export class TaskgroupOverviewComponent { - test_Var: boolean = false; - test() { - this.test_Var = !this.test_Var; + private _transformer = (node: TreeNode, level: number) => { + return { + expandable: !!node.children && node.children.length > 0, + name: node.name, + level: level, + }; + }; + + treeControl = new FlatTreeControl( + node => node.level, + node => node.expandable, + ); + + treeFlattener = new MatTreeFlattener( + this._transformer, + node => node.level, + node => node.expandable, + node => node.children, + ); + + dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); + + constructor() { + this.dataSource.data = TREE_DATA; } + + hasChild = (_: number, node: ExampleFlatNode) => node.expandable; }