From 9d504793f15a6c85c2cc09bf09206e30ac18b064 Mon Sep 17 00:00:00 2001 From: Jose Contreras Date: Wed, 13 Apr 2016 22:24:16 -0400 Subject: [PATCH 1/2] Fetch documents when documents exist. --- front/current/components/projects/list.component.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/front/current/components/projects/list.component.ts b/front/current/components/projects/list.component.ts index 35cf76c..8c58add 100644 --- a/front/current/components/projects/list.component.ts +++ b/front/current/components/projects/list.component.ts @@ -79,9 +79,11 @@ export class ProjectListComponent implements OnInit{ keys.push(key); } - self.documents - .setFilters({keys: keys}) - .fetch(); + if(keys.length > 0) { + self.documents + .setFilters({ keys: keys }) + .fetch(); + } }); }); }; -- GitLab From ef0cfdfab2e0ebfbab0fb63a48f0d27c4b3c1c50 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Thu, 14 Apr 2016 11:16:14 -0400 Subject: [PATCH 2/2] Do not fetch document slots when there are no project ids in the project list. --- .../components/projects/list.component.ts | 56 +++++++++++-------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/front/current/components/projects/list.component.ts b/front/current/components/projects/list.component.ts index 5280307..8ec6935 100644 --- a/front/current/components/projects/list.component.ts +++ b/front/current/components/projects/list.component.ts @@ -70,31 +70,39 @@ export class ProjectListComponent implements OnInit { self.documentSlots = self._restService.Collection(self._documentSlotService, []); self.documents = self._restService.Collection(self._documentService, []); - self.projects.fetch(() => { - let keys = []; + self.projects.fetch(self.fetchDocumentSlots.bind(self)); + }; - for (let project of self.projects.models) { - let key = project.data['id']; - if (keys.indexOf(key) == -1) - keys.push(key) - } + fetchDocumentSlots() { + let self = this; + let keys = []; - self.documentSlots - .setFilters({project_ids: keys}) - .fetch(() => { - let keys = []; - - for (let document_slot of self.documentSlots.models) { - let key = document_slot.data['document_key']; - keys.push(key); - } - - if(keys.length > 0) { - self.documents - .setFilters({ keys: keys }) - .fetch(); - } - }); - }); + for (let project of self.projects.models) { + let key = project.data['id']; + if (keys.indexOf(key) == -1) + keys.push(key) + } + + if (!keys.length) return; + + self.documentSlots + .setFilters({project_ids: keys}) + .fetch(self.fetchDocuments.bind(self)); + }; + + fetchDocuments() { + let self = this; + let keys = []; + + for (let document_slot of self.documentSlots.models) { + let key = document_slot.data['document_key']; + keys.push(key); + } + + if (!keys.length) return; + + self.documents + .setFilters({ keys: keys }) + .fetch(); }; }; -- GitLab