diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index b1eb029426..4acaa7b2a6 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -670,7 +670,7 @@ To manage your website, simply open the umbraco back office and start adding con diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml index af7156b776..430669c5d1 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml @@ -656,7 +656,7 @@ To manage your website, simply open the umbraco back office and start adding con diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index a41c89da66..38370e7832 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -1826,7 +1826,9 @@ - + + ASPXCodeBehind + diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/actions/publish.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/actions/publish.aspx.cs index 9b964cb166..928ac680a6 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/actions/publish.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/actions/publish.aspx.cs @@ -2,12 +2,14 @@ using System; using System.Data; using System.Configuration; using System.Collections; +using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; +using Umbraco.Core.Publishing; using umbraco.cms.businesslogic.web; using Umbraco.Core; @@ -39,9 +41,45 @@ namespace umbraco.presentation.actions deleteMessage.Text = ui.Text("editContentPublishedHeader"); confirm.Visible = false; - d.SaveAndPublish(UmbracoUser); + + var result = d.SaveAndPublishWithResult(UmbracoUser); + if (result.Success) + { + deleted.Text = ui.Text("editContentPublishedHeader") + " ('" + d.Text + "') " + ui.Text("editContentPublishedText") + "

" + ui.Text("view") + " " + d.Text + ""; + } + else + { + deleted.Text = "

" + GetMessageForStatus(result.Result) + "
"; + } - deleted.Text = ui.Text("editContentPublishedHeader") + " ('" + d.Text + "') " + ui.Text("editContentPublishedText") + "

" + ui.Text("view") + " " + d.Text + ""; + } + + private string GetMessageForStatus(PublishStatus status) + { + switch (status.StatusType) + { + case PublishStatusType.Success: + case PublishStatusType.SuccessAlreadyPublished: + return ui.Text("speechBubbles", "editContentPublishedText", UmbracoUser); + case PublishStatusType.FailedPathNotPublished: + return ui.Text("publish", "contentPublishedFailedByParent", + string.Format("{0} ({1})", status.ContentItem.Name, status.ContentItem.Id), + UmbracoUser).Trim(); + case PublishStatusType.FailedCancelledByEvent: + return ui.Text("speechBubbles", "contentPublishedFailedByEvent"); + case PublishStatusType.FailedHasExpired: + case PublishStatusType.FailedAwaitingRelease: + case PublishStatusType.FailedIsTrashed: + case PublishStatusType.FailedContentInvalid: + return ui.Text("publish", "contentPublishedFailedInvalid", + new[] + { + string.Format("{0} ({1})", status.ContentItem.Name, status.ContentItem.Id), + string.Join(",", status.InvalidProperties.Select(x => x.Alias)) + }, UmbracoUser); + default: + throw new IndexOutOfRangeException(); + } } } }