Fix timelion data-render-complete attribute on resize (#29320)

* Fix timelion missing renderer on resize

Adding a watch to the renderComplete promise to fix missing rendering of chart
when the resize observer detect a change in size.
Removed the existing resize observer.

* Revert removing observe resize

It's need on the timelion app to resize since that app doesn't use
visualize loader

* Change double watch to watchgroup

* Reenable skipped dashboard test
This commit is contained in:
Marco Vettorello 2019-01-25 15:50:04 +01:00 committed by GitHub
parent af4dc9ad95
commit b3eacc04d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 11 deletions

View file

@ -26,43 +26,44 @@ require('ui/modules')
scope: {
seriesList: '=chart', // The flot object, data, config and all
search: '=', // The function to execute to kick off a search
interval: '=' // Required for formatting x-axis ticks
interval: '=', // Required for formatting x-axis ticks
rerenderTrigger: '=',
},
link: function ($scope, $elem) {
const panelRegistry = Private(panelRegistryProvider);
let panelScope = $scope.$new(true);
function render(seriesList) {
function render() {
panelScope.$destroy();
if (!seriesList) return;
if (!$scope.seriesList) return;
seriesList.render = seriesList.render || {
$scope.seriesList.render = $scope.seriesList.render || {
type: 'timechart'
};
const panelSchema = panelRegistry.byName[seriesList.render.type];
const panelSchema = panelRegistry.byName[$scope.seriesList.render.type];
if (!panelSchema) {
$elem.text(
i18n('timelion.chart.seriesList.noSchemaWarning', {
defaultMessage: 'No such panel type: {renderType}',
values: { renderType: seriesList.render.type },
values: { renderType: $scope.seriesList.render.type },
})
);
return;
}
panelScope = $scope.$new(true);
panelScope.seriesList = seriesList;
panelScope.seriesList = $scope.seriesList;
panelScope.interval = $scope.interval;
panelScope.search = $scope.search;
panelSchema.render(panelScope, $elem);
}
$scope.$watch('seriesList', render);
$scope.$watchGroup(['seriesList', 'rerenderTrigger'], render);
}
};
});

View file

@ -1,3 +1,3 @@
<div ng-controller="TimelionVisController" class="timVis">
<div chart="esResponse.sheet[0]" class="timChart" interval="visState.params.interval"></div>
<div chart="esResponse.sheet[0]" rerender-trigger="renderComplete" class="timChart" interval="visState.params.interval"></div>
</div>

View file

@ -90,8 +90,7 @@ export default function ({ getService, getPageObjects }) {
await dashboardExpect.vegaTextsDoNotExist(['5,000']);
};
// FLAKY: https://github.com/elastic/kibana/issues/24292
describe.skip('dashboard embeddable rendering', function describeIndexTests() {
describe('dashboard embeddable rendering', function describeIndexTests() {
before(async () => {
await PageObjects.dashboard.clickNewDashboard();