Move Linux versions chart to ChartJS.

This commit is contained in:
2019-11-03 03:36:49 +00:00
parent 6eb888c637
commit 9e693731cb
2 changed files with 20 additions and 19 deletions

View File

@@ -115,22 +115,6 @@ namespace DiscImageChef.Server.Controllers
ViewBag.repOperatingSystems = operatingSystems.OrderBy(os => os.name).ToList();
List<PieSeriesData> linuxPieData = new List<PieSeriesData>();
decimal linuxCount = ctx.OperatingSystems.Where(o => o.Name == PlatformID.Linux.ToString()).
Sum(o => o.Count);
foreach(OperatingSystem version in
ctx.OperatingSystems.Where(o => o.Name == PlatformID.Linux.ToString()))
linuxPieData.Add(new PieSeriesData
{
Name =
$"{DetectOS.GetPlatformName(PlatformID.Linux, version.Version)}{(string.IsNullOrEmpty(version.Version) ? "" : " ")}{version.Version}",
Y = (double?)(version.Count / linuxCount)
});
ViewData["linuxPieData"] = linuxPieData;
List<PieSeriesData> macosPieData = new List<PieSeriesData>();
decimal macosCount = ctx.OperatingSystems.Where(o => o.Name == PlatformID.MacOSX.ToString()).
@@ -531,5 +515,16 @@ namespace DiscImageChef.Server.Controllers
return Json(result);
}
public IActionResult GetLinuxData() => Json(new[]
{
ctx.OperatingSystems.Where(o => o.Name == PlatformID.Linux.ToString()).OrderByDescending(o => o.Count).
Take(10).
Select(x =>
$"{DetectOS.GetPlatformName(PlatformID.Linux, x.Version)}{(string.IsNullOrEmpty(x.Version) ? "" : " ")}{x.Version}").
ToArray(),
ctx.OperatingSystems.Where(o => o.Name == PlatformID.Linux.ToString()).OrderByDescending(o => o.Count).
Take(10).Select(x => x.Count.ToString()).ToArray()
});
}
}

View File

@@ -63,7 +63,8 @@
<div class="active carousel-item">
<canvas id="osChart"></canvas>
</div>
<div class="carousel-item" id="linuxChart">
<div class="carousel-item">
<canvas id="linuxChart"></canvas>
</div>
<div class="carousel-item" id="macosChart">
</div>
@@ -541,9 +542,14 @@ function DrawOsPie(osData)
DrawPie("osChart", "Operating systems", osData[0], osData[1])
}
window.onload = () => {
var foo = document.body.style['highcharts-color-0'];
function DrawLinuxPie(linuxData)
{
DrawPie("linuxChart", "Top 10 Linux versions", linuxData[0], linuxData[1])
}
window.onload = () =;> {
$.ajax({dataType: "json", url: "/Stats/GetOsData", success: DrawOsPie, cache:false});
$.ajax({dataType: "json", url: "/Stats/GetLinuxData", success: DrawLinuxPie, cache:false});
}
</script>