Adding filter bar
[aai/sparky-fe.git] / src / app / vnfSearch / VnfSearchReducer.js
1 /*
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017 Amdocs
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  *
21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  */
23  
24 import {vnfActionTypes} from 'app/vnfSearch/VnfSearchConstants.js';
25 import {
26   CHART_ORCH_STATUS,
27   CHART_PROV_STATUS,
28   CHART_NF_ROLE,
29   CHART_NF_TYPE,
30   TOTAL_VNF_COUNT
31 } from 'app/vnfSearch/VnfSearchConstants.js';
32 import {ERROR_RETRIEVING_DATA} from 'app/networking/NetworkConstants.js';
33 import {MESSAGE_LEVEL_DANGER} from 'utils/GlobalConstants.js';
34 import {
35   globalAutoCompleteSearchBarActionTypes
36 } from 'app/globalAutoCompleteSearchBar/GlobalAutoCompleteSearchBarConstants.js';
37 import {
38   filterBarActionTypes
39 } from 'generic-components/filterBar/FilterBarConstants.js';
40
41 export default (state = {}, action) => {
42   let data = action.data;
43   switch (action.type) {
44     case vnfActionTypes.VNF_NETWORK_ERROR:
45       return {
46         ...state,
47         processedProvStatusCountChartData: CHART_PROV_STATUS.emptyData,
48         processedOrchStatusCountChartData: CHART_ORCH_STATUS.emptyData,
49         processedNfTypeCountChartData: CHART_NF_TYPE.emptyData,
50         processedNfRoleCountChartData: CHART_NF_ROLE.emptyData,
51         count: TOTAL_VNF_COUNT.emptyValue,
52         feedbackMsgText: ERROR_RETRIEVING_DATA,
53         feedbackMsgSeverity: MESSAGE_LEVEL_DANGER
54       };
55     case globalAutoCompleteSearchBarActionTypes.SEARCH_WARNING_EVENT:
56       return {
57         ...state,
58         processedProvStatusCountChartData: CHART_PROV_STATUS.emptyData,
59         processedOrchStatusCountChartData: CHART_ORCH_STATUS.emptyData,
60         processedNfTypeCountChartData: CHART_NF_TYPE.emptyData,
61         processedNfRoleCountChartData: CHART_NF_ROLE.emptyData,
62         count: TOTAL_VNF_COUNT.emptyValue
63       };
64     case filterBarActionTypes.NEW_SELECTIONS:
65       return {
66         ...state,
67         vnfFilterValues: data.selectedValuesMap,
68         unifiedFilterValues: data.unifiedValues
69       };
70     case filterBarActionTypes.SET_UNIFIED_VALUES:
71       return {
72         ...state,
73         unifiedFilterValues: data
74       };
75     case vnfActionTypes.VNF_SEARCH_RESULTS_RECEIVED:
76       return {
77         ...state,
78         count: data.count,
79         processedProvStatusCountChartData: data.provStatusData,
80         processedOrchStatusCountChartData: data.orchStatusData,
81         processedNfTypeCountChartData: data.nfTypeData,
82         processedNfRoleCountChartData: data.nfRoleData,
83         feedbackMsgText: '',
84         feedbackMsgSeverity: ''
85       };
86     case vnfActionTypes.VNF_FILTER_PANEL_TOGGLED:
87       return {
88         ...state,
89         vnfVisualizationPanelClass: data.vnfVisualizationPanelClass
90       };
91     case vnfActionTypes.VNF_SEARCH_FILTERS_RECEIVED:
92       return {
93         ...state,
94         vnfFilters: data
95       };
96     case filterBarActionTypes.SET_NON_CONVERTED_VALUES:
97       return {
98         ...state,
99         nonConvertedFilters: data
100       };
101     case filterBarActionTypes.SET_CONVERTED_VALUES:
102       return {
103         ...state,
104         nonConvertedFilters: {},
105         unifiedFilterValues: data.convertedValues,
106         vnfFilterValues: data.nonConvertedValues  // launching DI view via menu button requires this
107                                                   // to be set so visualizations and table will populate themselves
108       };
109     case filterBarActionTypes.CLEAR_FILTERS:
110       return {
111         ...state,
112         vnfFilters: {},
113         vnfFilterValues: {},
114         nonConvertedFilters: {},
115         unifiedFilterValues: {}
116       };
117   }
118
119   return state;
120 };