Skip to content

Commit

Permalink
Small step to consolidating refresh interval types. Stop exporting fr…
Browse files Browse the repository at this point in the history
…om all embeddable apis. Conform to time filter one.
  • Loading branch information
stacey-gammon committed Jun 11, 2019
1 parent 0c29860 commit 0e1966f
Show file tree
Hide file tree
Showing 16 changed files with 36 additions and 56 deletions.
10 changes: 1 addition & 9 deletions src/legacy/core_plugins/embeddable_api/public/index.ts
Expand Up @@ -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';

Expand Down
5 changes: 0 additions & 5 deletions src/legacy/core_plugins/embeddable_api/public/types.ts
Expand Up @@ -54,11 +54,6 @@ export interface TimeRange {
from: string;
}

export interface RefreshConfig {
pause: boolean;
value: number;
}

export enum QueryLanguageType {
KUERY = 'kuery',
LUCENE = 'lucene',
Expand Down
Expand Up @@ -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';
Expand Down Expand Up @@ -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> {}
Expand Down Expand Up @@ -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);
Expand Down
Expand Up @@ -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';
Expand Down Expand Up @@ -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));
}

/**
Expand Down
Expand Up @@ -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';
Expand Down Expand Up @@ -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,
});
Expand Down Expand Up @@ -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,
},
Expand Down
Expand Up @@ -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,
Expand Down Expand Up @@ -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;
Expand Down
Expand Up @@ -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';

Expand All @@ -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;
Expand Down
10 changes: 1 addition & 9 deletions src/legacy/ui/public/embeddable/index.ts
Expand Up @@ -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';
8 changes: 2 additions & 6 deletions src/legacy/ui/public/embeddable/types.ts
Expand Up @@ -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';
Expand All @@ -27,11 +28,6 @@ export interface TimeRange {
from: string;
}

export interface RefreshConfig {
isPaused: boolean;
interval: number;
}

export interface FilterMeta {
disabled: boolean;
}
Expand Down Expand Up @@ -62,7 +58,7 @@ export interface ContainerState {

filters: Filter[];

refreshConfig: RefreshConfig;
refreshConfig: RefreshInterval;

query: Query;

Expand Down
Expand Up @@ -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}`);
}
Expand Down
2 changes: 0 additions & 2 deletions src/legacy/ui/public/timefilter/timefilter.d.ts
Expand Up @@ -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;
}

Expand Down
2 changes: 1 addition & 1 deletion src/legacy/ui/public/vis/vis_filters/brush_event.test.js
Expand Up @@ -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}`);
}
Expand Down
2 changes: 1 addition & 1 deletion x-pack/plugins/__mocks__/ui/chrome.js
Expand Up @@ -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:
Expand Down
Expand Up @@ -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}`);
}
Expand Down
14 changes: 11 additions & 3 deletions x-pack/plugins/maps/public/embeddable/map_embeddable.js
Expand Up @@ -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);
}
}
Expand All @@ -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));
}

/**
Expand Down
1 change: 0 additions & 1 deletion x-pack/plugins/monitoring/public/monitoring.js
Expand Up @@ -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
}));
Expand Down

0 comments on commit 0e1966f

Please sign in to comment.