Move macOS versions chart to ChartJS.

This commit is contained in:
2019-11-03 03:43:34 +00:00
parent 9e693731cb
commit d524aa9ffd
3 changed files with 24 additions and 19 deletions

View File

@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="com.jetbrains.rider.android.RiderAndroidMiscFileCreationComponent"> <component name="com.jetbrains.rider.android.RiderAndroidMiscFileCreationComponent">
<option name="ENSURE_MISC_FILE_EXISTS" value="true" /> <option name="ENSURE_MISC_FILE_EXISTS" value="true" />
</component> </component>

View File

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

View File

@@ -66,7 +66,8 @@
<div class="carousel-item"> <div class="carousel-item">
<canvas id="linuxChart"></canvas> <canvas id="linuxChart"></canvas>
</div> </div>
<div class="carousel-item" id="macosChart"> <div class="carousel-item">
<canvas id="macosChart"></canvas>
</div> </div>
<div class="carousel-item" id="windowsChart"> <div class="carousel-item" id="windowsChart">
</div> </div>
@@ -544,12 +545,18 @@ function DrawOsPie(osData)
function DrawLinuxPie(linuxData) function DrawLinuxPie(linuxData)
{ {
DrawPie("linuxChart", "Top 10 Linux versions", linuxData[0], linuxData[1]) DrawPie("linuxChart", `Top ${linuxData[0].length} Linux versions`, linuxData[0], linuxData[1])
} }
window.onload = () =;> { function DrawMacOsPie(macosData)
{
DrawPie("macosChart", `Top ${macosData[0].length} macOS versions`, macosData[0], macosData[1])
}
window.onload = () => {
$.ajax({dataType: "json", url: "/Stats/GetOsData", success: DrawOsPie, cache:false}); $.ajax({dataType: "json", url: "/Stats/GetOsData", success: DrawOsPie, cache:false});
$.ajax({dataType: "json", url: "/Stats/GetLinuxData", success: DrawLinuxPie, cache:false}); $.ajax({dataType: "json", url: "/Stats/GetLinuxData", success: DrawLinuxPie, cache:false});
$.ajax({dataType: "json", url: "/Stats/GetMacOsData", success: DrawMacOsPie, cache:false});
} }
</script> </script>