diff --git a/src/Umbraco.Web/Editors/CodeFileController.cs b/src/Umbraco.Web/Editors/CodeFileController.cs index 45dd747c4c..44d3429689 100644 --- a/src/Umbraco.Web/Editors/CodeFileController.cs +++ b/src/Umbraco.Web/Editors/CodeFileController.cs @@ -49,6 +49,7 @@ namespace Umbraco.Web.Editors { if (string.IsNullOrWhiteSpace(type) == false && string.IsNullOrWhiteSpace(virtualPath) == false) { + virtualPath = System.Web.HttpUtility.UrlDecode(virtualPath); if (type == Core.Constants.Trees.PartialViews) { var view = Services.FileService.GetPartialView(virtualPath); @@ -170,8 +171,11 @@ namespace Umbraco.Web.Editors var view = Services.FileService.GetPartialView(display.VirtualPath); if (view != null) { + // might need to find the path + var orgPath = view.OriginalPath.Substring(0, view.OriginalPath.IndexOf(view.Name)); + view.Path = orgPath + display.Name; + view.Content = display.Content; - view.Path = display.Name; var result = Services.FileService.SavePartialView(view, Security.CurrentUser.Id); if (result.Success == true) { diff --git a/src/Umbraco.Web/Trees/FileSystemTreeController.cs b/src/Umbraco.Web/Trees/FileSystemTreeController.cs index f9ebaaf2d6..8740d1c939 100644 --- a/src/Umbraco.Web/Trees/FileSystemTreeController.cs +++ b/src/Umbraco.Web/Trees/FileSystemTreeController.cs @@ -13,6 +13,7 @@ namespace Umbraco.Web.Trees { protected abstract string FilePath { get; } protected abstract string FileSearchPattern { get; } + protected abstract string FileIcon { get; } /// /// Inheritors can override this method to modify the file node that is created. @@ -79,7 +80,7 @@ namespace Umbraco.Web.Trees if (filterByMultipleExtensions && Array.IndexOf(allowedExtensions, file.Extension.ToLower().Trim('.')) < 0) continue; - var node = CreateTreeNode(orgPath + file.Name, orgPath, queryStrings, file.Name, "icon-file", false); + var node = CreateTreeNode(System.Web.HttpUtility.UrlEncode(orgPath + file.Name), orgPath, queryStrings, file.Name, FileIcon, false); OnRenderFileNode(ref node); diff --git a/src/Umbraco.Web/Trees/PartialViewMacrosTreeController.cs b/src/Umbraco.Web/Trees/PartialViewMacrosTreeController.cs index 60b0711154..5afb036fdd 100644 --- a/src/Umbraco.Web/Trees/PartialViewMacrosTreeController.cs +++ b/src/Umbraco.Web/Trees/PartialViewMacrosTreeController.cs @@ -23,6 +23,11 @@ namespace Umbraco.Web.Trees get { return "*.cshtml"; } } + protected override string FileIcon + { + get { return "icon-article"; } + } + protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) { var menu = new MenuItemCollection(); diff --git a/src/Umbraco.Web/Trees/PartialViewsTreeController.cs b/src/Umbraco.Web/Trees/PartialViewsTreeController.cs index de45148160..826b0c2d90 100644 --- a/src/Umbraco.Web/Trees/PartialViewsTreeController.cs +++ b/src/Umbraco.Web/Trees/PartialViewsTreeController.cs @@ -22,6 +22,10 @@ namespace Umbraco.Web.Trees { get { return "*.cshtml"; } } + protected override string FileIcon + { + get { return "icon-article"; } + } protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) { diff --git a/src/Umbraco.Web/Trees/ScriptTreeController.cs b/src/Umbraco.Web/Trees/ScriptTreeController.cs index ec8037ae9b..f9d5c63a68 100644 --- a/src/Umbraco.Web/Trees/ScriptTreeController.cs +++ b/src/Umbraco.Web/Trees/ScriptTreeController.cs @@ -19,6 +19,10 @@ namespace Umbraco.Web.Trees { get { return "*.js"; } } + protected override string FileIcon + { + get { return "icon-script"; } + } protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) {