Report 13 -- Visual Grid Migration Plan: Before & After Per Datatype¶
Date: 2026-02-26
Sources: 03-v8-grid-baseline.md, 11-grid-dedup-deep-investigation.md, 12-grid-architecture-explained.md, _blockgrid-configs.json
Introduction¶
This document provides a side-by-side visual mapping of every v8 Grid datatype to its v17 BlockGrid equivalent. For each of the 14 datatypes, it shows the complete v8 configuration (templates, rows, areas, editors) and the corresponding v17 element type hierarchy (row configs, layouts, area wrappers, settings, content types).
Why per-datatype architecture is correct: Report 11 confirmed that ZERO layouts are truly identical across datatypes. Even when column structures match (e.g., every "Half" is 6+6), the allowed editor lists differ because each datatype has a different content element type set. Area wrappers encode those editor permissions and therefore MUST remain per-datatype. Sharing layout element types would save only ~42 empty records while adding complexity and risk.
NOTE -- Naming Convention Used in This Document
Throughout the V17 BlockGrid diagrams, element types are shown as:
"Display Name" (technical_alias)
- Display Name = what editors see in the Umbraco backoffice (e.g., "Full Width", "Row Settings")
- Alias = the technical identifier used in code and configuration (e.g.,
grid_1534_layout_fullwidth)- The alias format is:
grid_{v8DataTypeId}_{category}_{sanitizedName}where category is one oflayout,areawrapper,rowconfig,rowsettings,cellsettings,blocksettings
Hierarchy Architecture & Fix Status¶
Hierarchy Fix Applied¶
The Layout AllowAtRoot flag was changed from true to false in GridConfigurationMigrationService.cs line 2843. Previously, Layout blocks were allowed at root, which meant an editor could drop a layout directly onto the grid surface without a Row Config parent. This broke the intended strict nesting model.
Corrected hierarchy (enforced after fix):
Row Config (AllowAtRoot=true, AllowInAreas=false)
└─ Layout (AllowAtRoot=false, AllowInAreas=true)
└─ Area Wrapper (AllowAtRoot=false, AllowInAreas=true) — carries cellSettings for v8 cell styles
└─ Content Element Types (AllowAtRoot=false, AllowInAreas=true)
Every level below Row Config now has AllowAtRoot=false, guaranteeing that blocks can only appear at the correct depth. Row Configs are the only blocks permitted at root. Layouts must be placed inside a Row Config area. Area Wrappers must be placed inside a Layout area. Content elements must be placed inside an Area Wrapper area.
Why Area Wrappers Are Essential¶
Area Wrappers exist to preserve v8 cell-level styles (background-color, background-image, padding, margin, CSS classes, AOS animations). In the v8 Grid, each cell (column) within a row could carry its own styles and settings independently of the row and independently of the content placed inside it. The Area Wrapper is the v17 block that corresponds to that cell.
In the v17 renderer, these cell-level styles are read by:
BlockGridExtensions.BuildStyleAttribute()— constructs inlinestyle=""attributes from the Area Wrapper's attachedcellSettingselement (background-color, background-image, padding, margin).BlockGridExtensions.BuildHtmlAttributes()— constructs HTML attributes from the Area Wrapper's attachedcellSettingselement (CSS class, ID,data-aos-*animation attributes).
Without Area Wrappers, there would be no block to attach cell settings to, and all v8 cell-level styling would be silently lost during migration. The column <div> in BootstrapGrid.cshtml would render with no styles, no classes, and no animation attributes.
Content Migration Status¶
Status: IMPLEMENTED — The production content migration (GridLayoutToBlockGridMigrator.cs) already creates proper 4-level nesting. ConvertRowAsync() creates Layout blocks with row settings, CreateAreaWrapperBlockAsync() creates Area Wrapper blocks with cell settings, and ConvertMultiSectionTemplateAsync() wraps multi-section templates in Row Config blocks. The older GridContentMigrationService.cs is an unused secondary code path.
The production content migration is called by SqlMigrationService.TransformGridLayoutValueAsync() and implements the full hierarchy:
Row Config block ← ConvertMultiSectionTemplateAsync()
└─ Layout block ← ConvertRowAsync(), with rowSettings attached
└─ Area Wrapper block ← CreateAreaWrapperBlockAsync(), with cellSettings attached carrying cell styles
└─ Content Element Types (the actual editor content — RTE, media, DTGE, etc.)
Backoffice UX: Overhead Clicks & Mitigations¶
The 4-level hierarchy approximately doubles the number of editor clicks compared to v8:
| Scenario | V8 Clicks | V17 Clicks | Overhead |
|---|---|---|---|
| Add full-width RTE block | ~3 | ~7 | +133% |
| Add 2-column layout with content | ~5 | ~11 | +120% |
| Add 3-column with styled background | ~7 | ~15 | +114% |
Why this is necessary: Area Wrappers are the ONLY place where v8 cell-level styles (background-color, background-image, padding, margin, CSS classes, AOS animations) are preserved. Without them, all cell styling from v8 is lost. The BlockGridExtensions.BuildStyleAttribute() and BuildHtmlAttributes() methods read settings from Area Wrapper blocks.
Mitigation Strategies:
-
Content Templates (Lowest Effort, Highest Impact for New Pages) Pre-populate new pages with the Row Config + Layout + Area Wrapper hierarchy already in place. Editors create pages from templates and only need to click into content areas to add/edit content blocks. This eliminates all hierarchy setup clicks for pages created from templates.
-
Custom "Quick Add" Backoffice Extension (Medium Effort, Highest Impact for Existing Pages) Build a toolbar button offering presets: "Add Full Width Row", "Add Two Column Row", "Add Three Column Row". Each preset auto-inserts the complete Row Config + Layout + Area Wrapper chain in one click. This reduces the workflow from ~7 clicks to ~3 clicks, matching v8 experience.
-
Auto-Insert Single-Choice Levels (Medium Effort, Targeted Impact) For the 5 datatypes with only 1 Row Config option (Cookie Grid, Footer Grid, Full Width Grid, Homepage Grid, Sp with Nav Left), auto-insert the Row Config when the editor first adds content — skipping the catalogue since there's only one choice. Saves 1 click per interaction on these datatypes.
Practical Recommendation: Start with Content Templates (quick to set up in the Umbraco backoffice, no code required). If editors still find the workflow too cumbersome after launch, build the Quick Add extension as a phase 2 enhancement.
BlockGrid Hierarchy Rules¶
The v17 BlockGrid uses a four-level nesting model. Every content block placed by an editor passes through this chain:
Row Config (root block, allowAtRoot=true, allowInAreas=false)
+-- Layout (allowAtRoot=false, allowInAreas=true)
+-- Area Wrapper (allowAtRoot=false, allowInAreas=true)
+-- Content Element Types (editors placed here)
Row Config = corresponds to v8 "Template" (page-level section layout). Its areas allow layouts. Layout = corresponds to v8 "Row" (content row within a section). Its areas allow area wrappers. Area Wrapper = one per layout area. Its single inner "content" area allows specific content element types. Content Element Types = shared across all datatypes. Corresponds to v8 grid editors (RTE, media, DTGE types, etc.).
Settings element types (row settings, cell settings, block settings) attach to blocks to carry style/config properties like CSS class, background image, background color, padding, margin, animation attributes.
V8→V17 Settings Mapping: Row, Cell, Control → Block Settings¶
This section explains exactly how v8 Grid concepts map to v17 BlockGrid concepts, particularly where settings (styles and config) are applied. This is critical for ensuring the renderer (BootstrapGrid.cshtml) reads settings from the correct block level.
V8 Grid Structure¶
In Umbraco v8, the Grid Editor has three levels that can carry settings:
Template (page section — e.g., "1 column layout", "Left Nav")
+-- Row (layout — e.g., "FullWidth", "Half", "Thirds")
| Settings applied: ROW STYLES + ROW SETTINGS
| - Row styles: background-image, background-color, padding, margin
| - Row settings: class, ID, data-aos (animation), data-aos-offset, data-aos-easing
|
+-- Cell (column within the row — the area, e.g., "col-6", "col-4")
| Settings applied: CELL STYLES + CELL SETTINGS
| - Cell styles: background-color (per-column color)
| - Cell settings: (none in most datatypes)
|
+-- Control (the actual widget/editor — e.g., RTE, media, heading)
Settings applied: NONE (controls have no settings in v8 Grid)
Key V8 Behavior:
- The Row wrapper <div> gets row styles/settings as HTML attributes and inline styles
- Each Cell (column) <div> gets cell styles as inline styles
- Controls have no settings — they are raw content blocks
V17 BlockGrid Mapping¶
Row Config (= v8 Template)
Attached settings: NONE (row configs are structural only)
+-- Layout (= v8 Row)
| Attached settings: rowSettings element type
| - Carries: class, ID, background-image, background-color,
| padding, margin, data-aos, data-aos-offset, data-aos-easing, visible
| - BootstrapGrid.cshtml reads: rowBlock.Settings → BuildHtmlAttributes() + BuildStyleAttribute()
| - Renders as: outer row wrapper <div> with all row styles/attributes
|
+-- Area Wrapper (= v8 Cell/Column)
| Attached settings: cellSettings element type
| - Carries: background-color (per-column color)
| - BootstrapGrid.cshtml reads: areaWrapper.Settings → BuildHtmlAttributes() + BuildStyleAttribute()
| - Renders as: inner column <div> with cell background-color
|
+-- Content Block (= v8 Control)
Attached settings: blockSettings element type
- Carries: same properties as rowSettings + hidden flag
- NEW in v17: Controls CAN have settings (not possible in v8 Grid)
- Used for per-block visibility toggle and additional styling
How the Renderer Uses Settings¶
In BootstrapGrid.cshtml, the rendering chain is:
// 1. ROW LEVEL — reads Layout block's Settings (= v8 Row settings)
var rowSettings = rowBlock.Settings; // <-- rowSettings element type
var rowAttrs = rowSettings.BuildHtmlAttributes(); // class, ID, data-aos-*
var rowStyle = rowSettings.BuildStyleAttribute(); // background-image, bg-color, padding, margin
// Renders: <div {rowAttrs} style="{rowStyle}">
// 2. COLUMN LEVEL — reads Area Wrapper block's Settings (= v8 Cell settings)
var areaSettings = areaWrapper.Settings; // <-- cellSettings element type
var areaAttrs = areaSettings.BuildHtmlAttributes(); // class (if any)
var areaStyle = areaSettings.BuildStyleAttribute(); // background-color
// Renders: <div class="col-lg-{span}" {areaAttrs} style="{areaStyle}">
// 3. CONTENT LEVEL — individual block Settings (= v8 had no equivalent)
// Content blocks render via their own partial views
// blockSettings can control visibility, additional CSS class, etc.
Settings Property Mapping Table¶
| V8 Property | Apply To (v8) | V17 Settings Type | V17 Property Alias | CSS/HTML Output |
|---|---|---|---|---|
background-image |
Row style | rowSettings | setABackgroundImage / backgroundImage |
style="background-image: url('...')" |
background-color (row) |
Row style | rowSettings | backgroundColor / background-color |
style="background-color: #hex" |
background-color (cell) |
Cell style | cellSettings | backgroundColor / background-color |
style="background-color: #hex" |
padding |
Row style | rowSettings | padding (+ top/bottom/left/right) |
style="padding: ..." |
margin |
Row style | rowSettings | margin (+ top/bottom/left/right) |
style="margin: ..." |
class |
Row setting | rowSettings | class |
class="user-class" |
ID |
Row setting | rowSettings | elementId |
id="user-id" |
data-aos |
Row setting | rowSettings | animationStyle |
data-aos="fade-up" |
data-aos-offset |
Row setting | rowSettings | animationOffset |
data-aos-offset="200" |
data-aos-easing |
Row setting | rowSettings | animationEasing |
data-aos-easing="ease-in" |
visible |
N/A (new) | rowSettings / blockSettings | visible |
Controls visibility |
Settings Signatures by DataType¶
Not all datatypes have the same settings properties. The v8 grid configurations differ:
| Signature | Row Styles | Row Settings | Cell Styles | DataTypes |
|---|---|---|---|---|
| A (Standard) | bgImage, bgColor, padding, margin | class | bgColor | 1055, 1093, 1127, 1151, 1459, 1683, 1709, 1257, 2236 |
| B (Full Animation) | A + same | class, ID, data-aos, data-aos-offset, data-aos-delay, data-aos-duration, data-aos-easing | bgColor | 1534 (Animated Grid) |
| C (Partial Animation) | A + same | class, ID, data-aos, data-aos-offset, data-aos-easing | bgColor | 1803 (Standard Page Full Width) |
| D (Minimal + bgColor) | bgImage, bgColor | class | bgColor | 1780 (services Grid) |
| E (Minimal) | bgImage | class | none | 1736 (Full width Grid), 1798 (Sp with Nav Left) |
Migration Tool Code Reference¶
The migration tool creates settings element types in CreateSettingsElementTypesAsync():
- rowSettings: Combines row styles + row settings into one element type
- cellSettings: Contains cell styles only (typically just background-color)
- blockSettings: Mirrors rowSettings properties + adds hidden/visible flag
All three settings types use dataTypeId in their alias and GUID:
The BuildBlockGridConfigurationAsync() method then attaches these as settingsElementTypeKey on the appropriate block entries in the BlockGrid configuration JSON.
Per-Datatype Visual Plans¶
DataType 1: Animated Grid (V8 ID: 1534)¶
V8 Configuration:
Grid DataType: Animated Grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "2 column layout" -> [4 + 8]
+-- Template: (unnamed) -> [8 + 4] (allowAll)
|
+-- Row: "FullWidth" -> 1 area
| +-- Area 0 (12 cols): 42 specific editors
| rte, media, quote, headingItem, slider, faqWithSchema, qrCodeItem, ...
|
+-- Row: "Half" -> 2 areas
| +-- Area 0 (6 cols): allowAll
| +-- Area 1 (6 cols): allowAll
|
+-- Row: "Thirds" -> 3 areas
+-- Area 0 (4 cols): allowAll
+-- Area 1 (4 cols): allowAll
+-- Area 2 (4 cols): allowAll
Settings (row): class, ID, data-aos, data-aos-offset, data-aos-easing
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Animated Grid
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_1534_rowconfig_1ColumnLayout) -> allows all 3 layouts
| +-- "2 Column Layout" (grid_1534_rowconfig_2ColumnLayout) -> allows all 3 layouts
| +-- "(unnamed)" (grid_1534_rowconfig_(unnamed)) -> allows all 3 layouts
|
+-- [Layouts]
| +-- "Full Width" (grid_1534_layout_fullwidth) -> 1 area
| | +-- Area 0 (col-12): -> "Full Width / Area 0" (grid_1534_areawrapper_fullwidth_0)
| +-- "Half" (grid_1534_layout_half) -> 2 areas
| | +-- Area 0 (col-6): -> "Half / Area 0" (grid_1534_areawrapper_half_0)
| | +-- Area 1 (col-6): -> "Half / Area 1" (grid_1534_areawrapper_half_1)
| +-- "Thirds" (grid_1534_layout_thirds) -> 3 areas
| +-- Area 0 (col-4): -> "Thirds / Area 0" (grid_1534_areawrapper_thirds_0)
| +-- Area 1 (col-4): -> "Thirds / Area 1" (grid_1534_areawrapper_thirds_1)
| +-- Area 2 (col-4): -> "Thirds / Area 2" (grid_1534_areawrapper_thirds_2)
|
+-- [Area Wrappers]
| +-- "Full Width / Area 0" (grid_1534_areawrapper_fullwidth_0) -> allows: 42 specific content types
| +-- "Half / Area 0" (grid_1534_areawrapper_half_0) -> allows: all 50 content types (allowAll)
| +-- "Half / Area 1" (grid_1534_areawrapper_half_1) -> allows: all 50 content types (allowAll)
| +-- "Thirds / Area 0" (grid_1534_areawrapper_thirds_0) -> allows: all 50 content types (allowAll)
| +-- "Thirds / Area 1" (grid_1534_areawrapper_thirds_1) -> allows: all 50 content types (allowAll)
| +-- "Thirds / Area 2" (grid_1534_areawrapper_thirds_2) -> allows: all 50 content types (allowAll)
|
+-- [Settings]
| +-- "Row Settings" (grid_1534_rowsettings) (props: class, ID, data-aos, data-aos-offset,
| | data-aos-easing, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1534_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1534_blocksettings) (props: mirrors row settings + hidden)
|
+-- [Shared Content Types]: ~50 types (rte, media, quote, embed, headingItem,
stripedList, slider, faqWithSchema, TestimonialCompleteGridEditor, ...)
Folder Organization:
GridEditors/
+-- Animated Grid/
+-- Layouts/ -> FullWidth, Half, Thirds
+-- Area Wrappers/ -> 6 wrappers
+-- Row Configs/ -> 1ColumnLayout, 2ColumnLayout, (unnamed)
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 2: Article Controls (V8 ID: 1055) -- MISSING FROM V17¶
V8 Configuration:
Grid DataType: Article Controls - article Grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "Left Nav" -> [4 + 8]
+-- Template: "Right Nav" -> [8 + 4] (allowAll)
|
+-- Row: "Full Width" -> 1 area
| +-- Area 0 (12 cols): 27 specific editors
| rte, media, embed, quote, headingItem, stripedList, NumberedList, ...
|
+-- Row: "Half" -> 2 areas
| +-- Area 0 (6 cols): 18 specific editors (no videoFullWidth, no umbraco_form_picker)
| +-- Area 1 (6 cols): 19 specific editors (has videoFullWidth + umbraco_form_picker)
|
+-- Row: "Thirds" -> 3 areas
+-- Area 0 (4 cols): 12 specific editors (no quote)
+-- Area 1 (4 cols): 13 specific editors (has quote)
+-- Area 2 (4 cols): 13 specific editors (has quote)
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
Used by: articleControls (12 content nodes)
V17 BlockGrid (After Migration) -- EXPECTED but MISSING:
!! Article Controls (DT 1055) is MISSING from v17 BlockGrid configs !!
!! 12 content nodes use this datatype - this is a migration tool bug !!
Expected structure would be:
BlockGrid DataType: Article Controls
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_1055_rowconfig_1ColumnLayout)
| +-- "Left Nav" (grid_1055_rowconfig_leftNav)
| +-- "Right Nav" (grid_1055_rowconfig_rightNav)
|
+-- [Layouts]
| +-- "Full Width" (grid_1055_layout_fullwidth) -> 1 area (col-12)
| +-- "Half" (grid_1055_layout_half) -> 2 areas (col-6 + col-6)
| +-- "Thirds" (grid_1055_layout_thirds) -> 3 areas (col-4 + col-4 + col-4)
|
+-- [Area Wrappers] -> 6 wrappers
+-- [Settings] -> "Row Settings", "Cell Settings", "Block Settings"
+-- [Content Types] -> ~27 types
ACTION REQUIRED: Investigate why DT 1055 BlockGrid configuration is absent despite having content in 12 nodes.
DataType 3: articleGrid (V8 ID: 1683)¶
V8 Configuration:
Grid DataType: articleGrid (12 columns)
+-- Template: "2 column layout" -> [8 + 4]
|
+-- Row: "Full" -> 1 area
| +-- Area 0 (12 cols): 31 specific editors
| rte, media, quote, headingItem, stripedList, linkListControl, ...
|
+-- Row: "half" -> 2 areas
| +-- Area 0 (6 cols): allowAll
| +-- Area 1 (6 cols): allowAll
|
+-- Row: "Thirds" -> 3 areas
+-- Area 0 (4 cols): allowAll
+-- Area 1 (4 cols): allowAll
+-- Area 2 (4 cols): allowAll
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: articleGrid
+-- [Root Allowed - Row Configs]
| +-- "2 Column Layout" (grid_1683_rowconfig_2ColumnLayout) -> allows all 3 layouts
|
+-- [Layouts]
| +-- "Full" (grid_1683_layout_full) -> 1 area
| | +-- Area 0 (col-12): -> "Full / Area 0" (grid_1683_areawrapper_full_0)
| +-- "Half" (grid_1683_layout_half) -> 2 areas
| | +-- Area 0 (col-6): -> "Half / Area 0" (grid_1683_areawrapper_half_0)
| | +-- Area 1 (col-6): -> "Half / Area 1" (grid_1683_areawrapper_half_1)
| +-- "Thirds" (grid_1683_layout_thirds) -> 3 areas
| +-- Area 0 (col-4): -> "Thirds / Area 0" (grid_1683_areawrapper_thirds_0)
| +-- Area 1 (col-4): -> "Thirds / Area 1" (grid_1683_areawrapper_thirds_1)
| +-- Area 2 (col-4): -> "Thirds / Area 2" (grid_1683_areawrapper_thirds_2)
|
+-- [Area Wrappers]
| +-- "Full / Area 0" (grid_1683_areawrapper_full_0) -> allows: 31 specific content types
| +-- "Half / Area 0" (grid_1683_areawrapper_half_0) -> allows: all 35 content types (allowAll)
| +-- "Half / Area 1" (grid_1683_areawrapper_half_1) -> allows: all 35 content types (allowAll)
| +-- "Thirds / Area 0" (grid_1683_areawrapper_thirds_0) -> allows: all 35 content types (allowAll)
| +-- "Thirds / Area 1" (grid_1683_areawrapper_thirds_1) -> allows: all 35 content types (allowAll)
| +-- "Thirds / Area 2" (grid_1683_areawrapper_thirds_2) -> allows: all 35 content types (allowAll)
|
+-- [Settings]
| +-- "Row Settings" (grid_1683_rowsettings) (props: class, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1683_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1683_blocksettings)
|
+-- [Shared Content Types]: ~35 types
Folder Organization:
GridEditors/
+-- articleGrid/
+-- Layouts/ -> Full, Half, Thirds
+-- Area Wrappers/ -> 6 wrappers
+-- Row Configs/ -> 2ColumnLayout
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 4: Contact us Grid (V8 ID: 1093)¶
V8 Configuration:
Grid DataType: Contact us Grid (12 columns)
+-- Template: "Full width" -> [12]
+-- Template: "Left Nav" -> [4 + 8]
+-- Template: "Right Nav" -> [8 + 4] (allowAll)
|
+-- Row: "Full Width" -> 1 area
| +-- Area 0 (12 cols): 8 specific editors
| media, embed, barChart, faqControls, GlobalAddress,
| LargeGoogleMap, LargeLeafLetMap, headingItem
|
+-- Row: "Two & Two" -> 2 areas
+-- Area 0 (6 cols): 1 editor (GlobalAddressCompleteGridEditor)
+-- Area 1 (6 cols): 1 editor (umbraco_form_picker)
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Contact us Grid
+-- [Root Allowed - Row Configs]
| +-- "Full Width" (grid_1093_rowconfig_fullWidth) -> allows all 2 layouts
| +-- "Left Nav" (grid_1093_rowconfig_leftNav) -> allows all 2 layouts
| +-- "Right Nav" (grid_1093_rowconfig_rightNav) -> allows all 2 layouts
|
+-- [Layouts]
| +-- "Full Width" (grid_1093_layout_fullwidth) -> 1 area
| | +-- Area 0 (col-12): -> "Full Width / Area 0" (grid_1093_areawrapper_fullwidth_0)
| +-- "Two & Two" (grid_1093_layout_twotwo) -> 2 areas
| +-- Area 0 (col-6): -> "Two & Two / Area 0" (grid_1093_areawrapper_twotwo_0)
| +-- Area 1 (col-6): -> "Two & Two / Area 1" (grid_1093_areawrapper_twotwo_1)
|
+-- [Area Wrappers]
| +-- "Full Width / Area 0" (grid_1093_areawrapper_fullwidth_0) -> allows: 8 content types
| +-- "Two & Two / Area 0" (grid_1093_areawrapper_twotwo_0) -> allows: 1 content type (GlobalAddress)
| +-- "Two & Two / Area 1" (grid_1093_areawrapper_twotwo_1) -> allows: 1 content type (umbraco_form_picker)
|
+-- [Settings]
| +-- "Row Settings" (grid_1093_rowsettings) (props: class, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1093_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1093_blocksettings)
|
+-- [Shared Content Types]: ~14 types
Folder Organization:
GridEditors/
+-- Contact us Grid/
+-- Layouts/ -> FullWidth, Two & Two
+-- Area Wrappers/ -> 3 wrappers
+-- Row Configs/ -> fullWidth, leftNav, rightNav
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 5: Cookie Grid (V8 ID: 1709)¶
V8 Configuration:
Grid DataType: Cookie Grid (12 columns)
+-- Template: "1 column layout" -> [12]
|
+-- Row: "Full" -> 1 area
| +-- Area 0 (12 cols): allowAll
|
+-- Row: "Half" -> 2 areas
| +-- Area 0 (6 cols): allowAll
| +-- Area 1 (6 cols): allowAll
|
+-- Row: "Thirds" -> 3 areas
| +-- Area 0 (4 cols): allowAll
| +-- Area 1 (4 cols): allowAll
| +-- Area 2 (4 cols): allowAll
|
+-- Row: "leftNav" -> 2 areas
+-- Area 0 (4 cols): allowAll
+-- Area 1 (8 cols): 3 editors (headline, rte, macro)
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Cookie Grid
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_1709_rowconfig_1ColumnLayout) -> allows all 4 layouts
|
+-- [Layouts]
| +-- "Full" (grid_1709_layout_full) -> 1 area
| | +-- Area 0 (col-12): -> "Full / Area 0" (grid_1709_areawrapper_full_0)
| +-- "Half" (grid_1709_layout_half) -> 2 areas
| | +-- Area 0 (col-6): -> "Half / Area 0" (grid_1709_areawrapper_half_0)
| | +-- Area 1 (col-6): -> "Half / Area 1" (grid_1709_areawrapper_half_1)
| +-- "Thirds" (grid_1709_layout_thirds) -> 3 areas
| | +-- Area 0 (col-4): -> "Thirds / Area 0" (grid_1709_areawrapper_thirds_0)
| | +-- Area 1 (col-4): -> "Thirds / Area 1" (grid_1709_areawrapper_thirds_1)
| | +-- Area 2 (col-4): -> "Thirds / Area 2" (grid_1709_areawrapper_thirds_2)
| +-- "Left Nav" (grid_1709_layout_leftnav) -> 2 areas
| +-- Area 0 (col-4): -> "Left Nav / Area 0" (grid_1709_areawrapper_leftnav_0)
| +-- Area 1 (col-8): -> "Left Nav / Area 1" (grid_1709_areawrapper_leftnav_1)
|
+-- [Area Wrappers]
| +-- "Full / Area 0" (grid_1709_areawrapper_full_0) -> allows: all 8 content types (allowAll)
| +-- "Half / Area 0" (grid_1709_areawrapper_half_0) -> allows: all 8 content types (allowAll)
| +-- "Half / Area 1" (grid_1709_areawrapper_half_1) -> allows: all 8 content types (allowAll)
| +-- "Thirds / Area 0" (grid_1709_areawrapper_thirds_0) -> allows: all 8 content types (allowAll)
| +-- "Thirds / Area 1" (grid_1709_areawrapper_thirds_1) -> allows: all 8 content types (allowAll)
| +-- "Thirds / Area 2" (grid_1709_areawrapper_thirds_2) -> allows: all 8 content types (allowAll)
| +-- "Left Nav / Area 0" (grid_1709_areawrapper_leftnav_0) -> allows: all 8 content types (allowAll)
| +-- "Left Nav / Area 1" (grid_1709_areawrapper_leftnav_1) -> allows: 3 content types (headline, rte, macro)
|
+-- [Settings]
| +-- "Row Settings" (grid_1709_rowsettings) (props: class, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1709_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1709_blocksettings)
|
+-- [Shared Content Types]: ~8 types
Folder Organization:
GridEditors/
+-- Cookie Grid/
+-- Layouts/ -> Full, Half, Thirds, LeftNav
+-- Area Wrappers/ -> 8 wrappers
+-- Row Configs/ -> 1ColumnLayout
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 6: Footer Grid (V8 ID: 1127)¶
V8 Configuration:
Grid DataType: Footer Grid (12 columns)
+-- Template: "FullWidth" -> [12]
|
+-- Row: "FullWidth" -> 1 area
| +-- Area 0 (12 cols): 20 specific editors
| rte, media, embed, quote, headingItem, stripedList, linkListControl, ...
|
+-- Row: "Third" -> 3 areas
| +-- Area 0 (4 cols): 10 editors (rte, media, quote, headingItem, LargeLeafLetMap, ...)
| +-- Area 1 (4 cols): 10 editors (rte, media, quote, headingItem, CTA, ...)
| +-- Area 2 (4 cols): 10 editors (rte, media, quote, headingItem, CTA, ...)
|
+-- Row: "six Five One" -> 3 areas
| +-- Area 0 (6 cols): allowAll
| +-- Area 1 (5 cols): 12 editors (rte, media, embed, headingItem, ...)
| +-- Area 2 (1 col): allowAll
|
+-- Row: "nineThree" -> 2 areas
| +-- Area 0 (9 cols): allowAll
| +-- Area 1 (3 cols): allowAll
|
+-- Row: "four five three" -> 3 areas
| +-- Area 0 (5 cols): allowAll
| +-- Area 1 (4 cols): allowAll
| +-- Area 2 (3 cols): allowAll
|
+-- Row: "Sixths" -> 6 areas
+-- Area 0-5 (2 cols each): all allowAll
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Footer Grid
+-- [Root Allowed - Row Configs]
| +-- "Full Width" (grid_1127_rowconfig_fullwidth) -> allows all 6 layouts
|
+-- [Layouts]
| +-- "Full Width" (grid_1127_layout_fullwidth) -> 1 area (col-12)
| +-- "Third" (grid_1127_layout_third) -> 3 areas (col-4 + col-4 + col-4)
| +-- "Six Five One" (grid_1127_layout_sixfiveone) -> 3 areas (col-6 + col-5 + col-1)
| +-- "Nine Three" (grid_1127_layout_ninethree) -> 2 areas (col-9 + col-3)
| +-- "Four Five Three" (grid_1127_layout_fourfivethree) -> 3 areas (col-5 + col-4 + col-3)
| +-- "Sixths" (grid_1127_layout_sixths) -> 6 areas (col-2 x 6)
|
+-- [Area Wrappers]
| +-- "Full Width / Area 0" (grid_1127_areawrapper_fullwidth_0) -> allows: 20 content types
| +-- "Third / Area 0" (grid_1127_areawrapper_third_0) -> allows: 10 content types
| +-- "Third / Area 1" (grid_1127_areawrapper_third_1) -> allows: 10 content types
| +-- "Third / Area 2" (grid_1127_areawrapper_third_2) -> allows: 10 content types
| +-- "Six Five One / Area 0" (grid_1127_areawrapper_sixfiveone_0) -> allows: all 31 (allowAll)
| +-- "Six Five One / Area 1" (grid_1127_areawrapper_sixfiveone_1) -> allows: 12 content types
| +-- "Six Five One / Area 2" (grid_1127_areawrapper_sixfiveone_2) -> allows: all 31 (allowAll)
| +-- "Nine Three / Area 0" (grid_1127_areawrapper_ninethree_0) -> allows: all 31 (allowAll)
| +-- "Nine Three / Area 1" (grid_1127_areawrapper_ninethree_1) -> allows: all 31 (allowAll)
| +-- "Four Five Three / Area 0" (grid_1127_areawrapper_fourfivethree_0) -> allows: all 31 (allowAll)
| +-- "Four Five Three / Area 1" (grid_1127_areawrapper_fourfivethree_1) -> allows: all 31 (allowAll)
| +-- "Four Five Three / Area 2" (grid_1127_areawrapper_fourfivethree_2) -> allows: all 31 (allowAll)
| +-- "Sixths / Area 0" (grid_1127_areawrapper_sixths_0) -> allows: all 31 (allowAll)
| +-- "Sixths / Area 1" (grid_1127_areawrapper_sixths_1) -> allows: all 31 (allowAll)
| +-- "Sixths / Area 2" (grid_1127_areawrapper_sixths_2) -> allows: all 31 (allowAll)
| +-- "Sixths / Area 3" (grid_1127_areawrapper_sixths_3) -> allows: all 31 (allowAll)
| +-- "Sixths / Area 4" (grid_1127_areawrapper_sixths_4) -> allows: all 31 (allowAll)
| +-- "Sixths / Area 5" (grid_1127_areawrapper_sixths_5) -> allows: all 31 (allowAll)
|
+-- [Settings]
| +-- "Row Settings" (grid_1127_rowsettings) (props: class, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1127_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1127_blocksettings)
|
+-- [Shared Content Types]: ~31 types
Folder Organization:
GridEditors/
+-- Footer Grid/
+-- Layouts/ -> FullWidth, Third, sixFiveOne, nineThree, fourFiveThree, Sixths
+-- Area Wrappers/ -> 18 wrappers
+-- Row Configs/ -> fullwidth
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 7: Full width Grid (V8 ID: 1736)¶
V8 Configuration:
Grid DataType: Full width Grid (12 columns)
+-- Template: "1 column layout" -> [12]
|
+-- Row: "Full Width" -> 1 area
| +-- Area 0 (12 cols): 6 editors (rte, media, embed, quote, headingItem, psFancyVideo)
|
+-- Row: "Half" -> 2 areas
| +-- Area 0 (6 cols): 6 editors (rte, media, embed, quote, headingItem, psStyledHeading)
| +-- Area 1 (6 cols): 5 editors (rte, media, embed, quote, psStyledHeading)
|
+-- Row: "Thirds" -> 3 areas
+-- Area 0 (4 cols): 6 editors (rte, media, embed, quote, headingItem, footerLinks)
+-- Area 1 (4 cols): 6 editors (rte, media, embed, quote, headingItem, footerLinks)
+-- Area 2 (4 cols): 6 editors (rte, media, embed, quote, headingItem, footerLinks)
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Full width Grid
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_1736_rowconfig_1ColumnLayout) -> allows all 3 layouts
|
+-- [Layouts]
| +-- "Full Width" (grid_1736_layout_fullwidth) -> 1 area
| | +-- Area 0 (col-12): -> "Full Width / Area 0" (grid_1736_areawrapper_fullwidth_0)
| +-- "Half" (grid_1736_layout_half) -> 2 areas
| | +-- Area 0 (col-6): -> "Half / Area 0" (grid_1736_areawrapper_half_0)
| | +-- Area 1 (col-6): -> "Half / Area 1" (grid_1736_areawrapper_half_1)
| +-- "Thirds" (grid_1736_layout_thirds) -> 3 areas
| +-- Area 0 (col-4): -> "Thirds / Area 0" (grid_1736_areawrapper_thirds_0)
| +-- Area 1 (col-4): -> "Thirds / Area 1" (grid_1736_areawrapper_thirds_1)
| +-- Area 2 (col-4): -> "Thirds / Area 2" (grid_1736_areawrapper_thirds_2)
|
+-- [Area Wrappers]
| +-- "Full Width / Area 0" (grid_1736_areawrapper_fullwidth_0) -> allows: 6 content types
| +-- "Half / Area 0" (grid_1736_areawrapper_half_0) -> allows: 6 content types
| +-- "Half / Area 1" (grid_1736_areawrapper_half_1) -> allows: 5 content types (no headingItem)
| +-- "Thirds / Area 0" (grid_1736_areawrapper_thirds_0) -> allows: 6 content types
| +-- "Thirds / Area 1" (grid_1736_areawrapper_thirds_1) -> allows: 6 content types
| +-- "Thirds / Area 2" (grid_1736_areawrapper_thirds_2) -> allows: 6 content types
|
+-- [Settings]
| +-- "Row Settings" (grid_1736_rowsettings) (props: class, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1736_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1736_blocksettings)
|
+-- [Shared Content Types]: ~8 types
Folder Organization:
GridEditors/
+-- Full width Grid/
+-- Layouts/ -> Full Width, Half, Thirds
+-- Area Wrappers/ -> 6 wrappers
+-- Row Configs/ -> 1ColumnLayout
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 8: Full Width Grid Bottom Controls (V8 ID: 1459)¶
V8 Configuration:
Grid DataType: Full Width Grid Bottom Controls (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "2 column layout" -> [4 + 8]
|
+-- Row: "FullWidth" -> 1 area
| +-- Area 0 (12 cols): 1 editor (rte only)
|
+-- Row: "LeftNav" -> 2 areas
+-- Area 0 (4 cols): 1 editor (rte)
+-- Area 1 (8 cols): 1 editor (rte)
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Full Width Grid Bottom Controls
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_1459_rowconfig_1ColumnLayout) -> allows all 2 layouts
| +-- "2 Column Layout" (grid_1459_rowconfig_2ColumnLayout) -> allows all 2 layouts
|
+-- [Layouts]
| +-- "Full Width" (grid_1459_layout_fullwidth) -> 1 area
| | +-- Area 0 (col-12): -> "Full Width / Area 0" (grid_1459_areawrapper_fullwidth_0)
| +-- "Left Nav" (grid_1459_layout_leftnav) -> 2 areas
| +-- Area 0 (col-4): -> "Left Nav / Area 0" (grid_1459_areawrapper_leftnav_0)
| +-- Area 1 (col-8): -> "Left Nav / Area 1" (grid_1459_areawrapper_leftnav_1)
|
+-- [Area Wrappers]
| +-- "Full Width / Area 0" (grid_1459_areawrapper_fullwidth_0) -> allows: 1 content type (rte)
| +-- "Left Nav / Area 0" (grid_1459_areawrapper_leftnav_0) -> allows: 1 content type (rte)
| +-- "Left Nav / Area 1" (grid_1459_areawrapper_leftnav_1) -> allows: 1 content type (rte)
|
+-- [Settings]
| +-- "Row Settings" (grid_1459_rowsettings) (props: class, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1459_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1459_blocksettings)
|
+-- [Shared Content Types]: 1 type (rte)
Folder Organization:
GridEditors/
+-- Full Width Grid Bottom Controls/
+-- Layouts/ -> FullWidth, LeftNav
+-- Area Wrappers/ -> 3 wrappers
+-- Row Configs/ -> 1ColumnLayout, 2ColumnLayout
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 9: Homepage Grid (V8 ID: 1151)¶
V8 Configuration:
Grid DataType: Homepage Grid (12 columns)
+-- Template: "1 column layout" -> [12]
|
+-- Row: "fullWidth" -> 1 area
| +-- Area 0 (12 cols): 38 specific editors
| rte, media, quote, spotlightControls, headingItem, slider, HeroBar,
| calculatorsGridEditor, NewsCompleteGridEditor, QuickLinksDropdown, ...
|
+-- Row: "Half" -> 2 areas
| +-- Area 0 (6 cols): 23 editors (rte, media, embed, quote, spotlightControls, ...)
| +-- Area 1 (6 cols): 22 editors (no barChart vs area 0)
|
+-- Row: "thirds" -> 3 areas
| +-- Area 0 (4 cols): 14 editors
| +-- Area 1 (4 cols): 14 editors
| +-- Area 2 (4 cols): 15 editors (+instagramControls)
|
+-- Row: "two thirds" -> 2 areas
+-- Area 0 (8 cols): allowAll
+-- Area 1 (4 cols): allowAll
Settings (row): class, ID, data-aos, data-aos-offset, data-aos-delay,
data-aos-duration, data-aos-easing
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Homepage Grid
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_1151_rowconfig_1ColumnLayout) -> allows all 4 layouts
|
+-- [Layouts]
| +-- "Full Width" (grid_1151_layout_fullwidth) -> 1 area (col-12)
| +-- "Half" (grid_1151_layout_half) -> 2 areas (col-6 + col-6)
| +-- "Thirds" (grid_1151_layout_thirds) -> 3 areas (col-4 + col-4 + col-4)
| +-- "Two Thirds" (grid_1151_layout_twothirds) -> 2 areas (col-8 + col-4)
|
+-- [Area Wrappers]
| +-- "Full Width / Area 0" (grid_1151_areawrapper_fullwidth_0) -> allows: 38 content types
| +-- "Half / Area 0" (grid_1151_areawrapper_half_0) -> allows: 23 content types
| +-- "Half / Area 1" (grid_1151_areawrapper_half_1) -> allows: 22 content types
| +-- "Thirds / Area 0" (grid_1151_areawrapper_thirds_0) -> allows: 14 content types
| +-- "Thirds / Area 1" (grid_1151_areawrapper_thirds_1) -> allows: 14 content types
| +-- "Thirds / Area 2" (grid_1151_areawrapper_thirds_2) -> allows: 15 content types
| +-- "Two Thirds / Area 0" (grid_1151_areawrapper_twothirds_0) -> allows: all 61 (allowAll)
| +-- "Two Thirds / Area 1" (grid_1151_areawrapper_twothirds_1) -> allows: all 61 (allowAll)
|
+-- [Settings]
| +-- "Row Settings" (grid_1151_rowsettings) (props: class, ID, data-aos, data-aos-offset,
| | data-aos-delay, data-aos-duration, data-aos-easing,
| | background-image, background-color, padding, margin, visible)
| +-- "Cell Settings" (grid_1151_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1151_blocksettings)
|
+-- [Shared Content Types]: ~61 types
Folder Organization:
GridEditors/
+-- Homepage Grid/
+-- Layouts/ -> fullWidth, Half, thirds, two thirds
+-- Area Wrappers/ -> 8 wrappers
+-- Row Configs/ -> 1ColumnLayout
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 10: services Grid (V8 ID: 1780)¶
V8 Configuration:
Grid DataType: services Grid (12 columns)
+-- Template: (unnamed) -> [4 + 8]
+-- Template: (unnamed) -> [12] (allowAll)
|
+-- Row: "Full" -> 1 area
| +-- Area 0 (12 cols): 13 editors
| rte, media, embed, quote, headingItem, psStyledHeading, imageList,
| stripedList, donutChart, barChart, imageGalleryControl, psFancyVideo,
| Services List
|
+-- Row: "Side Bar" -> 1 area
+-- Area 0 (12 cols): 3 editors (newsWidget, Testimonial, SubMenu)
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: services Grid
+-- [Root Allowed - Row Configs]
| +-- "(unnamed 1)" (grid_1780_rowconfig_(unnamed_1)) -> allows both layouts
| +-- "(unnamed 2)" (grid_1780_rowconfig_(unnamed_2)) -> allows both layouts
|
+-- [Layouts]
| +-- "Full" (grid_1780_layout_full) -> 1 area (col-12)
| +-- "Side Bar" (grid_1780_layout_sidebar) -> 1 area (col-12)
|
+-- [Area Wrappers]
| +-- "Full / Area 0" (grid_1780_areawrapper_full_0) -> allows: 13 content types
| +-- "Side Bar / Area 0" (grid_1780_areawrapper_sidebar_0) -> allows: 3 content types
|
+-- [Settings]
| +-- "Row Settings" (grid_1780_rowsettings) (props: class, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1780_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1780_blocksettings)
|
+-- [Shared Content Types]: ~16 types
Note: Both templates are unnamed, which produces row configs with empty display names in the v17 backoffice.
Folder Organization:
GridEditors/
+-- services Grid/
+-- Layouts/ -> Full, Side Bar
+-- Area Wrappers/ -> 2 wrappers
+-- Row Configs/ -> (unnamed), (unnamed)
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 11: Sp with Nav Left Grid (V8 ID: 1798)¶
V8 Configuration:
Grid DataType: Sp with Nav Left Grid (12 columns)
+-- Template: (unnamed) -> [12] (allowAll)
|
+-- Row: "Full Width" (name: Full) -> 1 area
| +-- Area 0 (12 cols): 14 editors
| SubMenu, subMenu, rte, media, embed, quote, headingItem,
| psFancyVideo, NewsWidget, staffMembersControl, Testimonials,
| TestimonialControl, testimonialControl, newsWidget
|
+-- Row: "half" (name: Half) -> 2 areas
| +-- Area 0 (6 cols): 10 editors
| +-- Area 1 (6 cols): 8 editors (no quote, no psStyledHeading)
|
+-- Row: "Thirds" -> 3 areas
+-- Area 0 (4 cols): 8 editors
+-- Area 1 (4 cols): 8 editors
+-- Area 2 (4 cols): 8 editors
Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Sp with Nav Left Grid
+-- [Root Allowed - Row Configs]
| +-- "(unnamed)" (grid_1798_rowconfig_(unnamed)) -> allows all 3 layouts
|
+-- [Layouts]
| +-- "Full" (grid_1798_layout_full) -> 1 area (col-12)
| +-- "Half" (grid_1798_layout_half) -> 2 areas (col-6 + col-6)
| +-- "Thirds" (grid_1798_layout_thirds) -> 3 areas (col-4 + col-4 + col-4)
|
+-- [Area Wrappers]
| +-- "Full / Area 0" (grid_1798_areawrapper_full_0) -> allows: 14 content types
| +-- "Half / Area 0" (grid_1798_areawrapper_half_0) -> allows: 10 content types
| +-- "Half / Area 1" (grid_1798_areawrapper_half_1) -> allows: 8 content types
| +-- "Thirds / Area 0" (grid_1798_areawrapper_thirds_0) -> allows: 8 content types
| +-- "Thirds / Area 1" (grid_1798_areawrapper_thirds_1) -> allows: 8 content types
| +-- "Thirds / Area 2" (grid_1798_areawrapper_thirds_2) -> allows: 8 content types
|
+-- [Settings]
| +-- "Row Settings" (grid_1798_rowsettings) (props: class, background-image, background-color,
| | padding, margin, visible)
| +-- "Cell Settings" (grid_1798_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1798_blocksettings)
|
+-- [Shared Content Types]: ~12 types
Note: Template is unnamed, producing a row config with empty display name.
Folder Organization:
GridEditors/
+-- Sp with Nav Left Grid/
+-- Layouts/ -> Full Width, half, Thirds
+-- Area Wrappers/ -> 6 wrappers
+-- Row Configs/ -> (unnamed)
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 12: Standard Page Full Width (V8 ID: 1803)¶
V8 Configuration:
Grid DataType: Standard Page Full Width - grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "Left Column" -> [4 + 8] (allowAll for 8-col)
+-- Template: "right column" -> [8 + 4] (allowAll for 8-col)
|
+-- Row: "Full" -> 1 area
| +-- Area 0 (12 cols): 28 specific editors
| rte, media, embed, quote, headingItem, styledListControl, barChart, ...
|
+-- Row: "Half" -> 2 areas
| +-- Area 0 (6 cols): 25 editors
| +-- Area 1 (6 cols): 26 editors (+careerWidgetControl)
|
+-- Row: "Thirds" -> 3 areas
| +-- Area 0 (4 cols): 17 editors
| +-- Area 1 (4 cols): 22 editors (+staffMembersControl, testimonialControl, ...)
| +-- Area 2 (4 cols): 23 editors (+newsWidget, umbraco_form_picker, ...)
|
+-- Row: "sideBar" -> 1 area
| +-- Area 0 (12 cols): 3 editors (SubMenu, Testimonial, NewsCompleteGridEditor)
|
+-- Row: "Career Full" -> 1 area
| +-- Area 0 (12 cols): 1 editor (careerWidgetListControl)
|
+-- Row: "Career Half" -> 2 areas
| +-- Area 0 (6 cols): 1 editor (careerWidgetControl)
| +-- Area 1 (6 cols): 1 editor (careerWidgetControl)
|
+-- Row: "Two Five Five" -> 3 areas
| +-- Area 0 (2 cols): allowAll
| +-- Area 1 (5 cols): allowAll
| +-- Area 2 (5 cols): allowAll
|
+-- Row: "CookieConsent" -> 1 area
+-- Area 0 (12 cols): 1 editor (macro)
Settings (row): class
Styles (row): background-image, background-color (no padding/margin)
Styles (cell): background-color
V17 BlockGrid (After Migration):
BlockGrid DataType: Standard Page Full Width
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_1803_rowconfig_1ColumnLayout) -> allows all 8 layouts
| +-- "Left Column" (grid_1803_rowconfig_leftColumn) -> allows all 8 layouts
| +-- "Right Column" (grid_1803_rowconfig_rightColumn) -> allows all 8 layouts
|
+-- [Layouts]
| +-- "Full" (grid_1803_layout_full) -> 1 area (col-12)
| +-- "Half" (grid_1803_layout_half) -> 2 areas (col-6 + col-6)
| +-- "Thirds" (grid_1803_layout_thirds) -> 3 areas (col-4 + col-4 + col-4)
| +-- "Side Bar" (grid_1803_layout_sidebar) -> 1 area (col-12)
| +-- "Career Full" (grid_1803_layout_careerfull) -> 1 area (col-12)
| +-- "Career Half" (grid_1803_layout_careerhalf) -> 2 areas (col-6 + col-6)
| +-- "Two Five Five" (grid_1803_layout_twofivefive) -> 3 areas (col-2 + col-5 + col-5)
| +-- "Cookie Consent" (grid_1803_layout_cookieconsent) -> 1 area (col-12)
|
+-- [Area Wrappers]
| +-- "Full / Area 0" (grid_1803_areawrapper_full_0) -> allows: 28 content types
| +-- "Half / Area 0" (grid_1803_areawrapper_half_0) -> allows: 25 content types
| +-- "Half / Area 1" (grid_1803_areawrapper_half_1) -> allows: 26 content types
| +-- "Thirds / Area 0" (grid_1803_areawrapper_thirds_0) -> allows: 17 content types
| +-- "Thirds / Area 1" (grid_1803_areawrapper_thirds_1) -> allows: 22 content types
| +-- "Thirds / Area 2" (grid_1803_areawrapper_thirds_2) -> allows: 23 content types
| +-- "Side Bar / Area 0" (grid_1803_areawrapper_sidebar_0) -> allows: 3 content types
| +-- "Career Full / Area 0" (grid_1803_areawrapper_careerfull_0) -> allows: 1 content type
| +-- "Career Half / Area 0" (grid_1803_areawrapper_careerhalf_0) -> allows: 1 content type
| +-- "Career Half / Area 1" (grid_1803_areawrapper_careerhalf_1) -> allows: 1 content type
| +-- "Two Five Five / Area 0" (grid_1803_areawrapper_twofivefive_0) -> allows: all 41 (allowAll)
| +-- "Two Five Five / Area 1" (grid_1803_areawrapper_twofivefive_1) -> allows: all 41 (allowAll)
| +-- "Two Five Five / Area 2" (grid_1803_areawrapper_twofivefive_2) -> allows: all 41 (allowAll)
| +-- "Cookie Consent / Area 0" (grid_1803_areawrapper_cookieconsent_0) -> allows: 1 content type (macro)
|
+-- [Settings]
| +-- "Row Settings" (grid_1803_rowsettings) (props: class, background-image, background-color, visible)
| +-- "Cell Settings" (grid_1803_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1803_blocksettings)
|
+-- [Shared Content Types]: ~41 types
Note: This DT uses colorpicker (not ColorPickerU8) for background-color and does NOT have padding/margin styles. Settings signature differs from the standard group (Signature D).
Folder Organization:
GridEditors/
+-- Standard Page Full Width/
+-- Layouts/ -> Full, Half, Thirds, sideBar, Career Full, Career Half,
| Two Five Five, CookieConsent
+-- Area Wrappers/ -> 14 wrappers
+-- Row Configs/ -> 1ColumnLayout, leftColumn, rightColumn
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 13: Standard Page Grid (V8 ID: 1257)¶
This is the most complex datatype with 17 row layouts and 3 templates.
V8 Configuration (first 6 rows in detail, remaining 11 summarized):
Grid DataType: Standard Page Grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "LeftSidebar" -> [4 + 8] (allowAll for 8-col)
+-- Template: "RightSidebar" -> [8 + 4]
|
+-- Row 1: "Full Width" -> 1 area
| +-- Area 0 (12 cols): allowAll (all 108 content types)
|
+-- Row 2: "Half" -> 2 areas
| +-- Area 0 (6 cols): 31 editors (rte, media, embed, quote, headingItem, ...)
| +-- Area 1 (6 cols): 32 editors (+loanInputCTA, -GlobalAddress vs area 0)
|
+-- Row 3: "Thirds" -> 3 areas
| +-- Area 0 (4 cols): 14 editors (no quote)
| +-- Area 1 (4 cols): 15 editors (has quote)
| +-- Area 2 (4 cols): 14 editors (no embed)
|
+-- Row 4: "SideBar" -> 1 area
| +-- Area 0 (12 cols): 3 editors (rte, SubMenu, NewsCompleteGridEditor)
|
+-- Row 5: "Left Nav" -> 2 areas
| +-- Area 0 (4 cols): allowAll
| +-- Area 1 (8 cols): allowAll
|
+-- Row 6: "Right SideBar" -> 1 area
| +-- Area 0 (12 cols): 24 editors
Remaining 11 rows (all unique to this DT):
+-- Row 7: "five sevens" -> 2 areas (5+7), both allowAll
+-- Row 8: "full & thirds thirds" -> 7 areas (12+4+4+4+4+4+4), restricted
| Area 0: headingItem only
| Areas 1-6: media, rte, headingItem
+-- Row 9: "ICon Calc" -> 3 areas (6+4+2), all allowAll
+-- Row 10: "Fours" -> 4 areas (3+3+3+3), restricted
| All areas: headingItem, cardItem only
+-- Row 11: "text-button-block" -> 2 areas (8+4), restricted
| Area 0: 16 editors | Area 1: 14 editors
+-- Row 12: "membership-benefits" -> 3 areas (6+6+12), restricted
| Area 0: headingItem | Area 1: rte | Area 2: spotlightControls, Spotlight Grid Controls
+-- Row 13: "FaqHome" -> 1 area (12), restricted
| Area 0: Faq Accordion Home, headingItem
+-- Row 14: "Services" -> 1 area (12), restricted
| Area 0: Services List, Services List Image
+-- Row 15: "two-four-two-four" -> 5 areas (2+3+2+3+2), all allowAll
+-- Row 16: "Loan Application Process" -> 5 areas (12+3+3+3+3), restricted
| Area 0: headingItem | Areas 1-4: spotlightControls, Announcement, media, rte
+-- Row 17: "car draw text" -> 2 areas (7+5), restricted
Area 0: 3 editors | Area 1: 36 editors
Settings (row): class, ID, data-aos, data-aos-offset, data-aos-delay,
data-aos-duration, data-aos-easing
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
Used by: 6 document types (50 content nodes)
V17 BlockGrid (After Migration):
BlockGrid DataType: Standard Page Grid
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_1257_rowconfig_1ColumnLayout) -> allows all 17 layouts
| +-- "Left Sidebar" (grid_1257_rowconfig_leftsidebar) -> allows all 17 layouts
| +-- "Right Sidebar" (grid_1257_rowconfig_rightsidebar) -> allows all 17 layouts
|
+-- [Layouts] (17 total)
| +-- "Full Width" (grid_1257_layout_fullwidth) -> 1 area (col-12)
| +-- "Half" (grid_1257_layout_half) -> 2 areas (col-6 + col-6)
| +-- "Thirds" (grid_1257_layout_thirds) -> 3 areas (col-4 x 3)
| +-- "Side Bar" (grid_1257_layout_sidebar) -> 1 area (col-12)
| +-- "Left Nav" (grid_1257_layout_leftnav) -> 2 areas (col-4 + col-8)
| +-- "Right Side Bar" (grid_1257_layout_rightsidebar) -> 1 area (col-12)
| +-- "Five Sevens" (grid_1257_layout_fivesevens) -> 2 areas (col-5 + col-7)
| +-- "Full & Thirds Thirds" (grid_1257_layout_fullthirdsthirds) -> 7 areas (col-12+col-4x6)
| +-- "ICon Calc" (grid_1257_layout_iconcalc) -> 3 areas (col-6+col-4+col-2)
| +-- "Fours" (grid_1257_layout_fours) -> 4 areas (col-3 x 4)
| +-- "Text Button Block" (grid_1257_layout_textbuttonblock) -> 2 areas (col-8 + col-4)
| +-- "Membership Benefits" (grid_1257_layout_membershipbenefits) -> 3 areas (col-6+col-6+col-12)
| +-- "FAQ Home" (grid_1257_layout_faqhome) -> 1 area (col-12)
| +-- "Services" (grid_1257_layout_services) -> 1 area (col-12)
| +-- "Two Four Two Four" (grid_1257_layout_twofourtwofour) -> 5 areas (col-2+col-3+col-2+col-3+col-2)
| +-- "Loan Application Process" (grid_1257_layout_loanapplicationprocess) -> 5 areas (col-12+col-3x4)
| +-- "Car Draw Text" (grid_1257_layout_cardrawtext) -> 2 areas (col-7 + col-5)
|
+-- [Area Wrappers] (~36 total, one per layout-area combination)
| +-- "Full Width / Area 0" (grid_1257_areawrapper_fullwidth_0) -> allows: all 108 (allowAll)
| +-- "Half / Area 0" (grid_1257_areawrapper_half_0) -> allows: 31 content types
| +-- "Half / Area 1" (grid_1257_areawrapper_half_1) -> allows: 32 content types
| +-- "Thirds / Area 0" (grid_1257_areawrapper_thirds_0) -> allows: 14 content types
| +-- "Thirds / Area 1" (grid_1257_areawrapper_thirds_1) -> allows: 15 content types
| +-- "Thirds / Area 2" (grid_1257_areawrapper_thirds_2) -> allows: 14 content types
| +-- "Side Bar / Area 0" (grid_1257_areawrapper_sidebar_0) -> allows: 3 content types
| +-- "Left Nav / Area 0" (grid_1257_areawrapper_leftnav_0) -> allows: all 108 (allowAll)
| +-- "Left Nav / Area 1" (grid_1257_areawrapper_leftnav_1) -> allows: all 108 (allowAll)
| +-- "Right Side Bar / Area 0" (grid_1257_areawrapper_rightsidebar_0) -> allows: 24 content types
| +-- "Five Sevens / Area 0" (grid_1257_areawrapper_fivesevens_0) -> allows: all 108 (allowAll)
| +-- "Five Sevens / Area 1" (grid_1257_areawrapper_fivesevens_1) -> allows: all 108 (allowAll)
| +-- "Full & Thirds Thirds / Area 0" (grid_1257_areawrapper_fullthirdsthirds_0) -> allows: 1 (headingItem)
| +-- "Full & Thirds Thirds / Area 1..6" (grid_1257_areawrapper_fullthirdsthirds_1..6) -> allows: 3 each (media, rte, headingItem)
| +-- "ICon Calc / Area 0" (grid_1257_areawrapper_iconcalc_0) -> allows: all 108 (allowAll)
| +-- "ICon Calc / Area 1" (grid_1257_areawrapper_iconcalc_1) -> allows: all 108 (allowAll)
| +-- "ICon Calc / Area 2" (grid_1257_areawrapper_iconcalc_2) -> allows: all 108 (allowAll)
| +-- "Fours / Area 0..3" (grid_1257_areawrapper_fours_0..3) -> allows: 2 each (headingItem, cardItem)
| +-- "Text Button Block / Area 0" (grid_1257_areawrapper_textbuttonblock_0) -> allows: 16 content types
| +-- "Text Button Block / Area 1" (grid_1257_areawrapper_textbuttonblock_1) -> allows: 14 content types
| +-- "Membership Benefits / Area 0" (grid_1257_areawrapper_membershipbenefits_0) -> allows: 1 (headingItem)
| +-- "Membership Benefits / Area 1" (grid_1257_areawrapper_membershipbenefits_1) -> allows: 1 (rte)
| +-- "Membership Benefits / Area 2" (grid_1257_areawrapper_membershipbenefits_2) -> allows: 2 (spotlightControls, ...)
| +-- "FAQ Home / Area 0" (grid_1257_areawrapper_faqhome_0) -> allows: 2 content types
| +-- "Services / Area 0" (grid_1257_areawrapper_services_0) -> allows: 2 content types
| +-- "Two Four Two Four / Area 0..4" (grid_1257_areawrapper_twofourtwofour_0..4) -> allows: all 108 each (allowAll)
| +-- "Loan Application Process / Area 0" (grid_1257_areawrapper_loanapplicationprocess_0) -> allows: 1 (headingItem)
| +-- "Loan Application Process / Area 1..4" (grid_1257_areawrapper_loanapplicationprocess_1..4) -> allows: 4 each
| +-- "Car Draw Text / Area 0" (grid_1257_areawrapper_cardrawtext_0) -> allows: 3 content types
| +-- "Car Draw Text / Area 1" (grid_1257_areawrapper_cardrawtext_1) -> allows: 36 content types
|
+-- [Settings]
| +-- "Row Settings" (grid_1257_rowsettings) (props: class, ID, data-aos, data-aos-offset,
| | data-aos-delay, data-aos-duration, data-aos-easing,
| | background-image, background-color, padding, margin, visible)
| +-- "Cell Settings" (grid_1257_cellsettings) (props: background-color)
| +-- "Block Settings" (grid_1257_blocksettings)
|
+-- [Shared Content Types]: ~108 types (largest set of any datatype)
Folder Organization:
GridEditors/
+-- Standard Page Grid/
+-- Layouts/ -> 17 layouts (Full Width, Half, Thirds, SideBar, Left Nav,
| Right SideBar, five sevens, full & thirds thirds,
| ICon Calc, Fours, text-button-block, membership-benefits,
| FaqHome, Services, two-four-two-four,
| Loan Application Process, car draw text)
+-- Area Wrappers/ -> ~36 wrappers
+-- Row Configs/ -> 1ColumnLayout, leftsidebar, rightsidebar
+-- Settings/ -> rowsettings, cellsettings, blocksettings
DataType 14: test data type (V8 ID: 2236)¶
V8 Configuration:
Grid DataType: test data type - grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "2 column layout" -> [4 + 8]
|
+-- Row: "Headline" -> 1 area
| +-- Area 0 (12 cols): (none specified)
|
+-- Row: "Article" -> 2 areas
+-- Area 0 (4 cols): (none specified)
+-- Area 1 (8 cols): (none specified)
Settings (row): class
Styles (row): background-image (only)
V17 BlockGrid (After Migration):
BlockGrid DataType: test data type
+-- [Root Allowed - Row Configs]
| +-- "1 Column Layout" (grid_2236_rowconfig_1ColumnLayout) -> allows both layouts
| +-- "2 Column Layout" (grid_2236_rowconfig_2ColumnLayout) -> allows both layouts
|
+-- [Layouts]
| +-- "Headline" (grid_2236_layout_headline) -> 1 area (col-12)
| +-- "Article" (grid_2236_layout_article) -> 2 areas (col-4 + col-8)
|
+-- [Area Wrappers]
| +-- "Headline / Area 0" (grid_2236_areawrapper_headline_0) -> allows: 0 content types
| +-- "Article / Area 0" (grid_2236_areawrapper_article_0) -> allows: 0 content types
| +-- "Article / Area 1" (grid_2236_areawrapper_article_1) -> allows: 0 content types
|
+-- [Settings]
| +-- "Row Settings" (grid_2236_rowsettings) (props: class, background-image, visible)
| +-- "Cell Settings" (grid_2236_cellsettings) (props: none or minimal)
| +-- "Block Settings" (grid_2236_blocksettings)
|
+-- [Shared Content Types]: 0 types (no editors configured)
Note: This appears to be a development/test datatype. No content editors are configured for any area. Consider removing from v17 after validating across all client databases.
Folder Organization:
GridEditors/
+-- test data type/
+-- Layouts/ -> Headline, Article
+-- Area Wrappers/ -> 3 wrappers (all empty allowance)
+-- Row Configs/ -> 1ColumnLayout, 2ColumnLayout
+-- Settings/ -> rowsettings, cellsettings, blocksettings
Summary Table¶
| # | DataType | V8 ID | Layouts | Area Wrappers | Row Configs | Settings | Content Types | Total Per-DT |
|---|---|---|---|---|---|---|---|---|
| 1 | Animated Grid | 1534 | 3 | 6 | 3 | 3 | ~50 (shared) | 15 |
| 2 | Article Controls | 1055 | 3 | 6 | 3 | 3 | ~27 (shared) | 15 (MISSING) |
| 3 | articleGrid | 1683 | 3 | 6 | 1 | 3 | ~35 (shared) | 13 |
| 4 | Contact us Grid | 1093 | 2 | 3 | 3 | 3 | ~14 (shared) | 11 |
| 5 | Cookie Grid | 1709 | 4 | 8 | 1 | 3 | ~8 (shared) | 16 |
| 6 | Footer Grid | 1127 | 6 | 18 | 1 | 3 | ~31 (shared) | 28 |
| 7 | Full width Grid | 1736 | 3 | 6 | 1 | 3 | ~8 (shared) | 13 |
| 8 | FW Grid Bottom | 1459 | 2 | 3 | 2 | 3 | 1 (shared) | 10 |
| 9 | Homepage Grid | 1151 | 4 | 8 | 1 | 3 | ~61 (shared) | 16 |
| 10 | services Grid | 1780 | 2 | 2 | 2 | 3 | ~16 (shared) | 9 |
| 11 | Sp with Nav Left | 1798 | 3 | 6 | 1 | 3 | ~12 (shared) | 13 |
| 12 | Std Page FW | 1803 | 8 | 14 | 3 | 3 | ~41 (shared) | 28 |
| 13 | Standard Page Grid | 1257 | 17 | 36 | 3 | 3 | ~108 (shared) | 59 |
| 14 | test data type | 2236 | 2 | 3 | 2 | 3 | 0 (shared) | 10 |
| TOTALS | 62 | 125 | 27 | 42 | ~108 unique | 246 |
Additionally shared across all datatypes: - ~5 built-in content types: rte, media, quote, embed, submenu - ~28 grid_element_* content types - ~50-60 DTGE/Path A element types (original v8 aliases)
Grand total element types: ~330-340
Settings Signature Groups¶
Not all 14 datatypes use the same row/cell settings properties. The settings element types group into these signatures:
| Signature | Properties | Datatypes | Count |
|---|---|---|---|
| A: Standard | class, bgImage, bgColor, padding, margin, visible | articleGrid (1683), Contact us (1093), Cookie (1709), Footer (1127), Full width (1736), FW Bottom (1459), services (1780), Sp Nav Left (1798), Article Controls (1055) | 9 |
| B: Full Animation | A + ID, data-aos, data-aos-offset, data-aos-delay, data-aos-duration, data-aos-easing | Standard Page Grid (1257), Homepage Grid (1151) | 2 |
| C: Partial Animation | A + ID, data-aos, data-aos-offset, data-aos-easing | Animated Grid (1534) | 1 |
| D: Minimal + bgColor | class, bgImage, bgColor, visible (no padding/margin) | Std Page FW (1803) | 1 |
| E: Minimal | class, bgImage, visible (no bgColor, no padding/margin) | test data type (2236) | 1 |
The 9 datatypes in Signature A could theoretically share a single settings element type, saving 8 records. This is deferred per Report 11 recommendation.
Decision: Keep Layouts Per-DataType¶
Layouts MUST remain per-datatype. The rationale:
-
ZERO layouts are truly identical. Report 11 compared every shared layout name (fullwidth, half, thirds, leftnav, sidebar) across all datatypes. While column structures match, the allowed editor lists ALWAYS differ because each datatype has a different content element type set. No two datatypes have the same content type count or composition.
-
Area wrappers cannot be shared. Even if layout element types were shared, the area wrappers that carry editor permissions would still need to be per-datatype. Sharing layouts would save only ~42 empty element type records.
-
"allowAll" expands differently per datatype. When a v8 layout area has
allowAll=true, the migration tool expands it to the full content type set for that specific datatype. Standard Page Grid's "allowAll" means 108 types; Cookie Grid's "allowAll" means 8 types. These produce fundamentally differentspecifiedAllowancearrays. -
Per-area differences within datatypes. Many layouts have different editor lists between their own areas (e.g., Standard Page Grid's "Half" has 31 editors in area 0 but 32 in area 1). This is the precise kind of granularity that per-datatype area wrappers preserve.
-
Risk exceeds benefit. Sharing would require changes to GUID generation, tracker lookups, and content migration -- all for cosmetic savings of ~42 empty records. The recommendation from Reports 11 and 12 is unanimous: no action needed.
Missing: Article Controls (DT 1055)¶
Status: Article Controls (v8 ID 1055) is absent from the v17 BlockGrid configurations despite having 12 content nodes in the progresscu.ie database.
Evidence:
- Report 11 Section 7: "Article Controls (v8 ID 1055) is missing from _blockgrid-configs.json"
- Report 03 Section 4: 12 distinct content nodes use DT 1055
- Report 12 Section D.4: Lists DT 1055 infrastructure types in the GridEditors folder (the element types exist but the BlockGrid datatype config is missing or broken)
Impact: - The 12 content nodes using Article Controls grid will have no functioning BlockGrid editor in v17 - The infrastructure element types (layouts, area wrappers, row configs, settings) were created but are orphaned - Content data for these nodes may not render correctly
Expected v17 structure (if migration worked correctly): - 3 layouts: FullWidth, Half, Thirds - 6 area wrappers: fullwidth_0, half_0, half_1, thirds_0, thirds_1, thirds_2 - 3 row configs: 1ColumnLayout, leftNav, rightNav - 3 settings: rowsettings, cellsettings, blocksettings - ~27 shared content types
Action required: Investigate the migration tool to determine why the BlockGrid datatype configuration for DT 1055 was not created or was not correctly linked to its infrastructure element types.
Appendix: Complete Allowance Chain Example¶
To illustrate the full nesting for one concrete scenario -- an editor adding a "Half" row to a Standard Page:
User opens Standard Page in v17 backoffice
|
+-- BlockGrid property shows available ROOT blocks
| (Row Configs: "1 Column Layout", "Left Sidebar", "Right Sidebar")
|
+-- User picks "1 Column Layout" row config
| -> "1 Column Layout" (grid_1257_rowconfig_1ColumnLayout)
| -> Its area (12 cols) allows ALL 17 layout types
|
+-- User picks "Half" layout inside the row config area
| -> "Half" (grid_1257_layout_half)
| -> Area 0 (col-6) allows: "Half / Area 0" (grid_1257_areawrapper_half_0)
| -> Area 1 (col-6) allows: "Half / Area 1" (grid_1257_areawrapper_half_1)
|
+-- Area Wrapper "Half / Area 0" auto-wraps Area 0
| -> Its inner "content" area allows 31 content types:
| rte, media, embed, quote, headingItem, stripedList, NumberedList,
| imageList, videoPopOut, donutChart, imageGalleryControl,
| staffMemberControl, barChart, videoFullWidth, cardControl, ...
|
+-- Area Wrapper "Half / Area 1" auto-wraps Area 1
| -> Its inner "content" area allows 32 content types:
| rte, media, MACRO, quote, headingItem, stripedList, NumberedList,
| imageList, videoPopOut, donutChart, imageGalleryControl,
| staffMemberControl, barChart, videoFullWidth, cardControl, ...
| (Note: has "macro" + "loanInputCTA" instead of "embed" + "GlobalAddress")
|
+-- User adds RTE to left column, Media to right column
-> grid_builtin_rte placed in "Half / Area 0"'s content area
-> grid_builtin_media placed in "Half / Area 1"'s content area
-> Both content blocks can have "Block Settings" (grid_1257_blocksettings) attached
-> The Half layout block can have "Row Settings" (grid_1257_rowsettings) attached
This chain preserves the exact v8 editor permissions per area per layout per datatype.