Skip to content

Commit 219f518

Browse files
committed
Cherry pick v16 changes to v17
1 parent 54e2dab commit 219f518

File tree

18 files changed

+165
-84
lines changed

18 files changed

+165
-84
lines changed

13/umbraco-engage/getting-started/for-developers/troubleshooting-installations.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The most common reasons for this are:
1616

1717
* Database connectivity issues.
1818
* Incompatible SQL Server version.
19-
* No COLUMNS STORE index support on Azure SQL lower than S3.
19+
* No columnstore index support on Azure SQL lower than S3.
2020

2121
### Exception
2222

@@ -41,7 +41,7 @@ await app.BootUmbracoAsync();
4141

4242
#### When having database connectivity issues
4343

44-
1. Remove the row with the `Umbraco.Core.Upgrader.State+Umbraco.Engage` key from the `umbracoKeyValue` table in the database if it exists. 
44+
1. Remove the row with the `Umbraco.Core.Upgrader.State+Umbraco.Engage` key from the `umbracoKeyValue` table in the database if it exists.
4545
2. Remove all existing umbracoEngage\* tables from the database if they exist.
4646
3. Restart the site.
4747

@@ -51,10 +51,10 @@ await app.BootUmbracoAsync();
5151
When running Azure SQL on lower tiers and querying columnstore indexes, performance may decrease. Depending on the amount of data being processed, this can also lead to timeouts. This configuration is not recommended for production environments.
5252
{% endhint %}
5353

54-
Azure SQL lower than S3 doesn't support creating COLUMN STORE indexes. To work around this follow these steps: 
54+
Azure SQL lower than S3 doesn't support creating columnstore indexes. To work around this follow these steps:
5555

5656
1. Scale your Azure SQL environment to S3.
5757
2. Restart the site.
5858
3. Scale back to your initial Azure SQL tier.
5959

60-
The columnstore indexes are created and can be used in a lower tier.
60+
The columnstore indexes are created and can be used in a lower tier.

16/umbraco-cms/customizing/extending-overview/extension-types/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The `backofficeEntryPoint` extension type is used to execute JavaScript upon ini
2323

2424
### [Block Custom View](block-custom-view.md)
2525

26-
The `blockEditorCustomView` extension type is used to define a custom web component for representing blocks inside the Umbraco block grid property editor.
26+
The `blockEditorCustomView` extension type is used to define a custom web component for representing blocks inside the Umbraco block property editor.
2727

2828
### [Bundle](bundle.md)
2929

@@ -94,6 +94,7 @@ The `tree` extension type is used to create a hierarchical structure composed of
9494
The `workspace` extension type provides functionality that operates within specific workspace environments, such as document editing, media management, or member editing.
9595

9696
### [Property Editor UIs](../../../reference/property-editor-uis/README.md)
97+
9798
The `PropertyEditorUi` extension type allows you to create custom property editors in the Umbraco backoffice.
9899
See the [guide on how to work with and create property editors](../../../customizing/property-editors/README.md) for more information on how to implement this type of extension.
99100

16/umbraco-commerce/key-concepts/payment-providers.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class MyPaymentProviderSettings
3636
All Payment Providers inherit from a base class `AsyncPaymentProviderBase<TSettings>`. `TSettings` is the type of a Plain Old Class Object (POCO) model class representing the Payment Provider's settings. The class must be decorated with `PaymentProviderAttribute` which defines the Payment Providers `alias`.
3737

3838
### Payment Provider Settings
39+
3940
The settings class consists of a series of properties, each decorated with a `PaymentProviderSettingAttribute`. These attributes are used to dynamically build an editor interface for the settings in the backoffice.
4041

