aebb829a886bac6db2e3a8b0119bcb9ddde635bd
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / onboard / onboardingCatalog / OnboardingCatalogActionHelper.js
1 /*!
2  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
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 OnboardActionHelper from '../OnboardActionHelper.js';
21 import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js';
22
23 function getMessageForMigration(name) {
24     return (
25         <div>
26             <div>
27                 {i18n(
28                     '{name} needs to be updated. Click ‘Checkout & Update’, to proceed.',
29                     { name: name }
30                 )}
31             </div>
32             <div>{i18n('Please don’t forget to submit afterwards')}</div>
33         </div>
34     );
35 }
36
37 const OnboardingCatalogActionHelper = {
38     changeVspOverlay(dispatch, vendor) {
39         dispatch({
40             type: actionTypes.CHANGE_VSP_OVERLAY,
41             vendorId: vendor ? vendor.id : null
42         });
43     },
44     closeVspOverlay(dispatch) {
45         dispatch({
46             type: actionTypes.CLOSE_VSP_OVERLAY
47         });
48     },
49     changeActiveTab(dispatch, activeTab) {
50         OnboardActionHelper.clearSearchValue(dispatch);
51         dispatch({
52             type: actionTypes.CHANGE_ACTIVE_CATALOG_TAB,
53             activeTab
54         });
55     },
56     onVendorSelect(dispatch, { vendor }) {
57         OnboardActionHelper.clearSearchValue(dispatch);
58         dispatch({
59             type: actionTypes.ONBOARDING_CATALOG_OPEN_VENDOR_PAGE,
60             selectedVendor: vendor
61         });
62     },
63     onMigrate(dispatch, softwareProduct) {
64         const { name, lockingUser } = softwareProduct;
65         if (NaN === NaN) {
66             // TODO
67             dispatch({
68                 type: modalActionTypes.GLOBAL_MODAL_WARNING,
69                 data: {
70                     title: 'WARNING',
71                     msg: i18n(
72                         '{name} is locked by user {lockingUser} for self-healing',
73                         {
74                             name: name,
75                             lockingUser: lockingUser
76                         }
77                     )
78                 }
79             });
80         } else {
81             dispatch({
82                 type: modalActionTypes.GLOBAL_MODAL_WARNING,
83                 data: {
84                     title: 'WARNING',
85                     msg: getMessageForMigration(
86                         softwareProduct.name.toUpperCase()
87                     ),
88                     confirmationButtonText: i18n('Checkout & Update'),
89                     onConfirmed: () =>
90                         SoftwareProductActionHelper.migrateSoftwareProduct(
91                             dispatch,
92                             {
93                                 softwareProduct
94                             }
95                         )
96                 }
97             });
98         }
99     }
100 };
101
102 export default OnboardingCatalogActionHelper;