zamis 5 лет назад
Родитель
Сommit
f8e600844e

+ 0 - 14
src/server/models/page.js

@@ -1202,20 +1202,6 @@ 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) {

+ 1 - 1
src/server/routes/apiv3/pages.js

@@ -432,7 +432,7 @@ module.exports = (crowi) => {
    */
   router.delete('/empty-trash', loginRequired, adminRequired, csrf, async(req, res) => {
     try {
-      const pages = await Page.completelyDeletePageRecursively({ path: '/trash' }, req.user);
+      const pages = await crowi.pageService.completelyDeletePageRecursively({ path: '/trash' }, req.user);
       return res.apiv3({ pages });
     }
     catch (err) {

+ 1 - 1
src/server/routes/page.js

@@ -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 Page.completelyDeletePageRecursively(page, req.user, options);
+          await crowi.pageService.completelyDeletePageRecursively(page, req.user, options);
         }
         else {
           await Page.completelyDeletePage(page, req.user, options);

+ 16 - 0
src/server/service/page.js

@@ -94,6 +94,22 @@ 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);
+    }));
+  }
+
 
 }