Bulk Edit is a plugin that allows to make changes to more than one Content at the same time. This can save time by simultaneously updating multiple properties that share the same information. This can be useful when a new property has been added to a ContentType and a default value needs to be assigned, or for making periodic (e.g. monthly) updates to the property.
Setup Bulk Edit
In order to start using BulkEdit module you need to add the following statement to Startup.cs
1 2 3 4 5 6 7 8 9 10 11 |
public class Startup { ... public void ConfigureServices(IServiceCollection services) { ... services.AddBulkEdit(); ... } ... } |
Using Bulk Edit
Bulk Edit is a command available in the page tree. It can be selected from any tree item that has children.
After selecting the command, a dialog box is displayed with a selection of pages. You can edit all children, or all descendants.
The list can also be filtered by type.
By selecting the “selected” option, you can manually select the pages to be edited.
Once Editor have decided which pages he wants to edit, he need to select the fields. This is done in an editing form similar to that used in ContentArea. The difference is that a checkbox is available next to each field label, which is used to select the fields to be edited. After selecting the checkbox, Editor needs to enter the value, which will be set, for all selected pages. More than one field can be selected.
By default, the value of the first selected page is used.
After clicking Next, Editor see progress dialog and content items are updated
Handling errors
When saving an item and error occured, the bulk edit continue updating other items. Error message is displayed next to content name.
Publishing edited content
When using the Bulk Edit module, new draft pages are created, but they are not published. To improve publishng process, the Editor can add edited items to the project and use the Bulk Edit command available in the project overview.
Hiding properties on bulk edit form
By default, the Bulk Edit module allows you to eydt all fields defined on ContentType. You can change this behavior through code and hide selected properties on the editing form. To do this we need to use the AllowBulkEdit attribute, which is configured on the field.
In the following example, the TestProperty field will not be editable with BulkEdit.
1 2 3 4 5 6 7 8 9 10 |
[ContentType(GUID = "638D8271-5CA3-4C72-BABC-3E8779233263")] public class NewsPage : PageData { // ... [AllowBulkEdit(false)] public virtual string TestProperty { get; set; } // ... } |
How form is created
Form is created as a subset of selected ContentTypes. The properties have to match by name, type, but also by settings.
In the example only Prop1 will be displayed in the editing form, because other properties does not match by type of settings.
Limitations
It’s very important to note, that editing content items using bulk edit does not start the transaction. Each content is saved separately. The update will not sop when one of the content was not saved successfully.
Reporting bugs and requesting features
Both features and bugs can be reported on github project site.
The github page contains more information about plugin configuration
Project is available as a nuget package