diff --git a/src/client/components/PageDocuments.js b/src/client/components/PageDocuments.js index 02e01b68..6c38b926 100644 --- a/src/client/components/PageDocuments.js +++ b/src/client/components/PageDocuments.js @@ -1,14 +1,34 @@ import template from '../../templates/components/page-documents.html'; +let unique = fn => list => [...new Set(list.map(fn))]; + export default function (app) { app.component('pageDocuments', { template: template, controller: function (api) { this.pageClass = 'page-documents'; + let categories = unique(i => i.category); + + this.collections = []; api.document.documents() - .success(data => { - this.documents = data; + .success(documents => { + let cats = categories(documents) + .map(cat => new Object({ + name: cat, + documents: [] + })); + + let docCollections = documents.reduce( + (cats, doc) => { + let c = cats.find(i => i.name === doc.category); + c.documents.push(doc); + return cats; + }, + cats + ); + + this.collections = this.collections.concat(docCollections); }); api.document.awards() diff --git a/src/templates/components/page-documents.html b/src/templates/components/page-documents.html index be9a4a59..55dd77ba 100644 --- a/src/templates/components/page-documents.html +++ b/src/templates/components/page-documents.html @@ -1,7 +1,10 @@
-

Устав, Лицензия, пр.

-
- +
+

{{c.name}}

+ +
+ +

Награды