Editors

Configuring the editor of a collection in Konstrukt, the back office UI builder for Umbraco.

An editor is the user interface used to edit an entity and is made up of tabs and property editors.

Configuring an editor

The editor configuration is a sub configuration of a Collection config builder instance and is accessing via it's Editor method.

Editor(Lambda editorConfig = null) : KonstruktEditorConfig<TEntityType>

Accesses the editor config of the given collection.

// Example
collectionConfig.Editor(editorConfig => {
    ...
});

Adding a tab to an editor

AddTab(string name, Lambda tabConfig = null) : KonstruktEditorTabConfigBuilder<TEntityType>

Adds a tab to the editor.

// Example
editorConfig.AddTab("General", tabConfig => {
    ...
});

Configuring a sidebar to a tab

A slidebar is a smaller area that is displayed to the right of the main editor. The sidebar can also contain fieldsets and fields in the same way tabs can but with a much more limited display area so you'll need to choose your field types carefully. The sidebar is a great location to display entity metadata.

Configures the sidebar for the tab.

// Example
tabConfig.Sidebar(sidebarConfig => {
    ...
});

Setting the visibility of a tab

SetVisibility(Predicate<KonstruktEditorTabVisibilityContext> visibilityExpression) : KonstruktEditorTabConfigBuilder<TEntityType>

Sets the runtime visibility of the tab.

// Example
tabConfig.SetVisibility(ctx => ctx.EditorMode == KonstruktEditorMode.Create);

Adding a fieldset to a tab

AddFieldset(string name, Lambda fieldsetConfig = null) : KonstruktEditorFieldsetConfigBuilder<TEntityType>

Adds the given fieldset to the tab.

// Example
tabConfig.AddFieldset("Contact", fieldsetConfig => {
    ...
});

Setting the visibility of a fieldset

SetVisibility(Predicate<KonstruktEditorFieldsetVisibilityContext> visibilityExpression) : KonstruktEditorFieldsetConfigBuilder<TEntityType>

Sets the runtime visibility of the fieldset.

// Example
fieldsetConfig.SetVisibility(ctx => ctx.EditorMode == KonstruktEditorMode.Create);

Adding a field to a fieldset

AddField(Lambda propertyExpression, Lambda propertyConfig = null) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Adds the given property to the editor.

// Example
fieldsetConfig.AddField(p => p.FirstName, fieldConfig => {
    ...
});

Changing the label of a field

By default Konstrukt will build the label from the property name, including splitting camel case names into sentence case, however you can set an explicit label if you'd prefer.

SetLabel(string label) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Sets the label for the editor field.

// Example
fieldConfig.SetLabel("First Name");

Hiding the label of a field

Sometimes you may have a field editor that would work better in full width, in which case you can achieve this by explicitly hiding the fields label.

HideLabel() : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Hides the label for the editor field.

// Example
fieldConfig.HideLabel();

Adding a description to a field

SetDescription(string description) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Sets the description for the editor field.

// Example
fieldConfig.SetDescription("Enter your age in years");

Changing the data type of a field

By default Konstrukt will automatically choose a relevant data type for simple field types, however you can override this should you wish to use an alternative data type.

SetDataType(string dataTypeName) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Set the data type of the current field to the Umbraco data type with the given name.

// Example
fieldConfig.SetDataType("Richtext Editor");

SetDataType(int dataTypeId) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Set the data type of the current field to the Umbraco data type with the given id.

// Example
fieldConfig.SetDataType(-88);

Setting the default value of a field

SetDefaultValue(TValueType defaultValue) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Sets the default value to a known constant.

// Example
fieldConfig.SetDefaultValue(10);

SetDefaultValue(Func defaultValueFunc) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Sets the default value via a function that gets evaluated at time of entity creation.

// Example
fieldConfig.SetDefaultValue(() => DateTime.Now);

Making a field required

MakeRequired() : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Makes the given field required.

// Example
fieldConfig.MakeRequired();

Validating a field

SetValidationRegex(string regex) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Defines the regular expression to use when validating the field.

// Example
fieldConfig.SetValidationRegex("[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}");

Making a field read only

MakeReadOnly() : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Makes the current field read only disabling editing in the UI.

// Example
fieldConfig.MakeReadOnly();

MakeReadOnly(Func<TValueType, string> format) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Makes the current field read only disabling editing in the UI. Provides a custom formatting expression to use when rendering the value as a string.

// Example
fieldConfig.MakeReadOnly(distanceProp => $"{distanceProp:## 'km'}");

MakeReadOnly(object dataTypeNameOrId) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Makes the current field read only disabling editing in the UI. Provides the name or id of a datatype to use when in readonly mode.

// Example
fieldConfig.MakeReadOnly("myReadOnlyEditor");

MakeReadOnly(Predicate<KonstruktEditorFieldReadOnlyContext> readOnlyExp) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Makes the current field read only disabling editing in the UI if the given runtime predicate is true.

// Example
fieldConfig.MakeReadOnly(ctx => ctx.EditorMode == KonstruktEditorMode.Create);

MakeReadOnly(Predicate<KonstruktEditorFieldReadOnlyContext> readOnlyExp, Func<TValueType, string> format) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Makes the current field read only disabling editing in the UI if the given runtime predicate is true. Provides a custom formatting expression to use when rendering the value as a string.

// Example
fieldConfig.MakeReadOnly(ctx => ctx.EditorMode == KonstruktEditorMode.Create, distanceProp => $"{distanceProp:## 'km'}");

MakeReadOnly(Predicate<KonstruktEditorFieldReadOnlyContext> readOnlyExp, object dataTypeNameOrId) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Makes the current field read only disabling editing in the UI if the given runtime predicate is true. Provides the name or id of a datatype to use when in readonly mode.

// Example
fieldConfig.MakeReadOnly(ctx => ctx.EditorMode == KonstruktEditorMode.Create, "myReadOnlyEditor");

Setting the visibility of a field

SetVisibility(Predicate<KonstruktEditorFieldVisibilityContext> visibilityExpression) : KonstruktEditorFieldConfigBuilder<TEntityType, TValueType>

Sets the runtime visibility of the field.

// Example
fieldConfig.SetVisibility(ctx => ctx.EditorMode == KonstruktEditorMode.Create);

Last updated