|
|
@@ -48,7 +48,8 @@ module.exports = function(crowi) {
|
|
|
get: function(data) {
|
|
|
try {
|
|
|
return JSON.parse(data);
|
|
|
- } catch(e) {
|
|
|
+ }
|
|
|
+ catch (e) {
|
|
|
return data;
|
|
|
}
|
|
|
},
|
|
|
@@ -103,8 +104,9 @@ module.exports = function(crowi) {
|
|
|
|
|
|
if (this.populated('creator') && this.creator._id.toString() === userData._id.toString()) {
|
|
|
return true;
|
|
|
- } else if (this.creator.toString() === userData._id.toString()) {
|
|
|
- return true
|
|
|
+ }
|
|
|
+ else if (this.creator.toString() === userData._id.toString()) {
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
@@ -149,21 +151,22 @@ module.exports = function(crowi) {
|
|
|
var self = this,
|
|
|
Page = self;
|
|
|
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
- var added = self.liker.addToSet(userData._id);
|
|
|
- if (added.length > 0) {
|
|
|
- self.save(function(err, data) {
|
|
|
- if (err) {
|
|
|
- return reject(err);
|
|
|
- }
|
|
|
- debug('liker updated!', added);
|
|
|
- return resolve(data);
|
|
|
- });
|
|
|
- } else {
|
|
|
- debug('liker not updated');
|
|
|
- return reject(self);
|
|
|
- }
|
|
|
- });
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
+ var added = self.liker.addToSet(userData._id);
|
|
|
+ if (added.length > 0) {
|
|
|
+ self.save(function(err, data) {
|
|
|
+ if (err) {
|
|
|
+ return reject(err);
|
|
|
+ }
|
|
|
+ debug('liker updated!', added);
|
|
|
+ return resolve(data);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ debug('liker not updated');
|
|
|
+ return reject(self);
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
};
|
|
|
|
|
|
@@ -171,21 +174,22 @@ module.exports = function(crowi) {
|
|
|
var self = this,
|
|
|
Page = self;
|
|
|
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
- var beforeCount = self.liker.length;
|
|
|
- self.liker.pull(userData._id);
|
|
|
- if (self.liker.length != beforeCount) {
|
|
|
- self.save(function(err, data) {
|
|
|
- if (err) {
|
|
|
- return reject(err);
|
|
|
- }
|
|
|
- return resolve(data);
|
|
|
- });
|
|
|
- } else {
|
|
|
- debug('liker not updated');
|
|
|
- return reject(self);
|
|
|
- }
|
|
|
- });
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
+ var beforeCount = self.liker.length;
|
|
|
+ self.liker.pull(userData._id);
|
|
|
+ if (self.liker.length != beforeCount) {
|
|
|
+ self.save(function(err, data) {
|
|
|
+ if (err) {
|
|
|
+ return reject(err);
|
|
|
+ }
|
|
|
+ return resolve(data);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ debug('liker not updated');
|
|
|
+ return reject(self);
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
};
|
|
|
|
|
|
@@ -193,35 +197,35 @@ module.exports = function(crowi) {
|
|
|
var self = this,
|
|
|
Page = self;
|
|
|
|
|
|
- return this.seenUsers.some(function(seenUser) {
|
|
|
- return seenUser.equals(userData._id);
|
|
|
- });
|
|
|
+ return this.seenUsers.some(function(seenUser) {
|
|
|
+ return seenUser.equals(userData._id);
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
pageSchema.methods.seen = function(userData) {
|
|
|
var self = this,
|
|
|
Page = self;
|
|
|
|
|
|
- if (this.isSeenUser(userData)) {
|
|
|
- debug('seenUsers not updated');
|
|
|
- return Promise.resolve(this);
|
|
|
+ if (this.isSeenUser(userData)) {
|
|
|
+ debug('seenUsers not updated');
|
|
|
+ return Promise.resolve(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
+ if (!userData || !userData._id) {
|
|
|
+ reject(new Error('User data is not valid'));
|
|
|
}
|
|
|
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
- if (!userData || !userData._id) {
|
|
|
- reject(new Error('User data is not valid'));
|
|
|
+ var added = self.seenUsers.addToSet(userData);
|
|
|
+ self.save(function(err, data) {
|
|
|
+ if (err) {
|
|
|
+ return reject(err);
|
|
|
}
|
|
|
|
|
|
- var added = self.seenUsers.addToSet(userData);
|
|
|
- self.save(function(err, data) {
|
|
|
- if (err) {
|
|
|
- return reject(err);
|
|
|
- }
|
|
|
-
|
|
|
- debug('seenUsers updated!', added);
|
|
|
- return resolve(self);
|
|
|
- });
|
|
|
+ debug('seenUsers updated!', added);
|
|
|
+ return resolve(self);
|
|
|
});
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
pageSchema.methods.getSlackChannel = function() {
|
|
|
@@ -271,7 +275,7 @@ module.exports = function(crowi) {
|
|
|
{path: 'revision', model: 'Revision'},
|
|
|
//{path: 'liker', options: { limit: 11 }},
|
|
|
//{path: 'seenUsers', options: { limit: 11 }},
|
|
|
- ], function (err, pageData) {
|
|
|
+ ], function(err, pageData) {
|
|
|
Page.populate(pageData, {path: 'revision.author', model: 'User', select: User.USER_PUBLIC_FIELDS}, function(err, data) {
|
|
|
if (err) {
|
|
|
return reject(err);
|
|
|
@@ -307,10 +311,9 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.updateCommentCount = function (pageId)
|
|
|
- {
|
|
|
+ pageSchema.statics.updateCommentCount = function(pageId) {
|
|
|
var self = this;
|
|
|
- var Comment = crowi.model("Comment");
|
|
|
+ var Comment = crowi.model('Comment');
|
|
|
return Comment.countCommentByPageId(pageId)
|
|
|
.then(function(count) {
|
|
|
self.update({_id: pageId}, {commentCount: count}, {}, function(err, data) {
|
|
|
@@ -324,7 +327,7 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.hasPortalPage = function (path, user, revisionId) {
|
|
|
+ pageSchema.statics.hasPortalPage = function(path, user, revisionId) {
|
|
|
var self = this;
|
|
|
return new Promise(function(resolve, reject) {
|
|
|
self.findPage(path, user, revisionId)
|
|
|
@@ -341,7 +344,7 @@ module.exports = function(crowi) {
|
|
|
grantLabels[GRANT_PUBLIC] = 'Public'; // 公開
|
|
|
grantLabels[GRANT_RESTRICTED] = 'Anyone with the link'; // リンクを知っている人のみ
|
|
|
//grantLabels[GRANT_SPECIFIED] = 'Specified users only'; // 特定ユーザーのみ
|
|
|
- grantLabels[GRANT_USER_GROUP] = 'Only inside the group'; // 特定グループのみ
|
|
|
+ // grantLabels[GRANT_USER_GROUP] = 'Only inside the group'; // 特定グループのみ
|
|
|
grantLabels[GRANT_OWNER] = 'Just me'; // 自分のみ
|
|
|
|
|
|
return grantLabels;
|
|
|
@@ -416,7 +419,7 @@ module.exports = function(crowi) {
|
|
|
pageSchema.statics.fixToCreatableName = function(path) {
|
|
|
return path
|
|
|
.replace(/\/\//g, '/')
|
|
|
- ;
|
|
|
+ ;
|
|
|
};
|
|
|
|
|
|
pageSchema.statics.updateRevision = function(pageId, revisionId, cb) {
|
|
|
@@ -497,22 +500,23 @@ module.exports = function(crowi) {
|
|
|
return resolve(null);
|
|
|
}
|
|
|
|
|
|
- var pageNotFoundError = new Error('Page Not Found')
|
|
|
+ var pageNotFoundError = new Error('Page Not Found');
|
|
|
pageNotFoundError.name = 'Crowi:Page:NotFound';
|
|
|
return reject(pageNotFoundError);
|
|
|
}
|
|
|
|
|
|
if (!pageData.isGrantedFor(userData)) {
|
|
|
PageGroupRelation.isExistsGrantedGroupForPageAndUser(pageData, userData)
|
|
|
- .then(function (checkResult) {
|
|
|
+ .then(function(checkResult) {
|
|
|
if (!checkResult) {
|
|
|
return reject(new Error('Page is not granted for the user')); //PAGE_GRANT_ERROR, null);
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
// return resolve(pageData);
|
|
|
self.populatePageData(pageData, revisionId || null).then(resolve).catch(reject);
|
|
|
}
|
|
|
})
|
|
|
- .catch(function (err) {
|
|
|
+ .catch(function(err) {
|
|
|
return reject(err);
|
|
|
});
|
|
|
}
|
|
|
@@ -625,7 +629,7 @@ module.exports = function(crowi) {
|
|
|
var Page = this
|
|
|
, options = options || {}
|
|
|
, publicOnly = options.publicOnly || true
|
|
|
- , criteria = {redirectTo: null,}
|
|
|
+ , criteria = {redirectTo: null, }
|
|
|
;
|
|
|
|
|
|
if (publicOnly) {
|
|
|
@@ -697,7 +701,7 @@ module.exports = function(crowi) {
|
|
|
Page.populate(pages, {path: 'revision.author', model: 'User', select: User.USER_PUBLIC_FIELDS})
|
|
|
.then(resolve)
|
|
|
.catch(reject);
|
|
|
- })
|
|
|
+ });
|
|
|
});
|
|
|
};
|
|
|
|
|
|
@@ -709,6 +713,7 @@ module.exports = function(crowi) {
|
|
|
|
|
|
// ignore other pages than descendants
|
|
|
path = Page.addSlashOfEnd(path);
|
|
|
+
|
|
|
// add option to escape the regex strings
|
|
|
const combinedOption = Object.assign({isRegExpEscapedFromPath: true}, option);
|
|
|
|
|
|
@@ -718,8 +723,12 @@ module.exports = function(crowi) {
|
|
|
/**
|
|
|
* generate the query to find pages that start with `path`
|
|
|
*
|
|
|
- * If `path` has `/` at the end, returns '{path}/*' and '{path}' self.
|
|
|
- * If `path` doesn't have `/` at the end, returns '{path}*'
|
|
|
+ * (GROWI) If 'isRegExpEscapedFromPath' is true, `path` should have `/` at the end
|
|
|
+ * -> returns '{path}/*' and '{path}' self.
|
|
|
+ * (Crowi) If 'isRegExpEscapedFromPath' is false and `path` has `/` at the end
|
|
|
+ * -> returns '{path}*'
|
|
|
+ * (Crowi) If 'isRegExpEscapedFromPath' is false and `path` doesn't have `/` at the end
|
|
|
+ * -> returns '{path}*'
|
|
|
*
|
|
|
* *option*
|
|
|
* - includeDeletedPage -- if true, search deleted pages (default: false)
|
|
|
@@ -731,17 +740,22 @@ module.exports = function(crowi) {
|
|
|
var includeDeletedPage = option.includeDeletedPage || false;
|
|
|
var isRegExpEscapedFromPath = option.isRegExpEscapedFromPath || false;
|
|
|
|
|
|
+ /*
|
|
|
+ * 1. add condition for finding the page completely match with `path` w/o last slash
|
|
|
+ */
|
|
|
let pathSlashOmitted = path;
|
|
|
if (path.match(/\/$/)) {
|
|
|
- // add condition for finding the page completely match with `path`
|
|
|
pathSlashOmitted = path.substr(0, path.length -1);
|
|
|
pathCondition.push({path: pathSlashOmitted});
|
|
|
}
|
|
|
|
|
|
- // create forward match pattern
|
|
|
+ /*
|
|
|
+ * 2. add decendants
|
|
|
+ */
|
|
|
var pattern = (isRegExpEscapedFromPath)
|
|
|
- ? escapeStringRegexp(pathSlashOmitted) // escape
|
|
|
+ ? escapeStringRegexp(path) // escape
|
|
|
: pathSlashOmitted;
|
|
|
+
|
|
|
var queryReg = new RegExp('^' + pattern);
|
|
|
pathCondition.push({path: queryReg});
|
|
|
|
|
|
@@ -753,7 +767,7 @@ module.exports = function(crowi) {
|
|
|
{grant: GRANT_RESTRICTED, grantedUsers: userData._id},
|
|
|
{grant: GRANT_SPECIFIED, grantedUsers: userData._id},
|
|
|
{grant: GRANT_OWNER, grantedUsers: userData._id},
|
|
|
- ],})
|
|
|
+ ], })
|
|
|
.and({
|
|
|
$or: pathCondition
|
|
|
});
|
|
|
@@ -768,7 +782,7 @@ module.exports = function(crowi) {
|
|
|
}
|
|
|
|
|
|
return q;
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
pageSchema.statics.updatePageProperty = function(page, updateData) {
|
|
|
var Page = this;
|
|
|
@@ -784,7 +798,7 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.updateGrant = function (page, grant, userData, grantUserGroupId) {
|
|
|
+ pageSchema.statics.updateGrant = function(page, grant, userData, grantUserGroupId) {
|
|
|
var Page = this;
|
|
|
|
|
|
if (grant == GRANT_USER_GROUP && grantUserGroupId == null) {
|
|
|
@@ -794,7 +808,8 @@ module.exports = function(crowi) {
|
|
|
page.grant = grant;
|
|
|
if (grant == GRANT_PUBLIC || grant == GRANT_USER_GROUP) {
|
|
|
page.grantedUsers = [];
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
page.grantedUsers = [];
|
|
|
page.grantedUsers.push(userData._id);
|
|
|
}
|
|
|
@@ -813,7 +828,7 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.updateGrantUserGroup = function (page, grant, grantUserGroupId, userData) {
|
|
|
+ pageSchema.statics.updateGrantUserGroup = function(page, grant, grantUserGroupId, userData) {
|
|
|
var UserGroupRelation = crowi.model('UserGroupRelation');
|
|
|
var PageGroupRelation = crowi.model('PageGroupRelation');
|
|
|
|
|
|
@@ -897,50 +912,50 @@ module.exports = function(crowi) {
|
|
|
, grantUserGroupId = options.grantUserGroupId || null;
|
|
|
|
|
|
// force public
|
|
|
- if (isPortalPath(path)) {
|
|
|
- grant = GRANT_PUBLIC;
|
|
|
- }
|
|
|
+ if (isPortalPath(path)) {
|
|
|
+ grant = GRANT_PUBLIC;
|
|
|
+ }
|
|
|
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
- Page.findOne({path: path}, function(err, pageData) {
|
|
|
- if (pageData) {
|
|
|
- return reject(new Error('Cannot create new page to existed path'));
|
|
|
- }
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
+ Page.findOne({path: path}, function(err, pageData) {
|
|
|
+ if (pageData) {
|
|
|
+ return reject(new Error('Cannot create new page to existed path'));
|
|
|
+ }
|
|
|
|
|
|
- var newPage = new Page();
|
|
|
- newPage.path = path;
|
|
|
- newPage.creator = user;
|
|
|
- newPage.lastUpdateUser = user;
|
|
|
- newPage.createdAt = Date.now();
|
|
|
- newPage.updatedAt = Date.now();
|
|
|
- newPage.redirectTo = redirectTo;
|
|
|
- newPage.grant = grant;
|
|
|
- newPage.status = STATUS_PUBLISHED;
|
|
|
- newPage.grantedUsers = [];
|
|
|
- newPage.grantedUsers.push(user);
|
|
|
-
|
|
|
- newPage.save(function (err, newPage) {
|
|
|
- if (err) {
|
|
|
- return reject(err);
|
|
|
- }
|
|
|
+ var newPage = new Page();
|
|
|
+ newPage.path = path;
|
|
|
+ newPage.creator = user;
|
|
|
+ newPage.lastUpdateUser = user;
|
|
|
+ newPage.createdAt = Date.now();
|
|
|
+ newPage.updatedAt = Date.now();
|
|
|
+ newPage.redirectTo = redirectTo;
|
|
|
+ newPage.grant = grant;
|
|
|
+ newPage.status = STATUS_PUBLISHED;
|
|
|
+ newPage.grantedUsers = [];
|
|
|
+ newPage.grantedUsers.push(user);
|
|
|
+
|
|
|
+ newPage.save(function(err, newPage) {
|
|
|
+ if (err) {
|
|
|
+ return reject(err);
|
|
|
+ }
|
|
|
|
|
|
- if (newPage.grant == Page.GRANT_USER_GROUP && grantUserGroupId != null) {
|
|
|
- Page.updateGrantUserGroup(newPage, grant, grantUserGroupId, user)
|
|
|
+ if (newPage.grant == Page.GRANT_USER_GROUP && grantUserGroupId != null) {
|
|
|
+ Page.updateGrantUserGroup(newPage, grant, grantUserGroupId, user)
|
|
|
.catch((err) => {
|
|
|
return reject(err);
|
|
|
});
|
|
|
- }
|
|
|
- var newRevision = Revision.prepareRevision(newPage, body, user, {format: format});
|
|
|
- Page.pushRevision(newPage, newRevision, user).then(function(data) {
|
|
|
- resolve(data);
|
|
|
- pageEvent.emit('create', data, user);
|
|
|
- }).catch(function(err) {
|
|
|
- debug('Push Revision Error on create page', err);
|
|
|
- return reject(err);
|
|
|
- });
|
|
|
+ }
|
|
|
+ var newRevision = Revision.prepareRevision(newPage, body, user, {format: format});
|
|
|
+ Page.pushRevision(newPage, newRevision, user).then(function(data) {
|
|
|
+ resolve(data);
|
|
|
+ pageEvent.emit('create', data, user);
|
|
|
+ }).catch(function(err) {
|
|
|
+ debug('Push Revision Error on create page', err);
|
|
|
+ return reject(err);
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
pageSchema.statics.updatePage = function(pageData, body, user, options) {
|
|
|
@@ -961,7 +976,8 @@ module.exports = function(crowi) {
|
|
|
resolve(data);
|
|
|
pageEvent.emit('update', data, user);
|
|
|
});
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
resolve(pageData);
|
|
|
pageEvent.emit('update', pageData, user);
|
|
|
}
|
|
|
@@ -986,30 +1002,31 @@ module.exports = function(crowi) {
|
|
|
// が、 /trash 以下にページが有るのは、個別に作っていたケースのみ。
|
|
|
// 一応しばらく前から uncreatable pages になっているのでこれでいいことにする
|
|
|
debug('Deleted the page, and rename it', pageData.path, newPath);
|
|
|
- return Page.rename(pageData, newPath, user, {createRedirectPage: true})
|
|
|
+ return Page.rename(pageData, newPath, user, {createRedirectPage: true});
|
|
|
}).then(function(pageData) {
|
|
|
resolve(pageData);
|
|
|
}).catch(reject);
|
|
|
});
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
return Promise.reject('Page is not deletable.');
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.deletePageRecursively = function (pageData, user, options) {
|
|
|
+ pageSchema.statics.deletePageRecursively = function(pageData, user, options) {
|
|
|
var Page = this
|
|
|
, path = pageData.path
|
|
|
, options = options || {}
|
|
|
;
|
|
|
|
|
|
- return new Promise(function (resolve, reject) {
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
Page
|
|
|
.generateQueryToListWithDescendants(path, user, options)
|
|
|
- .then(function (pages) {
|
|
|
- Promise.all(pages.map(function (page) {
|
|
|
+ .then(function(pages) {
|
|
|
+ Promise.all(pages.map(function(page) {
|
|
|
return Page.deletePage(page, user, options);
|
|
|
}))
|
|
|
- .then(function (data) {
|
|
|
+ .then(function(data) {
|
|
|
return resolve(pageData);
|
|
|
});
|
|
|
});
|
|
|
@@ -1034,12 +1051,12 @@ module.exports = function(crowi) {
|
|
|
|
|
|
return Page.completelyDeletePage(originPageData);
|
|
|
}).then(function(done) {
|
|
|
- return Page.updatePageProperty(pageData, {status: STATUS_PUBLISHED, lastUpdateUser: user})
|
|
|
+ return Page.updatePageProperty(pageData, {status: STATUS_PUBLISHED, lastUpdateUser: user});
|
|
|
}).then(function(done) {
|
|
|
pageData.status = STATUS_PUBLISHED;
|
|
|
|
|
|
debug('Revert deleted the page, and rename again it', pageData, newPath);
|
|
|
- return Page.rename(pageData, newPath, user, {})
|
|
|
+ return Page.rename(pageData, newPath, user, {});
|
|
|
}).then(function(done) {
|
|
|
pageData.path = newPath;
|
|
|
resolve(pageData);
|
|
|
@@ -1047,25 +1064,25 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.revertDeletedPageRecursively = function (pageData, user, options) {
|
|
|
+ pageSchema.statics.revertDeletedPageRecursively = function(pageData, user, options) {
|
|
|
var Page = this
|
|
|
, path = pageData.path
|
|
|
, options = options || { includeDeletedPage: true}
|
|
|
;
|
|
|
|
|
|
- return new Promise(function (resolve, reject) {
|
|
|
- Page
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
+ Page
|
|
|
.generateQueryToListWithDescendants(path, user, options)
|
|
|
- .then(function (pages) {
|
|
|
- Promise.all(pages.map(function (page) {
|
|
|
+ .then(function(pages) {
|
|
|
+ Promise.all(pages.map(function(page) {
|
|
|
return Page.revertDeletedPage(page, user, options);
|
|
|
}))
|
|
|
- .then(function (data) {
|
|
|
+ .then(function(data) {
|
|
|
return resolve(data[0]);
|
|
|
});
|
|
|
});
|
|
|
- });
|
|
|
- };
|
|
|
+ });
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
* This is danger.
|
|
|
@@ -1102,21 +1119,21 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.completelyDeletePageRecursively = function (pageData, user, options) {
|
|
|
+ pageSchema.statics.completelyDeletePageRecursively = function(pageData, user, options) {
|
|
|
// Delete Bookmarks, Attachments, Revisions, Pages and emit delete
|
|
|
var Page = this
|
|
|
, path = pageData.path
|
|
|
, options = options || { includeDeletedPage: true }
|
|
|
;
|
|
|
|
|
|
- return new Promise(function (resolve, reject) {
|
|
|
+ return new Promise(function(resolve, reject) {
|
|
|
Page
|
|
|
.generateQueryToListWithDescendants(path, user, options)
|
|
|
- .then(function (pages) {
|
|
|
- Promise.all(pages.map(function (page) {
|
|
|
+ .then(function(pages) {
|
|
|
+ Promise.all(pages.map(function(page) {
|
|
|
return Page.completelyDeletePage(page, user, options);
|
|
|
}))
|
|
|
- .then(function (data) {
|
|
|
+ .then(function(data) {
|
|
|
return resolve(data[0]);
|
|
|
});
|
|
|
});
|
|
|
@@ -1166,13 +1183,13 @@ module.exports = function(crowi) {
|
|
|
return Page.removePageById(redirectOriginPageData.id)
|
|
|
// remove recursive
|
|
|
.then(() => {
|
|
|
- return Page.removeRedirectOriginPageByPath(redirectOriginPageData.path)
|
|
|
+ return Page.removeRedirectOriginPageByPath(redirectOriginPageData.path);
|
|
|
});
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
// do nothing if origin page doesn't exist
|
|
|
return Promise.resolve();
|
|
|
- })
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
pageSchema.statics.rename = function(pageData, newPagePath, user, options) {
|
|
|
@@ -1187,14 +1204,15 @@ module.exports = function(crowi) {
|
|
|
Page.updatePageProperty(pageData, {updatedAt: Date.now(), path: newPagePath, lastUpdateUser: user})
|
|
|
.then(function(data) {
|
|
|
// reivisions の path を変更
|
|
|
- return Revision.updateRevisionListByPath(path, {path: newPagePath}, {})
|
|
|
+ return Revision.updateRevisionListByPath(path, {path: newPagePath}, {});
|
|
|
}).then(function(data) {
|
|
|
pageData.path = newPagePath;
|
|
|
|
|
|
if (createRedirectPage) {
|
|
|
var body = 'redirect ' + newPagePath;
|
|
|
Page.create(path, body, user, {redirectTo: newPagePath}).then(resolve).catch(reject);
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
resolve(data);
|
|
|
}
|
|
|
pageEvent.emit('update', pageData, user); // update as renamed page
|
|
|
@@ -1237,7 +1255,7 @@ module.exports = function(crowi) {
|
|
|
returnPath += '/';
|
|
|
}
|
|
|
return returnPath;
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
pageSchema.statics.GRANT_PUBLIC = GRANT_PUBLIC;
|
|
|
pageSchema.statics.GRANT_RESTRICTED = GRANT_RESTRICTED;
|