Issue #2086479 by tim.plunkett: Convert content_translation_delete_confirm() to the new form interface.
parent
39e76b0661
commit
cc982b7794
|
@ -243,45 +243,3 @@ function content_translation_prepare_translation(EntityInterface $entity, Langua
|
|||
$entity->addTranslation($target->id, $source_translation->getPropertyValues());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Form constructor for the translation deletion confirmation.
|
||||
*
|
||||
* @deprecated Use \Drupal\content_translation\Form\ContentTranslationForm::deleteTranslation()
|
||||
*/
|
||||
function content_translation_delete_confirm(array $form, array $form_state, EntityInterface $entity, Language $language) {
|
||||
$controller = content_translation_controller($entity->entityType());
|
||||
$uri = $entity->uri('drupal:content-translation-overview');
|
||||
|
||||
return confirm_form(
|
||||
$form,
|
||||
t('Are you sure you want to delete the @language translation of %label?', array('@language' => $language->name, '%label' => $entity->label())),
|
||||
$uri['path'],
|
||||
t('This action cannot be undone.'),
|
||||
t('Delete'),
|
||||
t('Cancel')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Form submission handler for content_translation_delete_confirm().
|
||||
*/
|
||||
function content_translation_delete_confirm_submit(array $form, array &$form_state) {
|
||||
list($entity, $language) = $form_state['build_info']['args'];
|
||||
$controller = content_translation_controller($entity->entityType());
|
||||
|
||||
// Remove the translated values.
|
||||
$entity->removeTranslation($language->id);
|
||||
$entity->save();
|
||||
|
||||
// Remove any existing path alias for the removed translation.
|
||||
// @todo This should be taken care of by the Path module.
|
||||
if (\Drupal::moduleHandler()->moduleExists('path')) {
|
||||
$uri = $entity->uri();
|
||||
$conditions = array('source' => $uri['path'], 'langcode' => $language->id);
|
||||
\Drupal::service('path.crud')->delete($conditions);
|
||||
}
|
||||
|
||||
$uri = $entity->uri('drupal:content-translation-overview');
|
||||
$form_state['redirect'] = $uri['path'];
|
||||
}
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\content_translation\Form\ContentTranslationDeleteForm.
|
||||
*/
|
||||
|
||||
namespace Drupal\content_translation\Form;
|
||||
|
||||
use Drupal\Core\Form\ConfirmFormBase;
|
||||
|
||||
/**
|
||||
* Temporary form controller for content_translation module.
|
||||
*/
|
||||
class ContentTranslationDeleteForm extends ConfirmFormBase {
|
||||
|
||||
/**
|
||||
* The entity whose translation is being deleted.
|
||||
*
|
||||
* @var \Drupal\Core\Entity\EntityInterface
|
||||
*/
|
||||
protected $entity;
|
||||
|
||||
/**
|
||||
* The language of the translation being deleted.
|
||||
*
|
||||
* @var \Drupal\Core\Language\Language
|
||||
*/
|
||||
protected $language;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFormId() {
|
||||
return 'content_translation_delete_confirm';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function buildForm(array $form, array &$form_state, $_entity_type = NULL, $language = NULL) {
|
||||
$this->entity = $this->getRequest()->attributes->get($_entity_type);
|
||||
$uri = $this->entity->uri('drupal:content-translation-overview');
|
||||
$this->language = language_load($language);
|
||||
return parent::buildForm($form, $form_state);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getConfirmText() {
|
||||
return $this->t('Delete');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getQuestion() {
|
||||
return $this->t('Are you sure you want to delete the @language translation of %label?', array('@language' => $this->language->name, '%label' => $this->entity->label()));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getCancelRoute() {
|
||||
$entity_info = $this->entity->entityInfo();
|
||||
return array(
|
||||
'route_name' => $entity_info['links']['drupal:content-translation-overview'],
|
||||
'route_parameters' => array(
|
||||
$this->entity->entityType() => $this->entity->id(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function submitForm(array &$form, array &$form_state) {
|
||||
// Remove the translated values.
|
||||
$this->entity->removeTranslation($this->language->id);
|
||||
$this->entity->save();
|
||||
|
||||
// Remove any existing path alias for the removed translation.
|
||||
// @todo This should be taken care of by the Path module.
|
||||
if (\Drupal::moduleHandler()->moduleExists('path')) {
|
||||
$uri = $this->entity->uri();
|
||||
$conditions = array('source' => $uri['path'], 'langcode' => $this->language->id);
|
||||
\Drupal::service('path.crud')->delete($conditions);
|
||||
}
|
||||
|
||||
$form_state['redirect_route'] = $this->getCancelRoute();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\content_translation\Form\ContentTranslationForm.
|
||||
*/
|
||||
|
||||
namespace Drupal\content_translation\Form;
|
||||
|
||||
use Drupal\Core\Language\Language;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/**
|
||||
* Temporary form controller for content_translation module.
|
||||
*/
|
||||
class ContentTranslationForm {
|
||||
|
||||
/**
|
||||
* Wraps content_translation_delete_confirm().
|
||||
*
|
||||
* @todo Remove content_translation_delete_confirm().
|
||||
*/
|
||||
public function deleteTranslation(Request $request, $language) {
|
||||
$entity = $request->attributes->get($request->attributes->get('_entity_type'));
|
||||
module_load_include('pages.inc', 'content_translation');
|
||||
$language = language_load($language);
|
||||
return drupal_get_form('content_translation_delete_confirm', $entity, $language);
|
||||
}
|
||||
|
||||
}
|
|
@ -140,7 +140,7 @@ class ContentTranslationRouteSubscriber extends RouteSubscriberBase {
|
|||
$route = new Route(
|
||||
$path . '/delete/{language}',
|
||||
array(
|
||||
'_content' => '\Drupal\content_translation\Form\ContentTranslationForm::deleteTranslation',
|
||||
'_form' => '\Drupal\content_translation\Form\ContentTranslationDeleteForm',
|
||||
'language' => NULL,
|
||||
'_title' => 'Delete',
|
||||
'_entity_type' => $entity_type,
|
||||
|
|
Loading…
Reference in New Issue