summaryrefslogtreecommitdiffstats
path: root/lib/modifiers/summary/insertArticle.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/modifiers/summary/insertArticle.js')
-rw-r--r--lib/modifiers/summary/insertArticle.js33
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;