Unverified Commit d45b3753 authored by Peter Stanko's avatar Peter Stanko
Browse files

Cancel submission

parent d28f0167
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@ import {UserService} from '../../services/user.service';
import {Subscription} from 'rxjs/Subscription';
import {of} from 'rxjs/observable/of';
import {catchError, map} from 'rxjs/operators';
import { SubmissionService } from '../../services/submission.service';
import { FlashMessagesService } from 'angular2-flash-messages';
import { ActivatedRoute, Router } from '@angular/router';

@Component({
  selector: 'app-submission-list-view',
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@
        </a>-->
      </td>
      <td>
        <button>
        <button (click)="cancelSubmission(submission?.id)">
          Cancel
        </button>
      </td>
+35 −5
Original line number Diff line number Diff line
import {Component, Input, OnInit} from '@angular/core';
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { User } from '../models/models';
import { ActivatedRoute, Router } from '@angular/router';
import { SubmissionService } from '../../services/submission.service';
import { FlashMessagesService } from 'angular2-flash-messages';
import { Subscription } from 'rxjs/Subscription';

@Component({
  selector: 'app-submissions-table',
  templateUrl: './submissions-table.component.html',
  styleUrls: [ './submissions-table.component.scss' ]
})
export class SubmissionsTableComponent implements OnInit {
export class SubmissionsTableComponent implements OnInit, OnDestroy {

  @Input() user: User;
  @Input() maxEntries = 10;
  constructor() { }

  subscriptions: Subscription[] = [];

  ngOnDestroy() {
    this.subscriptions.forEach(subscription => subscription.unsubscribe());
  }

  constructor(private route: ActivatedRoute,
              private submissionService: SubmissionService,
              private flashMessagesService: FlashMessagesService,
              private router: Router) {
  }

  ngOnInit() {
    // sort (https://stackoverflow.com/questions/50334847/angular-5-sort-by-date)
@@ -23,4 +38,19 @@ export class SubmissionsTableComponent implements OnInit {
    this.maxEntries += 5;
  }

  cancelSubmission(submission_id: string) {
    this.subscriptions.push(this.submissionService.cancelSubmission(submission_id).subscribe(
      () => {
        this.router.onSameUrlNavigation = 'reload';
        this.router.navigate([ '.' ], { relativeTo: this.route }).then(
          () => {
            this.flashMessagesService.show('Submission cancelled.', { cssClass: 'alert-success' });
          }, (error: any) => {
            console.log('Navigation failed: ', error);
            this.flashMessagesService.show('Navigation failed, try navigating elsewhere.', { cssClass: 'alert-danger' });
          }
        );
      }
    ));
  }
}
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ export class SubmissionDetailComponent implements OnInit, OnDestroy {
  subscriptions: Subscription[] = [];

  constructor(private route: ActivatedRoute,

              private router: Router,
              private flashMessagesService: FlashMessagesService,
              private submissionService: SubmissionService,
+5 −1
Original line number Diff line number Diff line
import {Component, OnDestroy, OnInit} from '@angular/core';
import {Course, Group, Role, User} from '../../shared/models/models';
import {Course, User} from '../../shared/models/models';
import {Subscription} from 'rxjs/Subscription';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {ActivatedRoute, Router} from '@angular/router';
@@ -8,6 +8,8 @@ import {PermissionsService} from '../../services/permissions.service';
import {UserService} from '../../services/user.service';
import {CourseService} from '../../services/course.service';
import {AuthService} from '../../services/auth.service';
import { SubmissionService } from '../../services/submission.service';
import { FlashMessagesService } from 'angular2-flash-messages';

@Component({
  selector: 'app-submission-list',
@@ -40,6 +42,8 @@ export class SubmissionListComponent implements OnInit, OnDestroy {
              private permissionsService: PermissionsService,
              private userService: UserService,
              private courseService: CourseService,
              private submissionService: SubmissionService,
              private flashMessagesService: FlashMessagesService,
              private auth: AuthService) {
    this.createForm();
    this.loading = true;