Move real media chart to ChartJS.

This commit is contained in:
2019-11-03 04:47:34 +00:00
parent f7441e1b9b
commit 74f5c85de8
2 changed files with 44 additions and 1 deletions

View File

@@ -535,5 +535,41 @@ namespace DiscImageChef.Server.Controllers
return Json(result); 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);
}
} }
} }

View File

@@ -389,7 +389,8 @@
@if (ViewBag.repRealMedia != null) @if (ViewBag.repRealMedia != null)
{ {
<div class="container mt-3" id="divRealMedia"> <div class="container mt-3" id="divRealMedia">
<div class="container" id="realMediaChart"> <div class="container">
<canvas id="realMediaChart"></canvas>
</div> </div>
<div class="accordion mt-3" id="realMediaAccordion"> <div class="accordion mt-3" id="realMediaAccordion">
<div class="card"> <div class="card">
@@ -601,6 +602,11 @@ function DrawVirtualMediaPie(virtualMediaData)
DrawPie("virtualMediaChart", `Top ${virtualMediaData[0].length} media types found in images`, virtualMediaData[0], virtualMediaData[1]) 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 = () => { 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});
@@ -613,6 +619,7 @@ window.onload = () => {
$.ajax({dataType: "json", url: "/Stats/GetPartitionsData", success: DrawPartitionsPie, cache:false}); $.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/GetFilesystemsData", success: DrawFilesystemsPie, cache:false});
$.ajax({dataType: "json", url: "/Stats/GetVirtualMediaData", success: DrawVirtualMediaPie, cache:false}); $.ajax({dataType: "json", url: "/Stats/GetVirtualMediaData", success: DrawVirtualMediaPie, cache:false});
$.ajax({dataType: "json", url: "/Stats/GetRealMediaData", success: DrawRealMediaPie, cache:false});
} }
</script> </script>