diff --git a/src/Umbraco.Core/Macros/MacroTagParser.cs b/src/Umbraco.Core/Macros/MacroTagParser.cs index 62f81ee91d..ad4b180528 100644 --- a/src/Umbraco.Core/Macros/MacroTagParser.cs +++ b/src/Umbraco.Core/Macros/MacroTagParser.cs @@ -66,8 +66,7 @@ namespace Umbraco.Core.Macros } } - - var macroAlias = attributes["macroalias"] ?? attributes["alias"]; + var macroAlias = attributes.ContainsKey("macroalias") ? attributes["macroalias"] : attributes["alias"]; //call the callback now that we have the macro parsed macroFoundCallback(macroAlias, attributes); diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 5ed73be750..6796e19173 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -23,6 +23,7 @@ Notifications Public access Publish + Unpublish Reload nodes Republish entire site Permissions @@ -779,6 +780,7 @@ To manage your website, simply open the umbraco back office and start adding con Xslt could not be saved, check file permissions Xslt saved No errors in xslt + Content unpublished Uses CSS syntax ex: h1, .redHeader, .blueTex diff --git a/src/Umbraco.Web/Routing/PublishedContentRequestBuilder.cs b/src/Umbraco.Web/Routing/PublishedContentRequestBuilder.cs index d419191f5b..462f8915c9 100644 --- a/src/Umbraco.Web/Routing/PublishedContentRequestBuilder.cs +++ b/src/Umbraco.Web/Routing/PublishedContentRequestBuilder.cs @@ -203,6 +203,8 @@ namespace Umbraco.Web.Routing // expected content anymore and the alternate template does not apply. _publishedContentRequest.AlternateTemplateAlias = _umbracoContext.HttpContext.Request["altTemplate"]; + _umbracoContext.HttpContext.Trace.Write(string.Format("test {0}", _publishedContentRequest.AlternateTemplateAlias)); + // handle "not found", follow internal redirects, validate access, template // because these might loop, we have to have some sort of infinite loop detection int i = 0, j = 0; diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs index 29786bd54e..82a3b98935 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs @@ -362,6 +362,9 @@ namespace umbraco.cms.presentation library.UnPublishSingleNode(_document.Id); + Current.ClientTools.SyncTree(_document.Path, true); + ClientTools.ShowSpeechBubble(speechBubbleIcon.success, ui.Text("unpublish"), ui.Text("speechBubbles", "contentUnpublished")); + //newPublishStatus.Text = "0"; } diff --git a/src/umbraco.businesslogic/ApplicationTree.cs b/src/umbraco.businesslogic/ApplicationTree.cs index d5a4ff4ffa..67faf9b7ec 100644 --- a/src/umbraco.businesslogic/ApplicationTree.cs +++ b/src/umbraco.businesslogic/ApplicationTree.cs @@ -260,6 +260,10 @@ namespace umbraco.BusinessLogic LoadXml(doc => { + var el = doc.Root.Elements("add").SingleOrDefault(x => x.Attribute("alias").Value == alias && x.Attribute("application").Value == applicationAlias); + + if (el == null) + { doc.Root.Add(new XElement("add", new XAttribute("silent", silent), new XAttribute("initialize", initialize), @@ -272,6 +276,7 @@ namespace umbraco.BusinessLogic new XAttribute("assembly", assemblyName), new XAttribute("type", type), new XAttribute("action", string.IsNullOrEmpty(action) ? "" : action))); + } }, true); } diff --git a/src/umbraco.businesslogic/Log.cs b/src/umbraco.businesslogic/Log.cs index 86f38da8ce..89ccc31587 100644 --- a/src/umbraco.businesslogic/Log.cs +++ b/src/umbraco.businesslogic/Log.cs @@ -86,8 +86,7 @@ namespace umbraco.BusinessLogic if (UmbracoSettings.DisabledLogTypes != null && UmbracoSettings.DisabledLogTypes.SelectSingleNode(String.Format("//logTypeAlias [. = '{0}']", type.ToString().ToLower())) == null) { - - if (comment.Length > 3999) + if (comment != null && comment.Length > 3999) comment = comment.Substring(0, 3955) + "..."; if (UmbracoSettings.EnableAsyncLogging)