From 6eb888c637a9d31f226b198cedd40fa628e94ac1 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 3 Nov 2019 03:20:04 +0000 Subject: [PATCH] Move OS chart to ChartJS. --- .../.idea/watcherTasks.xml | 25 ++++++ .../Controllers/StatsController.cs | 37 ++++---- .../DiscImageChef.Server.csproj | 2 + .../Views/Shared/_Layout.cshtml | 4 +- DiscImageChef.Server/Views/Stats/Index.cshtml | 89 +++++++++---------- DiscImageChef.Server/wwwroot/js/colors/dos.js | 16 ++++ DiscImageChef.Server/wwwroot/js/colors/mac.js | 17 ++++ 7 files changed, 123 insertions(+), 67 deletions(-) create mode 100644 .idea/.idea.DiscImageChef.Server/.idea/watcherTasks.xml create mode 100644 DiscImageChef.Server/wwwroot/js/colors/dos.js create mode 100644 DiscImageChef.Server/wwwroot/js/colors/mac.js diff --git a/.idea/.idea.DiscImageChef.Server/.idea/watcherTasks.xml b/.idea/.idea.DiscImageChef.Server/.idea/watcherTasks.xml new file mode 100644 index 00000000..c70980f4 --- /dev/null +++ b/.idea/.idea.DiscImageChef.Server/.idea/watcherTasks.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/DiscImageChef.Server/Controllers/StatsController.cs b/DiscImageChef.Server/Controllers/StatsController.cs index 39ba8b2c..6dd4195a 100644 --- a/DiscImageChef.Server/Controllers/StatsController.cs +++ b/DiscImageChef.Server/Controllers/StatsController.cs @@ -115,23 +115,6 @@ namespace DiscImageChef.Server.Controllers ViewBag.repOperatingSystems = operatingSystems.OrderBy(os => os.name).ToList(); - List osPieData = new List(); - - decimal totalOsCount = ctx.OperatingSystems.Sum(o => o.Count); - - foreach(string os in ctx.OperatingSystems.Select(o => o.Name).Distinct().ToList()) - { - decimal osCount = ctx.OperatingSystems.Where(o => o.Name == os).Sum(o => o.Count); - - osPieData.Add(new PieSeriesData - { - Name = DetectOS.GetPlatformName((PlatformID)Enum.Parse(typeof(PlatformID), os)), - Y = (double?)(osCount / totalOsCount), Sliced = os == "Linux", Selected = os == "Linux" - }); - } - - ViewData["osPieData"] = osPieData; - List linuxPieData = new List(); decimal linuxCount = ctx.OperatingSystems.Where(o => o.Name == PlatformID.Linux.ToString()). @@ -528,5 +511,25 @@ namespace DiscImageChef.Server.Controllers return null; } + + public IActionResult GetOsData() + { + var query = ctx.OperatingSystems.GroupBy(x => new + { + x.Name + }, x => x.Count).Select(g => new + { + g.Key.Name, Count = g.Sum() + }); + + string[][] result = new string[2][]; + result[0] = query.Select(x => x.Name).ToArray(); + result[1] = query.Select(x => x.Count.ToString()).ToArray(); + + for(int i = 0; i < result[0].Length; i++) + result[0][i] = DetectOS.GetPlatformName((PlatformID)Enum.Parse(typeof(PlatformID), result[0][i])); + + return Json(result); + } } } \ No newline at end of file diff --git a/DiscImageChef.Server/DiscImageChef.Server.csproj b/DiscImageChef.Server/DiscImageChef.Server.csproj index 3279a656..7e8daa9f 100644 --- a/DiscImageChef.Server/DiscImageChef.Server.csproj +++ b/DiscImageChef.Server/DiscImageChef.Server.csproj @@ -66,6 +66,8 @@ <_ContentIncludedByDefault Remove="wwwroot\js\site.js" /> + <_ContentIncludedByDefault Remove="wwwroot\css\js\colors\dos.js" /> + <_ContentIncludedByDefault Remove="wwwroot\css\js\colors\mac.js" /> diff --git a/DiscImageChef.Server/Views/Shared/_Layout.cshtml b/DiscImageChef.Server/Views/Shared/_Layout.cshtml index 72b602ac..3828c513 100644 --- a/DiscImageChef.Server/Views/Shared/_Layout.cshtml +++ b/DiscImageChef.Server/Views/Shared/_Layout.cshtml @@ -41,10 +41,12 @@ case 24: + break; default: + break; } @@ -90,7 +92,7 @@ Claunia.com - + diff --git a/DiscImageChef.Server/Views/Stats/Index.cshtml b/DiscImageChef.Server/Views/Stats/Index.cshtml index 7420b3aa..78955d8d 100644 --- a/DiscImageChef.Server/Views/Stats/Index.cshtml +++ b/DiscImageChef.Server/Views/Stats/Index.cshtml @@ -60,7 +60,8 @@ - - -@{ - /* string highChartsTitleColor; - string highChartsDataLabelColor; + + \ No newline at end of file diff --git a/DiscImageChef.Server/wwwroot/js/colors/dos.js b/DiscImageChef.Server/wwwroot/js/colors/dos.js new file mode 100644 index 00000000..575f430f --- /dev/null +++ b/DiscImageChef.Server/wwwroot/js/colors/dos.js @@ -0,0 +1,16 @@ +var themeColors = + [ + "#FF5555", + "#00AA00", + "#AA5500", + "#AA55AA", + "#FF55FF", + "#55FFFF", + "#FFFF55", + "#AA00FF", + "#00AAAA", + "#AAAAAA" +]; + +var chartDataLabelColor = "#FFFFFF"; +var chartTitleColor = "#AAAAAA"; \ No newline at end of file diff --git a/DiscImageChef.Server/wwwroot/js/colors/mac.js b/DiscImageChef.Server/wwwroot/js/colors/mac.js new file mode 100644 index 00000000..a34b636e --- /dev/null +++ b/DiscImageChef.Server/wwwroot/js/colors/mac.js @@ -0,0 +1,17 @@ +var themeColors = + [ + "#1FB714", + "#FBF305", + "#FF6403", + "#562C05", + "#DD0907", + "#F20884", + "#4700A5", + "#0000D3", + "#02ABEA", + "#90713A", + "#006412" + ]; + +var chartDataLabelColor = "#000000"; +var chartTitleColor = "#000000"; \ No newline at end of file