Readme

Better Buttons for GridField

Modifies the detail form of GridFields to use more user-friendly actions, including:

Save and add another: Create a record, and go right to adding another one, without having to click the back button, and then add again.

Save and close: Save the record and go back to list view

User-friendly delete: Extracted from the tray of constructive actions and moved away so is less likely to be clicked accidentally. Includes inline confirmation of action instead of browser alert box.

Cancel: Same as the back button, but in a more convenient location

Previous/Next record: Navigate to the previous or next record in the list without returning to list view

Frontend Links: If your DataObject has a Link() method, get links to the draft site and published site to view the record in context in a single click

Versioning: Save, Save & Publish, Rollback, Unpublish

Configurable UI: Add buttons to the top (utilities) or bottom (actions).

Disambiguated tabs: In model admin, the top tabs toggle between the models. On the detail view, they toggle between the groups of fields, creating a confusing user exierience. Better Buttons groups the fields as they are in CMSMain, using a tabset within the main editing area.

Add your own custom actions!

Create custom actions the detail view

Requirements

SilverStripe 3.1 or higher

Installation

composer require unclecheese/betterbuttons:1.2.*

Customising the button collections

Preferences for which buttons should appear where will vary from user to user. BetterButtons comes with a default set of button collections for the "create" and "edit" views in a GridField detail form, but these can be easily overridden in a config.yml file.

Each button type is assigned a symbol in the YAML definition. It can be placed anywhere any number of times. Further, it can be placed in a named group, provided that group has been defined in the BetterButtonsGroups node. A button group is a single button with a label that exposes a series of options on click.

Because of the idiosyncracies of the Config layer merging arrays, the buttons must be defined as on or off (true or false). To remove a button from the default configuration, you must explicitly set it to false in your project configuration. Here is an example custom configuration.