[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / softwareProduct / attachments / setup / HeatSetup.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 {connect} from 'react-redux';
17 import HeatSetupView from './HeatSetupView.jsx';
18 import HeatSetupActionHelper from './HeatSetupActionHelper.js';
19
20
21 const BASE = true;
22
23 function baseExists(modules) {
24         for (let i in modules) {
25                 if (modules[i].isBase) {
26                         return true;
27                 }
28         }
29         return false;
30 }
31
32 export const mapStateToProps = ({softwareProduct: {softwareProductAttachments: {heatSetup, heatSetupCache}}}) => {
33         let {modules = [], unassigned = [], artifacts = [], nested = []} = heatSetup;
34         let isBaseExist = baseExists(modules);
35
36         return {
37                 heatSetupCache,
38                 modules,
39                 unassigned,
40                 artifacts,
41                 nested,
42                 isBaseExist
43         };
44 };
45
46 export const mapActionsToProps = (dispatch, {}) => {
47         return {
48                 onModuleRename: (oldName, newName) => HeatSetupActionHelper.renameModule(dispatch, {oldName, newName}),
49                 onModuleAdd: () => HeatSetupActionHelper.addModule(dispatch, !BASE),
50                 onBaseAdd: () => HeatSetupActionHelper.addModule(dispatch, BASE),
51                 onModuleDelete: moduleName => HeatSetupActionHelper.deleteModule(dispatch, moduleName),
52                 onModuleFileTypeChange: ({module, value, type}) => HeatSetupActionHelper.changeModuleFileType(dispatch, {
53                         module,
54                         value,
55                         type
56                 }),
57                 onArtifactListChange: artifacts => HeatSetupActionHelper.changeArtifactList(dispatch, artifacts),
58                 onAddAllUnassigned: () => HeatSetupActionHelper.addAllUnassignedFilesToArtifacts(dispatch)
59         };
60 };
61
62 export default connect(mapStateToProps, mapActionsToProps, null, {withRef: true})(HeatSetupView);