Просмотр исходного кода

Merge pull request #5756 from weseek/feat/93681-create-notification-when-page-is-reverted

feat:  Create notification when page is reverted
Yuki Takei 4 лет назад
Родитель
Сommit
2774e2ba90

+ 4 - 0
packages/app/src/components/InAppNotification/InAppNotificationElm.tsx

@@ -115,6 +115,10 @@ const InAppNotificationElm: FC<Props> = (props: Props) => {
       actionMsg = 'completely deleted';
       actionMsg = 'completely deleted';
       actionIcon = 'icon-fire';
       actionIcon = 'icon-fire';
       break;
       break;
+    case 'PAGE_REVERT':
+      actionMsg = 'reverted';
+      actionIcon = 'icon-action-undo';
+      break;
     case 'COMMENT_CREATE':
     case 'COMMENT_CREATE':
       actionMsg = 'commented on';
       actionMsg = 'commented on';
       actionIcon = 'icon-bubble';
       actionIcon = 'icon-bubble';

+ 14 - 0
packages/app/src/server/service/page.ts

@@ -204,6 +204,16 @@ class PageService {
       }
       }
     });
     });
 
 
+    // revert
+    this.pageEvent.on('revert', async(page, user) => {
+      try {
+        await this.createAndSendNotifications(page, user, ActivityDefine.ACTION_PAGE_REVERT);
+      }
+      catch (err) {
+        logger.error(err);
+      }
+    });
+
     // likes
     // likes
     this.pageEvent.on('like', async(page, user) => {
     this.pageEvent.on('like', async(page, user) => {
       try {
       try {
@@ -1906,6 +1916,8 @@ class PageService {
     }, { new: true });
     }, { new: true });
     await PageTagRelation.updateMany({ relatedPage: page._id }, { $set: { isPageTrashed: false } });
     await PageTagRelation.updateMany({ relatedPage: page._id }, { $set: { isPageTrashed: false } });
 
 
+    this.pageEvent.emit('revert', page, user);
+
     if (!isRecursively) {
     if (!isRecursively) {
       await this.updateDescendantCountOfAncestors(parent._id, 1, true);
       await this.updateDescendantCountOfAncestors(parent._id, 1, true);
     }
     }
@@ -2005,6 +2017,8 @@ class PageService {
     }, { new: true });
     }, { new: true });
     await PageTagRelation.updateMany({ relatedPage: page._id }, { $set: { isPageTrashed: false } });
     await PageTagRelation.updateMany({ relatedPage: page._id }, { $set: { isPageTrashed: false } });
 
 
+    this.pageEvent.emit('revert', page, user);
+
     return updatedPage;
     return updatedPage;
   }
   }
 
 

+ 3 - 0
packages/app/src/server/util/activityDefine.ts

@@ -10,6 +10,7 @@ const ACTION_PAGE_RENAME = 'PAGE_RENAME';
 const ACTION_PAGE_DUPLICATE = 'PAGE_DUPLICATE';
 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_COMMENT_CREATE = 'COMMENT_CREATE';
 const ACTION_COMMENT_CREATE = 'COMMENT_CREATE';
 const ACTION_COMMENT_UPDATE = 'COMMENT_UPDATE';
 const ACTION_COMMENT_UPDATE = 'COMMENT_UPDATE';
 
 
@@ -30,6 +31,7 @@ const getSupportActionNames = () => {
     ACTION_PAGE_DUPLICATE,
     ACTION_PAGE_DUPLICATE,
     ACTION_PAGE_DELETE,
     ACTION_PAGE_DELETE,
     ACTION_PAGE_DELETE_COMPLETELY,
     ACTION_PAGE_DELETE_COMPLETELY,
+    ACTION_PAGE_REVERT,
     ACTION_COMMENT_CREATE,
     ACTION_COMMENT_CREATE,
     ACTION_COMMENT_UPDATE,
     ACTION_COMMENT_UPDATE,
   ];
   ];
@@ -46,6 +48,7 @@ const activityDefine = {
   ACTION_PAGE_DUPLICATE,
   ACTION_PAGE_DUPLICATE,
   ACTION_PAGE_DELETE,
   ACTION_PAGE_DELETE,
   ACTION_PAGE_DELETE_COMPLETELY,
   ACTION_PAGE_DELETE_COMPLETELY,
+  ACTION_PAGE_REVERT,
   ACTION_COMMENT_CREATE,
   ACTION_COMMENT_CREATE,
   ACTION_COMMENT_UPDATE,
   ACTION_COMMENT_UPDATE,