|
|
@@ -32,7 +32,6 @@ import { serializePageSecurely } from '../models/serializers/page-serializer';
|
|
|
import Subscription from '../models/subscription';
|
|
|
import ActivityDefine from '../util/activityDefine';
|
|
|
|
|
|
-
|
|
|
const debug = require('debug')('growi:services:page');
|
|
|
|
|
|
const logger = loggerFactory('growi:services:page');
|
|
|
@@ -175,6 +174,16 @@ class PageService {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ // duplicate
|
|
|
+ this.pageEvent.on('duplicate', async(page, user) => {
|
|
|
+ try {
|
|
|
+ await this.createAndSendNotifications(page, user, ActivityDefine.ACTION_PAGE_DUPLICATE);
|
|
|
+ }
|
|
|
+ catch (err) {
|
|
|
+ logger.error(err);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
// delete
|
|
|
this.pageEvent.on('delete', async(page, user) => {
|
|
|
try {
|
|
|
@@ -967,6 +976,7 @@ class PageService {
|
|
|
newPagePath, page.revision.body, user, options,
|
|
|
);
|
|
|
}
|
|
|
+ this.pageEvent.emit('duplicate', page, user);
|
|
|
|
|
|
// 4. Take over tags
|
|
|
const originTags = await page.findRelatedTagsById();
|
|
|
@@ -1061,6 +1071,7 @@ class PageService {
|
|
|
const createdPage = await Page.create(
|
|
|
newPagePath, page.revision.body, user, options,
|
|
|
);
|
|
|
+ this.pageEvent.emit('duplicate', page, user);
|
|
|
|
|
|
if (isRecursively) {
|
|
|
this.duplicateDescendantsWithStream(page, newPagePath, user);
|