From cfa1bfe51013606b2f613261b8a93af7f89f86cb Mon Sep 17 00:00:00 2001 From: Michael Breu <Michael.Breu@arctis.at> Date: Thu, 25 Jan 2024 13:43:49 +0100 Subject: [PATCH] Intermediate commit parent.title --- .../exercise-details.component.ts | 24 +++++++++++++++++-- .../exercise-body.component.html | 3 ++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts b/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts index 968d1d460..a6051d126 100644 --- a/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts +++ b/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts @@ -1,5 +1,5 @@ import { HttpResponse } from '@angular/common/http'; -import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; +import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; import { Router } from '@angular/router'; import { faArrowRight, faFolderOpen } from '@fortawesome/free-solid-svg-icons'; import { ReviewManagementService } from 'app/admin/review-management/review-management.service'; @@ -78,7 +78,7 @@ export class ExerciseHeaderComponent { templateUrl: './exerciseComponents/exercise-body.component.html', styleUrls: ['./exerciseComponents/exercise-body.component.scss'], }) -export class ExerciseBodyComponent implements OnInit, OnDestroy { +export class ExerciseBodyComponent implements OnInit, OnDestroy, AfterViewInit { @Output() exerciseChangedEvent = new EventEmitter<SearchResultDTO>(); @Input() get referencedExercise(): SearchResultDTO | undefined { return this.exercise; @@ -88,6 +88,8 @@ export class ExerciseBodyComponent implements OnInit, OnDestroy { } exercise: ExtendedSearchResultDTO | undefined; + parent: SearchResultDTO | undefined; + bookmarked = false; downloadWithChildren = false; @@ -213,6 +215,7 @@ export class ExerciseBodyComponent implements OnInit, OnDestroy { next: searchResult => { this.exercise = this.exerciseService.populateExerciseWithData(searchResult); this.exerciseChangedEvent.emit(this.exercise); + this.updateParent(this.exercise); }, error: () => { alert(`exercise ${exerciseId} cannot be loaded`); @@ -296,6 +299,23 @@ export class ExerciseBodyComponent implements OnInit, OnDestroy { }); } + ngAfterViewInit(): void { + this.updateParent(this.exercise!); + } + + updateParent(exercise: ExtendedSearchResultDTO): void { + if (this.exercise!.file.parentId) { + this.exerciseService.loadExercise(this.exercise!.file.parentId).subscribe({ + next: searchResult => { + this.parent = searchResult; + }, + error: () => { + alert(`exercise ${this.exercise!.file.parentId} cannot be loaded`); + }, + }); + } + } + ngOnDestroy(): void { if (this.authSubscription) { this.authSubscription.unsubscribe(); diff --git a/src/main/webapp/app/exercise/exercise-details/exerciseComponents/exercise-body.component.html b/src/main/webapp/app/exercise/exercise-details/exerciseComponents/exercise-body.component.html index 65007e122..52769fb60 100644 --- a/src/main/webapp/app/exercise/exercise-details/exerciseComponents/exercise-body.component.html +++ b/src/main/webapp/app/exercise/exercise-details/exerciseComponents/exercise-body.component.html @@ -154,7 +154,8 @@ (click)="toParent(exercise.file.parentId)" > <span jhiTranslate="exercise.containedIn">This exercise is contained in</span>: - <span> + <span + >{{ parent!.metadata.title }} <fa-icon style="padding: 5px 0px 0px 5px" container="body" [icon]="treeIcon"></fa-icon> </span> </div> -- GitLab