From d411d156ac1960f059eb94ec5d7da8fa1a9edb86 Mon Sep 17 00:00:00 2001 From: miriame Date: Tue, 2 Jan 2018 15:35:55 +0200 Subject: select item from workspace- skipping versions page Change-Id: Iebd3bb33703c2d47265ba133f7b74ec961ba8b2f Issue-ID: SDC-864 Signed-off-by: miriame --- .../src/sdc-app/onboarding/onboard/Onboard.js | 17 ++---- .../onboarding/onboard/OnboardActionHelper.js | 66 +++++++++++++++++++++- .../onboardingCatalog/OnboardingCatalogView.jsx | 9 +-- .../onboarding/onboard/workspace/WorkspaceView.jsx | 5 +- 4 files changed, 77 insertions(+), 20 deletions(-) (limited to 'openecomp-ui/src/sdc-app/onboarding/onboard') diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js b/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js index 3422920b3a..a308e1ec5e 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js @@ -21,8 +21,6 @@ import OnboardActionHelper from './OnboardActionHelper.js'; import LicenseModelCreationActionHelper from '../licenseModel/creation/LicenseModelCreationActionHelper.js'; import SoftwareProductCreationActionHelper from '../softwareProduct/creation/SoftwareProductCreationActionHelper.js'; import sortByStringProperty from 'nfvo-utils/sortByStringProperty.js'; -import ScreensHelper from 'sdc-app/common/helpers/ScreensHelper.js'; -import {enums, screenTypes} from 'sdc-app/onboarding/OnboardingConstants.js'; export const mapStateToProps = ({ @@ -91,18 +89,11 @@ export const mapStateToProps = ({ const mapActionsToProps = (dispatch) => { return { - onSelectLicenseModel({id: licenseModelId, name}, users) { - ScreensHelper.loadScreen(dispatch, { - screen: enums.SCREEN.VERSIONS_PAGE, screenType: screenTypes.LICENSE_MODEL, - props: {licenseModelId, licenseModel: {name}, usersList: users} - }); + onSelectLicenseModel({id: licenseModelId, name}, users, tab) { + OnboardActionHelper.loadVLMScreen(dispatch, {id: licenseModelId, name}, users, tab); }, - onSelectSoftwareProduct(softwareProduct, users) { - let {id: softwareProductId, vendorId: licenseModelId, licensingVersion, name} = softwareProduct; - ScreensHelper.loadScreen(dispatch, { - screen: enums.SCREEN.SOFTWARE_PRODUCT_VERSIONS_PAGE, screenType: screenTypes.SOFTWARE_PRODUCT, - props: {softwareProductId, softwareProduct: {name, vendorId: licenseModelId, licensingVersion}, usersList: users} - }); + onSelectSoftwareProduct(softwareProduct, users, tab) { + OnboardActionHelper.loadVSPScreen(dispatch, softwareProduct, users, tab); }, onAddSoftwareProductClick: (vendorId) => SoftwareProductCreationActionHelper.open(dispatch, vendorId), onAddLicenseModelClick: () => LicenseModelCreationActionHelper.open(dispatch), diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js index 6ebb40878f..892056855f 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js @@ -13,7 +13,13 @@ * or implied. See the License for the specific language governing * permissions and limitations under the License. */ -import {actionTypes} from './OnboardConstants.js'; +import {tabsMapping, actionTypes} from './OnboardConstants.js'; +import ScreensHelper from 'sdc-app/common/helpers/ScreensHelper.js'; +import {enums, screenTypes} from 'sdc-app/onboarding/OnboardingConstants.js'; +import VersionsPageActionHelper from 'sdc-app/onboarding/versionsPage/VersionsPageActionHelper.js'; +import {catalogItemStatuses} from 'sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogConstants.js'; +import {itemTypes} from 'sdc-app/onboarding/versionsPage/VersionsPageConstants.js'; +import PermissionsActionHelper from 'sdc-app/onboarding/permissions/PermissionsActionHelper.js'; const OnboardActionHelper = { resetOnboardStore(dispatch) { @@ -39,6 +45,64 @@ const OnboardActionHelper = { type: actionTypes.CHANGE_SEARCH_VALUE, searchValue: '' }); + }, + + loadVLMScreen(dispatch, {id: licenseModelId, name}, users, tab) { + if (tab === tabsMapping.WORKSPACE) { + VersionsPageActionHelper.fetchVersions(dispatch, {itemId: licenseModelId, itemType: itemTypes.LICENSE_MODEL}).then(({results})=> { + results = results.filter((version) => version.status === catalogItemStatuses.DRAFT); + if (results.length !== 1) { + ScreensHelper.loadScreen(dispatch, { + screen: enums.SCREEN.VERSIONS_PAGE, screenType: screenTypes.LICENSE_MODEL, + props: {licenseModelId, licenseModel: {name}, usersList: users} + }); + } + else { + PermissionsActionHelper.fetchItemUsers(dispatch, {itemId: licenseModelId, allUsers: users}).then(() => + ScreensHelper.loadLandingScreen(dispatch, {screenType: screenTypes.LICENSE_MODEL, props: {licenseModelId, version: results[0]}}) + ); + } + }); + } + if (tab === tabsMapping.CATALOG) { + ScreensHelper.loadScreen(dispatch, { + screen: enums.SCREEN.VERSIONS_PAGE, screenType: screenTypes.LICENSE_MODEL, + props: {licenseModelId, licenseModel: {name}, usersList: users} + }); + } + }, + loadVSPScreen(dispatch, softwareProduct, users, tab) { + let {id: softwareProductId, vendorId: licenseModelId, licensingVersion, name} = softwareProduct; + if (tab === tabsMapping.WORKSPACE) { + VersionsPageActionHelper.fetchVersions(dispatch,{itemId: softwareProductId, itemType: itemTypes.SOFTWARE_PRODUCT}).then(({results})=> { + results = results.filter((version) => version.status === catalogItemStatuses.DRAFT); + if (results.length !== 1) { + ScreensHelper.loadScreen(dispatch, { + screen: enums.SCREEN.SOFTWARE_PRODUCT_VERSIONS_PAGE, screenType: screenTypes.SOFTWARE_PRODUCT, + props: { + softwareProductId, + softwareProduct: {name, vendorId: licenseModelId, licensingVersion}, + usersList: users + } + }); + } + else { + PermissionsActionHelper.fetchItemUsers(dispatch, {itemId: softwareProductId, allUsers: users}).then(() => + ScreensHelper.loadLandingScreen(dispatch, {screenType: screenTypes.SOFTWARE_PRODUCT, props: {softwareProductId, licenseModelId, version: results[0]}}) + ); + } + }); + } + if (tab === tabsMapping.CATALOG) { + ScreensHelper.loadScreen(dispatch, { + screen: enums.SCREEN.SOFTWARE_PRODUCT_VERSIONS_PAGE, screenType: screenTypes.SOFTWARE_PRODUCT, + props: { + softwareProductId, + softwareProduct: {name, vendorId: licenseModelId, licensingVersion}, + usersList: users + } + }); + } } }; diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx index 1004472ec3..60a5aaeef0 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx @@ -19,6 +19,7 @@ import classnames from 'classnames'; import DetailsCatalogView from 'sdc-app/onboarding/onboard/DetailsCatalogView.jsx'; import VendorCatalogView from './VendorCatalogView.jsx'; import { tabsMapping} from './OnboardingCatalogConstants.js'; +import {tabsMapping as WCTabsMapping} from 'sdc-app/onboarding/onboard/OnboardConstants.js'; const CatalogHeaderTabs = ({onTabPress, activeTab}) => (
@@ -58,8 +59,8 @@ class OnboardingCatalogView extends React.Component { users={users} onAddVLM={onAddLicenseModelClick} onAddVSP={onAddSoftwareProductClick} - onSelectVLM={onSelectLicenseModel} - onSelectVSP={onSelectSoftwareProduct} + onSelectVLM={(item, users) => onSelectLicenseModel(item, users, WCTabsMapping.CATALOG)} + onSelectVSP={(item, users) => onSelectSoftwareProduct(item, users, WCTabsMapping.CATALOG)} filter={searchValue} onMigrate={onMigrate}/> ); @@ -71,8 +72,8 @@ class OnboardingCatalogView extends React.Component { users={users} onAddVSP={onAddSoftwareProductClick} onAddVLM={onAddLicenseModelClick} - onSelectVSP={onSelectSoftwareProduct} - onSelectVLM={onSelectLicenseModel} + onSelectVSP={(item, users) => onSelectSoftwareProduct(item, users, WCTabsMapping.CATALOG)} + onSelectVLM={(item, users) => onSelectLicenseModel(item, users, WCTabsMapping.CATALOG)} vspOverlay={vspOverlay} onVendorSelect={onVendorSelect} selectedVendor={selectedVendor} diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx index 523bbb2c8e..a937c11d85 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx @@ -16,6 +16,7 @@ import React from 'react'; import DetailsCatalogView from '../DetailsCatalogView.jsx'; import i18n from 'nfvo-utils/i18n/i18n.js'; +import {tabsMapping} from 'sdc-app/onboarding/onboard/OnboardConstants.js'; const WorkspaceView = (props) => { let { @@ -34,8 +35,8 @@ const WorkspaceView = (props) => { users={users} onAddVLM={onAddLicenseModelClick} onAddVSP={onAddSoftwareProductClick} - onSelectVLM={onSelectLicenseModel} - onSelectVSP={onSelectSoftwareProduct} + onSelectVLM={(item, users) => onSelectLicenseModel(item, users, tabsMapping.WORKSPACE)} + onSelectVSP={(item, users) => onSelectSoftwareProduct(item, users, tabsMapping.WORKSPACE)} onMigrate={onMigrate} filter={searchValue} />
-- cgit 1.2.3-korg