From 15e16de2e3a4d031fbee02e14e4638b905e6b95c Mon Sep 17 00:00:00 2001 From: "rniwa@webkit.org" Date: Mon, 30 Nov 2015 21:09:42 +0000 Subject: [PATCH] Perf dashboard should always show comparison to baseline and target even if one is missing https://bugs.webkit.org/show_bug.cgi?id=151510 Reviewed by Darin Adler. Show the comparison status against the baseline when baseline is present but target is missing. To make the code more readable, this patch splits the logic into three cases: 1. Both baseline and target are present 2. Only baseline is present 3. Only target is present Also extracted a helper function to construct the label. * public/v2/app.js: (.labelForDiff): Added. (App.Pane.computeStatus): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@192817 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Websites/perf.webkit.org/ChangeLog | 20 ++++++++++++++++++++ Websites/perf.webkit.org/public/v2/app.js | 28 ++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/Websites/perf.webkit.org/ChangeLog b/Websites/perf.webkit.org/ChangeLog index 716efaf..8ca5680 100644 --- a/Websites/perf.webkit.org/ChangeLog +++ b/Websites/perf.webkit.org/ChangeLog @@ -1,3 +1,23 @@ +2015-11-30 Ryosuke Niwa + + Perf dashboard should always show comparison to baseline and target even if one is missing + https://bugs.webkit.org/show_bug.cgi?id=151510 + + Reviewed by Darin Adler. + + Show the comparison status against the baseline when baseline is present but target is missing. + + To make the code more readable, this patch splits the logic into three cases: + 1. Both baseline and target are present + 2. Only baseline is present + 3. Only target is present + + Also extracted a helper function to construct the label. + + * public/v2/app.js: + (.labelForDiff): Added. + (App.Pane.computeStatus): + 2015-11-23 Commit Queue Unreviewed, rolling out r192716 and r192717. diff --git a/Websites/perf.webkit.org/public/v2/app.js b/Websites/perf.webkit.org/public/v2/app.js index 0217ba0..0fc6277 100644 --- a/Websites/perf.webkit.org/public/v2/app.js +++ b/Websites/perf.webkit.org/public/v2/app.js @@ -486,15 +486,27 @@ App.Pane = Ember.Object.extend({ var className = ''; var formatter = d3.format('.3p'); + function labelForDiff(diff, name) { return formatter(Math.abs(diff)) + ' ' + (diff > 0 ? 'above' : 'below') + ' ' + name; } + var smallerIsBetter = chartData.smallerIsBetter; - if (diffFromBaseline !== undefined && diffFromBaseline > 0 == smallerIsBetter) { - label = formatter(Math.abs(diffFromBaseline)) + ' ' + (smallerIsBetter ? 'above' : 'below') + ' baseline'; - className = 'worse'; - } else if (diffFromTarget !== undefined && diffFromTarget < 0 == smallerIsBetter) { - label = formatter(Math.abs(diffFromTarget)) + ' ' + (smallerIsBetter ? 'below' : 'above') + ' target'; - className = 'better'; - } else if (diffFromTarget !== undefined) - label = formatter(Math.abs(diffFromTarget)) + ' until target'; + if (diffFromBaseline !== undefined && diffFromTarget !== undefined) { + if (diffFromBaseline > 0 == smallerIsBetter) { + label = labelForDiff(diffFromBaseline, 'baseline'); + className = 'worse'; + } else if (diffFromTarget < 0 == smallerIsBetter) { + label = labelForDiff(diffFromBaseline, 'target'); + className = 'better'; + } else + label = formatter(Math.abs(diffFromTarget)) + ' until target'; + } else if (diffFromBaseline !== undefined) { + label = labelForDiff(diffFromBaseline, 'baseline'); + if (diffFromBaseline > 0 == smallerIsBetter) + className = 'worse'; + } else if (diffFromTarget !== undefined) { + label = labelForDiff(diffFromTarget, 'target'); + if (diffFromTarget < 0 == smallerIsBetter) + className = 'better'; + } var valueDelta = null; var relativeDelta = null; -- 1.8.3.1