Add new code new version
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / softwareProduct / components / network / SoftwareProductComponentsNetworkList.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 import {connect} from 'react-redux';
22 import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
23
24 import SoftwareProductComponentsActionHelper from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js';
25 import SoftwareProductComponentsNetworkListView from './SoftwareProductComponentsNetworkListView.jsx';
26 import SoftwareProductComponentsNetworkActionHelper from './SoftwareProductComponentsNetworkActionHelper.js';
27
28
29 export const mapStateToProps = ({softwareProduct}) => {
30
31         let {softwareProductEditor: {data: currentSoftwareProduct = {}, isValidityData = true}, softwareProductComponents} = softwareProduct;
32         let {network: {nicEditor = {}, nicList = []}, componentEditor: {data: componentData, qdata, qschema}} = softwareProductComponents;
33         let {data} = nicEditor;
34         let isReadOnlyMode = VersionControllerUtils.isReadOnly(currentSoftwareProduct);
35         let {version} = currentSoftwareProduct;
36         let manualMode = nicList.length <= 0;
37         let isModalInEditMode = true;
38
39         return {
40                 version,
41                 componentData,
42                 qdata,
43                 qschema,
44                 isValidityData,
45                 nicList,
46                 isDisplayModal: Boolean(data),
47                 isModalInEditMode,
48                 manualMode,
49                 isReadOnlyMode
50         };
51
52 };
53
54 const mapActionsToProps = (dispatch, {softwareProductId, componentId}) => {
55         return {
56                 onQDataChanged: ({data}) => SoftwareProductComponentsActionHelper.componentQuestionnaireUpdated(dispatch, {data}),
57                 onAddNIC: () => SoftwareProductComponentsNetworkActionHelper.openNICEditor(dispatch),
58                 onEditNicClick: (nic, version) => {
59                         Promise.all([
60                                 SoftwareProductComponentsNetworkActionHelper.loadNICData({
61                                         softwareProductId,
62                                         componentId,
63                                         nicId: nic.id,
64                                         version
65                                 }),
66                                 SoftwareProductComponentsNetworkActionHelper.loadNICQuestionnaire(dispatch, {
67                                         softwareProductId,
68                                         componentId,
69                                         nicId: nic.id,
70                                         version
71                                 })
72                         ]).then(
73                                 ([{data}]) => SoftwareProductComponentsNetworkActionHelper.openNICEditor(dispatch, {nic, data})
74                         );
75                 },
76                 onSubmit: ({qdata}) => { return SoftwareProductComponentsActionHelper.updateSoftwareProductComponentQuestionnaire(dispatch,
77                         {softwareProductId,
78                         vspComponentId: componentId,
79                         qdata});
80                 }
81
82
83         };
84 };
85
86 export default connect(mapStateToProps, mapActionsToProps, null, {withRef: true})(SoftwareProductComponentsNetworkListView);