4142
Labels and descriptions for providers and their settings are controlled through [Localization](#localization) entries.
@@ -72,7 +73,7 @@ Generally, there are three methods within a Payment Provider that you may need t
7273

7374
* **GenerateFormAsync** - The `GenerateFormAsync` method generates an HTML form that will redirect the customer to the given payment gateway payment form. In this method you may need to communicate with the payment gateway to initialize a payment, letting the payment gateway know how much to capture. This often results in some kind of code or redirect URL being returned which will need to be embedded into the generated form. The form appears on a checkout **Review** page before payment, featuring a **Continue to Payment** button to submit the form and redirect to the gateway.
7475
* **ProcessCallbackAsync** - The `ProcessCallbackAsync` method handles the response coming back from the payment gateway and processing whether the payment was successful or not. This can occur _synchronously_, if the payment gateway sends information back during the confirmation page redirect. It can also occur _asynchronously_ if the payment gateway sends the information back via an out-of-band webhook request.
75-
* **GetOrderReferenceAsync** - The `GetOrderReferenceAsync` method extracts an order reference number from a request when a payment gateway uses an asynchronous webhook to finalize an order. This method is specifically used where the payment gateway uses a global webhook URL strategy for all notifications rather than a notification URL per transaction. Where a webhook URL can be passed per transaction, then Umbraco Commerce provides a unique callback URL that identifies the order reference as part of the URL parameters. When using the per transaction URL provided, implementing this method becomes unnecessary.
76+
* **GetOrderReferenceAsync** - The `GetOrderReferenceAsync` method extracts an order reference number from a request when a payment gateway uses an asynchronous webhook to finalize an order. This method is specifically used where the payment gateway uses a global webhook URL strategy for all notifications rather than a notification URL per transaction. Where a webhook URL can be passed per transaction, then Umbraco Commerce provides a unique callback URL that identifies the order reference as part of the URL parameters. When using the per transaction URL provided, implementing this method becomes unnecessary.
7677

7778
_\* denotes a required method implementation_.
7879

16/umbraco-commerce/key-concepts/shipping-providers.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class MyShippingProviderSettings
3636
All Shipping Providers inherit from a base class `ShippingProviderBase<TSettings>`. `TSettings` is the type of a Plain Old Class Object (POCO) model class representing the Shipping Provider's settings. The class must be decorated with `ShippingProviderAttribute` which defines the Shipping Providers `alias`.
3737

3838
### Shipping Provider Settings
39+
3940
The settings class consists of a series of properties, each decorated with a `ShippingProviderSettingAttribute`. These attributes are used to dynamically build an editor interface for the settings in the backoffice.
4041

4142
Labels and descriptions for providers and their settings are controlled through [Localization](#localization) entries.
@@ -56,11 +57,11 @@ public class MyShippingProviderSettings
5657
...
5758
}
5859
```
60+
5961
## Shipping Provider Responsibilities
6062

6163
The responsibilities of a Shipping Provider are:
6264

63-
6465
* **Realtime Rates** - Calculating shipping rate options for a given Order.
6566

6667
### Realtime Rates

16/umbraco-engage/getting-started/for-developers/troubleshooting-installations.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The most common reasons for this are:
1616

1717
* Database connectivity issues.
1818
* Incompatible SQL Server version.
19-
* No COLUMNSTORE index support on Azure SQL lower than S3.
19+
* No columnstore index support on Azure SQL lower than S3.
2020

2121
### Exception
2222

@@ -41,7 +41,7 @@ await app.BootUmbracoAsync();
4141

4242
#### When having database connectivity issues
4343

44-
1. Remove the row with the `Umbraco.Core.Upgrader.State+Umbraco.Engage` key from the `umbracoKeyValue` table in the database if it exists.&#x20;
44+
1. Remove the row with the `Umbraco.Core.Upgrader.State+Umbraco.Engage` key from the `umbracoKeyValue` table in the database if it exists.
4545
2. Remove all existing umbracoEngage\* tables from the database if they exist.
4646
3. Restart the site.
4747

@@ -51,8 +51,7 @@ await app.BootUmbracoAsync();
5151
When running Azure SQL on lower tiers and querying columnstore indexes, performance may decrease. Depending on the amount of data being processed, this can also lead to timeouts. This configuration is not recommended for production environments.
5252
{% endhint %}
5353

54-
55-
Azure SQL lower than S3 doesn't support creating COLUMNSTORE indexes. To work around this follow these steps:&#x20;
54+
Azure SQL lower than S3 doesn't support creating columnstore indexes. To work around this follow these steps:
5655

5756
1. Scale your Azure SQL environment to S3.
5857
2. Restart the site.

17/umbraco-cms/customizing/extending-overview/extension-types/README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ The `tree` extension type is used to create a hierarchical structure composed of
9393

9494
The `workspace` extension type provides functionality that operates within specific workspace environments, such as document editing, media management, or member editing.
9595

96+
### [Property Editor UIs](../../../reference/property-editor-uis/README.md)
97+
98+
The `PropertyEditorUi` extension type allows you to create custom property editors in the Umbraco backoffice.
99+
See the [guide on how to work with and create property editors](../../../customizing/property-editors/README.md) for more information on how to implement this type of extension.
100+
96101
## Even More Extension Types
97102

98103
### [Property Level UI Permissions](../../property-level-ui-permissions.md)
@@ -196,4 +201,3 @@ These are the current types of UI Extensions:
196201
| workspaceContext | A workspace context is a context instance that is available to all components in the workspace. It is used to share state between components and to provide a way to communicate between components. Read more about [Workspace Context](./workspaces/workspace-context.md). |
197202
| workspaceFooterApp | A workspace footer app is a component that can be added to the workspace footer. |
198203
| workspaceView | A workspace view is a view that can be added to a workspace. It is displayed in the main content area of the workspace. More than one view can be added to a workspace, and the user can switch between them. In that case, the views are displayed as tabs. Read more about [Workspace Views](./workspaces/workspace-views.md). |
199-

17/umbraco-cms/customizing/extending-overview/extension-types/block-custom-view.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,17 @@ The Block Custom View extension type lets you define a Web Component for represe
88

99
## Build a Custom View
1010

11+
{% hint style="info" %}
12+
Before creating a Block Custom View, make sure you are familiar with the [Extension Registry in Umbraco](../../../customizing/extending-overview/extension-registry/register-extensions.md).
13+
You can also refer to the tutorial [Custom Views for Block List](../../../tutorials/creating-custom-views-for-blocklist.md) for a step-by-step guide.
14+
{% endhint %}
15+
1116
1. Make a Document Type with a Property using a Block Editor of choice.
1217
2. Configure at least one Block Type on the Block Editor.
1318
3. Ensure the Element Type of the Blocks Content Model has a property using `headline` as the Property Alias.
1419
4. Take note of the Element Type Alias as you will use that in the next step.
15-
5. Add the following code to the `umbraco-package.json` file:
20+
5. Create a Settings Model for the above Element Type and add a property with alias `theme`.
21+
6. Add the following code to the `umbraco-package.json` file:
1622

1723
{% code title="umbraco-package.json" %}
1824
```json
@@ -21,15 +27,16 @@ The Block Custom View extension type lets you define a Web Component for represe
2127
"name": "My.CustomViewPackage",
2228
"version": "0.1.0",
2329
"extensions": [
24-
{
25-
"type": "blockEditorCustomView",
26-
"alias": "my.blockEditorCustomView.Example",
27-
"name": "My Example Custom View",
28-
"element": "/App_Plugins/welcome-dashboard/dist/example-block-custom-view.js",
29-
"forContentTypeAlias": "{Insert Element Type Alias here}"
30-
}
30+
{
31+
"type": "blockEditorCustomView",
32+
"alias": "my.blockEditorCustomView.Example",
33+
"name": "My Example Custom View",
34+
"element": "/App_Plugins/block-custom-view/dist/example-block-custom-view.js",
35+
"forContentTypeAlias": "myElementTypeAlias", // insert element type alias here
36+
"forBlockEditor": "block-list" // insert block type(s) here
37+
}
3138
]
32-
39+
}
3340
```
3441
{% endcode %}
3542

@@ -48,10 +55,14 @@ export class ExampleBlockCustomView extends UmbElementMixin(LitElement) implemen
4855
@property({ attribute: false })
4956
content?: UmbBlockDataType;
5057

58+
@property({ attribute: false })
59+
settings?: UmbBlockDataType;
60+
5161
render() {
5262
return html`
5363
<h5>My Custom View</h5>
5464
<p>Headline: ${this.content?.headline}</p>
65+
<p>Theme: ${this.settings?.theme}</p>
5566
`;
5667
}
5768

17/umbraco-cms/fundamentals/backoffice/property-editors/built-in-umbraco-property-editors/file-upload.md

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Find the full documentation for the property in the [Media Picker](media-picker-
2222

2323
## Content Example
2424

25-
![Content Example Empty](../../../../../../16/umbraco-cms/fundamentals/backoffice/property-editors/built-in-property-editors/images/content-example-empty.png) ![Content Example](../../../../../../16/umbraco-cms/fundamentals/backoffice/property-editors/built-in-property-editors/images/File-Upload-content-example.png)
25+
![Content Example Empty](images/fileupload-content-empty.png) ![Content Example](images/fileupload-content.png)
2626

2727
In code, the property is a string, which references the location of the file.
2828

@@ -33,42 +33,36 @@ Example: `"/media/o01axaqu/guidelines-on-remote-working.pdf"`
3333
### Without Models Builder
3434

3535
```csharp
36-
@using System.IO;
37-
@{
38-
if (Model.HasValue("myFile"))
39-
{
40-
var myFile = Model.Value<string>("myFile");
41-
42-
<a href="@myFile">@System.IO.Path.GetFileName(myFile)</a>
43-
}
36+
@if (Model.HasValue("myFile"))
37+
{
38+
var myFile = Model.Value<string>("myFile");
4439

40+
<a href="@myFile">@System.IO.Path.GetFileName(myFile)</a>
4541
}
4642
```
4743

4844
### With Models Builder
4945

5046
```csharp
51-
@if (!Model.HasValue(Model.MyFile))
47+
@if (Model.HasValue("myFile"))
5248
{
5349
<a href="@Model.MyFile">@System.IO.Path.GetFileName(Model.MyFile)</a>
5450
}
5551
```
5652

5753
## Add values programmatically
5854

59-
{% hint style="info" %}
60-
The samples in this section have not been verified against the latest version of Umbraco.
61-
62-
Instead, we recommend using the [Media Picker](media-picker-3.md) for uploading files to your Umbraco website.
63-
{% endhint %}
64-
6555
See the example below to see how a value can be added or changed programmatically. To update a value of this property editor you need the [Content Service](https://apidocs.umbraco.com/v15/csharp/api/Umbraco.Cms.Core.Services.ContentService.html) and the [Media Service](https://apidocs.umbraco.com/v15/csharp/api/Umbraco.Cms.Core.Services.MediaService.html).
6656

6757
{% hint style="info" %}
6858
The example below demonstrates how to add values programmatically using a Razor view. However, this is used for illustrative purposes only and is not the recommended method for production environments.
6959
{% endhint %}
7060

7161
```csharp
62+
@using System.Net
63+
@using Umbraco.Cms.Core
64+
@using Umbraco.Cms.Core.Services
65+
@using Umbraco.Cms.Core.PropertyEditors
7266
@using Umbraco.Cms.Core.IO
7367
@using Umbraco.Cms.Core.Serialization
7468
@using Umbraco.Cms.Core.Strings
@@ -115,15 +109,6 @@ The example below demonstrates how to add values programmatically using a Razor
115109
}
116110
```
117111

118-
Although the use of a GUID is preferable, you can also use the numeric ID to get the page:
119-
120-
```csharp
121-
@{
122-
// Get the page using it's id
123-
var content = ContentService.GetById(1234);
124-
}
125-
```
126-
127112
If Models Builder is enabled you can get the alias of the desired property without using a magic string:
128113

129114
```csharp
54 KB
Loading
51.1 KB
Loading

0 commit comments

Comments
 (0)