2 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
16 import React from 'react';
17 import i18n from 'nfvo-utils/i18n/i18n.js';
18 import {actionTypes} from './OnboardingCatalogConstants.js';
19 import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
20 import {statusEnum} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
21 import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
22 import OnboardActionHelper from '../OnboardActionHelper.js';
23 import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js';
26 function getMessageForMigration(name) {
29 <div>{i18n('{name} needs to be updated. Click ‘Checkout & Update’, to proceed.',{name})}</div>
30 <div>{i18n('Please don’t forget to submit afterwards')}</div>
35 const OnboardingCatalogActionHelper = {
36 changeVspOverlay(dispatch, vendor) {
38 type: actionTypes.CHANGE_VSP_OVERLAY,
39 vendorId: vendor ? vendor.id : null
42 closeVspOverlay(dispatch) {
44 type: actionTypes.CLOSE_VSP_OVERLAY
47 changeActiveTab(dispatch, activeTab) {
48 OnboardActionHelper.clearSearchValue(dispatch);
50 type: actionTypes.CHANGE_ACTIVE_CATALOG_TAB,
54 onVendorSelect(dispatch, {vendor}) {
55 OnboardActionHelper.clearSearchValue(dispatch);
57 type: actionTypes.ONBOARDING_CATALOG_OPEN_VENDOR_PAGE,
58 selectedVendor: vendor
61 onMigrate(dispatch, softwareProduct) {
62 const {status, name, lockingUser} = softwareProduct;
63 if (status === statusEnum.CHECK_OUT_STATUS && !VersionControllerUtils.isCheckedOutByCurrentUser(softwareProduct)) {
65 type: modalActionTypes.GLOBAL_MODAL_WARNING,
68 msg: i18n('{name} is locked by user {lockingUser} for self-healing',{name, lockingUser})
73 type: modalActionTypes.GLOBAL_MODAL_WARNING,
76 msg: getMessageForMigration(softwareProduct.name.toUpperCase()),
77 confirmationButtonText: i18n('Checkout & Update'),
78 onConfirmed: ()=>SoftwareProductActionHelper.migrateSoftwareProduct(dispatch, {softwareProduct})
85 export default OnboardingCatalogActionHelper;