Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ngOnInit() {
- this.assignForm = this.fb.group({
- courses: this.fb.array([])
- });
- this.setCourses();
- }
- setCourses() {
- const control = <FormArray>this.assignForm.controls.courses;
- if (this.courses) {
- this.courses.forEach(course => {
- control.push(
- this.fb.group({
- courseAssign: false,
- courseDueDate: "dueDate",
- students: this.setStudents(course)
- })
- );
- });
- }
- }
- setStudents(course) {
- const studentArray = new FormArray([]);
- course.students.forEach(student => {
- studentArray.push(
- this.fb.group({
- studentAssign: false,
- studentDueDate: "dueDate"
- })
- );
- });
- return studentArray;
- }
- <form [formGroup]="assignForm" (ngSubmit)="onSubmit()">
- <div fxLayout="row" fxLayoutAlign="end center" class="assign-btn-container">
- <button
- mat-raised-button
- color="primary"
- type="submit">
- Assign
- </button>
- </div>
- <div formArrayName="courses">
- <mat-expansion-panel
- #expPanel
- *ngFor="let course of courses; let i = index"
- [formGroupName]="i">
- <mat-expansion-panel-header>
- <div class="panel-header-text">
- <div class="course-name">
- {{ course.courseTitle }}
- </div>
- <div class="course-opts">
- <!-- Course Assign -->
- <div fxFlex>
- <mat-checkbox
- formControlName="courseAssign"
- (click)="$event.stopPropagation()"
- (change)="$event ? toggleAssignCourse($event, course, i) : null">
- Assign
- </mat-checkbox>
- </div>
- <!-- Course Due Date/Time -->
- <div fxFlex>
- <input type="text"
- placeholder="Due Date & Time"
- formControlName="courseDueDate"/>
- </div>
- </div>
- </div>
- </mat-expansion-panel-header>
- <div formArrayName="students">
- <div
- *ngFor="let student of course.students; let s = index"
- [formGroupName]="s">
- <div class="student-name">
- {{ student.firstName }} {{ student.lastName }}
- </div>
- <mat-action-row class="assignment-opts">
- <!-- Student Assign -->
- <div fxFlex>
- <mat-checkbox
- formControlName="studentAssign"
- (change)="toggleAssignStudent($event, course, student, s)">
- Assign
- </mat-checkbox>
- </div>
- <!-- Student Due Date/Time -->
- <div fxFlex>
- <input type="text"
- placeholder="Due Date & Time"
- formControlName="studentDueDate"/>
- </div>
- </mat-action-row>
- </div>
- </div>
- </mat-expansion-panel>
- </div>
- </form>
- toggleAssignCourse(event, course: Course, i) {
- this.assignForm.value.courses[i].students.map(student => {
- student.studentAssign = true;
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement