소스 검색

WIP injectShouldFixPath

yohei0125 3 년 전
부모
커밋
dd212f3257
1개의 변경된 파일21개의 추가작업 그리고 1개의 파일을 삭제
  1. 21 1
      packages/app/src/server/service/page-operation.ts

+ 21 - 1
packages/app/src/server/service/page-operation.ts

@@ -1,9 +1,11 @@
 import { pagePathUtils } from '@growi/core';
 import { pagePathUtils } from '@growi/core';
 
 
-import PageOperation from '~/server/models/page-operation';
+import { PageDocument } from '~/server/models/page';
+import PageOperation, { PageActionType } from '~/server/models/page-operation';
 
 
 const { isEitherOfPathAreaOverlap, isPathAreaOverlap, isTrashPage } = pagePathUtils;
 const { isEitherOfPathAreaOverlap, isPathAreaOverlap, isTrashPage } = pagePathUtils;
 
 
+
 class PageOperationService {
 class PageOperationService {
 
 
   crowi: any;
   crowi: any;
@@ -63,6 +65,24 @@ class PageOperationService {
     return true;
     return true;
   }
   }
 
 
+  async injectShouldFixPath(pages: any) {
+    const filter = { actionType: PageActionType.Rename };
+    const pageOperations = await PageOperation.find(filter);
+
+    const _pageOperationIds = pageOperations.map(op => op.page._id.toString());
+    const pageOperationIds = Array.from(new Set(_pageOperationIds)); // remove duplicate ids
+
+    for (const pageOperationId of pageOperationIds) {
+      for (const page of pages) {
+        const pageId = page._id.toString();
+        if (pageOperationId === pageId) {
+          page.shouldFixPath = true;
+        }
+      }
+    }
+
+  }
+
 }
 }
 
 
 export default PageOperationService;
 export default PageOperationService;