summaryrefslogtreecommitdiffstats
path: root/lib/models/summaryPart.js
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-04-23 11:22:20 +0200
committerSamy Pesse <samypesse@gmail.com>2016-04-23 11:22:20 +0200
commitce95f316b9ce1eac1e615db3540c4d0f30408d63 (patch)
tree2cb773317a937887c216d93afd6d92fcdca64475 /lib/models/summaryPart.js
parenta162af5a75453a6ecb818447540cbffdc774715f (diff)
downloadgitbook-ce95f316b9ce1eac1e615db3540c4d0f30408d63.zip
gitbook-ce95f316b9ce1eac1e615db3540c4d0f30408d63.tar.gz
gitbook-ce95f316b9ce1eac1e615db3540c4d0f30408d63.tar.bz2
Add method to be article by level
Diffstat (limited to 'lib/models/summaryPart.js')
-rw-r--r--lib/models/summaryPart.js22
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)
});