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

Skip to content
Snippets Groups Projects
review-management.component.ts 2.81 KiB
Newer Older
import { Component, OnInit } from '@angular/core';
Eduard Frankford's avatar
Eduard Frankford committed
import { ActivatedRoute } from '@angular/router';
import { Account } from 'app/core/auth/account.model';
import { AccountService } from 'app/core/auth/account.service';
import { SearchService } from 'app/search/service/search-service';
import { Exercise, searchResultToExercise } from 'app/shared/model/exercise.model';
import { SearchResultsDTO } from 'app/shared/model/search/search-results-dto.model';
import { UserManagementService } from '../user-management/service/user-management.service';
import { User } from '../user-management/user-management.model';
import { MultiSelectDropdownExerciseComponent } from './multi-select-dropdown-exercise/multi-select-dropdown-exercise.component';
import { ReviewManagementService } from './review-management.service';
import { Review } from './review.model';
import { ReviewRequest } from './reviewRequest.model';

@Component({
  selector: 'jhi-review-management',
  templateUrl: './review-management.component.html',
  styleUrls: ['./review-management.component.scss'],
})
export class ReviewManagementComponent implements OnInit {
  currentAccount: Account | null = null;
  users: User[] | undefined;
  results: Exercise[] = [];
  selectedUsers: string[] | undefined;
  selectedExercise: Exercise | undefined;
  reviews: Review[] = [];
  constructor(
    private userService: UserManagementService,
    private accountService: AccountService,
    private searchService: SearchService,
    private reviewManagementService: ReviewManagementService,
Eduard Frankford's avatar
Eduard Frankford committed
    private multiSelectDropdownExerciseComponent: MultiSelectDropdownExerciseComponent,
    private route: ActivatedRoute
  ) {}

  ngOnInit(): void {
    this.accountService.identity().subscribe(account => (this.currentAccount = account));
Eduard Frankford's avatar
Eduard Frankford committed
    this.route.params.subscribe(() => {
      this.loadAll();
    });
  }

  loadAll(): void {
    this.userService.loadAll().subscribe(users => {
      this.users = users;
    });
    this.searchService.getAllResources().subscribe(
      (data: SearchResultsDTO) => {
        const searchResults = data.searchResult.map(searchResultToExercise);
        this.results = this.results.concat(searchResults);
      },
      () => (this.results = [])
    );
    this.reviewManagementService.getAll().subscribe(reviews => {
      this.reviews = reviews;
    });
  shareCheckedUserList(users: string[]) {
    this.selectedUsers = users;
  shareExercise(exercise: Exercise) {
    this.selectedExercise = exercise;
  }

  submitReview() {
    this.reviewManagementService.create(new ReviewRequest(this.selectedExercise!.title, this.selectedUsers!)).subscribe(() => {
      this.multiSelectDropdownExerciseComponent.checkedList = [];
      this.loadAll();
    });
  }

  deleteReview(review: Review) {
    this.reviewManagementService.delete(review.id!).subscribe(() => this.loadAll());