class ParagraphsFrontendUIAddSet in Paragraphs frontend ui 8
Class CleanupUrlAliases.
@package Drupal\paragraphs_ui_add_set\Form
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\paragraphs_frontend_ui\Form\ParagraphsFrontendUIAddSet
Expanded class hierarchy of ParagraphsFrontendUIAddSet
File
- src/
Form/ ParagraphsFrontendUIAddSet.php, line 18
Namespace
Drupal\paragraphs_frontend_ui\FormView source
class ParagraphsFrontendUIAddSet extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'paragraphs_frontend_ui_add_set';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state, $paragraph = NULL) {
// Set the paragraph to the form state.
$form_state
->addBuildInfo('paragraph', $paragraph);
// Render the sets.
$sets = \Drupal::entityTypeManager()
->getListBuilder('paragraph_set')
->load();
$view_builder = \Drupal::entityTypeManager()
->getViewBuilder('paragraph_set');
if (empty($sets)) {
$form['empty_text'] = [
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $this
->t('You have not created any paragraph sets.'),
];
}
foreach ($sets as $set) {
$form['sets'][$set
->id()] = [
'#type' => 'container',
];
$form['sets'][$set
->id()]['element'] = $view_builder
->view($set);
$form['sets'][$set
->id()]['add_set'] = [
'#type' => 'button',
'#name' => $set
->id() . '_add_set',
'#value' => $this
->t('Add'),
'#ajax' => [
'callback' => [
get_class($this),
'addMoreAjax',
],
'effect' => 'fade',
],
];
}
$user = \Drupal::currentUser();
if ($user
->hasPermission('add paragraph set entities')) {
$form['add_set'] = [
'#type' => 'link',
'#title' => $this
->t('Add a new set'),
'#url' => Url::fromRoute('entity.paragraph_set.add_form'),
];
}
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
// @todo create an ajax fallback
}
/**
* {@inheritdoc}
*/
public static function addMoreAjax(array $form, FormStateInterface $form_state) {
$build_info = $form_state
->getBuildInfo();
$triggering_paragraph = $build_info['paragraph'];
$trigger = $form_state
->getTriggeringElement()['#name'];
$set = substr($trigger, 0, -8);
if (is_numeric($set)) {
$set = ParagraphSet::load($set);
$set_paragraph = Paragraph::load($set
->get('field_paragraph')
->getValue()[0]['target_id']);
$parent = $triggering_paragraph
->getParentEntity();
$parent_type = $parent
->getEntityTypeId();
$parent_bundle = $parent
->getType();
$parent_entity_id = $parent
->id();
$parent_field_name = $triggering_paragraph
->get('parent_field_name')
->getValue()[0]['value'];
$paragraph_items = $parent->{$parent_field_name}
->getValue();
$paragraphs_new = [];
foreach ($paragraph_items as $delta => $paragraph_item) {
$paragraphs_new[] = $paragraph_item;
if ($paragraph_item['target_id'] == $triggering_paragraph
->id()) {
$new_paragraph = $set_paragraph
->createDuplicate();
$new_paragraph
->save();
$paragraphs_new[] = [
'target_id' => $new_paragraph
->id(),
'target_revision_id' => $new_paragraph
->getRevisionId(),
];
}
}
$parent->{$parent_field_name}
->setValue($paragraphs_new);
$parent
->save();
$identifier = '[data-paragraphs-frontend-ui=' . $parent_field_name . '-' . $parent
->id() . ']';
$response = new AjaxResponse();
// Refresh the paragraphs field.
$response
->addCommand(new ReplaceCommand($identifier, $parent
->get($parent_field_name)
->view('default')));
return $response;
}
/*
$command = new CloseModalDialogCommand();
$response->addCommand($command);
return $response;*/
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Retrieves a configuration object. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
87 |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormBase:: |
public | function |
Form validation handler. Overrides FormInterface:: |
62 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
ParagraphsFrontendUIAddSet:: |
public static | function | ||
ParagraphsFrontendUIAddSet:: |
public | function |
Form constructor. Overrides FormInterface:: |
|
ParagraphsFrontendUIAddSet:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
ParagraphsFrontendUIAddSet:: |
public | function |
Form submission handler. Overrides FormInterface:: |
|
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |