[8.5] [Dashboard] [Controls] Skip First Reload (#142868) (#142908)

* [Dashboard] [Controls] Skip First Reload (#142868)

* Skip first reload of dashboard controls to ensure only the filters from control group initialization are applied

(cherry picked from commit 5a17c640fd)

* temporarily skip problematic test suite

Co-authored-by: Devon Thomson <devon.thomson@elastic.co>
This commit is contained in:
Kibana Machine 2022-10-12 14:16:10 -06:00 committed by GitHub
parent 48fa626895
commit 7294e29d24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 10 deletions

View file

@ -153,13 +153,17 @@ export class DashboardContainer extends Container<InheritedChildInput, Dashboard
isProjectEnabledInLabs('labs:dashboard:dashboardControls')
) {
this.controlGroup = controlGroup;
syncDashboardControlGroup({ dashboardContainer: this, controlGroup: this.controlGroup }).then(
(result) => {
this.controlGroup.untilReady().then(() => {
if (!this.controlGroup || isErrorEmbeddable(this.controlGroup)) return;
syncDashboardControlGroup({
dashboardContainer: this,
controlGroup: this.controlGroup,
}).then((result) => {
if (!result) return;
const { onDestroyControlGroup } = result;
this.onDestroyControlGroup = onDestroyControlGroup;
}
);
});
});
}
this.subscriptions.add(

View file

@ -10,7 +10,7 @@ import _ from 'lodash';
import { Subscription } from 'rxjs';
import deepEqual from 'fast-deep-equal';
import { compareFilters, COMPARE_ALL_OPTIONS, type Filter } from '@kbn/es-query';
import { debounceTime, distinctUntilChanged, distinctUntilKeyChanged } from 'rxjs/operators';
import { debounceTime, distinctUntilChanged, distinctUntilKeyChanged, skip } from 'rxjs/operators';
import {
ControlGroupInput,
@ -141,11 +141,10 @@ export const syncDashboardControlGroup = async ({
.pipe(
distinctUntilChanged(({ filters: filtersA }, { filters: filtersB }) =>
compareAllFilters(filtersA, filtersB)
)
),
skip(1) // skip first filter output because it will have been applied in initialize
)
.subscribe(() => {
dashboardContainer.updateInput({ lastReloadRequestTime: Date.now() });
})
.subscribe(() => dashboardContainer.updateInput({ lastReloadRequestTime: Date.now() }))
);
subscriptions.add(

View file

@ -37,7 +37,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const spaces = getService('spaces');
const elasticChart = getService('elasticChart');
describe('Dashboard to dashboard drilldown', function () {
// Skipping in 8.5 until https://github.com/elastic/kibana/pull/143220 is merged and backported...
describe.skip('Dashboard to dashboard drilldown', function () {
describe('Create & use drilldowns', () => {
before(async () => {
log.debug('Dashboard Drilldowns:initTests');