diff --git a/src/web/app/components/copy-session-modal/copy-session-modal.component.ts b/src/web/app/components/copy-session-modal/copy-session-modal.component.ts index d2a0a8beca1..b6c13d58ea5 100644 --- a/src/web/app/components/copy-session-modal/copy-session-modal.component.ts +++ b/src/web/app/components/copy-session-modal/copy-session-modal.component.ts @@ -2,6 +2,7 @@ import { Component, Input } from '@angular/core'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; import { Course } from '../../../types/api-output'; import { FEEDBACK_SESSION_NAME_MAX_LENGTH } from '../../../types/field-validator'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; /** * Copy current session modal. @@ -27,6 +28,11 @@ export class CopySessionModalComponent { constructor(public activeModal: NgbActiveModal) {} + formCopySessionModel = new FormGroup({ + newFeedbackSessionName: new FormControl('', [Validators.required, this.noWhitespaceValidator]) + }); + + /** * Fires the copy event. */ @@ -48,4 +54,10 @@ export class CopySessionModalComponent { this.copyToCourseSet.add(courseId); } } + noWhitespaceValidator(control: { value: any; }) { + const isWhitespace = (control.value || '').trim().length === 0; + const isValid = !isWhitespace; + return isValid ? null : { 'whitespace': true }; + } + }