Making displayed size a bit more friendly

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2010-11-04 22:25:08 -07:00
parent ac750ff42e
commit 35d8f46d92
7 changed files with 102 additions and 4 deletions

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
namespace Orchard.Media.Extensions {
public static class LongExtensions {
private static List<string> units = new List<string>(5) {"B", "KB", "MB", "GB", "TB"}; // Not going further. Anything beyond MB is probably overkill anyway.
public static string ToFriendlySizeString(this long bytes) {
var somethingMoreFriendly = TryForTheNextUnit(bytes, units[0]);
var roundingPlaces = units[0] == somethingMoreFriendly.Item2 ? 0 : units.IndexOf(somethingMoreFriendly.Item2) - 1;
return string.Format("{0} {1}", Math.Round(somethingMoreFriendly.Item1, roundingPlaces), somethingMoreFriendly.Item2);
}
private static Tuple<double, string> TryForTheNextUnit(double size, string unit) {
var indexOfUnit = units.IndexOf(unit);
if (size > 1024 && indexOfUnit < units.Count - 1) {
size = size/1024;
unit = units[indexOfUnit + 1];
return TryForTheNextUnit(size, unit);
}
return new Tuple<double, string>(size, unit);
}
}
}

View File

@@ -71,6 +71,7 @@
<ItemGroup>
<Compile Include="AdminMenu.cs" />
<Compile Include="Controllers\AdminController.cs" />
<Compile Include="Extensions\LongExtensions.cs" />
<Compile Include="Handlers\MediaSettingsPartHandler.cs" />
<Compile Include="Migrations.cs" />
<Compile Include="Models\MediaSettingsPart.cs" />

View File

@@ -1,4 +1,5 @@
@model Orchard.Media.ViewModels.MediaFolderEditViewModel
@using Orchard.Media.Extensions;
@using Orchard.Media.Helpers;
@using Orchard.Media.Models;
@{ Style.Require("MediaAdmin"); }
@@ -70,7 +71,7 @@
<td>@mediaFile.User</td>
<td>@mediaFile.LastUpdated</td>
<td>@mediaFile.Type</td>
<td>@mediaFile.Size</td>
<td>@mediaFile.Size.ToFriendlySizeString()</td>
</tr>
}
@@ -87,7 +88,7 @@
<td>@mediaFolder.User</td>
<td>@mediaFolder.LastUpdated</td>
<td>@T("Folder")</td>
<td>@mediaFolder.Size</td>
<td>@mediaFolder.Size.ToFriendlySizeString()</td>
</tr>
}
</table>

View File

@@ -1,4 +1,5 @@
@model Orchard.Media.ViewModels.MediaItemEditViewModel
@using Orchard.Media.Extensions;
@using Orchard.Media.Helpers;
@using Orchard.Media.Models;
@{ Style.Require("MediaAdmin"); }
@@ -26,7 +27,7 @@
<div>
@* <label>@T("Dimensions: <span>500 x 375 pixels</span>")</label> *@
<label>@T("Size: <span>{0}</span>", Model.Size)</label>
<label>@T("Size: <span>{0}</span>", Model.Size.ToFriendlySizeString())</label>
<label>@T("Added on: <span>{0}</span>", Model.LastUpdated)</label>
</div>

View File

@@ -1,4 +1,5 @@
@model Orchard.Media.ViewModels.MediaFolderIndexViewModel
@using Orchard.Media.Extensions;
<h1>@Html.TitleForPage(T("Manage Media Folders").ToString())</h1>
@Html.ValidationSummary()
@@ -44,7 +45,7 @@
<td>@mediaFolder.User</td>
<td>@mediaFolder.LastUpdated</td>
<td>@T("Folder")</td>
<td>@mediaFolder.Size</td>
<td>@mediaFolder.Size.ToFriendlySizeString()</td>
</tr>
}
</table>