Skip to content

Commit deca4c8

Browse files
authored
Merge pull request #18182 from umbraco/v15/bugfix/18000
Fix: Unsupported Block (18000)
2 parents 6aaa9d8 + 02b3ec4 commit deca4c8

File tree

25 files changed

+525
-72
lines changed

25 files changed

+525
-72
lines changed

src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2385,6 +2385,9 @@ export default {
23852385
labelInlineMode: 'Indsæt på linje med tekst',
23862386
notExposedLabel: 'ikke oprettet',
23872387
notExposedDescription: 'Denne Block er endnu ikke oprettet for denne variant',
2388+
unsupportedBlockName: 'Ugyldigt indhold',
2389+
unsupportedBlockDescription:
2390+
'Dette indhold er ikke længere understøttet. Hvis du mangler dette indhold bør du kontakte din administrator. Ellers bør du slette dette indhold.',
23882391
},
23892392
contentTemplatesDashboard: {
23902393
whatHeadline: 'Hvad er Indholdsskabeloner?',

src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2550,6 +2550,9 @@ export default {
25502550
labelInlineMode: 'Display inline with text',
25512551
notExposedLabel: 'Draft',
25522552
notExposedDescription: 'This Block is not yet created for this variant',
2553+
unsupportedBlockName: 'Unsupported',
2554+
unsupportedBlockDescription:
2555+
'This content is no longer supported in this Editor. If you are missing this content, please contact your administrator. Otherwise delete it.',
25532556
},
25542557
contentTemplatesDashboard: {
25552558
whatHeadline: 'What are Document Blueprints?',

src/Umbraco.Web.UI.Client/src/assets/lang/en.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2613,6 +2613,9 @@ export default {
26132613
labelInlineMode: 'Display inline with text',
26142614
notExposedLabel: 'Draft',
26152615
notExposedDescription: 'This Block is not yet created for this variant',
2616+
unsupportedBlockName: 'Unsupported',
2617+
unsupportedBlockDescription:
2618+
'This content is no longer supported in this Editor. If you are missing this content, please contact your administrator. Otherwise delete it.',
26162619
},
26172620
contentTemplatesDashboard: {
26182621
whatHeadline: 'What are Document Blueprints?',

src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts

Lines changed: 41 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,8 @@ export default {
169169
languagesToPublish: 'Hvilke språk vil du publisere?',
170170
languagesToSchedule: 'Hvilke språk vil du planlegge?',
171171
languagesToSendForApproval: 'Hvilke språk vil du sende for godkjenning?',
172-
languagesToUnpublish: 'Velg språkene som skal avpubliseres. Avpublisering av et obligatorisk språk vil avpublisere alle språk.',
172+
languagesToUnpublish:
173+
'Velg språkene som skal avpubliseres. Avpublisering av et obligatorisk språk vil avpublisere alle språk.',
173174
lastPublished: 'Sist publisert',
174175
listViewNoContent: 'Ingen underordnede elementer er lagt til',
175176
listViewNoItems: 'Det er ingen elementer å vise i listen.',
@@ -184,7 +185,8 @@ export default {
184185
nestedContentDeleteAllItems: 'Er du sikker på at du vil slette alle elementer?',
185186
nestedContentDeleteItem: 'Er du sikker på at du vil slette dette elementet?',
186187
nestedContentEditorNotSupported: 'Egenskap %0% bruker editor %1% som ikke støttes av Nested Content.',
187-
nestedContentGroupHelpText: 'Velg gruppen hvis egenskaper skal vises. Hvis den står tom, vil første gruppe på elementtypen bli brukt.',
188+
nestedContentGroupHelpText:
189+
'Velg gruppen hvis egenskaper skal vises. Hvis den står tom, vil første gruppe på elementtypen bli brukt.',
188190
nestedContentNoContentTypes: 'Ingen innholdstyper er konfigurert for denne egenskapen.',
189191
nestedContentNoGroups: 'Den valgte elementtypen inneholder ingen støttede grupper.',
190192
nestedContentSelectElementTypeModalTitle: 'Velg elementtype',
@@ -207,7 +209,8 @@ export default {
207209
parentNotPublishedAnomaly: 'Intern feil: dokumentet er publisert men finnes ikke i hurtigbuffer',
208210
publish: 'Publisert',
209211
publishDescendantsHelp: 'Publiser <strong>%0%</strong> og alle undersider, slik at innhold blir tilgjengelig.',
210-
publishDescendantsWithVariantsHelp: 'Publiser varianter og undervarianter av samme type, slik at innhold blir tilgjengelig.',
212+
publishDescendantsWithVariantsHelp:
213+
'Publiser varianter og undervarianter av samme type, slik at innhold blir tilgjengelig.',
211214
publishRequiresVariants: 'Følgende varianter er nødvendig for at publisering skal kunne gjennomføres:',
212215
publishStatus: 'Publiseringsstatus',
213216
published: 'Publisert',
@@ -1174,28 +1177,37 @@ export default {
11741177
allowanceMaximum: 'Sett et maksimumskrav',
11751178
allowanceMinimum: 'Sett et minimumskrav',
11761179
allowBlockInAreas: 'Tillat i områder',
1177-
allowBlockInAreasHelp: 'Gjør denne blokken tilgjengelig som standard innenfor områdene til andre blokker (med mindre eksplisitte tillatelser er satt for disse områdene).',
1180+
allowBlockInAreasHelp:
1181+
'Gjør denne blokken tilgjengelig som standard innenfor områdene til andre blokker (med mindre eksplisitte tillatelser er satt for disse områdene).',
11781182
allowBlockInRoot: 'Tillat på rot-nivå',
1179-
allowBlockInRootHelp: 'Gjør denne blokken tilgjengelig på rot-nivå av oppsettet. Hvis dette ikke er valgt, kan denne blokken bare brukes innenfor andre blokkers definerte områder',
1183+
allowBlockInRootHelp:
1184+
'Gjør denne blokken tilgjengelig på rot-nivå av oppsettet. Hvis dette ikke er valgt, kan denne blokken bare brukes innenfor andre blokkers definerte områder',
11801185
allowedBlockColumns: 'Tilgjengelige kolonnestørrelser',
1181-
allowedBlockColumnsHelp: 'Definer de forskjellige antall kolonner denne blokken kan strekke seg over. Dette hindrer ikke blokker i å plasseres i et mindre område.',
1186+
allowedBlockColumnsHelp:
1187+
'Definer de forskjellige antall kolonner denne blokken kan strekke seg over. Dette hindrer ikke blokker i å plasseres i et mindre område.',
11821188
allowedBlockRows: 'Tilgjengelige radbredder',
11831189
allowedBlockRowsHelp: 'Definer rekkevidden av layout-rader denne blokken kan strekke seg over.',
1184-
areaAliasHelp: 'Dette aliaset skrives ut via GetBlockGridHTML(), bruk aliaset til å fange det elementet som representerer dette området. F.eks.. .umb-block-grid__area[data-area-alias="MittOmraadeAlias"] { ... }',
1190+
areaAliasHelp:
1191+
'Dette aliaset skrives ut via GetBlockGridHTML(), bruk aliaset til å fange det elementet som representerer dette området. F.eks.. .umb-block-grid__area[data-area-alias="MittOmraadeAlias"] { ... }',
11851192
areaAliasIsNotUnique: 'Aliaset til dette området må være unikt sammenlignet med de andre områdene i denne blokken.',
11861193
areaAllowedBlocks: 'Tillatte blokktyper',
1187-
areaAllowedBlocksEmpty: 'Som standard er alle blokktyper tillatt i et område. Bruk dette alternativet for kun å tillate utvalgte typer.',
1188-
areaAllowedBlocksHelp: 'Definer typene blokker som er tillatt i dette området, og eventuelt hvor mange av hver type som skal være til stede.',
1189-
areaCreateLabelHelp: "Overstyr etiketteksten for å legge til en ny blokk i dette området. Eksempel: 'Legg til widget'",
1194+
areaAllowedBlocksEmpty:
1195+
'Som standard er alle blokktyper tillatt i et område. Bruk dette alternativet for kun å tillate utvalgte typer.',
1196+
areaAllowedBlocksHelp:
1197+
'Definer typene blokker som er tillatt i dette området, og eventuelt hvor mange av hver type som skal være til stede.',
1198+
areaCreateLabelHelp:
1199+
"Overstyr etiketteksten for å legge til en ny blokk i dette området. Eksempel: 'Legg til widget'",
11901200
areaCreateLabelTitle: 'Opprett knappetikett',
11911201
areaDisallowAllBlocks: 'Tillat kun spesifikke blokktyper',
11921202
areaIdentification: 'Identifikasjon',
11931203
areaNumberOfBlocks: 'Antall blokker',
11941204
areas: 'Områder',
11951205
areasConfigurations: 'Områder',
1196-
areasConfigurationsHelp: 'Hvis det skal være mulig å sette nye blokker inni denne blokken, må det oprettes ett eller flere områder for å plassere den nye blokken i.',
1206+
areasConfigurationsHelp:
1207+
'Hvis det skal være mulig å sette nye blokker inni denne blokken, må det oprettes ett eller flere områder for å plassere den nye blokken i.',
11971208
areasLayoutColumns: 'Grid-kolonner for områder',
1198-
areasLayoutColumnsHelp: 'Definer hvor mange kolonner som skal være tilgjengelige for blokkens områder. Hvis ikke definert, vil antall kolonner definert for hele oppsettet bli brukt.',
1209+
areasLayoutColumnsHelp:
1210+
'Definer hvor mange kolonner som skal være tilgjengelige for blokkens områder. Hvis ikke definert, vil antall kolonner definert for hele oppsettet bli brukt.',
11991211
areaValidation: 'Validering',
12001212
areaValidationEntriesExceed: '<strong>%0%</strong> må maksimalt være tilstede <strong>%3%</strong> ganger.',
12011213
areaValidationEntriesShort: '<strong>%0%</strong> må være tilstede minst <strong>%2%</strong> ganger.',
@@ -1207,26 +1219,33 @@ export default {
12071219
confirmCancelBlockCreationMessage: 'Er du sikker på at du vil avbryte opprettelsen?',
12081220
confirmDeleteBlockAreaMessage: 'Er du sikker på at du vil slette dette området?',
12091221
confirmDeleteBlockAreaNotice: 'Alle blokker som for øyeblikket er opprettet i dette området, vil bli slettet.',
1210-
confirmDeleteBlockGroupMessage: 'Er du sikker på at du vil slette gruppen <strong>%0%</strong> og alle blokk-konfigurasjonene for denne?',
1211-
confirmDeleteBlockGroupNotice: 'Innholdet i disse blokkene vil fortsatt være tilstede, men redigering av dette innholdet\n vil ikke lenger være tilgjengelig og vil bli vist som ikke støttet innhold.\n ',
1222+
confirmDeleteBlockGroupMessage:
1223+
'Er du sikker på at du vil slette gruppen <strong>%0%</strong> og alle blokk-konfigurasjonene for denne?',
1224+
confirmDeleteBlockGroupNotice:
1225+
'Innholdet i disse blokkene vil fortsatt være tilstede, men redigering av dette innholdet\n vil ikke lenger være tilgjengelig og vil bli vist som ikke støttet innhold.\n ',
12121226
confirmDeleteBlockMessage: 'Er du sikker på at du vil slette innholdet <strong>%0%</strong>?',
12131227
confirmDeleteBlockTypeMessage: 'Er du sikker på at du vil slette blokk-konfigurasjonen <strong>%0%</strong>?',
1214-
confirmDeleteBlockTypeNotice: 'Innholdet i denne blokken vil fortsatt være tilstede, men redigering av dette innholdet\n vil ikke lenger være tilgjengelig og vil bli vist som ikke støttet innhold.\n ',
1228+
confirmDeleteBlockTypeNotice:
1229+
'Innholdet i denne blokken vil fortsatt være tilstede, men redigering av dette innholdet\n vil ikke lenger være tilgjengelig og vil bli vist som ikke støttet innhold.\n ',
12151230
confirmPasteDisallowedNestedBlockHeadline: 'Ikke tillatt innhold ble avvist',
1216-
confirmPasteDisallowedNestedBlockMessage: 'Det innsatte innholdet inneholdt ikke tillatt innhold, som ikke har blitt opprettet. Vil du beholde resten av dette innholdet likevel?',
1231+
confirmPasteDisallowedNestedBlockMessage:
1232+
'Det innsatte innholdet inneholdt ikke tillatt innhold, som ikke har blitt opprettet. Vil du beholde resten av dette innholdet likevel?',
12171233
defaultLayoutStylesheet: 'Standard oppsett-stilark',
12181234
deleteArea: 'Slett område',
12191235
elementTypeDoesNotExist: 'Kan ikke redigeres fordi ElementType ikke eksisterer.',
12201236
elementTypeDoesNotExistDescription: 'ElementType til denne blokken eksisterer ikke lenger.',
12211237
elementTypeDoesNotExistHeadline: 'Feil!',
12221238
focusParentBlock: 'Sett fokus på container-blokken',
12231239
forceHideContentEditor: 'Skjul innholdsredigerer',
1224-
forceHideContentEditorHelp: 'Skjul innholdsredigeringsknappen og innholdsredigereren fra blokkredigeringsoverlegget',
1240+
forceHideContentEditorHelp:
1241+
'Skjul innholdsredigeringsknappen og innholdsredigereren fra blokkredigeringsoverlegget',
12251242
getSampleButton: 'Installer',
1226-
getSampleDescription: 'Dette vil legge til grunnleggende blokker og hjelpe deg å komme i gang med Block Grid Editor.<br/> Du får blokker for overskrift, rik tekst, bilde, samt et oppsett for to kolonner.',
1243+
getSampleDescription:
1244+
'Dette vil legge til grunnleggende blokker og hjelpe deg å komme i gang med Block Grid Editor.<br/> Du får blokker for overskrift, rik tekst, bilde, samt et oppsett for to kolonner.',
12271245
getSampleHeadline: 'Installer eksempelkonfigurasjon',
12281246
gridInlineEditing: 'Inline-redigering',
1229-
gridInlineEditingHelp: 'Aktiverer inline-redigering for den første egenskapen. Ytterligere egenskaper kan redigeres i overlegget.',
1247+
gridInlineEditingHelp:
1248+
'Aktiverer inline-redigering for den første egenskapen. Ytterligere egenskaper kan redigeres i overlegget.',
12301249
headlineAddCustomStylesheet: 'Velg stilark',
12311250
headlineAddCustomView: 'Velg visning',
12321251
headlineAddSettingsElementType: 'Legg til en innstillings-elementtype',
@@ -1244,7 +1263,8 @@ export default {
12441263
labelcreateNewElementType: 'Opprett ny ElementType',
12451264
labelCustomStylesheet: 'Tilpasset stilark',
12461265
labelCustomView: 'Tilpasset visning',
1247-
labelCustomViewDescription: 'Overskriv hvordan denne blokken vises i backoffice-grensesnittet. Velg en .html-fil\n som inneholder presentasjonen din.\n ',
1266+
labelCustomViewDescription:
1267+
'Overskriv hvordan denne blokken vises i backoffice-grensesnittet. Velg en .html-fil\n som inneholder presentasjonen din.\n ',
12481268
labelCustomViewInfoTitle: 'Vis beskrivelse av tilpasset visning',
12491269
labelEditorSize: 'Overlegg-redigerer størrelse',
12501270
labelIconColor: 'Ikonfarge',
@@ -1265,6 +1285,6 @@ export default {
12651285
tabBlockTypeSettings: 'Innstillinger',
12661286
tabClipboard: 'Utklippstavle',
12671287
tabCreateEmpty: 'Opprett tomt',
1268-
thumbnail: 'Miniatyrbilde'
1288+
thumbnail: 'Miniatyrbilde',
12691289
},
12701290
} as UmbLocalizationDictionary;

src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { UmbMockEntityFolderManager } from '../utils/entity/entity-folder.manage
33
import { UmbMockEntityTreeManager } from '../utils/entity/entity-tree.manager.js';
44
import { UmbMockEntityItemManager } from '../utils/entity/entity-item.manager.js';
55
import { UmbMockEntityDetailManager } from '../utils/entity/entity-detail.manager.js';
6+
import { umbDataTypeMockDb } from '../data-type/data-type.db.js';
67
import type { UmbMockMediaTypeModel, UmbMockMediaTypeUnionModel } from './media-type.data.js';
78
import { data } from './media-type.data.js';
89
import { UmbId } from '@umbraco-cms/backoffice/id';
@@ -17,7 +18,6 @@ import type {
1718
MediaTypeTreeItemResponseModel,
1819
PagedAllowedMediaTypeModel,
1920
} from '@umbraco-cms/backoffice/external/backend-api';
20-
import { umbDataTypeMockDb } from '../data-type/data-type.db.js';
2121

2222
class UmbMediaTypeMockDB extends UmbEntityMockDbBase<UmbMockMediaTypeModel> {
2323
tree = new UmbMockEntityTreeManager<UmbMockMediaTypeModel>(this, mediaTypeTreeItemMapper);

src/Umbraco.Web.UI.Client/src/packages/block/block-custom-view/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export interface UmbBlockEditorCustomViewProperties<
2727
settings?: UmbBlockDataType;
2828
contentInvalid?: boolean;
2929
settingsInvalid?: boolean;
30+
unsupported?: boolean;
3031
unpublished?: boolean;
3132
}
3233

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
2+
import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit';
3+
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
4+
5+
import '../block-grid-areas-container/index.js';
6+
import '../ref-grid-block/index.js';
7+
8+
@customElement('umb-block-grid-block-unsupported')
9+
export class UmbBlockGridBlockUnsupportedElement extends UmbLitElement {
10+
override render() {
11+
return html`
12+
<div id="host">
13+
<div id="open-part">
14+
${this.#renderBlockInfo()}
15+
<slot></slot>
16+
<slot name="tag"></slot>
17+
</div>
18+
${this.#renderInside()}
19+
</div>
20+
`;
21+
}
22+
23+
#renderBlockInfo() {
24+
return html`
25+
<span id="content">
26+
<span id="icon">
27+
<umb-icon name="icon-alert"></umb-icon>
28+
</span>
29+
<div id="info">
30+
<span id="name">${this.localize.term('blockEditor_unsupportedBlockName')}</span>
31+
</div>
32+
</span>
33+
`;
34+
}
35+
36+
#renderInside() {
37+
return html`<div id="inside">
38+
${this.localize.term('blockEditor_unsupportedBlockDescription')}
39+
<umb-block-grid-areas-container slot="areas"></umb-block-grid-areas-container>
40+
</div>`;
41+
}
42+
43+
static override styles = [
44+
UmbTextStyles,
45+
css`
46+
umb-block-grid-areas-container {
47+
margin-top: calc(var(--uui-size-2) + 1px);
48+
}
49+
umb-block-grid-areas-container::part(area) {
50+
margin: var(--uui-size-2);
51+
}
52+
53+
#exposeButton {
54+
width: 100%;
55+
min-height: var(--uui-size-16);
56+
}
57+
58+
#host {
59+
position: relative;
60+
display: block;
61+
width: 100%;
62+
63+
box-sizing: border-box;
64+
border-radius: var(--uui-border-radius);
65+
background-color: var(--uui-color-surface);
66+
67+
border: 1px solid var(--uui-color-border);
68+
transition: border-color 80ms;
69+
70+
min-width: 250px;
71+
}
72+
#open-part + * {
73+
border-top: 1px solid var(--uui-color-border);
74+
}
75+
#open-part {
76+
cursor: default;
77+
transition: border-color 80ms;
78+
}
79+
#host {
80+
border-color: var(--uui-color-disabled-standalone);
81+
}
82+
83+
:host([unpublished]) #open-part #content {
84+
opacity: 0.6;
85+
}
86+
87+
slot[name='tag'] {
88+
flex-grow: 1;
89+
90+
display: flex;
91+
justify-content: flex-end;
92+
align-items: center;
93+
}
94+
95+
#content {
96+
align-self: stretch;
97+
line-height: normal;
98+
display: flex;
99+
position: relative;
100+
align-items: center;
101+
}
102+
103+
#open-part {
104+
color: inherit;
105+
text-decoration: none;
106+
107+
display: flex;
108+
text-align: left;
109+
align-items: center;
110+
justify-content: flex-start;
111+
width: 100%;
112+
border: none;
113+
background: none;
114+
115+
min-height: var(--uui-size-16);
116+
padding: calc(var(--uui-size-2) + 1px);
117+
}
118+
119+
#icon {
120+
font-size: 1.2em;
121+
margin-left: var(--uui-size-2);
122+
margin-right: var(--uui-size-1);
123+
}
124+
125+
#info {
126+
display: flex;
127+
flex-direction: column;
128+
align-items: start;
129+
justify-content: center;
130+
height: 100%;
131+
padding-left: var(--uui-size-2, 6px);
132+
}
133+
134+
#name {
135+
font-weight: 700;
136+
}
137+
138+
uui-tag {
139+
margin-left: 0.5em;
140+
margin-bottom: -0.3em;
141+
margin-top: -0.3em;
142+
vertical-align: text-top;
143+
}
144+
145+
#inside {
146+
position: relative;
147+
display: block;
148+
padding: calc(var(--uui-size-layout-1));
149+
}
150+
`,
151+
];
152+
}
153+
154+
export default UmbBlockGridBlockUnsupportedElement;
155+
156+
declare global {
157+
interface HTMLElementTagNameMap {
158+
'umb-block-grid-block-unsupported': UmbBlockGridBlockUnsupportedElement;
159+
}
160+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './block-grid-block-unsupported.element.js';

src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ const SORTER_CONFIG: UmbSorterConfig<UmbBlockGridLayoutModel, UmbBlockGridEntryE
116116
resolvePlacement: resolvePlacementAsBlockGrid,
117117
identifier: 'block-grid-editor',
118118
itemSelector: 'umb-block-grid-entry',
119+
disabledItemSelector: 'umb-block-grid-entry[unsupported]',
119120
containerSelector: '.umb-block-grid__layout-container',
120121
};
121122

0 commit comments

Comments
 (0)