MetaModels\DcGeneral\Events\Table\FilterSetting\Subscriber::generatePasteButton PHP Method

generatePasteButton() public method

Generate the paste button.
public generatePasteButton ( ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\Event\GetPasteButtonEvent $event ) : void
$event ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\Event\GetPasteButtonEvent The event.
return void
    public function generatePasteButton(GetPasteButtonEvent $event)
    {
        if ($event->getEnvironment()->getDataDefinition()->getName() !== 'tl_metamodel_filtersetting') {
            return;
        }
        $environment = $event->getEnvironment();
        $model = $event->getModel();
        $clipboard = $environment->getClipboard();
        $filter = new Filter();
        $filter->andModelIs(ModelId::fromModel($model))->andActionIs(ItemInterface::CUT);
        // Disable all buttons if there is a circular reference.
        if ($event->isCircularReference() || !$clipboard->isEmpty($filter)) {
            $event->setPasteAfterDisabled(true)->setPasteIntoDisabled(true);
            return;
        }
        $factory = $this->getServiceContainer()->getFilterFactory()->getTypeFactory($model->getProperty('type'));
        // If setting does not support children, omit them.
        if ($model->getId() && !($factory && $factory->isNestedType())) {
            $event->setPasteIntoDisabled(true);
        }
    }