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

Skip to content
Snippets Groups Projects
exercise-card.component.ts 1.51 KiB
Newer Older
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { Exercise } from 'app/shared/model/exercise.model';
import { SearchService } from 'app/search/service/search-service';
Michael Breu's avatar
Michael Breu committed
import { WatchlistManager } from 'app/shared/watchlist/watchlist-manager';
import { LikesService } from 'app/entities/likes/likes.service';
import { ExerciseService } from '../service/exercise.service';
  selector: 'jhi-exercise-card',
  templateUrl: './exercise-card.component.html',
  styleUrls: ['./exercise-card.component.scss'],
export class ExerciseCardComponent  {
  @Input() exercise: Exercise | undefined;
  @Output() exerciseSelectionEvent = new EventEmitter<Exercise>();
  constructor(
    protected searchService: SearchService,
    private watchlistManager: WatchlistManager,
    private likesService: LikesService,
    private exerciseService: ExerciseService
  ) {}
    this.exercise = this.exerciseService.populateExerciseWithData(this.exercise!);
    this.exerciseSelectionEvent.emit(this.exercise);
  }
  isOnCurrentWatchlist(e: Exercise): boolean {
    return this.watchlistManager.isExerciseOnCurrentWatchlist(e);
  }

  handleForCurrentWatchlist(e: Exercise):void {
    this.watchlistManager.handleCheckForCurrentWatchlist(e);
  }

  /**
   * correct missing image urls
   */
  correctImageURL(event: Event): void {
    const img = event.srcElement as HTMLImageElement;
    if (img) {
      img.src = '/content/images/Logo_codeAbility_4c_300dpi_RGB3.gif';