From 5567e30000d5a914118a0ed9d24bce5d3735e333 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Tue, 12 Apr 2016 18:59:21 -0400 Subject: [PATCH 1/4] Correctly parse arrays into url search parameters. --- front/current/services/rest.service.ts | 28 ++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/front/current/services/rest.service.ts b/front/current/services/rest.service.ts index 452da54..8d82cc8 100644 --- a/front/current/services/rest.service.ts +++ b/front/current/services/rest.service.ts @@ -33,8 +33,18 @@ export class Model { get url(): string { let params = new URLSearchParams(''); - for (let key of this.filters) - params.set(key, this.filters[key]); + + for (let key in this.filters) { + let value = this.filters[key]; + + if (typeof value == 'Array') { + for (let i = 0; i < value.length; i++) { + params.set(key + '[' + i + ']', value[i]); + } + } else { + params.set(key, value); + } + } return ( this.service.config.url + @@ -112,8 +122,18 @@ export class Collection { public get url(): string { let params = new URLSearchParams(''); - for (let key of this.filters) - params.set(key, this.filters[key]); + + for (let key in this.filters) { + let value = this.filters[key]; + + if (typeof value[Symbol.iterator] === 'function') { + for (let i = 0; i < value.length; i++) { + params.set(key + '[]', value[i]); + } + } else { + params.set(key, value); + } + } return this.service.config.url + this.service.url + '?' + params.toString(); }; -- GitLab From 494f2e6b740f980736300524752d3850f8bde05c Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Tue, 12 Apr 2016 18:59:34 -0400 Subject: [PATCH 2/4] Add support for downloading documents. --- .../current/components/projects/list.component.html | 6 ++++-- front/current/components/projects/list.component.ts | 13 +++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/front/current/components/projects/list.component.html b/front/current/components/projects/list.component.html index 187e942..d7c6232 100644 --- a/front/current/components/projects/list.component.html +++ b/front/current/components/projects/list.component.html @@ -31,9 +31,11 @@ - + {{ getDocumentForDocumentSlot(documentSlot).data['name'] }} - + diff --git a/front/current/components/projects/list.component.ts b/front/current/components/projects/list.component.ts index 35cf76c..5895820 100644 --- a/front/current/components/projects/list.component.ts +++ b/front/current/components/projects/list.component.ts @@ -53,6 +53,15 @@ export class ProjectListComponent implements OnInit{ } }; + public download(document_:Model) { + document_.setFilters({verbosity: 'data'}).fetch(() => { + var link = document.createElement('a'); + link['download'] = document_.data['name']; + link.href = document_.data['data']; + link.click(); + }); + }; + fetch() { let self = this; @@ -64,7 +73,7 @@ export class ProjectListComponent implements OnInit{ let keys = []; for (let project of self.projects.models) { - let key = project.data['key']; + let key = project.data['id']; if (keys.indexOf(key) == -1) keys.push(key) } @@ -75,7 +84,7 @@ export class ProjectListComponent implements OnInit{ let keys = []; for (let document_slot of self.documentSlots.models) { - let key = document_slot['document_key']; + let key = document_slot.data['document_key']; keys.push(key); } -- GitLab From 9fa8c7b248e5a81582d256651d80a20abcd67461 Mon Sep 17 00:00:00 2001 From: Jose Contreras Date: Tue, 12 Apr 2016 19:35:46 -0400 Subject: [PATCH 3/4] Fix url property on Model --- front/current/services/rest.service.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/front/current/services/rest.service.ts b/front/current/services/rest.service.ts index 8d82cc8..7ee6cf2 100644 --- a/front/current/services/rest.service.ts +++ b/front/current/services/rest.service.ts @@ -37,9 +37,9 @@ export class Model { for (let key in this.filters) { let value = this.filters[key]; - if (typeof value == 'Array') { + if (typeof value[Symbol.iterator] === 'function') { for (let i = 0; i < value.length; i++) { - params.set(key + '[' + i + ']', value[i]); + params.set(key + '[]', value[i]); } } else { params.set(key, value); -- GitLab From dedbf321aaa03056453a747e0c87d897d1c36d68 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Tue, 12 Apr 2016 19:42:34 -0400 Subject: [PATCH 4/4] Add a progress bar. --- front/current/components/projects/list.component.html | 1 + 1 file changed, 1 insertion(+) diff --git a/front/current/components/projects/list.component.html b/front/current/components/projects/list.component.html index d7c6232..ccafc8d 100644 --- a/front/current/components/projects/list.component.html +++ b/front/current/components/projects/list.component.html @@ -35,6 +35,7 @@ (click)="download(getDocumentForDocumentSlot(documentSlot))" *ngIf="!documents.loading"> {{ getDocumentForDocumentSlot(documentSlot).data['name'] }} + -- GitLab