diff --git a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs index 74df05bd84..5c3f39e228 100644 --- a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs @@ -172,8 +172,6 @@ namespace Umbraco.Core.Persistence.Repositories var o = Database.IsNew(nodeDto) ? Convert.ToInt32(Database.Insert(nodeDto)) : Database.Update(nodeDto); //Update with new correct path - //TODO: need to fix: - // http://issues.umbraco.org/issue/U4-5846 var parent = Get(template.MasterTemplateId.Value); if (parent != null) { @@ -236,9 +234,6 @@ namespace Umbraco.Core.Persistence.Repositories var template = (Template)entity; - //TODO: need to fix: - // http://issues.umbraco.org/issue/U4-5846 - // And use the ParentId column instead of the extra template parent id column if (entity.IsPropertyDirty("MasterTemplateId")) { var parent = Get(template.MasterTemplateId.Value); @@ -417,6 +412,7 @@ namespace Umbraco.Core.Persistence.Repositories } template.UpdateDate = _viewsFileSystem.GetLastModified(fileName).UtcDateTime; template.Content = content; + template.VirtualPath = _viewsFileSystem.GetUrl(fileName); } private void PopulateMasterpageTemplate(ITemplate template, string fileName) @@ -431,6 +427,7 @@ namespace Umbraco.Core.Persistence.Repositories template.UpdateDate = _masterpagesFileSystem.GetLastModified(fileName).UtcDateTime; template.Content = content; + template.VirtualPath = _masterpagesFileSystem.GetUrl(fileName); } #region Implementation of ITemplateRepository diff --git a/src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js b/src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js index 0a3bb45c5c..d9b1a28505 100644 --- a/src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js +++ b/src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js @@ -148,6 +148,9 @@ } path = args.path; } + if (args.contents) { + UmbEditor.SetCode(args.contents); + } top.UmbSpeechBubble.ShowMessage('save', header, msg); UmbClientMgr.mainTree().setActiveTreeType('templates'); diff --git a/src/Umbraco.Web.UI/umbraco_client/Editors/EditView.js b/src/Umbraco.Web.UI/umbraco_client/Editors/EditView.js index 17f151bd2c..554d0bafc8 100644 --- a/src/Umbraco.Web.UI/umbraco_client/Editors/EditView.js +++ b/src/Umbraco.Web.UI/umbraco_client/Editors/EditView.js @@ -155,6 +155,9 @@ } path = args.path; } + if (args.contents) { + UmbEditor.SetCode(args.contents); + } UmbClientMgr.mainTree().setActiveTreeType(this._opts.currentTreeType); diff --git a/src/Umbraco.Web/Trees/TemplatesTreeController.cs b/src/Umbraco.Web/Trees/TemplatesTreeController.cs index 8c19749d27..11eaf8cef7 100644 --- a/src/Umbraco.Web/Trees/TemplatesTreeController.cs +++ b/src/Umbraco.Web/Trees/TemplatesTreeController.cs @@ -129,9 +129,9 @@ namespace Umbraco.Web.Trees { //TODO: Rebuild the language editor in angular, then we dont need to have this at all (which is just a path to the legacy editor) - return Path.GetExtension(template.Path).InvariantEquals(".master") + return template.GetTypeOfRenderingEngine() == RenderingEngine.WebForms ? "/" + queryStrings.GetValue("application") + "/framed/" + - Uri.EscapeDataString("/umbraco/settings/editTemplate.aspx?id=" + template.Id) + Uri.EscapeDataString("/umbraco/settings/editTemplate.aspx?templateID=" + template.Id) : "/" + queryStrings.GetValue("application") + "/framed/" + Uri.EscapeDataString("/umbraco/settings/Views/EditView.aspx?treeType=" + Constants.Trees.Templates + "&templateID=" + template.Id); } diff --git a/src/Umbraco.Web/WebServices/SaveFileController.cs b/src/Umbraco.Web/WebServices/SaveFileController.cs index 288e8f19a3..651b372988 100644 --- a/src/Umbraco.Web/WebServices/SaveFileController.cs +++ b/src/Umbraco.Web/WebServices/SaveFileController.cs @@ -204,7 +204,11 @@ namespace Umbraco.Web.WebServices var syncPath = "-1,init," + t.Path.Replace("-1,", ""); return Success(ui.Text("speechBubbles", "templateSavedText"), ui.Text("speechBubbles", "templateSavedHeader"), - new { path = syncPath }); + new + { + path = syncPath, + contents = t.Design + }); } catch (Exception ex) { diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadTemplates.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadTemplates.cs index c461f6335f..0b8644aa43 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadTemplates.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadTemplates.cs @@ -35,7 +35,6 @@ using umbraco.BusinessLogic.Actions; namespace umbraco { [Obsolete("This is no longer used and will be removed from the codebase in the future")] - //[Tree(Constants.Applications.Settings, "templates", "Templates", sortOrder: 1)] public class loadTemplates : BaseTree { public loadTemplates(string application) : base(application) {} diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs index fe193d3b91..8f533188cd 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs @@ -74,7 +74,7 @@ namespace umbraco.cms.presentation.settings } ClientTools - .SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree().Tree.Alias) + .SetActiveTreeType(Constants.Trees.Templates) .SyncTree(TemplateTreeSyncPath, false); LoadScriptingTemplates();