This reverts commit f8e600844e6298eb8fbae9b00a0d3330846f1482.
@@ -1202,6 +1202,20 @@ module.exports = function(crowi) {
return pageData;
};
+ /**
+ * Delete Bookmarks, Attachments, Revisions, Pages and emit delete
+ */
+ // TODO: transplant to service/page.js because page deletion affects various models data
+ pageSchema.statics.completelyDeletePageRecursively = async function(targetPage, user, options = {}) {
+ const findOpts = { includeTrashed: true };
+
+ // find manageable descendants (this array does not include GRANT_RESTRICTED)
+ const pages = await this.findManageableListWithDescendants(targetPage, user, findOpts);
+ await Promise.all(pages.map((page) => {
+ return this.completelyDeletePage(page, user, options);
+ }));
+ };
pageSchema.statics.removeByPath = function(path) {
if (path == null) {
@@ -432,7 +432,7 @@ module.exports = (crowi) => {
*/
router.delete('/empty-trash', loginRequired, adminRequired, csrf, async(req, res) => {
try {
- const pages = await crowi.pageService.completelyDeletePageRecursively({ path: '/trash' }, req.user);
+ const pages = await Page.completelyDeletePageRecursively({ path: '/trash' }, req.user);
return res.apiv3({ pages });
}
catch (err) {
@@ -1194,7 +1194,7 @@ module.exports = function(crowi, app) {
return res.json(ApiResponse.error('You can not delete completely', 'user_not_admin'));
if (isRecursively) {
- await crowi.pageService.completelyDeletePageRecursively(page, req.user, options);
+ await Page.completelyDeletePageRecursively(page, req.user, options);
else {
await Page.completelyDeletePage(page, req.user, options);
@@ -94,22 +94,6 @@ class PageService {
return newParentpage;
- /**
- * Delete Bookmarks, Attachments, Revisions, Pages and emit delete
- */
- // TODO: transplant to service/page.js because page deletion affects various models data
- async completelyDeletePageRecursively(targetPage, user, options = {}) {
- const findOpts = { includeTrashed: true };
- const Page = this.crowi.model('Page');
-
- // find manageable descendants (this array does not include GRANT_RESTRICTED)
- const pages = await Page.findManageableListWithDescendants(targetPage, user, findOpts);
- await Promise.all(pages.map((page) => {
- return Page.completelyDeletePage(page, user, options);
- }));
- }