c2135ec988db079c03d095d3805ac0237324de6e
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / licenseModel / featureGroups / FeatureGroupsEditorReducer.js
1 /*!
2  * Copyright © 2016-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
13  * or implied. See the License for the specific language governing
14  * permissions and limitations under the License.
15  */
16
17 import {
18     actionTypes,
19     FG_EDITOR_FORM,
20     state as FeatureGroupStateConstants
21 } from './FeatureGroupsConstants.js';
22
23 export default (state = {}, action) => {
24     switch (action.type) {
25         case actionTypes.featureGroupsEditor.OPEN:
26             return {
27                 ...state,
28                 data: action.featureGroup || {},
29                 formReady: null,
30                 formName: FG_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                             FeatureGroupStateConstants
41                                 .SELECTED_FEATURE_GROUP_TAB.GENERAL
42                     },
43                     partNumber: {
44                         isValid: true,
45                         errorText: '',
46                         validations: [
47                             { type: 'required', data: true },
48                             { type: 'validateName', data: true }
49                         ],
50                         tabId:
51                             FeatureGroupStateConstants
52                                 .SELECTED_FEATURE_GROUP_TAB.GENERAL
53                     },
54                     name: {
55                         isValid: true,
56                         errorText: '',
57                         validations: [
58                             { type: 'required', data: true },
59                             { type: 'maxLength', data: 120 },
60                             { type: 'validateName', data: true }
61                         ],
62                         tabId:
63                             FeatureGroupStateConstants
64                                 .SELECTED_FEATURE_GROUP_TAB.GENERAL
65                     }
66                 }
67             };
68         case actionTypes.featureGroupsEditor.CLOSE:
69             return {};
70         case actionTypes.featureGroupsEditor.SELECT_TAB:
71             return {
72                 ...state,
73                 selectedTab: action.tab
74             };
75
76         case actionTypes.featureGroupsEditor
77             .SELECTED_ENTITLEMENT_POOLS_BUTTONTAB:
78             return {
79                 ...state,
80                 selectedEntitlementPoolsButtonTab: action.buttonTab
81             };
82         case actionTypes.featureGroupsEditor
83             .SELECTED_LICENSE_KEY_GROUPS_BUTTONTAB:
84             return {
85                 ...state,
86                 selectedLicenseKeyGroupsButtonTab: action.buttonTab
87             };
88         default:
89             return state;
90     }
91 };