cb6d25a6acdcce684e4f4097b048123e10f08f5c
[sdc.git] /
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 { connect } from 'react-redux';
17 import i18n from 'nfvo-utils/i18n/i18n.js';
18 import { actionTypes as modalActionTypes } from 'nfvo-components/modal/GlobalModalConstants.js';
19 import SoftwareProductComponentProcessesActionHelper from './SoftwareProductComponentProcessesActionHelper.js';
20
21 import SoftwareProductComponentsProcessesListView from './SoftwareProductComponentsProcessesListView.jsx';
22
23 export const mapStateToProps = ({ softwareProduct }) => {
24     let {
25         softwareProductEditor: {
26             data: currentSoftwareProduct = {},
27             isValidityData = true
28         },
29         softwareProductComponents: { componentProcesses = {} }
30     } = softwareProduct;
31     let { processesList = [], processesEditor = {} } = componentProcesses;
32     let { data } = processesEditor;
33
34     return {
35         currentSoftwareProduct,
36         isValidityData,
37         processesList,
38         isDisplayModal: Boolean(data),
39         isModalInEditMode: Boolean(data && data.id)
40     };
41 };
42
43 const mapActionsToProps = (
44     dispatch,
45     { componentId, softwareProductId, version }
46 ) => {
47     return {
48         onAddProcess: () =>
49             SoftwareProductComponentProcessesActionHelper.openEditor(dispatch),
50         onEditProcess: process =>
51             SoftwareProductComponentProcessesActionHelper.openEditor(
52                 dispatch,
53                 process
54             ),
55         onDeleteProcess: process =>
56             dispatch({
57                 type: modalActionTypes.GLOBAL_MODAL_WARNING,
58                 data: {
59                     msg: i18n('Are you sure you want to delete "{name}"?', {
60                         name: process.name
61                     }),
62                     confirmationButtonText: i18n('Delete'),
63                     title: i18n('Delete'),
64                     onConfirmed: () =>
65                         SoftwareProductComponentProcessesActionHelper.deleteProcess(
66                             dispatch,
67                             { process, softwareProductId, version, componentId }
68                         )
69                 }
70             })
71     };
72 };
73
74 export default connect(mapStateToProps, mapActionsToProps, null, {
75     withRef: true
76 })(SoftwareProductComponentsProcessesListView);