* ENH Make all GridField components injectable.
Some components were already injectable, but all GridField components shipped in silverstripe should be injectable.
This makes it a LOT easier to make global project-specific changes to a given component.
The new AbstractGridFieldComponent also makes it easy to make similar wide-spread changes in the future.
* DOCS Encourage injection for GridField and GridFieldComponents.
* ENH Reduce duplication of code in GridField view and edit buttons.
* Fix syntax error
Co-authored-by: Daniel Hensby <dhensby@users.noreply.github.com>
Co-authored-by: Daniel Hensby <dhensby@users.noreply.github.com>
* Add gridfield restore action, enable view button in action menu
* Abstract restore action and create test
* Use more appropriate canRestoreToDraft and isArchived, move translations
* Use Hierarchy to determine if a record should be restored to root
* Move restore action to versioned
* WIP GridField action menu work, the gist of the idea is using a new gridfield component
* Add delete action to actions menu
* Actions are added automatically to action menu (allows for extension)
* Add test and minor changes
* Add docs and minor changes
* Refactor ActionMenuItem into distinct types, general ActionMenu cleanup
* Add icons and fix title
* Pass columnName, so it can be used by components
* Update test to open and find action menu buttons
* Add section in changelog upgrade section for GridField_ActionMenu