diff options
Diffstat (limited to 'lib/models/summaryPart.js')
-rw-r--r-- | lib/models/summaryPart.js | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/models/summaryPart.js b/lib/models/summaryPart.js index 4b41621..345cf83 100644 --- a/lib/models/summaryPart.js +++ b/lib/models/summaryPart.js @@ -7,10 +7,15 @@ var SummaryArticle = require('./summaryArticle'); */ var SummaryPart = Immutable.Record({ + level: String(), title: String(), articles: Immutable.List() }); +SummaryPart.prototype.getLevel = function() { + return this.get('level'); +}; + SummaryPart.prototype.getTitle = function() { return this.get('title'); }; @@ -20,20 +25,31 @@ SummaryPart.prototype.getArticles = function() { }; /** + Return an article by its level + + @param {String} level + @return {Article} +*/ +SummaryPart.prototype.getByLevel = function(level) { + return SummaryArticle.getByLevel(this, level); +}; + +/** Create a SummaryPart @param {Object} def @return {SummaryPart} */ -SummaryPart.create = function(def) { - var articles = (def.articles || []).map(function(article) { +SummaryPart.create = function(def, level) { + var articles = (def.articles || []).map(function(article, i) { if (article instanceof SummaryArticle) { return article; } - return SummaryArticle.create(article); + return SummaryArticle.create(article, [level, i].join('.')); }); return new SummaryPart({ + level: String(level), title: def.title, articles: Immutable.List(articles) }); |