bca06a8ccd4497785fdbeae963974c0a81184dc8
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / licenseModel / licenseAgreement / LicenseAgreementEditorReducer.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 {
17     actionTypes,
18     defaultState,
19     LA_EDITOR_FORM,
20     enums as LicenseAgreementEnums
21 } from './LicenseAgreementConstants.js';
22 import { other as optionInputOther } from 'nfvo-components/input/validation/InputOptions.jsx';
23
24 export default (state = {}, action) => {
25     switch (action.type) {
26         case actionTypes.licenseAgreementEditor.OPEN:
27             return {
28                 ...state,
29                 formReady: null,
30                 formName: LA_EDITOR_FORM,
31                 genericFieldInfo: {
32                     description: {
33                         isValid: true,
34                         errorText: '',
35                         validations: [
36                             { type: 'maxLength', data: 1000 },
37                             { type: 'validateName', data: true }
38                         ],
39                         tabId:
40                             LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB
41                                 .GENERAL
42                     },
43                     licenseTerm: {
44                         isValid: true,
45                         errorText: '',
46                         validations: [
47                             { type: 'required', data: true },
48                             {
49                                 type: 'requiredChoiceWithOther',
50                                 data: optionInputOther.OTHER
51                             }
52                         ],
53                         tabId:
54                             LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB
55                                 .GENERAL
56                     },
57                     name: {
58                         isValid: true,
59                         errorText: '',
60                         validations: [
61                             { type: 'required', data: true },
62                             { type: 'maxLength', data: 25 },
63                             { type: 'validateName', data: true }
64                         ],
65                         tabId:
66                             LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB
67                                 .GENERAL
68                     }
69                 },
70                 data: action.licenseAgreement
71                     ? { ...action.licenseAgreement }
72                     : defaultState.LICENSE_AGREEMENT_EDITOR_DATA
73             };
74         case actionTypes.licenseAgreementEditor.CLOSE:
75             return {};
76         case actionTypes.licenseAgreementEditor.SELECT_TAB:
77             return {
78                 ...state,
79                 selectedTab: action.tab
80             };
81         default:
82             return state;
83     }
84 };