|
|
@@ -1157,54 +1157,6 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.duplicate = function (path, originPageData, user, options) {
|
|
|
- var Page = this
|
|
|
- , Revision = crowi.model('Revision')
|
|
|
- , format = options.format || 'markdown'
|
|
|
- , grant = options.grant || GRANT_PUBLIC
|
|
|
- , originRevision = originPageData.revision
|
|
|
-
|
|
|
- // force 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'));
|
|
|
- }
|
|
|
-
|
|
|
- var newPage = new Page();
|
|
|
- newPage.path = path;
|
|
|
- newPage.creator = user;
|
|
|
- newPage.lastUpdateUser = user;
|
|
|
- newPage.createdAt = Date.now();
|
|
|
- newPage.updatedAt = Date.now();
|
|
|
- newPage.redirectTo = null;
|
|
|
- newPage.grant = grant;
|
|
|
- newPage.status = STATUS_PUBLISHED;
|
|
|
- newPage.grantedUsers = [];
|
|
|
- newPage.grantedUsers.push(user);
|
|
|
-
|
|
|
- newPage.save(function (err, newPage) {
|
|
|
- if (err) {
|
|
|
- return reject(err);
|
|
|
- }
|
|
|
-
|
|
|
- var newRevision = Revision.prepareRevision(newPage, originRevision.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 duplicate page', err);
|
|
|
- return reject(err);
|
|
|
- });
|
|
|
- });
|
|
|
- });
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
pageSchema.statics.getHistories = function() {
|
|
|
// TODO
|
|
|
return;
|