Fix tooltips with zoom (#3186)

This commit is contained in:
LepilkinaElena
2019-07-15 15:08:39 +03:00
committed by GitHub
parent 9c38ff9c20
commit b5e3de324d
@@ -69,11 +69,22 @@ fun <T : Any> separateValues(values: String, valuesContainer: MutableMap<String,
} }
} }
fun getBuildsGroup(builds: List<Build>) = buildsNumberToShow?.let {
val buildsGroups = builds.chunked(buildsNumberToShow!!)
val expectedGroup = buildsGroups.size - 1 + stageToShow
val index = when {
expectedGroup < 0 -> 0
expectedGroup >= buildsGroups.size -> buildsGroups.size - 1
else -> expectedGroup
}
buildsGroups[index]
} ?: builds
fun getChartData(labels: List<String>, valuesList: Collection<List<*>>, stageToShow: Int = 0, fun getChartData(labels: List<String>, valuesList: Collection<List<*>>, stageToShow: Int = 0,
buildsNumber: Int? = null, classNames: Array<String>? = null): dynamic { buildsNumber: Int? = null, classNames: Array<String>? = null): dynamic {
val chartData: dynamic = object{} val chartData: dynamic = object{}
// Show only some part of data. // Show only some part of data.
println("BuildsNumber $buildsNumber")
val (labelsData, valuesData) = buildsNumber?.let { val (labelsData, valuesData) = buildsNumber?.let {
println("Divide on ${labels.size / buildsNumber}") println("Divide on ${labels.size / buildsNumber}")
val labelsGroups = labels.chunked(buildsNumber) val labelsGroups = labels.chunked(buildsNumber)
@@ -147,8 +158,9 @@ fun customizeChart(chart: dynamic, chartContainer: String, jquerySelector: dynam
chart.on("draw", { data -> chart.on("draw", { data ->
var element = data.element var element = data.element
if (data.type == "point") { if (data.type == "point") {
val buildsGroup = getBuildsGroup(builds)
val pointSize = 12 val pointSize = 12
val currentBuild = builds.get(data.index) val currentBuild = buildsGroup.get(data.index)
// Higlight builds with failures. // Higlight builds with failures.
if (currentBuild.failuresNumber > 0) { if (currentBuild.failuresNumber > 0) {
val svgParameters: dynamic = object{} val svgParameters: dynamic = object{}
@@ -173,7 +185,7 @@ fun customizeChart(chart: dynamic, chartContainer: String, jquerySelector: dynam
val linkToDetailedInfo = "https://kotlin-native-performance.labs.jb.gg/?report=bintray:" + val linkToDetailedInfo = "https://kotlin-native-performance.labs.jb.gg/?report=bintray:" +
"${currentBuild.buildNumber}:${parameters["target"]}:nativeReport.json" + "${currentBuild.buildNumber}:${parameters["target"]}:nativeReport.json" +
"${if (data.index - 1 >= 0) "${if (data.index - 1 >= 0)
"&compareTo=bintray:${builds.get(data.index - 1).buildNumber}:${parameters["target"]}:nativeReport.json" "&compareTo=bintray:${buildsGroup.get(data.index - 1).buildNumber}:${parameters["target"]}:nativeReport.json"
else ""}" else ""}"
val information = buildString { val information = buildString {
append("<a href=\"$linkToDetailedInfo\">${currentBuild.buildNumber}</a><br>") append("<a href=\"$linkToDetailedInfo\">${currentBuild.buildNumber}</a><br>")
@@ -209,10 +221,14 @@ fun customizeChart(chart: dynamic, chartContainer: String, jquerySelector: dynam
}) })
} }
var stageToShow = 0
var buildsNumberToShow: Int? = null
fun main(args: Array<String>) { fun main(args: Array<String>) {
val serverUrl = "https://kotlin-native-perf-summary.labs.jb.gg" val serverUrl = "https://kotlin-native-perf-summary.labs.jb.gg"
var buildsNumberToShow: Int? = null buildsNumberToShow = null
var stageToShow = 0 stageToShow = 0
val zoomRatio = 3 val zoomRatio = 3
// Get parameters from request. // Get parameters from request.