Small step to consolidating refresh interval types. Stop exporting from all embeddable apis. Conform to time filter one. (#38681)

This commit is contained in:
Stacey Gammon 2019-06-12 08:08:19 -04:00 committed by GitHub
parent a7abe1999d
commit cde4fb6ed5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 36 additions and 56 deletions

View file

@ -29,15 +29,7 @@ export {
isErrorEmbeddable,
} from './embeddables';
export {
Query,
TimeRange,
RefreshConfig,
ViewMode,
QueryLanguageType,
Trigger,
IRegistry,
} from './types';
export { Query, TimeRange, ViewMode, QueryLanguageType, Trigger, IRegistry } from './types';
export { actionRegistry, Action, ActionContext, IncompatibleActionError } from './actions';

View file

@ -54,11 +54,6 @@ export interface TimeRange {
from: string;
}
export interface RefreshConfig {
pause: boolean;
value: number;
}
export enum QueryLanguageType {
KUERY = 'kuery',
LUCENE = 'lucene',

View file

@ -20,7 +20,8 @@
/* eslint-disable @typescript-eslint/no-empty-interface */
import { createAction } from 'redux-actions';
import { Filters, Query, RefreshConfig, TimeRange } from 'ui/embeddable';
import { Filters, Query, TimeRange } from 'ui/embeddable';
import { RefreshInterval } from 'ui/timefilter/timefilter';
import { KibanaAction } from '../../selectors/types';
import { DashboardViewMode } from '../dashboard_view_mode';
import { PanelId } from '../selectors';
@ -68,7 +69,7 @@ export interface UpdateTimeRangeAction
extends KibanaAction<ViewActionTypeKeys.UPDATE_TIME_RANGE, TimeRange> {}
export interface UpdateRefreshConfigAction
extends KibanaAction<ViewActionTypeKeys.UPDATE_REFRESH_CONFIG, RefreshConfig> {}
extends KibanaAction<ViewActionTypeKeys.UPDATE_REFRESH_CONFIG, RefreshInterval> {}
export interface UpdateFiltersAction
extends KibanaAction<ViewActionTypeKeys.UPDATE_FILTERS, Filters> {}
@ -104,7 +105,7 @@ export const updateHidePanelTitles = createAction<boolean>(
ViewActionTypeKeys.UPDATE_HIDE_PANEL_TITLES
);
export const updateTimeRange = createAction<TimeRange>(ViewActionTypeKeys.UPDATE_TIME_RANGE);
export const updateRefreshConfig = createAction<RefreshConfig>(
export const updateRefreshConfig = createAction<RefreshInterval>(
ViewActionTypeKeys.UPDATE_REFRESH_CONFIG
);
export const updateFilters = createAction<Filters>(ViewActionTypeKeys.UPDATE_FILTERS);

View file

@ -27,6 +27,7 @@ import { TimeRange, Query } from 'ui/embeddable';
import { Timefilter } from 'ui/timefilter';
import { Filter } from '@kbn/es-query';
import moment from 'moment';
import { RefreshInterval } from 'ui/timefilter/timefilter';
import { DashboardViewMode } from './dashboard_view_mode';
import { FilterUtils } from './lib/filter_utils';
import { PanelUtils } from './panel/panel_utils';
@ -212,13 +213,8 @@ export class DashboardStateManager {
);
}
public handleRefreshConfigChange({ pause, value }: { pause: boolean; value: number }) {
store.dispatch(
updateRefreshConfig({
isPaused: pause,
interval: value,
})
);
public handleRefreshConfigChange(refreshInterval: RefreshInterval) {
store.dispatch(updateRefreshConfig(refreshInterval));
}
/**

View file

@ -20,8 +20,9 @@
import { cloneDeep } from 'lodash';
import { Reducer } from 'redux';
import { Filters, Query, RefreshConfig, TimeRange } from 'ui/embeddable';
import { Filters, Query, TimeRange } from 'ui/embeddable';
import { QueryLanguageType } from 'ui/embeddable/types';
import { RefreshInterval } from 'ui/timefilter/timefilter';
import { ViewActions, ViewActionTypeKeys } from '../actions';
import { DashboardViewMode } from '../dashboard_view_mode';
import { PanelId, ViewState } from '../selectors';
@ -61,7 +62,7 @@ const updateTimeRange = (view: ViewState, timeRange: TimeRange) => ({
timeRange,
});
const updateRefreshConfig = (view: ViewState, refreshConfig: RefreshConfig) => ({
const updateRefreshConfig = (view: ViewState, refreshConfig: RefreshInterval) => ({
...view,
refreshConfig,
});
@ -93,7 +94,7 @@ export const viewReducer: Reducer<ViewState> = (
isFullScreenMode: false,
query: { language: QueryLanguageType.LUCENE, query: '' },
timeRange: { to: 'now', from: 'now-15m' },
refreshConfig: { isPaused: true, interval: 0 },
refreshConfig: { pause: true, value: 0 },
useMargins: true,
viewMode: DashboardViewMode.VIEW,
},

View file

@ -18,9 +18,10 @@
*/
import _ from 'lodash';
import { ContainerState, EmbeddableMetadata, Query, RefreshConfig, TimeRange } from 'ui/embeddable';
import { ContainerState, EmbeddableMetadata, Query, TimeRange } from 'ui/embeddable';
import { EmbeddableCustomization } from 'ui/embeddable/types';
import { Filter } from '@kbn/es-query';
import { RefreshInterval } from 'ui/timefilter/timefilter';
import { DashboardViewMode } from '../dashboard_view_mode';
import {
DashboardMetadata,
@ -109,7 +110,7 @@ export const getMaximizedPanelId = (dashboard: DashboardState): PanelId | undefi
export const getTimeRange = (dashboard: DashboardState): TimeRange => dashboard.view.timeRange;
export const getRefreshConfig = (dashboard: DashboardState): RefreshConfig =>
export const getRefreshConfig = (dashboard: DashboardState): RefreshInterval =>
dashboard.view.refreshConfig;
export const getFilters = (dashboard: DashboardState): Filter[] => dashboard.view.filters;

View file

@ -17,8 +17,9 @@
* under the License.
*/
import { EmbeddableMetadata, Query, RefreshConfig, TimeRange } from 'ui/embeddable';
import { EmbeddableMetadata, Query, TimeRange } from 'ui/embeddable';
import { Filter } from '@kbn/es-query';
import { RefreshInterval } from 'ui/timefilter/timefilter';
import { DashboardViewMode } from '../dashboard_view_mode';
import { SavedDashboardPanelMap } from '../types';
@ -29,7 +30,7 @@ export interface ViewState {
readonly maximizedPanelId?: string;
readonly visibleContextMenuPanelId?: string;
readonly timeRange: TimeRange;
readonly refreshConfig: RefreshConfig;
readonly refreshConfig: RefreshInterval;
readonly hidePanelTitles: boolean;
readonly useMargins: boolean;
readonly query: Query;

View file

@ -21,12 +21,4 @@ export { EmbeddableFactory, OnEmbeddableStateChanged } from './embeddable_factor
export * from './embeddable';
export * from './context_menu_actions';
export { EmbeddableFactoriesRegistryProvider } from './embeddable_factories_registry';
export {
ContainerState,
EmbeddableState,
Query,
Filters,
Filter,
TimeRange,
RefreshConfig,
} from './types';
export { ContainerState, EmbeddableState, Query, Filters, Filter, TimeRange } from './types';

View file

@ -18,6 +18,7 @@
*/
import { Filter } from '@kbn/es-query';
import { RefreshInterval } from 'ui/timefilter/timefilter';
// Should go away soon once everyone imports from kbn/es-query
export { Filter } from '@kbn/es-query';
@ -27,11 +28,6 @@ export interface TimeRange {
from: string;
}
export interface RefreshConfig {
isPaused: boolean;
interval: number;
}
export interface FilterMeta {
disabled: boolean;
}
@ -62,7 +58,7 @@ export interface ContainerState {
filters: Filter[];
refreshConfig: RefreshConfig;
refreshConfig: RefreshInterval;
query: Query;

View file

@ -27,7 +27,7 @@ jest.mock('ui/chrome',
case 'timepicker:timeDefaults':
return { from: 'now-15m', to: 'now' };
case 'timepicker:refreshIntervalDefaults':
return { display: 'Off', pause: false, value: 0 };
return { pause: false, value: 0 };
default:
throw new Error(`Unexpected config key: ${key}`);
}

View file

@ -24,9 +24,7 @@ import moment = require('moment');
// NOTE: These types are somewhat guessed, they may be incorrect.
export interface RefreshInterval {
display?: string;
pause: boolean;
section?: string;
value: number;
}

View file

@ -27,7 +27,7 @@ jest.mock('ui/chrome',
case 'timepicker:timeDefaults':
return { from: 'now-15m', to: 'now' };
case 'timepicker:refreshIntervalDefaults':
return { display: 'Off', pause: false, value: 0 };
return { pause: false, value: 0 };
default:
throw new Error(`Unexpected config key: ${key}`);
}

View file

@ -13,7 +13,7 @@ function getUiSettingsClient() {
case 'timepicker:timeDefaults':
return { from: 'now-15m', to: 'now', mode: 'quick' };
case 'timepicker:refreshIntervalDefaults':
return { display: 'Off', pause: false, value: 0 };
return { pause: false, value: 0 };
case 'siem:defaultIndex':
return ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'];
default:

View file

@ -24,7 +24,7 @@ jest.mock(
case 'timepicker:timeDefaults':
return { from: 'now-15m', to: 'now', mode: 'quick' };
case 'timepicker:refreshIntervalDefaults':
return { display: 'Off', pause: false, value: 0 };
return { pause: false, value: 0 };
default:
throw new Error(`Unexpected config key: ${key}`);
}

View file

@ -72,7 +72,11 @@ export class MapEmbeddable extends Embeddable {
this._dispatchSetQuery(containerState);
}
if (!_.isEqual(containerState.refreshConfig, this._prevRefreshConfig)) {
const refreshConfig = {
isPaused: containerState.refreshConfig.pause,
interval: containerState.refreshConfig.value
};
if (!_.isEqual(refreshConfig, this._prevRefreshConfig)) {
this._dispatchSetRefreshConfig(containerState);
}
}
@ -89,8 +93,12 @@ export class MapEmbeddable extends Embeddable {
}
_dispatchSetRefreshConfig({ refreshConfig }) {
this._prevRefreshConfig = refreshConfig;
this._store.dispatch(setRefreshConfig(refreshConfig));
const internalRefreshConfig = {
isPaused: refreshConfig.pause,
interval: refreshConfig.value
};
this._prevRefreshConfig = internalRefreshConfig;
this._store.dispatch(setRefreshConfig(internalRefreshConfig));
}
/**

View file

@ -29,7 +29,6 @@ uiSettings.overrideLocalDefault('timepicker:timeDefaults', JSON.stringify({
// default autorefresh to active and refreshing every 10 seconds
uiSettings.overrideLocalDefault('timepicker:refreshIntervalDefaults', JSON.stringify({
display: '10 seconds',
pause: false,
value: 10000
}));