Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/src/ContentBundle/Controller/
Upload File :
Current File : /var/www/v3.cesa.co.za/src/ContentBundle/Controller/CRUDController.php

<?php

namespace App\ContentBundle\Controller;

use Sonata\AdminBundle\Controller\CRUDController as BaseController;
use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use App\CoreBundle\Services\ServiceGetterManager;

class CRUDController extends BaseController {

    /**
     * @param ProxyQueryInterface $selectedModelQuery
     * @param Request             $request
     *
     * @return RedirectResponse
     */
    public function batchActionDuplicate(ProxyQueryInterface $selectedModelQuery, ServiceGetterManager $sg) {
        if ($this->admin->isGranted('EDIT') === false || $this->admin->isGranted('DELETE') === false) {
            throw new AccessDeniedException();
        }

        $selectedModels = $selectedModelQuery->execute();

        $formItemManager = $sg->get('form_item.manager');

        try {

            foreach ($selectedModels as $selectedModel) {
                $formItemManager->duplicate($selectedModel, $this->admin->getFormObject(), count($selectedModels));
            }
        } catch (\Exception $e) {
            $this->addFlash('error', 'Duplicate Items Error: ' . $e->getMessage());
//            echo $e->getMessage() . '<br />';
//            echo $e->getTraceAsString() . '<br />';
//            exit;

            return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
        }

        $this->addFlash('success', 'Duplicate Items Success');

        return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
    }
}