Parcourir la source

Merge branch 'imprv/gw-4776' into imprv/gw-4857

takeru0001 il y a 5 ans
Parent
commit
56adf47fde

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

@@ -15,7 +15,7 @@ PageEvent.prototype.onCreate = function(page, user) {
 PageEvent.prototype.onUpdate = function(page, user) {
   debug('onUpdate event fired');
 };
-PageEvent.prototype.onCreateMany = function(page, user) {
+PageEvent.prototype.onCreateMany = function(pages, user) {
   debug('onCreateMany event fired');
 };
 

+ 2 - 2
src/server/models/page.js

@@ -1216,7 +1216,6 @@ module.exports = function(crowi) {
     const path = targetPage.path;
     const pathRegExp = new RegExp(`^${escapeStringRegexp(path)}`, 'i');
     const { updateMetadata, createRedirectPage } = options;
-    const socketClientId = options.socketClientId || null;
 
     // sanitize path
     newPagePathPrefix = crowi.xss.process(newPagePathPrefix); // eslint-disable-line no-param-reassign
@@ -1257,8 +1256,9 @@ module.exports = function(crowi) {
 
     const newParentPath = path.replace(pathRegExp, newPagePathPrefix);
     const newParentPage = await this.findByPath(newParentPath);
+    const renamedPages = await this.findManageableListWithDescendants(newParentPage, user, options);
 
-    pageEvent.emit('createMany', newParentPage, user, socketClientId);
+    pageEvent.emit('createMany', renamedPages, user, newParentPage);
 
     // Execute after unorderedBulkOp to prevent duplication
     if (createRedirectPage) {

+ 3 - 5
src/server/service/search-delegator/elasticsearch.js

@@ -389,6 +389,7 @@ class ElasticsearchDelegator {
         { path: 'creator', model: 'User', select: 'username' },
         { path: 'revision', model: 'Revision', select: 'body' },
       ])
+      .lean()
       .cursor();
 
     let skipped = 0;
@@ -966,10 +967,7 @@ class ElasticsearchDelegator {
     return this.updateOrInsertPageById(page._id);
   }
 
-  async syncDescendantsPagesUpdated(page, user) {
-
-    const Page = mongoose.model('Page');
-    const pages = await Page.findManageableListWithDescendants(page, user);
+  async syncDescendantsPagesUpdated(pages, user, parentPage) {
 
     const shoudDeletePages = [];
     pages.forEach((page) => {
@@ -989,7 +987,7 @@ class ElasticsearchDelegator {
       logger.error('deletePages:ES Error', err);
     }
 
-    return this.updateOrInsertDescendantsPagesById(page, user);
+    return this.updateOrInsertDescendantsPagesById(parentPage, user);
   }
 
   async syncPagesDeletedCompletely(pages, user) {