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();
+ }
}
}
}