Vary localization based on content or blueprint

This commit is contained in:
Bjarne Fyrstenborg
2021-12-28 13:41:17 +01:00
committed by Sebastiaan Janssen
parent d433991b61
commit 62e3286c71
4 changed files with 24 additions and 11 deletions

View File

@@ -820,11 +820,16 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
contentItem.Variants.Where(x => x.Save).Select(x => x.Culture).ToArray(),
defaultCulture);
bool isBlueprint = contentItem.PersistedContent.Blueprint;
var contentSavedHeader = isBlueprint ? "editBlueprintSavedHeader" : "editContentSavedHeader";
var contentSavedText = isBlueprint ? "editBlueprintSavedText" : "editContentSavedText";
switch (contentItem.Action)
{
case ContentSaveAction.Save:
case ContentSaveAction.SaveNew:
SaveAndNotify(contentItem, saveMethod, variantCount, notifications, globalNotifications, "editContentSavedText", "editVariantSavedText", cultureForInvariantErrors, out wasCancelled);
SaveAndNotify(contentItem, saveMethod, variantCount, notifications, globalNotifications, contentSavedHeader, contentSavedText, "editVariantSavedText", cultureForInvariantErrors, out wasCancelled);
break;
case ContentSaveAction.Schedule:
case ContentSaveAction.ScheduleNew:
@@ -834,7 +839,8 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
wasCancelled = false;
break;
}
SaveAndNotify(contentItem, saveMethod, variantCount, notifications, globalNotifications, "editContentScheduledSavedText", "editVariantSavedText", cultureForInvariantErrors, out wasCancelled);
SaveAndNotify(contentItem, saveMethod, variantCount, notifications, globalNotifications, "editContentSavedHeader", "editContentScheduledSavedText", "editVariantSavedText", cultureForInvariantErrors, out wasCancelled);
break;
case ContentSaveAction.SendPublish:
@@ -883,7 +889,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
if (!await ValidatePublishBranchPermissionsAsync(contentItem))
{
globalNotifications.AddErrorNotification(
_localizedTextService.Localize(null,"publish"),
_localizedTextService.Localize(null, "publish"),
_localizedTextService.Localize("publish", "invalidPublishBranchPermissions"));
wasCancelled = false;
break;
@@ -900,7 +906,7 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
if (!await ValidatePublishBranchPermissionsAsync(contentItem))
{
globalNotifications.AddErrorNotification(
_localizedTextService.Localize(null,"publish"),
_localizedTextService.Localize(null, "publish"),
_localizedTextService.Localize("publish", "invalidPublishBranchPermissions"));
wasCancelled = false;
break;
@@ -1041,13 +1047,15 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
/// </remarks>
private void SaveAndNotify(ContentItemSave contentItem, Func<IContent, OperationResult> saveMethod, int variantCount,
Dictionary<string, SimpleNotificationModel> notifications, SimpleNotificationModel globalNotifications,
string invariantSavedLocalizationAlias, string variantSavedLocalizationAlias, string cultureForInvariantErrors,
string savedContentHeaderLocalizationAlias, string invariantSavedLocalizationAlias, string variantSavedLocalizationAlias, string cultureForInvariantErrors,
out bool wasCancelled)
{
var saveResult = saveMethod(contentItem.PersistedContent);
wasCancelled = saveResult.Success == false && saveResult.Result == OperationResultType.FailedCancelledByEvent;
if (saveResult.Success)
{
bool isBlueprint = contentItem.PersistedContent.Blueprint;
if (variantCount > 1)
{
var variantErrors = ModelState.GetVariantsWithErrors(cultureForInvariantErrors);
@@ -1061,15 +1069,15 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
var variantName = GetVariantName(culture, segment);
AddSuccessNotification(notifications, culture, segment,
_localizedTextService.Localize("speechBubbles", "editContentSavedHeader"),
_localizedTextService.Localize(null,variantSavedLocalizationAlias, new[] { variantName }));
_localizedTextService.Localize("speechBubbles", savedContentHeaderLocalizationAlias),
_localizedTextService.Localize(null, variantSavedLocalizationAlias, new[] { variantName }));
}
}
else if (ModelState.IsValid)
{
globalNotifications.AddSuccessNotification(
_localizedTextService.Localize("speechBubbles", "editContentSavedHeader"),
_localizedTextService.Localize("speechBubbles",invariantSavedLocalizationAlias));
_localizedTextService.Localize("speechBubbles", savedContentHeaderLocalizationAlias),
_localizedTextService.Localize("speechBubbles", invariantSavedLocalizationAlias));
}
}
}