diff --git a/demo-shell-ng2/app/components/page1.view.ts b/demo-shell-ng2/app/components/page1.view.ts
index 8293fe6321..7481e566a2 100644
--- a/demo-shell-ng2/app/components/page1.view.ts
+++ b/demo-shell-ng2/app/components/page1.view.ts
@@ -1,14 +1,25 @@
-import {Component} from "angular2/core";
+import {Component, NgZone} from "angular2/core";
import {UPLOAD_DIRECTIVES} from 'ng2-uploader/ng2-uploader';
@Component({
selector: 'page1-view',
+ styles: [
+ `
+ :host .dropzone {
+ width: 100%;
+ height: 100px;
+ background-color: #f5f5f5;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
+ text-align: center;
+ }
+ `
+ ],
template: `
Upload File
-
-
@@ -16,6 +27,18 @@ import {UPLOAD_DIRECTIVES} from 'ng2-uploader/ng2-uploader';
Response: {{ uploadFile | json }}
+
+
Drag and Drop file demo
+
+
+ Drop file here...
+
+
+
+
{{ dropProgress }}%
+
+
+
`,
directives: [UPLOAD_DIRECTIVES]
@@ -34,10 +57,38 @@ export class Page1View {
}
};
+ zone: NgZone;
+ dropProgress: number = 0;
+ dropResp: any[] = [];
+
+ constructor() {
+ this.zone = new NgZone({ enableLongStackTrace: false });
+ }
+
handleUpload(data): void {
if (data && data.response) {
data = JSON.parse(data.response);
this.uploadFile = data;
}
}
+
+ handleDropUpload(data): void {
+ let index = this.dropResp.findIndex(x => x.id === data.id);
+ if (index === -1) {
+ this.dropResp.push(data);
+ }
+ else {
+ this.zone.run(() => {
+ this.dropResp[index] = data;
+ });
+ }
+
+ let total = 0, uploaded = 0;
+ this.dropResp.forEach(resp => {
+ total += resp.progress.total;
+ uploaded += resp.progress.loaded;
+ });
+
+ this.dropProgress = Math.floor(uploaded / (total / 100));
+ }
}