process delete language
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
namespace Thelia\Action;
|
namespace Thelia\Action;
|
||||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||||
use Thelia\Core\Event\Lang\LangCreateEvent;
|
use Thelia\Core\Event\Lang\LangCreateEvent;
|
||||||
|
use Thelia\Core\Event\Lang\LangDeleteEvent;
|
||||||
use Thelia\Core\Event\Lang\LangToggleDefaultEvent;
|
use Thelia\Core\Event\Lang\LangToggleDefaultEvent;
|
||||||
use Thelia\Core\Event\Lang\LangUpdateEvent;
|
use Thelia\Core\Event\Lang\LangUpdateEvent;
|
||||||
use Thelia\Core\Event\TheliaEvents;
|
use Thelia\Core\Event\TheliaEvents;
|
||||||
@@ -71,6 +72,7 @@ class Lang extends BaseAction implements EventSubscriberInterface
|
|||||||
$lang = new LangModel();
|
$lang = new LangModel();
|
||||||
|
|
||||||
$lang
|
$lang
|
||||||
|
->setDispatcher($this->getDispatcher())
|
||||||
->setTitle($event->getTitle())
|
->setTitle($event->getTitle())
|
||||||
->setCode($event->getCode())
|
->setCode($event->getCode())
|
||||||
->setLocale($event->getLocale())
|
->setLocale($event->getLocale())
|
||||||
@@ -81,6 +83,16 @@ class Lang extends BaseAction implements EventSubscriberInterface
|
|||||||
$event->setLang($lang);
|
$event->setLang($lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function delete(LangDeleteEvent $event)
|
||||||
|
{
|
||||||
|
if (null !== $lang = LangQuery::create()->findPk($event->getLangId())) {
|
||||||
|
$lang->setDispatcher($this->getDispatcher())
|
||||||
|
->delete();
|
||||||
|
|
||||||
|
$event->setLang($lang);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array of event names this subscriber wants to listen to.
|
* Returns an array of event names this subscriber wants to listen to.
|
||||||
*
|
*
|
||||||
@@ -106,7 +118,8 @@ class Lang extends BaseAction implements EventSubscriberInterface
|
|||||||
return array(
|
return array(
|
||||||
TheliaEvents::LANG_UPDATE => array('update', 128),
|
TheliaEvents::LANG_UPDATE => array('update', 128),
|
||||||
TheliaEvents::LANG_TOGGLEDEFAULT => array('toggleDefault', 128),
|
TheliaEvents::LANG_TOGGLEDEFAULT => array('toggleDefault', 128),
|
||||||
TheliaEvents::LANG_CREATE => array('create', 128)
|
TheliaEvents::LANG_CREATE => array('create', 128),
|
||||||
|
TheliaEvents::LANG_DELETE => array('delete', 128),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -25,6 +25,7 @@ namespace Thelia\Controller\Admin;
|
|||||||
|
|
||||||
use Symfony\Component\Form\Form;
|
use Symfony\Component\Form\Form;
|
||||||
use Thelia\Core\Event\Lang\LangCreateEvent;
|
use Thelia\Core\Event\Lang\LangCreateEvent;
|
||||||
|
use Thelia\Core\Event\Lang\LangDeleteEvent;
|
||||||
use Thelia\Core\Event\Lang\LangToggleDefaultEvent;
|
use Thelia\Core\Event\Lang\LangToggleDefaultEvent;
|
||||||
use Thelia\Core\Event\Lang\LangUpdateEvent;
|
use Thelia\Core\Event\Lang\LangUpdateEvent;
|
||||||
use Thelia\Core\Event\TheliaEvents;
|
use Thelia\Core\Event\TheliaEvents;
|
||||||
@@ -194,6 +195,23 @@ class LangController extends BaseAdminController
|
|||||||
{
|
{
|
||||||
if (null !== $response = $this->checkAuth(AdminResources::LANGUAGE, AccessManager::DELETE)) return $response;
|
if (null !== $response = $this->checkAuth(AdminResources::LANGUAGE, AccessManager::DELETE)) return $response;
|
||||||
|
|
||||||
|
$error_msg = false;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
$deleteEvent = new LangDeleteEvent($this->getRequest()->get('language_id', 0));
|
||||||
|
|
||||||
|
$this->dispatch(TheliaEvents::LANG_DELETE, $deleteEvent);
|
||||||
|
|
||||||
|
$this->redirectToRoute('admin.configuration.languages');
|
||||||
|
} catch (\Exception $ex) {
|
||||||
|
\Thelia\Log\Tlog::getInstance()->error(sprintf("error during language removal with message : %s", $ex->getMessage()));
|
||||||
|
$error_msg = $ex->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->render('languages', array(
|
||||||
|
'error_delete_message' => $error_msg
|
||||||
|
));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,4 @@ class LangDeleteEvent extends LangEvent
|
|||||||
return $this->lang_id;
|
return $this->lang_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -693,6 +693,7 @@ final class TheliaEvents
|
|||||||
|
|
||||||
const LANG_UPDATE = 'action.lang.update';
|
const LANG_UPDATE = 'action.lang.update';
|
||||||
const LANG_CREATE = 'action.lang.create';
|
const LANG_CREATE = 'action.lang.create';
|
||||||
|
const LANG_DELETE = 'action.lang.delete';
|
||||||
|
|
||||||
const LANG_TOGGLEDEFAULT = 'action.lang.toggleDefault';
|
const LANG_TOGGLEDEFAULT = 'action.lang.toggleDefault';
|
||||||
|
|
||||||
|
|||||||
@@ -237,6 +237,7 @@
|
|||||||
|
|
||||||
form_action = {url path='/admin/configuration/languages/delete'}
|
form_action = {url path='/admin/configuration/languages/delete'}
|
||||||
form_content = {$smarty.capture.delete_dialog nofilter}
|
form_content = {$smarty.capture.delete_dialog nofilter}
|
||||||
|
form_error_message = $error_delete_message
|
||||||
}
|
}
|
||||||
|
|
||||||
<div id="lang-update-modal"></div>
|
<div id="lang-update-modal"></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user