/* * 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. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 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 { itemTypes } from 'sdc-app/onboarding/versionsPage/VersionsPageConstants.js'; import PermissionsActionHelper from 'sdc-app/onboarding/permissions/PermissionsActionHelper.js'; import { actionTypes as filterActionTypes } from './filter/FilterConstants.js'; import { versionStatus, itemStatus } from 'sdc-app/common/helpers/ItemsHelperConstants.js'; const OnboardActionHelper = { resetOnboardStore(dispatch) { dispatch({ type: actionTypes.RESET_ONBOARD_STORE }); }, changeActiveTab(dispatch, activeTab) { this.clearSearchValue(dispatch); dispatch({ type: actionTypes.CHANGE_ACTIVE_ONBOARD_TAB, activeTab }); dispatch({ type: filterActionTypes.FILTER_DATA_CHANGED, deltaData: activeTab === tabsMapping.WORKSPACE ? { versionStatus: versionStatus.DRAFT, itemStatus: itemStatus.ACTIVE } : { versionStatus: versionStatus.CERTIFIED } }); }, changeSearchValue(dispatch, searchValue) { dispatch({ type: actionTypes.CHANGE_SEARCH_VALUE, searchValue }); }, clearSearchValue(dispatch) { dispatch({ 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 === versionStatus.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 === versionStatus.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 } }); } } }; export default OnboardActionHelper;