From 7c727c1a2bc672f20e87260ad3dc9c33ca31bbd4 Mon Sep 17 00:00:00 2001 From: svishnev Date: Thu, 24 May 2018 13:20:51 +0300 Subject: Healing process flow integration Issue-ID: SDC-1360 Change-Id: I4d786b53b4357901d10e041c31145b7b1b065725 Signed-off-by: svishnev --- .../sdc-app/onboarding/OnboardingActionHelper.js | 91 ++++++++++++++++------ .../onboarding/softwareProduct/SoftwareProduct.js | 11 ++- .../attachments/SoftwareProductAttachments.js | 6 +- .../landingPage/SoftwareProductLandingPage.js | 4 +- .../landingPage/SoftwareProductLandingPageView.jsx | 8 +- 5 files changed, 89 insertions(+), 31 deletions(-) (limited to 'openecomp-ui/src/sdc-app/onboarding') diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js index b8ce714bce..b9ffdc3076 100644 --- a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js +++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js @@ -1,5 +1,5 @@ /* - * Copyright © 2016-2017 European Support Limited + * Copyright © 2016-2018 European Support Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -47,6 +47,8 @@ import { tabsMapping as attachmentsTabsMapping } from 'sdc-app/onboarding/softwa import SoftwareProductAttachmentsActionHelper from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js'; import { actionTypes as filterActionTypes } from './onboard/filter/FilterConstants.js'; import FeaturesActionHelper from 'sdc-app/features/FeaturesActionHelper.js'; +import { notificationActions } from 'nfvo-components/notification/NotificationsConstants.js'; +import i18n from 'nfvo-utils/i18n/i18n.js'; function setCurrentScreen(dispatch, screen, props = {}) { dispatch({ @@ -208,37 +210,82 @@ const OnboardingActionHelper = { status }); }, + async getUpdatedSoftwareProduct(dispatch, { softwareProductId, version }) { + const response = await SoftwareProductActionHelper.fetchSoftwareProduct( + dispatch, + { + softwareProductId, + version + } + ); + let newResponse = false; + let newVersion = false; + // checking if there was healing and a new version should be open + if (response[0].version !== version.id) { + newResponse = await SoftwareProductActionHelper.fetchSoftwareProduct( + dispatch, + { + softwareProductId, + version: { ...version, id: response[0].version } + } + ); + newVersion = await ItemsHelper.fetchVersion({ + itemId: softwareProductId, + versionId: response[0].version + }); - navigateToSoftwareProductLandingPage( + dispatch( + notificationActions.showInfo({ + message: i18n( + 'This is the current version of the VSP, as a result of healing' + ) + }) + ); + } + return Promise.resolve( + newResponse + ? { softwareProduct: newResponse[0], newVersion } + : { softwareProduct: response[0], newVersion: version } + ); + }, + async navigateToSoftwareProductLandingPage( dispatch, { softwareProductId, version, status } ) { SoftwareProductComponentsActionHelper.clearComponentsStore(dispatch); + /** + * TODO remove when Filter toggle will be removed + */ LicenseModelActionHelper.fetchFinalizedLicenseModels(dispatch); - SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, { + + const { + softwareProduct, + newVersion + } = await this.getUpdatedSoftwareProduct(dispatch, { softwareProductId, version - }).then(response => { - let { vendorId: licenseModelId, licensingVersion } = response[0]; - SoftwareProductActionHelper.loadSoftwareProductDetailsData( - dispatch, - { licenseModelId, licensingVersion } - ); - SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents( - dispatch, - { softwareProductId, version: version } - ); - if (response[0].onboardingOrigin === onboardingOriginTypes.ZIP) { - SoftwareProductActionHelper.loadSoftwareProductHeatCandidate( - dispatch, - { softwareProductId, version: version } - ); - } - setCurrentScreen( + }); + + let { vendorId: licenseModelId, licensingVersion } = softwareProduct; + SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, { + licenseModelId, + licensingVersion + }); + SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents( + dispatch, + { softwareProductId, version: newVersion } + ); + if (softwareProduct.onboardingOrigin === onboardingOriginTypes.ZIP) { + SoftwareProductActionHelper.loadSoftwareProductHeatCandidate( dispatch, - enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, - { softwareProductId, licenseModelId, version, status } + { softwareProductId, version: newVersion } ); + } + setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, { + softwareProductId, + licenseModelId, + version: newVersion, + status }); }, diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js index db3cc04f76..d3d7b96a5d 100644 --- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js +++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js @@ -127,7 +127,8 @@ const buildNavigationBarProps = ({ screen, componentId, componentsList, - mapOfExpandedIds + mapOfExpandedIds, + isCertified }) => { const { softwareProductEditor: { data: currentSoftwareProduct = {} } @@ -235,7 +236,7 @@ const buildNavigationBarProps = ({ return { activeItemId, groups, - disabled: !!candidateOnboardingOrigin + disabled: !!candidateOnboardingOrigin && !isCertified }; }; @@ -268,7 +269,8 @@ const buildVersionControllerProps = ({ userInfo, usersList, isManual: onboardingMethod === onboardingMethodType.MANUAL, - candidateInProcess: !!candidateOnboardingOrigin + candidateInProcess: + !!candidateOnboardingOrigin && !itemPermission.isCertified }; }; @@ -360,7 +362,8 @@ const mapStateToProps = ( screen, componentId, componentsList, - mapOfExpandedIds + mapOfExpandedIds, + isCertified: itemPermission.isCertified }), meta }; diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js index 4d5887be6f..9b0f681eaf 100644 --- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js +++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js @@ -36,7 +36,8 @@ export const mapStateToProps = state => { heatSetupCache, heatValidation: { errorList } } - } + }, + currentScreen: { itemPermission: { isCertified } } } = state; let { unassigned = [], modules = [] } = heatSetup; @@ -61,7 +62,8 @@ export const mapStateToProps = state => { version, onboardingOrigin, activeTab, - candidateInProcess: !!currentSoftwareProduct.candidateOnboardingOrigin + candidateInProcess: + !!currentSoftwareProduct.candidateOnboardingOrigin && !isCertified }; }; diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js index f5f3b7ebdb..52a69803a6 100644 --- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js +++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js @@ -25,7 +25,8 @@ import VNFImportActionHelper from '../vnfMarketPlace/VNFImportActionHelper.js'; export const mapStateToProps = ({ softwareProduct, - licenseModel: { licenseAgreement } + licenseModel: { licenseAgreement }, + currentScreen: { itemPermission: { isCertified } } }) => { let { softwareProductEditor: { data: currentSoftwareProduct = {} }, @@ -67,6 +68,7 @@ export const mapStateToProps = ({ licenseAgreementName, fullCategoryDisplayName }, + isCertified, componentsList, isManual: currentSoftwareProduct.onboardingMethod === onboardingMethod.MANUAL diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx index 00f0c2a0cb..dcc9645750 100644 --- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx +++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/landingPage/SoftwareProductLandingPageView.jsx @@ -65,8 +65,12 @@ class SoftwareProductLandingPageView extends React.Component { onAddComponent: PropTypes.func }; componentDidMount() { - const { onCandidateInProcess, currentSoftwareProduct } = this.props; - if (currentSoftwareProduct.candidateOnboardingOrigin) { + const { + onCandidateInProcess, + currentSoftwareProduct, + isCertified + } = this.props; + if (currentSoftwareProduct.candidateOnboardingOrigin && !isCertified) { onCandidateInProcess(currentSoftwareProduct.id); } } -- cgit 1.2.3-korg