This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
markDownViewer.component.ts 1.38 KiB
Newer Older
import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';
import { Exercise } from 'app/shared/model/exercise.model';
import { ExerciseService } from '../service/exercise.service';
Michael Breu's avatar
Michael Breu committed

@Component({
    selector: 'jhi-markdown-viewer',
    templateUrl: './markDownViewer.component.html',
Michael Breu's avatar
Michael Breu committed
    styleUrls: ['./markDownViewer.component.scss'],
Michael Breu's avatar
Michael Breu committed
})
export class MarkDownViewerComponent implements OnInit, OnChanges {
    @Input() exercise: Exercise | undefined;

    public filename: string;
    public content: string;

    constructor(
        private exerciseService: ExerciseService,
    ) {
        this.filename = 'README.md';
        this.content = '';
    }
    ngOnInit(): void {
    }
Michael Breu's avatar
Michael Breu committed

Michael Breu's avatar
Michael Breu committed
    // eslint-disable-next-line
    ngOnChanges(changes: SimpleChanges): void {
Michael Breu's avatar
Michael Breu committed
        if(!this.exercise) return;
        this.exerciseService.loadExerciseFile(this.exercise.originalResult.project.project_id, 'README.md').subscribe(
            (content) => { this.content = content; this.filename = 'README.md' },
            () => {
                this.exerciseService.loadExerciseFile(this.exercise!.originalResult.project.project_id, 'exercise.md').subscribe(
                    (content) => { this.content = content; this.filename = 'exercise.md'; },
                    () => { this.content = '#No README found'; this.filename = '' }
                )
            }
        )
    }