From 75de12ccd56342ddf81baa09964224e72f1a442c Mon Sep 17 00:00:00 2001 From: arpitnath Date: Fri, 29 Sep 2023 17:39:07 +0530 Subject: [PATCH] fixes: Page duplication has same page handler name. --- server/src/services/page.service.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/server/src/services/page.service.ts b/server/src/services/page.service.ts index 12a7ad0074..389f5c5001 100644 --- a/server/src/services/page.service.ts +++ b/server/src/services/page.service.ts @@ -59,9 +59,23 @@ export class PageService { throw new Error('Page not found'); } + let pageName = `${pageToClone.name} copy`; + let pageHandle = `${pageToClone.handle}-copy`; + + const allPages = await this.pageRepository.find({ appVersionId }); + + const pageNameORHandleExists = allPages.filter((page) => { + return page.name.includes(pageName) || page.handle.includes(pageHandle); + }); + + if (pageNameORHandleExists.length > 0) { + pageName = `${pageToClone.name} copy ${pageNameORHandleExists.length}`; + pageHandle = `${pageToClone.handle}-copy-${pageNameORHandleExists.length}`; + } + const newPage = new Page(); - newPage.name = `${pageToClone.name} copy`; - newPage.handle = `${pageToClone.handle}-copy`; + newPage.name = pageName; + newPage.handle = pageHandle; newPage.index = pageToClone.index + 1; newPage.appVersionId = appVersionId;