[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / softwareProduct / components / SoftwareProductComponentEditorReducer.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 {actionTypes, forms} from './SoftwareProductComponentsConstants.js';
17
18 export default (state = {}, action) => {
19         switch (action.type) {
20                 case actionTypes.COMPONENT_CREATE_OPEN: 
21                         return {
22                                 ...state,
23                                 formName: forms.CREATE_FORM,
24                                 formReady: null,
25                                 genericFieldInfo: {
26                                         'displayName' : {
27                                                 isValid: true,
28                                                 errorText: '',
29                                                 validations: [{type: 'required', data: true}, {type: 'validateName', data: true}, {type: 'maxLength', data: 25}]
30                                         },
31                                         'description' : {
32                                                 isValid: true,
33                                                 errorText: '',
34                                                 validations: [{type: 'maxLength', data: 1000}]
35                                         }
36                                 }
37                         };
38                 case actionTypes.COMPONENT_LOAD:
39                         return {
40                                 ...state,
41                                 data: action.component,
42                                 formReady: null,
43                                 formName: forms.ALL_SPC_FORMS,
44                                 genericFieldInfo: {
45                                         'displayName' : {
46                                                 isValid: true,
47                                                 errorText: '',
48                                                 validations: []
49                                         },
50                                         'vfcCode' : {
51                                                 isValid: true,
52                                                 errorText: '',
53                                                 validations: []
54                                         },
55                                         'nfcFunction' : {
56                                                 isValid: true,
57                                                 errorText: '',
58                                                 validations: [{type: 'maxLength', data: 30}]
59                                         },
60                                         'description' : {
61                                                 isValid: true,
62                                                 errorText: '',
63                                                 validations: []
64                                         }
65                                 }
66                         };
67                 case actionTypes.COMPONENT_UPDATE:
68                         return {
69                                 ...state,
70                                 data: action.component
71                         };
72                 case actionTypes.COMPONENT_QUESTIONNAIRE_UPDATE:
73                         return {
74                                 ...state,
75                                 qdata: action.payload.qdata || state.qdata,
76                                 qschema: action.payload.qschema || state.qschema
77                         };
78                 case actionTypes.COMPONENT_DATA_CHANGED:
79                         return {
80                                 ...state,
81                                 data: {
82                                         ...state.data,
83                                         ...action.deltaData
84                                 }
85                         };
86                 case actionTypes.COMPONENT_DATA_CLEAR:
87                         return {};
88                 default:
89                         return state;
90         }
91 };