From 6dc1d0c259ff9180dede4db9800b086f0b2165ac Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Mon, 2 Mar 2015 05:10:53 -0800 Subject: [PATCH] webdav portal root quote added --- .../Sources/WebsitePanel.WebDav.Core/IFolder.cs | 4 ++-- .../Sources/WebsitePanel.WebDav.Core/IResource.cs | 1 + .../Managers/WebDavManager.cs | 6 +++--- .../WebsitePanel.WebDavPortal/Content/Site.css | 10 ++++++++++ .../Controllers/FileSystemController.cs | 4 ++-- .../Profiles/Webdav/ResourceTableItemProfile.cs | 2 ++ .../Models/FileSystem/ResourceTableItemModel.cs | 3 +++ .../Scripts/appScripts/fileBrowsing.js | 15 ++++++++++++--- 8 files changed, 35 insertions(+), 10 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IFolder.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IFolder.cs index f37b9f94..52b32743 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IFolder.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IFolder.cs @@ -295,11 +295,11 @@ namespace WebsitePanel.WebDav.Core { XmlResponseList = XmlDoc.GetElementsByTagName("d:response"); } - var children = new WebDavHierarchyItem[XmlResponseList.Count]; + var children = new WebDavResource[XmlResponseList.Count]; int counter = 0; foreach (XmlNode XmlCurrentResponse in XmlResponseList) { - var item = new WebDavHierarchyItem(); + var item = new WebDavResource(); item.SetCredentials(_credentials); foreach (XmlNode XmlCurrentNode in XmlCurrentResponse.ChildNodes) diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs index d1545431..34f4f81a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/IResource.cs @@ -50,6 +50,7 @@ namespace WebsitePanel.WebDav.Core SendChunked = false; AllowWriteStreamBuffering = false; + IsRootItem = item.IsRootItem; SetCredentials(credentials); SetHierarchyItem(item); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs index 98ea32ec..4d1ab904 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDav.Core/Managers/WebDavManager.cs @@ -50,9 +50,9 @@ namespace WebsitePanel.WebDav.Core.Managers children = ConnectToWebDavServer().Select(x => new WebDavResource { Href = new Uri(x.Url), - ItemType = ItemType.Folder, - ContentLength = x.Size, - AllocatedSpace = x.FRSMQuotaMB, + ItemType = ItemType.Folder, + ContentLength = x.Size * 1024 * 1024, + AllocatedSpace = x.FRSMQuotaMB * 1024 * 1024, IsRootItem = true }).ToArray(); } diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css index f539d480..9137665c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Content/Site.css @@ -295,6 +295,16 @@ tr.selected-file { display: block; } +.column-name { + position: relative; +} + +.column-name #quota { + position: absolute; + right: 0px; + top: 20%; +} + /* Theme Mods */ input,div{border-radius:0px!important;} diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs index dbb50095..46beea31 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Controllers/FileSystemController.cs @@ -151,11 +151,11 @@ namespace WebsitePanel.WebDavPortal.Controllers if (string.IsNullOrEmpty(dtRequest.Search.Value) == false) { - folderItems = _webdavManager.SearchFiles(WspContext.User.ItemId, pathPart, dtRequest.Search.Value, WspContext.User.Login, true).Select(x => new WebDavResource(null, x)); + folderItems = _webdavManager.SearchFiles(WspContext.User.ItemId, pathPart, dtRequest.Search.Value, WspContext.User.Login, true).Cast(); } else { - folderItems = _webdavManager.OpenFolder(pathPart).Select(x=>new WebDavResource(null, x)); + folderItems = _webdavManager.OpenFolder(pathPart).Cast(); } var tableItems = Mapper.Map, IEnumerable>(folderItems).ToList(); diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Mapping/Profiles/Webdav/ResourceTableItemProfile.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Mapping/Profiles/Webdav/ResourceTableItemProfile.cs index a20e44b3..cc712682 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Mapping/Profiles/Webdav/ResourceTableItemProfile.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Mapping/Profiles/Webdav/ResourceTableItemProfile.cs @@ -45,7 +45,9 @@ namespace WebsitePanel.WebDavPortal.Mapping.Profiles.Webdav .ForMember(ti => ti.LastModified, x => x.MapFrom(hi => hi.LastModified)) .ForMember(ti => ti.LastModifiedFormated, x => x.MapFrom(hi => hi.LastModified == DateTime.MinValue ? "--" : (new WebDavResource(null, hi)).LastModified.ToString("dd/MM/yyyy hh:mm tt"))) + .ForMember(ti => ti.IsRoot, x => x.MapFrom(hi => hi.IsRootItem)) .ForMember(ti => ti.Size, x => x.MapFrom(hi => hi.ContentLength)) + .ForMember(ti => ti.Quota, x => x.MapFrom(hi => hi.AllocatedSpace)) .ForMember(ti => ti.IsFolder, x => x.MapFrom(hi => hi.ItemType == ItemType.Folder)); } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Models/FileSystem/ResourceTableItemModel.cs b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Models/FileSystem/ResourceTableItemModel.cs index 24ac5e13..2d2121cf 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Models/FileSystem/ResourceTableItemModel.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Models/FileSystem/ResourceTableItemModel.cs @@ -12,11 +12,14 @@ namespace WebsitePanel.WebDavPortal.Models.FileSystem public bool IsTargetBlank { get; set; } public bool IsFolder { get; set; } public long Size { get; set; } + public bool IsRoot { get; set; } + public long Quota { get; set; } public string Type { get; set; } public DateTime LastModified { get; set; } public string LastModifiedFormated { get; set; } public string IconHref { get; set; } + public override dynamic this[int index] { get diff --git a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js index 10478859..ec557926 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js +++ b/WebsitePanel/Sources/WebsitePanel.WebDavPortal/Scripts/appScripts/fileBrowsing.js @@ -86,10 +86,11 @@ WspFileBrowser.prototype = { "columnDefs": [ { "render": function(data, type, row) { - return '' + - '' + + return '
' + + '' + row.DisplayName + - ''; + '' + (row.IsRoot ? '' + wsp.fileBrowser.bytesToSize(row.Size) + ' / ' + wsp.fileBrowser.bytesToSize(row.Quota) + '' : '') + +'
'; }, "targets": 0 }, @@ -186,6 +187,14 @@ WspFileBrowser.prototype = { } }); }; + }, + + bytesToSize: function(bytes) { + if (bytes == 0) return '0 Byte'; + var k = 1024; + var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; + var i = Math.floor(Math.log(bytes) / Math.log(k)); + return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i]; } };