Skip to content

Commit

Permalink
Match to 3.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
rickbutterfield committed Jan 23, 2025
1 parent b3a98fb commit 8202a4d
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
</div>
}

<pre>@Model.Content.Dropdown</pre>

<div class="hero-content">
<h1>@(Model.Content.Value<string>("headline"))</h1>
Expand Down
2 changes: 1 addition & 1 deletion src/Umbraco.Cms.13.x/uSync/v9/Content/nested-test.config
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
"image": [],
"backgroundColor": "",
"contrast": "",
"contentPicker": null,
"contentPicker": "umb://document/6e2ff1f7114e484ba407918daded1aa6",
"dropdown": [
"1"
]
Expand Down
29 changes: 29 additions & 0 deletions src/Umbraco.Community.BlockPreview/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,34 @@ public static partial class Configuration
public static string AppSettingsRoot => "BlockPreview";
public static string AppPluginsRoot => $"App_Plugins/{PackageName}";
}

public static partial class ErrorMessages
{
public static string ErrorTemplate = "<div class=\"preview-alert preview-alert-error\"></div>";

public static string WarningTemplate = "<div class=\"preview-alert preview-alert-warning\"></div>";

public static string NoGeneratedModels = "Generated model(s) could not be found. Please try regenerating models and restarting the application.";

public static string InvalidBlockData = "The block data is invalid.";

public static string InvalidContentKey = "The content key is invalid.";

public static string InvalidContentData = "The content data is invalid.";

public static string InvalidBlockInstance = "The block instance is invalid.";

public static string InvalidDocumentType = "The document type is invalid.";

public static string InvalidPropertyType = "The property type is invalid.";

public static string InvalidDataType = "The data type is invalid.";

public static string InvalidBlockGridConfiguration = "The block grid configuration is invalid.";

public static string InvalidMatchingBlockGridConfiguration = "A matching block grid configuration could not be found";

public static string ViewNotFound = "The view could not be found.";
}
}
}
49 changes: 26 additions & 23 deletions src/Umbraco.Community.BlockPreview/Services/BlockPreviewService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Core.PropertyEditors;
using Umbraco.Cms.Core.PropertyEditors.ValueConverters;
using Umbraco.Cms.Core.Serialization;
using Umbraco.Cms.Core.Services;
using Umbraco.Community.BlockPreview.Enums;
using Umbraco.Community.BlockPreview.Extensions;
Expand Down Expand Up @@ -87,7 +86,7 @@ public async Task<string> RenderGridBlock(
string? settingsUdi = default)
{
if (blockData == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidBlockData);

if (!UdiParser.TryParse(contentUdi, out Udi? contentUdiParsed))
return string.Empty;
Expand All @@ -96,7 +95,7 @@ public async Task<string> RenderGridBlock(

BlockItemData? contentData = blockData.ContentData.FirstOrDefault(x => x.Udi == contentUdiParsed);
if (contentData == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidContentData);

IPublishedElement? contentElement = ConvertToElement(contentData, true);

Expand All @@ -110,9 +109,7 @@ public async Task<string> RenderGridBlock(
Type? settingsBlockType = settingsElement != null ? FindBlockType(settingsElement.ContentType.Alias) : default;

if (contentBlockType == null || (settingsElement != null && settingsBlockType == null))
{
return $"<div class=\"preview-alert preview-alert-warning\">ModelsBuilder is enabled but the generated model(s) could not be found. Please try regenerating models and restarting the application.</div>";
}
return string.Format(Constants.ErrorMessages.WarningTemplate, Constants.ErrorMessages.NoGeneratedModels);

BlockGridItem? blockInstance = CreateBlockInstance(
BlockType.BlockGrid,
Expand Down Expand Up @@ -165,16 +162,16 @@ public async Task<string> RenderListBlock(
string? settingsUdi = default)
{
if (blockData == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidBlockData);

if (!UdiParser.TryParse(contentUdi, out Udi? contentUdiParsed))
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidContentKey);

UdiParser.TryParse(settingsUdi!, out Udi? settingsUdiParsed);

BlockItemData? contentData = blockData.ContentData.FirstOrDefault(x => x.Udi == contentUdiParsed);
if (contentData == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidContentData);

IPublishedElement? contentElement = ConvertToElement(contentData, true);

Expand All @@ -187,6 +184,9 @@ public async Task<string> RenderListBlock(
Type? contentBlockType = FindBlockType(contentElement?.ContentType.Alias);
Type? settingsBlockType = settingsElement != null ? FindBlockType(settingsElement.ContentType.Alias) : default;

if (contentBlockType == null || (settingsElement != null && settingsBlockType == null))
return string.Format(Constants.ErrorMessages.WarningTemplate, Constants.ErrorMessages.NoGeneratedModels);

BlockListItem? blockInstance = CreateBlockInstance(
BlockType.BlockList,
contentBlockType, contentElement,
Expand All @@ -195,7 +195,7 @@ public async Task<string> RenderListBlock(
) as BlockListItem;

if (blockInstance == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidBlockInstance);

ViewDataDictionary viewData = CreateViewData(blockInstance, BlockType.BlockList);
return await GetMarkup(controllerContext, contentElement?.ContentType.Alias, viewData, BlockType.BlockList);
Expand All @@ -207,11 +207,11 @@ public async Task<string> RenderRichTextBlock(
ControllerContext controllerContext)
{
if (blockData == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidBlockData);

BlockItemData? contentData = blockData.ContentData.FirstOrDefault();
if (contentData == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidContentData);

IPublishedElement? contentElement = ConvertToElement(contentData, true);

Expand All @@ -221,6 +221,9 @@ public async Task<string> RenderRichTextBlock(
Type? contentBlockType = FindBlockType(contentElement?.ContentType.Alias);
Type? settingsBlockType = settingsElement != null ? FindBlockType(settingsElement.ContentType.Alias) : default;

if (contentBlockType == null || (settingsElement != null && settingsBlockType == null))
return string.Format(Constants.ErrorMessages.WarningTemplate, Constants.ErrorMessages.NoGeneratedModels);

RichTextBlockItem? blockInstance = CreateBlockInstance(
BlockType.RichText,
contentBlockType, contentElement,
Expand All @@ -229,7 +232,7 @@ public async Task<string> RenderRichTextBlock(
) as RichTextBlockItem;

if (blockInstance == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.ErrorTemplate, Constants.ErrorMessages.InvalidBlockInstance);

ViewDataDictionary viewData = CreateViewData(blockInstance, BlockType.RichText);
return await GetMarkup(controllerContext, contentElement?.ContentType.Alias, viewData, BlockType.RichText);
Expand Down Expand Up @@ -419,13 +422,13 @@ private async Task<string> GetMarkupFromPartial(
_razorViewEngine.FindView(controllerContext, contentAlias?.ToPascalCase()!, false);

if (!viewResult.Success)
return string.Empty;
return string.Format(Constants.ErrorMessages.WarningTemplate, Constants.ErrorMessages.ViewNotFound);
}

var actionContext = new ActionContext(controllerContext.HttpContext, new RouteData(), new ActionDescriptor());

if (viewResult.View == null)
return string.Empty;
return string.Format(Constants.ErrorMessages.WarningTemplate, Constants.ErrorMessages.ViewNotFound);

await using var sw = new StringWriter();

Expand Down Expand Up @@ -480,16 +483,16 @@ private void ConfigureBlockInstanceAreas(
if (!blockConfigAreaMap.TryGetValue(area.Key, out var areaConfig))
return null;

//var items = area.Items.Select(item =>
//{
// BlockItemData? areaContentData = blockValue.ContentData.FirstOrDefault(x => x.Udi == item.ContentUdi);
// IPublishedElement? areaContentElement = ConvertToElement(areaContentData!, true);
var items = area.Items.Select(item =>
{
BlockItemData? areaContentData = blockValue.ContentData.FirstOrDefault(x => x.Udi == item.ContentUdi);
IPublishedElement? areaContentElement = ConvertToElement(areaContentData!, true);

// BlockItemData? areaSettingsData = blockValue.SettingsData.FirstOrDefault(x => x.Udi == item.SettingsUdi);
// IPublishedElement? areaSettingsElement = areaSettingsData != null ? ConvertToElement(areaSettingsData, true) : default;
BlockItemData? areaSettingsData = blockValue.SettingsData.FirstOrDefault(x => x.Udi == item.SettingsUdi);
IPublishedElement? areaSettingsElement = areaSettingsData != null ? ConvertToElement(areaSettingsData, true) : default;

// return new BlockGridItem(item.ContentUdi!, areaContentElement!, item.SettingsUdi!, areaSettingsElement!);
//}).WhereNotNull().ToList();
return new BlockGridItem(item.ContentUdi!, areaContentElement!, item.SettingsUdi!, areaSettingsElement!);
}).WhereNotNull().ToList();

return new BlockGridArea(new List<BlockGridItem>(area.Items.Count()), areaConfig.Alias!, areaConfig.RowSpan!.Value, areaConfig.ColumnSpan!.Value);
}).WhereNotNull().ToList();
Expand Down

0 comments on commit 8202a4d

Please sign in to comment.