process delete language
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
namespace Thelia\Action;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Thelia\Core\Event\Lang\LangCreateEvent;
|
||||
use Thelia\Core\Event\Lang\LangDeleteEvent;
|
||||
use Thelia\Core\Event\Lang\LangToggleDefaultEvent;
|
||||
use Thelia\Core\Event\Lang\LangUpdateEvent;
|
||||
use Thelia\Core\Event\TheliaEvents;
|
||||
@@ -71,6 +72,7 @@ class Lang extends BaseAction implements EventSubscriberInterface
|
||||
$lang = new LangModel();
|
||||
|
||||
$lang
|
||||
->setDispatcher($this->getDispatcher())
|
||||
->setTitle($event->getTitle())
|
||||
->setCode($event->getCode())
|
||||
->setLocale($event->getLocale())
|
||||
@@ -81,6 +83,16 @@ class Lang extends BaseAction implements EventSubscriberInterface
|
||||
$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.
|
||||
*
|
||||
@@ -106,7 +118,8 @@ class Lang extends BaseAction implements EventSubscriberInterface
|
||||
return array(
|
||||
TheliaEvents::LANG_UPDATE => array('update', 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 Thelia\Core\Event\Lang\LangCreateEvent;
|
||||
use Thelia\Core\Event\Lang\LangDeleteEvent;
|
||||
use Thelia\Core\Event\Lang\LangToggleDefaultEvent;
|
||||
use Thelia\Core\Event\Lang\LangUpdateEvent;
|
||||
use Thelia\Core\Event\TheliaEvents;
|
||||
@@ -194,6 +195,23 @@ class LangController extends BaseAdminController
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -693,6 +693,7 @@ final class TheliaEvents
|
||||
|
||||
const LANG_UPDATE = 'action.lang.update';
|
||||
const LANG_CREATE = 'action.lang.create';
|
||||
const LANG_DELETE = 'action.lang.delete';
|
||||
|
||||
const LANG_TOGGLEDEFAULT = 'action.lang.toggleDefault';
|
||||
|
||||
|
||||
@@ -237,6 +237,7 @@
|
||||
|
||||
form_action = {url path='/admin/configuration/languages/delete'}
|
||||
form_content = {$smarty.capture.delete_dialog nofilter}
|
||||
form_error_message = $error_delete_message
|
||||
}
|
||||
|
||||
<div id="lang-update-modal"></div>
|
||||
|
||||
Reference in New Issue
Block a user