diff --git a/front/current/components/projects/list.component.html b/front/current/components/projects/list.component.html index 187e94232716d823e8a1647db1c2ddbc334faeb8..ccafc8d90a5b6b5b634ec5d2b6cbab2247f9cdca 100644 --- a/front/current/components/projects/list.component.html +++ b/front/current/components/projects/list.component.html @@ -31,9 +31,12 @@ - + {{ getDocumentForDocumentSlot(documentSlot).data['name'] }} - + + diff --git a/front/current/components/projects/list.component.ts b/front/current/components/projects/list.component.ts index 35cf76c72433338a0499499c2d4e8f51ded4e47d..589582041f8644011e3b1e5b3b7edd2cfedea0dc 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); } diff --git a/front/current/services/rest.service.ts b/front/current/services/rest.service.ts index 452da54143e92981b2ed0b1f10a6c873172e6141..7ee6cf2916929573873dde98f0a3230c12a38b6c 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[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 + @@ -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(); };