Skip to content

Commit 0fc364d

Browse files
committed
Angular Forms Course
1 parent a3a4d53 commit 0fc364d

File tree

5 files changed

+31
-4
lines changed

5 files changed

+31
-4
lines changed

server/file-upload.route.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ export function onFileupload(req:Request, res: Response) {
88

99
console.log("File uploaded: ", file.name);
1010

11-
res.status(200).json({message: 'File uploaded successfully.'})
11+
setTimeout(() => {
12+
res.status(200).json({message: 'File uploaded successfully.'});
13+
}, 2000)
14+
15+
1216

1317
}

src/app/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { AddressFormComponent } from './address-form/address-form.component';
4242
import {CreateCourseStep3Component} from './create-course/create-course-step-3/create-course-step-3.component';
4343
import {CreateCourseStep1Component} from './create-course/create-course-step-1/create-course-step-1.component';
4444
import {FileUploadComponent} from './file-upload/file-upload.component';
45+
import {MatProgressBarModule} from '@angular/material/progress-bar';
4546

4647
@NgModule({
4748
declarations: [
@@ -86,6 +87,7 @@ import {FileUploadComponent} from './file-upload/file-upload.component';
8687
MatRadioModule,
8788
MatCheckboxModule,
8889
MatStepperModule,
90+
MatProgressBarModule,
8991
FormsModule,
9092
ReactiveFormsModule
9193
],

src/app/file-upload/file-upload.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@
1919

2020
</div>
2121

22-
22+
<mat-progress-bar class="progress-bar" mode="determinate" [value]="uploadProgress" *ngIf="uploadProgress"></mat-progress-bar>

src/app/file-upload/file-upload.component.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,7 @@ display: flex;
1212
margin-left: 10px;
1313
margin-bottom:15px;
1414
}
15+
16+
.progress-bar {
17+
margin-bottom: 10px;
18+
}

src/app/file-upload/file-upload.component.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {Component, Input} from '@angular/core';
2-
import {HttpClient} from '@angular/common/http';
2+
import {HttpClient, HttpEventType} from '@angular/common/http';
3+
import {finalize} from 'rxjs/operators';
34

45

56
@Component({
@@ -14,6 +15,10 @@ export class FileUploadComponent {
1415

1516
fileName:string = '';
1617

18+
uploadProgress:number;
19+
20+
validFileUploaded = false;
21+
1722
constructor(private http: HttpClient) {
1823

1924
}
@@ -33,7 +38,19 @@ export class FileUploadComponent {
3338
reportProgress: true,
3439
observe: 'events'
3540
})
36-
.subscribe(console.log);
41+
.pipe(
42+
finalize(() => {
43+
this.uploadProgress = null;
44+
this.validFileUploaded = true;
45+
})
46+
)
47+
.subscribe(event => {
48+
49+
if ( event.type === HttpEventType.UploadProgress ) {
50+
this.uploadProgress = Math.round((100 * event.loaded) / event.total);
51+
}
52+
53+
});
3754

3855
}
3956

0 commit comments

Comments
 (0)