A stand-alone GridField component that enables previewing records directly from a GridField.
composer require guysartorelli/silverstripe-gridfield-previewClick the preview button in the gridfield. This will automatically open the preview panel (in split mode if your screen is wide enough, or in preview mode otherwise) with the preview set to the record you clicked.
The easiest way to use this module is to add PreviewableModelAdminExtension as an extension for your ModelAdmin subclass. By default this will add a preview button to the gridfield for all tabs that have CMSPreviewable models.
MyApp\Admin\MyModelAdmin:
extensions:
- GuySartorelli\GridFieldPreview\PreviewableModelAdminExtensionYou can also configure this to only add the component for specific model classes:
MyApp\Admin\MyModelAdmin:
extensions:
- GuySartorelli\GridFieldPreview\PreviewableModelAdminExtension
gridfield_previewable_classes:
- MyApp\Model\MyPreviewableModelYou can add the GridFieldPreviewButton GridField component to literally any GridField, even one that belongs to a DataObject which has its own preview!
use GuySartorelli\GridFieldPreview\GridFieldPreviewButton;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldConfig_RecordViewer;
//...
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', GridField::create(
'SomethingPreviewable',
'Something Previewable',
MyPreviewableDataObject::get(),
$config = GridFieldConfig_RecordViewer::create()
));
// Here's the important part - add the GridFieldPreviewButton component!
$config->addComponent(GridFieldPreviewButton::create());
return $fields;
}
