takeru0001 5 лет назад
Родитель
Сommit
52ef3fc063
1 измененных файлов с 12 добавлено и 0 удалено
  1. 12 0
      src/server/models/page.js

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

@@ -293,6 +293,7 @@ module.exports = function(crowi) {
     pageEvent = crowi.event('page');
     pageEvent.on('create', pageEvent.onCreate);
     pageEvent.on('update', pageEvent.onUpdate);
+    pageEvent.on('createMany', pageEvent.onCreateMany);
   }
 
   function validateCrowi() {
@@ -1291,6 +1292,7 @@ module.exports = function(crowi) {
     const path = targetPage.path;
     const pathRegExp = new RegExp(`^${escapeStringRegexp(path)}`, 'i');
     const updateMetadata = options.updateMetadata;
+    const socketClientId = options.socketClientId || null;
 
     // sanitize path
     newPagePathPrefix = crowi.xss.process(newPagePathPrefix); // eslint-disable-line no-param-reassign
@@ -1315,6 +1317,16 @@ module.exports = function(crowi) {
     await unorderedBulkOp.execute();
     await revisionUnorderedBulkOp.execute();
 
+    const newParentPath = path.replace(pathRegExp, newPagePathPrefix);
+    const newParentPage = this.findByPath(newParentPath);
+    const pageDatas = await this.findManageableListWithDescendants(newParentPage, user, options);
+
+    pageEvent.emit('createMany', targetPage, user, socketClientId);
+    pageDatas.forEach((pageData) => {
+      pageEvent.emit('delete', pageData, user, socketClientId);
+    });
+
+
     targetPage.path = newPagePathPrefix;
     return targetPage;