diff options
Diffstat (limited to 'lib/modifiers/summary/insertArticle.js')
-rw-r--r-- | lib/modifiers/summary/insertArticle.js | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/lib/modifiers/summary/insertArticle.js b/lib/modifiers/summary/insertArticle.js index ae920c2..d97943e 100644 --- a/lib/modifiers/summary/insertArticle.js +++ b/lib/modifiers/summary/insertArticle.js @@ -3,18 +3,6 @@ var SummaryArticle = require('../../models/summaryArticle'); var editArticle = require('./editArticle'); var indexArticleLevels = require('./indexArticleLevels'); - -/** - Get level of parent of an article - - @param {String} level - @return {String} -*/ -function getParentLevel(level) { - var parts = level.split('.'); - return parts.slice(0, -1).join('.'); -} - /** Insert an article in a summary at a specific position @@ -27,21 +15,13 @@ function insertArticle(summary, level, article) { article = SummaryArticle(article); level = is.string(level)? level : level.getLevel(); - var parentLevel = getParentLevel(level); - - if (!parentLevel) { - // todo: insert new part - return summary; - } - - // Get parent of the position - var parentArticle = summary.getByLevel(parentLevel); - if (!parentLevel) { + var parent = summary.getParent(level); + if (!parent) { return summary; } // Find the index to insert at - var articles = parentArticle.getArticles(); + var articles = parent.getArticles(); var index = articles.findIndex(function(art) { return art.getLevel() === level; }); @@ -53,11 +33,10 @@ function insertArticle(summary, level, article) { articles = articles.insert(index, article); // Reindex the level from here - parentArticle = parentArticle.set('articles', articles); - parentArticle = indexArticleLevels(parentArticle); - - return editArticle(summary, parentLevel, parentArticle); + parent = parent.set('articles', articles); + parent = indexArticleLevels(parent); + return editArticle(summary, parent.getLevel(), parent); } module.exports = insertArticle; |