64 ModuleHandlerInterface $module_handler,
65 EntityTypeManagerInterface $entity_type_manager,
66 EntityManagerInterface $entity_manager,
75 parent::__construct($entity_manager);
78 $this->setEntityTypeManager($entity_type_manager);
79 $this->setModuleHandler($module_handler);
84 $this->bufferItem = $item;
85 $this->dataCompiler = $data_compiler;
98 $saved = $form_state->getValue(
'paragraphs_editor_additional_context');
100 $saved = unserialize($saved);
101 foreach ($saved as $key => $value) {
102 $this->context->addAdditionalContext($key, $value);
112 public function form(array $form, FormStateInterface $form_state) {
113 $form = parent::form($form, $form_state);
114 $form[
'paragraphs_editor_additional_context'] = [
116 '#default_value' => serialize($this->
bootstrapContext($form_state)->getAdditionalContext()),
124 public function save(array $form, FormStateInterface $form_state) {
129 $this->bufferItem->save();
132 $form_state->setTemporaryValue([
'paragraphs_editor',
'data'], $this->dataCompiler->compile(
$context, $this->bufferItem));
133 $form_state->setTemporaryValue([
'paragraphs_editor',
'context'], $this->context);
139 protected function actions(array $form, FormStateInterface $form_state) {
140 $actions = parent::actions($form, $form_state);
143 $actions[
'submit'][
'#ajax'] = [
144 'callback' => [get_class($this),
'ajaxSubmit'],
148 $url = $this->context->createCommandUrl(
'cancel');
149 $actions[
'cancel'] = [
151 '#value' => $this->t(
'Cancel'),
155 'options' => $url->getOptions(),
159 unset($actions[
'delete']);
175 public static function ajaxSubmit(array $form, FormStateInterface $form_state) {
177 $data = $form_state->getTemporaryValue([
'paragraphs_editor',
'data']);
178 $delivery = $form_state->getTemporaryValue([
'paragraphs_editor',
'context'])->getPlugin(
'delivery_provider');
182 $response =
new AjaxResponse();
183 $delivery->sendData($response, $data);
184 $delivery->close($response);
static ensureParagraph(EntityInterface $entity=NULL)