Skip to content

Commit e7095ab

Browse files
committed
added progress bar to file uploads
1 parent 587fd81 commit e7095ab

File tree

5 files changed

+34
-34
lines changed

5 files changed

+34
-34
lines changed

src/app/items/item-form/item-form.component.html

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,6 @@ <h3>New Task Form</h3>
1313
<span *ngIf='title.errors; then errors else valid'>template renders here...</span>
1414
</div>
1515

16-
<!-- <br>
17-
<label class="control-label">Body</label>
18-
<textarea placeholder="Item Body" class="form-control" rows="5"
19-
[(ngModel)]="item.body"
20-
required minlength="5" maxlength="200"
21-
#body='ngModel'>
22-
</textarea>
23-
24-
<div *ngIf="body.dirty">
25-
<span *ngIf='body.errors; then errors else valid'>template renders here...</span>
26-
</div> -->
27-
2816

2917
<button class="btn btn-primary" (click)='createItem()' [disabled]="!title.valid">Create</button>
3018
</fieldset>

src/app/items/items-list/items-list.component.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,3 @@ <h1>Items</h1>
1111
<hr>
1212

1313
<item-form></item-form>
14-
15-
16-
<!-- These temples will appear contionally -->

src/app/uploads/shared/upload.service.ts

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Injectable } from '@angular/core';
22
import { AngularFire, AngularFireDatabase, FirebaseListObservable } from 'angularfire2';
3-
import * as firebase from 'firebase';
43
import { Upload } from './upload';
5-
import * as _ from "lodash";
4+
import * as firebase from 'firebase';
5+
66

77
@Injectable()
88
export class UploadService {
@@ -21,18 +21,6 @@ export class UploadService {
2121
return this.uploads
2222
}
2323

24-
singleUpload(file: File) {
25-
let upload = new Upload(file);
26-
this.pushUpload(upload)
27-
}
28-
29-
30-
multiUpload(files:FileList) {
31-
let filesIndex = _.range(files.length)
32-
_.each(filesIndex, (idx) => {
33-
this.singleUpload(files[idx])}
34-
)
35-
}
3624

3725
deleteUpload(upload: Upload) {
3826
this.deleteFileData(upload.$key)
@@ -43,7 +31,7 @@ export class UploadService {
4331
}
4432

4533
// Executes the file uploading to firebase https://firebase.google.com/docs/storage/web/upload-files
46-
private pushUpload(upload: Upload) {
34+
pushUpload(upload: Upload) {
4735
let storageRef = firebase.storage().ref();
4836
this.uploadTask = storageRef.child(`${this.basePath}/${upload.file.name}`).put(upload.file);
4937

src/app/uploads/upload-form/upload-form.component.html

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
<div *ngIf="currentUpload">
2+
<div class="progress">
3+
<div class="progress-bar progress-bar-animated" [ngStyle]="{ 'width': currentUpload?.progress + '%' }"></div>
4+
</div>
5+
6+
Progress: {{currentUpload?.name}} | {{currentUpload?.progress}}% Complete
7+
</div>
8+
9+
110
<div class="card card-outline-primary">
211
<div class="card-block">
312

@@ -8,7 +17,7 @@
817

918
<button class="btn btn-primary"
1019
[disabled]="!selectedFiles"
11-
(click)="upload()">
20+
(click)="uploadSingle()">
1221

1322
Upload Single
1423
</button>

src/app/uploads/upload-form/upload-form.component.ts

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Component, OnInit } from '@angular/core';
22
import { UploadService } from '../shared/upload.service';
33
import { Upload } from '../shared/upload';
4+
import * as _ from "lodash";
45

56
@Component({
67
selector: 'upload-form',
@@ -10,6 +11,7 @@ import { Upload } from '../shared/upload';
1011
export class UploadFormComponent implements OnInit {
1112

1213
selectedFiles: FileList;
14+
currentUpload: Upload;
1315

1416
constructor(private upSvc: UploadService) { }
1517

@@ -20,16 +22,32 @@ export class UploadFormComponent implements OnInit {
2022
this.selectedFiles = event.target.files;
2123
}
2224

23-
upload() {
25+
// upload() {
26+
// let file = this.selectedFiles.item(0)
27+
// this.upSvc.singleUpload(file)
28+
// }
29+
30+
uploadSingle() {
2431
let file = this.selectedFiles.item(0)
25-
this.upSvc.singleUpload(file)
32+
this.currentUpload = new Upload(file);
33+
this.upSvc.pushUpload(this.currentUpload)
2634
}
2735

2836
uploadMulti() {
2937
let files = this.selectedFiles
30-
this.upSvc.multiUpload(files);
38+
let filesIndex = _.range(files.length)
39+
_.each(filesIndex, (idx) => {
40+
this.currentUpload = new Upload(files[idx]);
41+
this.upSvc.pushUpload(this.currentUpload)}
42+
)
3143
}
3244

3345

46+
// uploadMulti() {
47+
// let files = this.selectedFiles
48+
// this.upSvc.multiUpload(files);
49+
// }
50+
51+
3452

3553
}

0 commit comments

Comments
 (0)