From d885974846264a89dac5bbe57e0f5ada3f9fe2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Fri, 15 Jan 2016 17:49:12 -0500 Subject: [PATCH 1/5] rename 'module' key '_module': - not necessary but better for consistency while deconstructing the modules object. --- src/plots/plots.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plots/plots.js b/src/plots/plots.js index 915b4706030..7e5ea831c18 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -52,7 +52,7 @@ plots.register = function(_module, thisType, categoriesIn, meta) { } modules[thisType] = { - module: _module, + _module: _module, categories: categoryObj }; @@ -79,7 +79,7 @@ plots.getModule = function(trace) { var _module = modules[getTraceType(trace)]; if(!_module) return false; - return _module.module; + return _module._module; }; @@ -678,7 +678,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData) { // trace module layout defaults var traceTypes = Object.keys(modules); for(i = 0; i < traceTypes.length; i++) { - _module = modules[allTypes[i]].module; + _module = modules[allTypes[i]]._module; if(_module.supplyLayoutDefaults) { _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData); From 64ce0764c390350fccea0a142a22e45e5f52644e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Fri, 15 Jan 2016 17:54:21 -0500 Subject: [PATCH 2/5] don't call Pie.plot in subplot loop: - this didn't cause any errors, but is unnecessary. --- src/plot_api/plot_api.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 38b2f8ae51a..1dd813035e3 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -312,7 +312,8 @@ Plotly.plot = function(gd, data, layout, config) { for(j = 0; j < modules.length; j++) { _module = modules[j]; - if(!_module.plot) continue; + + if(!_module.plot && (_module.name === 'pie')) continue; // plot all traces of this type on this subplot at once cdModule = getCdModule(cdSubplot, _module); From 2981ebbfe13647cbb0c96f5e305d3983da73ed99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Fri, 15 Jan 2016 17:54:52 -0500 Subject: [PATCH 3/5] rm explicit dependency on Pie in plot routine --- src/plot_api/plot_api.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 1dd813035e3..538f912488b 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -21,8 +21,6 @@ var Queue = require('../lib/queue'); var Plots = require('../plots/plots'); var Fx = require('../plots/cartesian/graph_interact'); -var Pie = require('../traces/pie'); - var Color = require('../components/color'); var Drawing = require('../components/drawing'); var ErrorBars = require('../components/errorbars'); @@ -333,10 +331,13 @@ Plotly.plot = function(gd, data, layout, config) { } } - // now draw stuff not on subplots (ie, pies) - // TODO: gotta be a better way to handle this - var cdPie = getCdModule(calcdata, Pie); - if(cdPie.length) Pie.plot(gd, cdPie); + // now draw stuff not on subplots (ie, only pies at the moment) + if(fullLayout._hasPie) { + var Pie = Plots.modules.pie._module; + var cdPie = getCdModule(calcdata, Pie); + + if(cdPie.length) Pie.plot(gd, cdPie); + } // styling separate from drawing Plots.style(gd); From 002557bb1816994efd3e9d9e0e8fd7f9d4383830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Fri, 15 Jan 2016 17:55:54 -0500 Subject: [PATCH 4/5] lint --- src/plot_api/plot_api.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 538f912488b..7ac18b1314b 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -266,12 +266,16 @@ Plotly.plot = function(gd, data, layout, config) { function getCdModule(cdSubplot, _module) { var cdModule = []; - var i, cd, trace; - for (i = 0; i < cdSubplot.length; i++) { - cd = cdSubplot[i]; - trace = cd[0].trace; - if (trace._module === _module && trace.visible === true) cdModule.push(cd); + + for(var i = 0; i < cdSubplot.length; i++) { + var cd = cdSubplot[i]; + var trace = cd[0].trace; + + if((trace._module === _module) && (trace.visible === true)) { + cdModule.push(cd); + } } + return cdModule; } @@ -299,7 +303,7 @@ Plotly.plot = function(gd, data, layout, config) { for (i = 0; i < subplots.length; i++) { subplot = subplots[i]; - subplotInfo = gd._fullLayout._plots[subplot]; + subplotInfo = fullLayout._plots[subplot]; cdSubplot = getCdSubplot(calcdata, subplot); cdError = []; @@ -325,7 +329,7 @@ Plotly.plot = function(gd, data, layout, config) { } // finally do all error bars at once - if(gd._fullLayout._hasCartesian) { + if(fullLayout._hasCartesian) { ErrorBars.plot(gd, subplotInfo, cdError); Lib.markTime('done ErrorBars'); } From be2e6c927414b7a9277a88e7c27aa04d624467e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 19 Jan 2016 12:26:53 -0500 Subject: [PATCH 5/5] use getModule instead hidden attr --- src/plot_api/plot_api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 7ac18b1314b..86d92cdfea4 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -337,7 +337,7 @@ Plotly.plot = function(gd, data, layout, config) { // now draw stuff not on subplots (ie, only pies at the moment) if(fullLayout._hasPie) { - var Pie = Plots.modules.pie._module; + var Pie = Plots.getModule('pie'); var cdPie = getCdModule(calcdata, Pie); if(cdPie.length) Pie.plot(gd, cdPie);