webdav portal fixes
This commit is contained in:
parent
a4cb95e2db
commit
0a64381dac
10 changed files with 161 additions and 5 deletions
|
@ -342,7 +342,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
file.Summary = reader[6] as string;
|
file.Summary = SanitizeXmlString(reader[6] as string);
|
||||||
|
|
||||||
result.Add(file);
|
result.Add(file);
|
||||||
}
|
}
|
||||||
|
@ -354,6 +354,36 @@ namespace WebsitePanel.Providers.EnterpriseStorage
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public string SanitizeXmlString(string xml)
|
||||||
|
{
|
||||||
|
if (xml == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var buffer = new StringBuilder(xml.Length);
|
||||||
|
|
||||||
|
foreach (char c in xml.Where(c => IsLegalXmlChar(c)))
|
||||||
|
{
|
||||||
|
buffer.Append(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
return buffer.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsLegalXmlChar(int character)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
(
|
||||||
|
character == 0x9 /* == '\t' == 9 */ ||
|
||||||
|
character == 0xA /* == '\n' == 10 */ ||
|
||||||
|
character == 0xD /* == '\r' == 13 */ ||
|
||||||
|
(character >= 0x20 && character <= 0xD7FF) ||
|
||||||
|
(character >= 0xE000 && character <= 0xFFFD) ||
|
||||||
|
(character >= 0x10000 && character <= 0x10FFFF)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#region HostingServiceProvider methods
|
#region HostingServiceProvider methods
|
||||||
|
|
||||||
public override string[] Install()
|
public override string[] Install()
|
||||||
|
|
|
@ -9,5 +9,13 @@ namespace WebsitePanel.WebDav.Core.Extensions
|
||||||
{
|
{
|
||||||
return new Uri(paths.Aggregate(uri.AbsoluteUri, (current, path) => string.Format("{0}/{1}", current.TrimEnd('/'), path.TrimStart('/'))));
|
return new Uri(paths.Aggregate(uri.AbsoluteUri, (current, path) => string.Format("{0}/{1}", current.TrimEnd('/'), path.TrimStart('/'))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string ToStringPath(this Uri uri)
|
||||||
|
{
|
||||||
|
var hostStart = uri.ToString().IndexOf(uri.Host, System.StringComparison.Ordinal);
|
||||||
|
var hostLength = uri.Host.Length;
|
||||||
|
|
||||||
|
return uri.ToString().Substring(hostStart + hostLength, uri.ToString().Length - hostStart - hostLength);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -483,7 +483,7 @@ namespace WebsitePanel.WebDav.Core
|
||||||
{
|
{
|
||||||
_href = href;
|
_href = href;
|
||||||
|
|
||||||
var baseUrl = href.AbsoluteUri.Remove(href.AbsoluteUri.Length - href.Segments.Last().Length);
|
var baseUrl = href.ToString().Remove(href.ToString().Length - href.ToString().Trim('/').Split('/').Last().Length);
|
||||||
|
|
||||||
_baseUri = new Uri(baseUrl);
|
_baseUri = new Uri(baseUrl);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ namespace WebsitePanel.WebDav.Core.Managers
|
||||||
Href = new Uri(x.Url),
|
Href = new Uri(x.Url),
|
||||||
ItemType = ItemType.Folder,
|
ItemType = ItemType.Folder,
|
||||||
ContentLength = x.Size * 1024 * 1024,
|
ContentLength = x.Size * 1024 * 1024,
|
||||||
AllocatedSpace = x.FRSMQuotaMB * 1024 * 1024,
|
AllocatedSpace = (long)x.FRSMQuotaMB * 1024 * 1024,
|
||||||
IsRootItem = true
|
IsRootItem = true
|
||||||
}).ToArray();
|
}).ToArray();
|
||||||
}
|
}
|
||||||
|
|
|
@ -352,7 +352,8 @@ namespace WebsitePanel.WebDavPortal.Controllers
|
||||||
foreach (var item in items)
|
foreach (var item in items)
|
||||||
{
|
{
|
||||||
var opener = _openerManager[Path.GetExtension(item.DisplayName)];
|
var opener = _openerManager[Path.GetExtension(item.DisplayName)];
|
||||||
var pathPart = item.Href.AbsolutePath.Replace("/" + WspContext.User.OrganizationId, "").TrimStart('/');
|
//var pathPart = item.Href.ToString().Replace("/" + WspContext.User.OrganizationId, "").TrimStart('/');
|
||||||
|
var pathPart = item.Href.ToStringPath().Replace("/" + WspContext.User.OrganizationId, "").TrimStart('/');
|
||||||
|
|
||||||
switch (opener)
|
switch (opener)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WebDavPortal.Helpers
|
||||||
|
{
|
||||||
|
public class ViewDataHelper
|
||||||
|
{
|
||||||
|
public static string BytesToSize(long bytes)
|
||||||
|
{
|
||||||
|
if (bytes == 0)
|
||||||
|
{
|
||||||
|
return string.Format("0 {0}", Resources.UI.Byte);
|
||||||
|
}
|
||||||
|
|
||||||
|
var k = 1024;
|
||||||
|
|
||||||
|
var sizes = new[]
|
||||||
|
{
|
||||||
|
Resources.UI.Bytes,
|
||||||
|
Resources.UI.KilobyteShort,
|
||||||
|
Resources.UI.MegabyteShort,
|
||||||
|
Resources.UI.GigabyteShort,
|
||||||
|
Resources.UI.TerabyteShort,
|
||||||
|
Resources.UI.PetabyteShort,
|
||||||
|
Resources.UI.ExabyteShort
|
||||||
|
};
|
||||||
|
|
||||||
|
var i = (int) Math.Floor(Math.Log(bytes)/Math.Log(k));
|
||||||
|
return string.Format("{0} {1}", Math.Round(bytes/Math.Pow(k, i), 3), sizes[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -69,6 +69,24 @@ namespace WebsitePanel.WebDavPortal.Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Byte.
|
||||||
|
/// </summary>
|
||||||
|
public static string Byte {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Byte", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Bytes.
|
||||||
|
/// </summary>
|
||||||
|
public static string Bytes {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Bytes", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Cancel.
|
/// Looks up a localized string similar to Cancel.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -150,6 +168,15 @@ namespace WebsitePanel.WebDavPortal.Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to EB.
|
||||||
|
/// </summary>
|
||||||
|
public static string ExabyteShort {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ExabyteShort", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to File.
|
/// Looks up a localized string similar to File.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -195,6 +222,24 @@ namespace WebsitePanel.WebDavPortal.Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to KB.
|
||||||
|
/// </summary>
|
||||||
|
public static string KilobyteShort {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("KilobyteShort", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to MB.
|
||||||
|
/// </summary>
|
||||||
|
public static string MegabyteShort {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("MegabyteShort", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Modified.
|
/// Looks up a localized string similar to Modified.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -240,6 +285,15 @@ namespace WebsitePanel.WebDavPortal.Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to PB.
|
||||||
|
/// </summary>
|
||||||
|
public static string PetabyteShort {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("PetabyteShort", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Please wait....
|
/// Looks up a localized string similar to Please wait....
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -321,6 +375,15 @@ namespace WebsitePanel.WebDavPortal.Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to TB.
|
||||||
|
/// </summary>
|
||||||
|
public static string TerabyteShort {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TerabyteShort", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Type.
|
/// Looks up a localized string similar to Type.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -120,6 +120,12 @@
|
||||||
<data name="Actions" xml:space="preserve">
|
<data name="Actions" xml:space="preserve">
|
||||||
<value>Actions</value>
|
<value>Actions</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Byte" xml:space="preserve">
|
||||||
|
<value>Byte</value>
|
||||||
|
</data>
|
||||||
|
<data name="Bytes" xml:space="preserve">
|
||||||
|
<value>Bytes</value>
|
||||||
|
</data>
|
||||||
<data name="Cancel" xml:space="preserve">
|
<data name="Cancel" xml:space="preserve">
|
||||||
<value>Cancel</value>
|
<value>Cancel</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -147,6 +153,9 @@
|
||||||
<data name="Error" xml:space="preserve">
|
<data name="Error" xml:space="preserve">
|
||||||
<value>Error</value>
|
<value>Error</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ExabyteShort" xml:space="preserve">
|
||||||
|
<value>EB</value>
|
||||||
|
</data>
|
||||||
<data name="File" xml:space="preserve">
|
<data name="File" xml:space="preserve">
|
||||||
<value>File</value>
|
<value>File</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -162,6 +171,12 @@
|
||||||
<data name="ItemsWasRemovedFormat" xml:space="preserve">
|
<data name="ItemsWasRemovedFormat" xml:space="preserve">
|
||||||
<value>{0} items was removed.</value>
|
<value>{0} items was removed.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="KilobyteShort" xml:space="preserve">
|
||||||
|
<value>KB</value>
|
||||||
|
</data>
|
||||||
|
<data name="MegabyteShort" xml:space="preserve">
|
||||||
|
<value>MB</value>
|
||||||
|
</data>
|
||||||
<data name="Modified" xml:space="preserve">
|
<data name="Modified" xml:space="preserve">
|
||||||
<value>Modified</value>
|
<value>Modified</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -177,6 +192,9 @@
|
||||||
<data name="OrDragAndDropFilesHere" xml:space="preserve">
|
<data name="OrDragAndDropFilesHere" xml:space="preserve">
|
||||||
<value>or drag and drop files here.</value>
|
<value>or drag and drop files here.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="PetabyteShort" xml:space="preserve">
|
||||||
|
<value>PB</value>
|
||||||
|
</data>
|
||||||
<data name="PleaseWaitWithDots" xml:space="preserve">
|
<data name="PleaseWaitWithDots" xml:space="preserve">
|
||||||
<value>Please wait...</value>
|
<value>Please wait...</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -204,6 +222,9 @@
|
||||||
<data name="Table" xml:space="preserve">
|
<data name="Table" xml:space="preserve">
|
||||||
<value>Table</value>
|
<value>Table</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TerabyteShort" xml:space="preserve">
|
||||||
|
<value>TB</value>
|
||||||
|
</data>
|
||||||
<data name="Type" xml:space="preserve">
|
<data name="Type" xml:space="preserve">
|
||||||
<value>Type</value>
|
<value>Type</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
@using WebsitePanel.WebDav.Core.Config
|
@using WebsitePanel.WebDav.Core.Config
|
||||||
@using WebsitePanel.WebDavPortal.FileOperations
|
@using WebsitePanel.WebDavPortal.FileOperations
|
||||||
@using Ninject;
|
@using Ninject;
|
||||||
|
@using WebsitePanel.WebDavPortal.Helpers
|
||||||
@using WebsitePanel.WebDavPortal.Resources
|
@using WebsitePanel.WebDavPortal.Resources
|
||||||
@using WebsitePanel.WebDavPortal.UI
|
@using WebsitePanel.WebDavPortal.UI
|
||||||
@using WebsitePanel.WebDavPortal.UI.Routes
|
@using WebsitePanel.WebDavPortal.UI.Routes
|
||||||
|
@ -63,7 +64,7 @@
|
||||||
<p class="progress-text">@percent%</p>
|
<p class="progress-text">@percent%</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>@Math.Round(Convert.ToDecimal(resource.ContentLength) / 1024, 2) / @Math.Round(Convert.ToDecimal(resource.AllocatedSpace) / 1024, 2) @UI.GigabyteShort</p>
|
<p>@ViewDataHelper.BytesToSize(resource.ContentLength) / @ViewDataHelper.BytesToSize(resource.AllocatedSpace)</p>
|
||||||
}
|
}
|
||||||
|
|
||||||
<div class="selected-element-overlay">
|
<div class="selected-element-overlay">
|
||||||
|
|
|
@ -183,6 +183,7 @@
|
||||||
<DependentUpon>Global.asax</DependentUpon>
|
<DependentUpon>Global.asax</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Helpers\DataTableHelper.cs" />
|
<Compile Include="Helpers\DataTableHelper.cs" />
|
||||||
|
<Compile Include="Helpers\ViewDataHelper.cs" />
|
||||||
<Compile Include="HttpHandlers\AccessTokenHandler.cs" />
|
<Compile Include="HttpHandlers\AccessTokenHandler.cs" />
|
||||||
<Compile Include="HttpHandlers\FileTransferRequestHandler.cs" />
|
<Compile Include="HttpHandlers\FileTransferRequestHandler.cs" />
|
||||||
<Compile Include="Mapping\AutoMapperPortalConfiguration.cs" />
|
<Compile Include="Mapping\AutoMapperPortalConfiguration.cs" />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue