public static function OpignoModuleManagerController::ajaxFormEntityFormSubmit in Opigno module 3.x
Same name and namespace in other branches
- 8 src/Controller/OpignoModuleManagerController.php \Drupal\opigno_module\Controller\OpignoModuleManagerController::ajaxFormEntityFormSubmit()
Submit handler added in the form by opigno_module_form_alter().
See also
File
- src/
Controller/ OpignoModuleManagerController.php, line 200
Class
- OpignoModuleManagerController
- Controller for all the actions of the Opigno module manager.
Namespace
Drupal\opigno_module\ControllerCode
public static function ajaxFormEntityFormSubmit($form, FormState &$form_state) {
// Gets back the content type and module id.
$build_info = $form_state
->getBuildInfo();
$params = \Drupal::routeMatch()
->getParameters();
$module = $params
->get('opigno_module');
$type_id = $params
->get('type');
$item_id = $params
->get('item');
// If one information missing, return an error.
if (!isset($module) || !isset($type_id)) {
// TODO: Add an error message here.
return;
}
// Get the newly or edited entity.
/** @var \Drupal\Core\Entity\EntityInterface $entity */
$entity = $build_info['callback_object']
->getEntity();
// Clear user input.
$input = $form_state
->getUserInput();
// We should not clear the system items from the user input.
$clean_keys = $form_state
->getCleanValueKeys();
$clean_keys[] = 'ajax_page_state';
foreach ($input as $key => $item) {
if (!in_array($key, $clean_keys) && substr($key, 0, 1) !== '_') {
unset($input[$key]);
}
}
// Store new entity for display in the AJAX callback.
$input['entity'] = $entity;
$form_state
->setUserInput($input);
// Rebuild the form state values.
$form_state
->setRebuild();
$form_state
->setStorage([]);
// Assign activity to module if entity is new.
if (!isset($item_id)) {
/** @var \Drupal\opigno_module\Controller\OpignoModuleController $opigno_module_controller */
$opigno_module_controller = \Drupal::service('opigno_module.opigno_module');
$opigno_module_controller
->activitiesToModule([
$entity,
], $module);
}
}