Your IP : 216.73.217.79


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

<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace App\SessionsBundle\Controller;

use Sonata\AdminBundle\Controller\CRUDController as BaseController;
use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;

/**
 * Controller for batch actions
 *
 * @author otto
 */
class CRUDController extends BaseController {

    public function batchActionDeleteMove(ProxyQueryInterface $selectedModelQuery) {

        if ($this->admin->isGranted('EDIT') === false || $this->admin->isGranted('DELETE') === false) {
            throw new AccessDeniedException();
        }

        $selectedModels = $selectedModelQuery->execute();

        // do the merge work here

        try {

            $languagePhrasesManager = $this->container->get('language_phrases.manager');
            $sitesManager = $this->container->get('sites.manager');
            $systemSettingManager = $this->container->get('system_setting.manager');
            $bulkMoveToSiteId = $systemSettingManager->getSetting('bulk_move_to_site_id', $systemSettingManager->getSetting('default_site_id'), true);

            if (strlen($bulkMoveToSiteId) <= 0) {
                $this->get('session')->getFlashBag()->add('error', $languagePhrasesManager->translate('Bulk Move to Site ID not set'));
                return new RedirectResponse($this->admin->generateUrl('list', array('filter' => $this->admin->getFilterParameters())));
            }

            foreach ($selectedModels as $selectedModel) {
                $site = $sitesManager->find($selectedModel->getId());
                if (is_object($site)) {
                    $sitesManager->startDeleteMove($site, $bulkMoveToSiteId);
                }
            }
        } catch (\Exception $e) {
            $this->get('session')->getFlashBag()->add('error', $languagePhrasesManager->translate('Delete and Move Error'));
            echo $e->getMessage() . '<br />';
            echo $e->getTraceAsString() . '<br />';
            exit;

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

        $this->get('session')->getFlashBag()->add('success', $languagePhrasesManager->translate('Delete and Move Success'));

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

}