|
@@ -1059,8 +1059,14 @@ module.exports = function(crowi) {
|
|
|
pageSchema.statics.deletePage = function(pageData, user, options) {
|
|
pageSchema.statics.deletePage = function(pageData, user, options) {
|
|
|
var Page = this
|
|
var Page = this
|
|
|
, newPath = Page.getDeletedPageName(pageData.path)
|
|
, newPath = Page.getDeletedPageName(pageData.path)
|
|
|
|
|
+ , isTrashed = checkIfTrashed(pageData.path)
|
|
|
;
|
|
;
|
|
|
|
|
+
|
|
|
if (Page.isDeletableName(pageData.path)) {
|
|
if (Page.isDeletableName(pageData.path)) {
|
|
|
|
|
+ if (isTrashed) {
|
|
|
|
|
+ return Page.completelyDeletePage(pageData, user, options);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return Page.rename(pageData, newPath, user, {createRedirectPage: true})
|
|
return Page.rename(pageData, newPath, user, {createRedirectPage: true})
|
|
|
.then((updatedPageData) => {
|
|
.then((updatedPageData) => {
|
|
|
return Page.updatePageProperty(updatedPageData, {status: STATUS_DELETED, lastUpdateUser: user});
|
|
return Page.updatePageProperty(updatedPageData, {status: STATUS_DELETED, lastUpdateUser: user});
|
|
@@ -1074,12 +1080,21 @@ module.exports = function(crowi) {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ const checkIfTrashed = (path) => {
|
|
|
|
|
+ return (path.search(/^\/trash/) !== -1);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
pageSchema.statics.deletePageRecursively = function(pageData, user, options) {
|
|
pageSchema.statics.deletePageRecursively = function(pageData, user, options) {
|
|
|
var Page = this
|
|
var Page = this
|
|
|
, path = pageData.path
|
|
, path = pageData.path
|
|
|
, options = options || {}
|
|
, options = options || {}
|
|
|
|
|
+ , isTrashed = checkIfTrashed(pageData.path);
|
|
|
;
|
|
;
|
|
|
|
|
|
|
|
|
|
+ if (isTrashed) {
|
|
|
|
|
+ return Page.completelyDeletePageRecursively(pageData, user, options);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return Page.generateQueryToListWithDescendants(path, user, options)
|
|
return Page.generateQueryToListWithDescendants(path, user, options)
|
|
|
.then(function(pages) {
|
|
.then(function(pages) {
|
|
|
return Promise.all(pages.map(function(page) {
|
|
return Promise.all(pages.map(function(page) {
|