|
@@ -1001,13 +1001,20 @@ module.exports = function(crowi, app) {
|
|
|
|
|
|
|
|
// get completely flag
|
|
// get completely flag
|
|
|
const isCompletely = (req.body.completely !== undefined);
|
|
const isCompletely = (req.body.completely !== undefined);
|
|
|
|
|
+ // get recursively flag
|
|
|
|
|
+ const isRecursively = (req.body.recursively !== undefined);
|
|
|
|
|
|
|
|
Page.findPageByIdAndGrantedUser(pageId, req.user)
|
|
Page.findPageByIdAndGrantedUser(pageId, req.user)
|
|
|
.then(function(pageData) {
|
|
.then(function(pageData) {
|
|
|
debug('Delete page', pageData._id, pageData.path);
|
|
debug('Delete page', pageData._id, pageData.path);
|
|
|
|
|
|
|
|
if (isCompletely) {
|
|
if (isCompletely) {
|
|
|
- return Page.completelyDeletePage(pageData, req.user);
|
|
|
|
|
|
|
+ if (isRecursively) {
|
|
|
|
|
+ return Page.completelyDeletePageRecursively(pageData, req.user);
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ return Page.completelyDeletePage(pageData, req.user);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// else
|
|
// else
|
|
@@ -1015,7 +1022,13 @@ module.exports = function(crowi, app) {
|
|
|
if (!pageData.isUpdatable(previousRevision)) {
|
|
if (!pageData.isUpdatable(previousRevision)) {
|
|
|
throw new Error('Someone could update this page, so couldn\'t delete.');
|
|
throw new Error('Someone could update this page, so couldn\'t delete.');
|
|
|
}
|
|
}
|
|
|
- return Page.deletePage(pageData, req.user);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (isRecursively) {
|
|
|
|
|
+ return Page.deletePageRecursively(pageData, req.user);
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ return Page.deletePage(pageData, req.user);
|
|
|
|
|
+ }
|
|
|
}).then(function(data) {
|
|
}).then(function(data) {
|
|
|
debug('Page deleted', data.path);
|
|
debug('Page deleted', data.path);
|
|
|
var result = {};
|
|
var result = {};
|
|
@@ -1038,11 +1051,18 @@ module.exports = function(crowi, app) {
|
|
|
api.revertRemove = function(req, res){
|
|
api.revertRemove = function(req, res){
|
|
|
var pageId = req.body.page_id;
|
|
var pageId = req.body.page_id;
|
|
|
|
|
|
|
|
|
|
+ // get recursively flag
|
|
|
|
|
+ const isRecursively = (req.body.recursively !== undefined);
|
|
|
|
|
+
|
|
|
Page.findPageByIdAndGrantedUser(pageId, req.user)
|
|
Page.findPageByIdAndGrantedUser(pageId, req.user)
|
|
|
.then(function(pageData) {
|
|
.then(function(pageData) {
|
|
|
|
|
|
|
|
- // TODO: これでいいんだっけ
|
|
|
|
|
- return Page.revertDeletedPage(pageData, req.user);
|
|
|
|
|
|
|
+ if (isRecursively) {
|
|
|
|
|
+ return Page.revertDeletedPageRecursively(pageData, req.user);
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ return Page.revertDeletedPage(pageData, req.user);
|
|
|
|
|
+ }
|
|
|
}).then(function(data) {
|
|
}).then(function(data) {
|
|
|
debug('Complete to revert deleted page', data.path);
|
|
debug('Complete to revert deleted page', data.path);
|
|
|
var result = {};
|
|
var result = {};
|
|
@@ -1074,6 +1094,7 @@ module.exports = function(crowi, app) {
|
|
|
createRedirectPage: req.body.create_redirect || 0,
|
|
createRedirectPage: req.body.create_redirect || 0,
|
|
|
moveUnderTrees: req.body.move_trees || 0,
|
|
moveUnderTrees: req.body.move_trees || 0,
|
|
|
};
|
|
};
|
|
|
|
|
+ var isRecursiveMove = req.body.move_recursively || 0;
|
|
|
var page = {};
|
|
var page = {};
|
|
|
|
|
|
|
|
if (!Page.isCreatableName(newPagePath)) {
|
|
if (!Page.isCreatableName(newPagePath)) {
|
|
@@ -1093,7 +1114,13 @@ module.exports = function(crowi, app) {
|
|
|
throw new Error('Someone could update this page, so couldn\'t delete.');
|
|
throw new Error('Someone could update this page, so couldn\'t delete.');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return Page.rename(pageData, newPagePath, req.user, options);
|
|
|
|
|
|
|
+ if (isRecursiveMove) {
|
|
|
|
|
+ return Page.renameRecursively(pageData, newPagePath, req.user, options);
|
|
|
|
|
+ }
|
|
|
|
|
+ else {
|
|
|
|
|
+ return Page.rename(pageData, newPagePath, req.user, options);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}).then(function() {
|
|
}).then(function() {
|
|
|
var result = {};
|
|
var result = {};
|
|
|
result.page = page;
|
|
result.page = page;
|