From a78a295671abf3e6c664fa42055ebab59eb021a6 Mon Sep 17 00:00:00 2001 From: Cheryl Tang Date: Thu, 12 Sep 2024 17:59:30 -0700 Subject: [PATCH] LPD-22768 Refactor TimelineDropdownMenu so that its link creation logic can be without the component --- .../js/components/TimelineDropdownMenu.js | 120 +++++++++++++----- 1 file changed, 85 insertions(+), 35 deletions(-) diff --git a/modules/apps/change-tracking/change-tracking-web/src/main/resources/META-INF/resources/publications/js/components/TimelineDropdownMenu.js b/modules/apps/change-tracking/change-tracking-web/src/main/resources/META-INF/resources/publications/js/components/TimelineDropdownMenu.js index 95fb5ad921cb3..213638fd1e1fa 100644 --- a/modules/apps/change-tracking/change-tracking-web/src/main/resources/META-INF/resources/publications/js/components/TimelineDropdownMenu.js +++ b/modules/apps/change-tracking/change-tracking-web/src/main/resources/META-INF/resources/publications/js/components/TimelineDropdownMenu.js @@ -15,6 +15,75 @@ import { WORKFLOW_STATUS_EXPIRED, } from './WorkflowStatusLabel'; +const createMVCRenderCommandURL = ( + ctCollectionId, + mvcRenderCommandName, + namespace, + additionalParams = {} +) => { + return createPortletURL(themeDisplay.getLayoutRelativeControlPanelURL(), { + ctCollectionId, + mvcRenderCommandName, + p_p_id: getPortletId(namespace), + ...additionalParams, + }).toString(); +}; + +export function createDiscardURL( + ctCollectionId, + namespace, + timelineClassNameId, + timelineClassPK +) { + return createMVCRenderCommandURL( + ctCollectionId, + '/change_tracking/view_discard', + namespace, + { + modelClassNameId: timelineClassNameId, + modelClassPK: timelineClassPK, + } + ); +} + +export function createEditURL(ctCollectionId, timelineEditURL) { + return createPortletURL(timelineEditURL, { + ctCollectionId, + }).toString(); +} + +export function createMoveURL( + ctCollectionId, + namespace, + timelineClassNameId, + timelineClassPK +) { + return createMVCRenderCommandURL( + ctCollectionId, + '/change_tracking/view_move_changes', + namespace, + { + modelClassNameId: timelineClassNameId, + modelClassPK: timelineClassPK, + } + ); +} + +export function createViewURL( + ctCollectionId, + namespace, + timelineItemCtEntryId +) { + return createMVCRenderCommandURL( + ctCollectionId, + '/change_tracking/view_change', + namespace, + { + ctEntryId: timelineItemCtEntryId, + } + ); +} + export default function TimelineDropdownMenu({ deleteURL, editURL, @@ -33,45 +102,26 @@ export default function TimelineDropdownMenu({ if (Liferay.FeatureFlags['LPD-20556']) { const ctCollectionId = timelineItem.id; - const createMVCRenderCommandURL = ( - mvcRenderCommandName, - additionalParams = {} - ) => { - return createPortletURL( - themeDisplay.getLayoutRelativeControlPanelURL(), - { - ctCollectionId, - mvcRenderCommandName, - p_p_id: getPortletId(namespace), - ...additionalParams, - } - ).toString(); - }; - - const discardURL = createMVCRenderCommandURL( - '/change_tracking/view_discard', - { - modelClassNameId: timelineClassNameId, - modelClassPK: timelineClassPK, - } + const discardURL = createDiscardURL( + ctCollectionId, + namespace, + timelineClassNameId, + timelineClassPK ); - const checkoutURL = createPortletURL(timelineEditURL, { - ctCollectionId, - }).toString(); + const checkoutURL = createEditURL(ctCollectionId, timelineEditURL); - const moveURL = createMVCRenderCommandURL( - '/change_tracking/view_move_changes', - { - modelClassNameId: timelineClassNameId, - modelClassPK: timelineClassPK, - } + const moveURL = createMoveURL( + ctCollectionId, + namespace, + timelineClassNameId, + timelineClassPK ); - const viewURL = createMVCRenderCommandURL( - '/change_tracking/view_change', - { - ctEntryId: timelineItem.ctEntryId, - } + + const viewURL = createViewURL( + ctCollectionId, + namespace, + timelineItem.ctEntryId ); if (