Shun Miyazawa 3 лет назад
Родитель
Сommit
dad5add539
2 измененных файлов с 14 добавлено и 1 удалено
  1. 3 0
      packages/app/src/interfaces/activity.ts
  2. 11 1
      packages/app/src/server/routes/apiv3/pages.js

+ 3 - 0
packages/app/src/interfaces/activity.ts

@@ -32,6 +32,7 @@ const ACTION_PAGE_DUPLICATE = 'PAGE_DUPLICATE';
 const ACTION_PAGE_DELETE = 'PAGE_DELETE';
 const ACTION_PAGE_DELETE = 'PAGE_DELETE';
 const ACTION_PAGE_DELETE_COMPLETELY = 'PAGE_DELETE_COMPLETELY';
 const ACTION_PAGE_DELETE_COMPLETELY = 'PAGE_DELETE_COMPLETELY';
 const ACTION_PAGE_REVERT = 'PAGE_REVERT';
 const ACTION_PAGE_REVERT = 'PAGE_REVERT';
+const ACTION_PAGE_EMPTY_TRASH = 'PAGE_EMPTY_TRASH';
 const ACTION_PAGE_SUBSCRIBE = 'PAGE_SUBSCRIBE';
 const ACTION_PAGE_SUBSCRIBE = 'PAGE_SUBSCRIBE';
 const ACTION_PAGE_UNSUBSCRIBE = 'ACTION_PAGE_UNSUBSCRIBE';
 const ACTION_PAGE_UNSUBSCRIBE = 'ACTION_PAGE_UNSUBSCRIBE';
 const ACTION_COMMENT_CREATE = 'COMMENT_CREATE';
 const ACTION_COMMENT_CREATE = 'COMMENT_CREATE';
@@ -98,6 +99,7 @@ export const SupportedAction = {
   ACTION_PAGE_DELETE,
   ACTION_PAGE_DELETE,
   ACTION_PAGE_DELETE_COMPLETELY,
   ACTION_PAGE_DELETE_COMPLETELY,
   ACTION_PAGE_REVERT,
   ACTION_PAGE_REVERT,
+  ACTION_PAGE_EMPTY_TRASH,
   ACTION_PAGE_SUBSCRIBE,
   ACTION_PAGE_SUBSCRIBE,
   ACTION_PAGE_UNSUBSCRIBE,
   ACTION_PAGE_UNSUBSCRIBE,
   ACTION_COMMENT_CREATE,
   ACTION_COMMENT_CREATE,
@@ -179,6 +181,7 @@ export const MediumActionGroup = {
   ACTION_PAGE_DELETE,
   ACTION_PAGE_DELETE,
   ACTION_PAGE_DELETE_COMPLETELY,
   ACTION_PAGE_DELETE_COMPLETELY,
   ACTION_PAGE_REVERT,
   ACTION_PAGE_REVERT,
+  ACTION_PAGE_EMPTY_TRASH,
   ACTION_PAGE_SUBSCRIBE,
   ACTION_PAGE_SUBSCRIBE,
   ACTION_PAGE_UNSUBSCRIBE,
   ACTION_PAGE_UNSUBSCRIBE,
   ACTION_COMMENT_CREATE,
   ACTION_COMMENT_CREATE,

+ 11 - 1
packages/app/src/server/routes/apiv3/pages.js

@@ -596,7 +596,7 @@ module.exports = (crowi) => {
    *          200:
    *          200:
    *            description: Succeeded to remove all trash pages
    *            description: Succeeded to remove all trash pages
    */
    */
-  router.delete('/empty-trash', accessTokenParser, loginRequired, csrf, apiV3FormValidator, async(req, res) => {
+  router.delete('/empty-trash', accessTokenParser, loginRequired, csrf, addActivity, apiV3FormValidator, async(req, res) => {
     const options = {};
     const options = {};
 
 
     const pagesInTrash = await crowi.pageService.findChildrenByParentPathOrIdAndViewer('/trash', req.user);
     const pagesInTrash = await crowi.pageService.findChildrenByParentPathOrIdAndViewer('/trash', req.user);
@@ -608,14 +608,20 @@ module.exports = (crowi) => {
       return res.apiv3Err(new ErrorV3(msg), 500);
       return res.apiv3Err(new ErrorV3(msg), 500);
     }
     }
 
 
+    const parameters = { action: SupportedAction.ACTION_PAGE_EMPTY_TRASH };
+
     // when some pages are not deletable
     // when some pages are not deletable
     if (deletablePages.length < pagesInTrash.length) {
     if (deletablePages.length < pagesInTrash.length) {
       try {
       try {
         const options = { isCompletely: true, isRecursively: true };
         const options = { isCompletely: true, isRecursively: true };
         await crowi.pageService.deleteMultiplePages(deletablePages, req.user, options);
         await crowi.pageService.deleteMultiplePages(deletablePages, req.user, options);
+
+        activityEvent.emit('update', res.locals.activity._id, parameters);
+
         return res.apiv3({ deletablePages });
         return res.apiv3({ deletablePages });
       }
       }
       catch (err) {
       catch (err) {
+        logger.error(err);
         return res.apiv3Err(new ErrorV3('Failed to update page.', 'unknown'), 500);
         return res.apiv3Err(new ErrorV3('Failed to update page.', 'unknown'), 500);
       }
       }
     }
     }
@@ -623,9 +629,13 @@ module.exports = (crowi) => {
     else {
     else {
       try {
       try {
         const pages = await crowi.pageService.emptyTrashPage(req.user, options);
         const pages = await crowi.pageService.emptyTrashPage(req.user, options);
+
+        activityEvent.emit('update', res.locals.activity._id, parameters);
+
         return res.apiv3({ pages });
         return res.apiv3({ pages });
       }
       }
       catch (err) {
       catch (err) {
+        logger.error(err);
         return res.apiv3Err(new ErrorV3('Failed to update page.', 'unknown'), 500);
         return res.apiv3Err(new ErrorV3('Failed to update page.', 'unknown'), 500);
       }
       }
     }
     }