2019-01-17 18:51:07 +01:00
|
|
|
import { DataSourcesState, Plugin } from 'app/types';
|
|
|
|
|
import { DataSourceSettings } from '@grafana/ui/src/types';
|
2018-09-28 11:05:34 +02:00
|
|
|
import { Action, ActionTypes } from './actions';
|
2019-01-17 18:51:07 +01:00
|
|
|
import { LayoutModes } from 'app/core/components/LayoutSelector/LayoutSelector';
|
2018-09-28 11:05:34 +02:00
|
|
|
|
|
|
|
|
const initialState: DataSourcesState = {
|
2019-01-17 18:51:07 +01:00
|
|
|
dataSources: [] as DataSourceSettings[],
|
|
|
|
|
dataSource: {} as DataSourceSettings,
|
2019-01-04 09:58:24 +01:00
|
|
|
layoutMode: LayoutModes.List,
|
2018-09-28 11:05:34 +02:00
|
|
|
searchQuery: '',
|
2018-09-28 11:29:18 +02:00
|
|
|
dataSourcesCount: 0,
|
2018-10-03 16:04:30 +02:00
|
|
|
dataSourceTypes: [] as Plugin[],
|
2018-10-04 11:42:17 +02:00
|
|
|
dataSourceTypeSearchQuery: '',
|
2018-10-11 11:49:34 +02:00
|
|
|
hasFetched: false,
|
2019-01-28 16:25:03 +01:00
|
|
|
isLoadingDataSources: false,
|
2018-10-08 16:01:17 +02:00
|
|
|
dataSourceMeta: {} as Plugin,
|
2018-09-28 11:05:34 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const dataSourcesReducer = (state = initialState, action: Action): DataSourcesState => {
|
|
|
|
|
switch (action.type) {
|
|
|
|
|
case ActionTypes.LoadDataSources:
|
2018-10-11 11:49:34 +02:00
|
|
|
return { ...state, hasFetched: true, dataSources: action.payload, dataSourcesCount: action.payload.length };
|
2018-09-28 11:05:34 +02:00
|
|
|
|
2018-10-08 14:09:02 +02:00
|
|
|
case ActionTypes.LoadDataSource:
|
|
|
|
|
return { ...state, dataSource: action.payload };
|
|
|
|
|
|
2018-09-28 11:05:34 +02:00
|
|
|
case ActionTypes.SetDataSourcesSearchQuery:
|
|
|
|
|
return { ...state, searchQuery: action.payload };
|
|
|
|
|
|
|
|
|
|
case ActionTypes.SetDataSourcesLayoutMode:
|
|
|
|
|
return { ...state, layoutMode: action.payload };
|
2018-10-03 09:56:15 +02:00
|
|
|
|
|
|
|
|
case ActionTypes.LoadDataSourceTypes:
|
2019-01-28 16:25:03 +01:00
|
|
|
return { ...state, dataSourceTypes: [], isLoadingDataSources: true };
|
|
|
|
|
|
|
|
|
|
case ActionTypes.LoadedDataSourceTypes:
|
|
|
|
|
return { ...state, dataSourceTypes: action.payload, isLoadingDataSources: false };
|
2018-10-04 11:42:17 +02:00
|
|
|
|
|
|
|
|
case ActionTypes.SetDataSourceTypeSearchQuery:
|
|
|
|
|
return { ...state, dataSourceTypeSearchQuery: action.payload };
|
2018-10-08 16:01:17 +02:00
|
|
|
|
|
|
|
|
case ActionTypes.LoadDataSourceMeta:
|
|
|
|
|
return { ...state, dataSourceMeta: action.payload };
|
2018-10-31 14:28:16 +01:00
|
|
|
|
|
|
|
|
case ActionTypes.SetDataSourceName:
|
|
|
|
|
return { ...state, dataSource: { ...state.dataSource, name: action.payload } };
|
2018-12-05 11:47:02 +01:00
|
|
|
|
|
|
|
|
case ActionTypes.SetIsDefault:
|
|
|
|
|
return { ...state, dataSource: { ...state.dataSource, isDefault: action.payload } };
|
2018-09-28 11:05:34 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return state;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
dataSources: dataSourcesReducer,
|
|
|
|
|
};
|