composition readonly implementation
[sdc/sdc-workflow-designer.git] / workflow-designer-ui / src / main / frontend / src / features / version / composition / Composition.js
1 /*
2 * Copyright © 2018 European Support Limited
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 or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 import { connect } from 'react-redux';
17 import { I18n } from 'react-redux-i18n';
18 import { updateComposition, updateValidation } from './compositionActions';
19 import CompositionView from './CompositionView';
20 import { showErrorModalAction } from '../../../shared/modal/modalWrapperActions';
21 import { getComposition, getErrors } from './compositionSelectors';
22 import { getWorkflowName } from '../../workflow/workflowSelectors';
23 import { activitiesSelector } from 'features/activities/activitiesSelectors';
24 import { getInputOutputForComposition } from 'features/version/inputOutput/inputOutputSelectors';
25 import { getVersionInfo } from 'features/version/general/generalSelectors';
26 import { getIsCertified } from 'features/version/general/generalSelectors';
27 function mapStateToProps(state) {
28     return {
29         composition: getComposition(state),
30         name: getWorkflowName(state),
31         versionName: getVersionInfo(state).name,
32         activities: activitiesSelector(state),
33         inputOutput: getInputOutputForComposition(state),
34         errors: getErrors(state),
35         isReadOnly: getIsCertified(state)
36     };
37 }
38
39 function mapDispatchToProps(dispatch) {
40     return {
41         compositionUpdate: composition =>
42             dispatch(updateComposition(composition)),
43         showErrorModal: msg =>
44             dispatch(
45                 showErrorModalAction({
46                     title: I18n.t('workflow.composition.bpmnError'),
47                     body: msg,
48                     withButtons: true,
49                     closeButtonText: I18n.t('buttons.okBtn')
50                 })
51             ),
52         validationUpdate: (element, isValid) =>
53             dispatch(updateValidation({ element, isValid }))
54     };
55 }
56
57 export default connect(
58     mapStateToProps,
59     mapDispatchToProps
60 )(CompositionView);