From 74f5c85de8016005b7d333352d18eaa12ce33a5c Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 3 Nov 2019 04:47:34 +0000 Subject: [PATCH] Move real media chart to ChartJS. --- .../Controllers/StatsController.cs | 36 +++++++++++++++++++ DiscImageChef.Server/Views/Stats/Index.cshtml | 9 ++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/DiscImageChef.Server/Controllers/StatsController.cs b/DiscImageChef.Server/Controllers/StatsController.cs index 17c08d91..cc914745 100644 --- a/DiscImageChef.Server/Controllers/StatsController.cs +++ b/DiscImageChef.Server/Controllers/StatsController.cs @@ -535,5 +535,41 @@ namespace DiscImageChef.Server.Controllers return Json(result); } + + public IActionResult GetRealMediaData() + { + Media[] realMedias = ctx.Medias.Where(o => o.Real).OrderByDescending(o => o.Count).Take(10).ToArray(); + + foreach (Media media in realMedias) + { + try + { + MediaType. + MediaTypeToString((CommonTypes.MediaType)Enum.Parse(typeof(CommonTypes.MediaType), media.Type), + out string type, out string subtype); + + media.Type = $"{type} ({subtype})"; + } + catch + { + // Could not get media type/subtype pair from type, so just leave it as is + } + } + + string[][] result = + { + realMedias.Select(v => v.Type).ToArray(), + realMedias.Select(x => x.Count.ToString()).ToArray() + }; + + if(result[0].Length < 10) + return Json(result); + + result[0][9] = "Other"; + + result[1][9] = (ctx.Medias.Where(o => o.Real).Sum(o => o.Count) - result[1].Take(9).Sum(long.Parse)).ToString(); + + return Json(result); + } } } \ No newline at end of file diff --git a/DiscImageChef.Server/Views/Stats/Index.cshtml b/DiscImageChef.Server/Views/Stats/Index.cshtml index b53d279c..19ed69f4 100644 --- a/DiscImageChef.Server/Views/Stats/Index.cshtml +++ b/DiscImageChef.Server/Views/Stats/Index.cshtml @@ -389,7 +389,8 @@ @if (ViewBag.repRealMedia != null) {
-
+
+
@@ -601,6 +602,11 @@ function DrawVirtualMediaPie(virtualMediaData) DrawPie("virtualMediaChart", `Top ${virtualMediaData[0].length} media types found in images`, virtualMediaData[0], virtualMediaData[1]) } +function DrawRealMediaPie(realMediaData) +{ + DrawPie("realMediaChart", `Top ${realMediaData[0].length} media types found in devices`, realMediaData[0], realMediaData[1]) +} + window.onload = () => { $.ajax({dataType: "json", url: "/Stats/GetOsData", success: DrawOsPie, cache:false}); $.ajax({dataType: "json", url: "/Stats/GetLinuxData", success: DrawLinuxPie, cache:false}); @@ -613,6 +619,7 @@ window.onload = () => { $.ajax({dataType: "json", url: "/Stats/GetPartitionsData", success: DrawPartitionsPie, cache:false}); $.ajax({dataType: "json", url: "/Stats/GetFilesystemsData", success: DrawFilesystemsPie, cache:false}); $.ajax({dataType: "json", url: "/Stats/GetVirtualMediaData", success: DrawVirtualMediaPie, cache:false}); + $.ajax({dataType: "json", url: "/Stats/GetRealMediaData", success: DrawRealMediaPie, cache:false}); } \ No newline at end of file