Skip to content

Commit

Permalink
Backport PR elastic#8371
Browse files Browse the repository at this point in the history
---------

**Commit 1:**
fixing charts to not render twice

* Original sha: f7f0f12
* Authored by ppisljar <[email protected]> on 2016-09-20T08:55:55Z

**Commit 2:**
fixing tests

* Original sha: 40234e8
* Authored by ppisljar <[email protected]> on 2016-09-21T07:21:01Z

**Commit 3:**
fixing based on Spencers comments

* Original sha: cdad772
* Authored by ppisljar <[email protected]> on 2016-09-21T19:41:57Z
  • Loading branch information
ppisljar committed Sep 22, 2016
1 parent 9876c88 commit 61d487c
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 6 deletions.
4 changes: 4 additions & 0 deletions src/ui/public/vislib/lib/resize_checker.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,10 @@ export default function ResizeCheckerFactory(Private, Notifier, $rootScope) {
}, ms));
};

ResizeChecker.prototype.stopSchedule = function () {
clearTimeout(this._timerId);
};

/**
* Signal that the ResizeChecker should shutdown.
*
Expand Down
10 changes: 9 additions & 1 deletion src/ui/public/vislib/vis.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export default function VisFactory(Private) {
}

this.handler = handlerTypes[chartType](this) || handlerTypes.column(this);
this._runOnHandler('render');
this._runWithoutResizeChecker('render');
};

/**
Expand All @@ -89,6 +89,14 @@ export default function VisFactory(Private) {
}
};

Vis.prototype._runWithoutResizeChecker = function (method) {
this.resizeChecker.stopSchedule();
this._runOnHandler(method);
this.resizeChecker.saveSize();
this.resizeChecker.saveDirty(false);
this.resizeChecker.continueSchedule();
};

Vis.prototype._runOnHandler = function (method) {
try {
this.handler[method]();
Expand Down
9 changes: 5 additions & 4 deletions src/ui/public/vislib_vis_type/__tests__/_vislib_renderbot.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,11 @@ describe('renderbot', function exportWrapper() {
let buildStub = sinon.stub(renderbot, 'buildChartData', _.constant(football));
let renderStub = sinon.stub(renderbot.vislibVis, 'render');

renderbot.render('flat data', persistedState);
expect(renderStub.callCount).to.be(1);
expect(buildStub.callCount).to.be(1);
expect(renderStub.firstCall.args[0]).to.be(football);
return renderbot.render('flat data', persistedState).then(() => {
expect(renderStub.callCount).to.be(1);
expect(buildStub.callCount).to.be(1);
expect(renderStub.firstCall.args[0]).to.be(football);
});
});
});

Expand Down
7 changes: 6 additions & 1 deletion src/ui/public/vislib_vis_type/vislib_renderbot.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,12 @@ module.exports = function VislibRenderbotFactory(Private) {
VislibRenderbot.prototype.buildChartData = buildChartData;
VislibRenderbot.prototype.render = function (esResponse) {
this.chartData = this.buildChartData(esResponse);
this.vislibVis.render(this.chartData, this.uiState);
// to allow legend to render first (wait for angular digest cycle to complete)
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(this.vislibVis.render(this.chartData, this.uiState));
});
});
};

VislibRenderbot.prototype.destroy = function () {
Expand Down

0 comments on commit 61d487c

Please sign in to comment.