diff --git a/src/Form/EventSeriesEditForm.php b/src/Form/EventSeriesEditForm.php index c82cb42171ac542bfe7aaddcad394d1c5819ef3a..1c75552e84910e8ed5712b43f86870046a85665f 100644 --- a/src/Form/EventSeriesEditForm.php +++ b/src/Form/EventSeriesEditForm.php @@ -25,6 +25,7 @@ class EventSeriesEditForm extends EventSeriesForm { /* @var $entity \Drupal\recurring_events\Entity\EventSeries */ $entity = $this->entity; + // Determine if there have been changes to the saved eventseries. $creation_service = \Drupal::service('recurring_events.event_creation_service'); $diff_array = $creation_service->buildDiffArray($entity, $form_state); @@ -75,6 +76,7 @@ class EventSeriesEditForm extends EventSeriesForm { '#type' => 'submit', '#value' => $this->t('Back'), ]; + $form['actions']['delete']['#printed'] = TRUE; } @@ -92,7 +94,18 @@ class EventSeriesEditForm extends EventSeriesForm { $form_state->setRebuild(); } else { - parent::submitForm($form, $form_state); + $triggering_element = $form_state->getTriggeringElement(); + + switch ($triggering_element['#id']) { + case 'edit-back': + $this->step--; + $form_state->setRebuild(); + break; + + case 'edit-submit': + parent::submitForm($form, $form_state); + break; + } } } diff --git a/src/Plugin/Field/FieldWidget/MonthlyRecurringDateWidget.php b/src/Plugin/Field/FieldWidget/MonthlyRecurringDateWidget.php index f2b3144df02db6512ea601ce5c00730fa8b4e7d2..367ba4b6fa4280cd6bf4856d73a70d024116bec1 100644 --- a/src/Plugin/Field/FieldWidget/MonthlyRecurringDateWidget.php +++ b/src/Plugin/Field/FieldWidget/MonthlyRecurringDateWidget.php @@ -24,7 +24,7 @@ class MonthlyRecurringDateWidget extends WeeklyRecurringDateWidget { */ public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) { $element = parent::formElement($items, $delta, $element, $form, $form_state); - + $element['#type'] = 'container'; $element['#states'] = [ 'visible' => [ ':input[name="recur_type"]' => ['value' => 'monthly'], @@ -52,7 +52,7 @@ class MonthlyRecurringDateWidget extends WeeklyRecurringDateWidget { 'fourth' => t('Fourth'), 'last' => t('Last'), ], - '#default_value' => $items[$delta]->day_occurrence ? explode(',', $items[$delta]->day_occurrence) : '', + '#default_value' => $items[$delta]->day_occurrence ? explode(',', $items[$delta]->day_occurrence) : [], '#states' => [ 'visible' => [ ':input[name="monthly_recurring_date[0][type]"]' => ['value' => 'weekday'], @@ -66,7 +66,7 @@ class MonthlyRecurringDateWidget extends WeeklyRecurringDateWidget { '#type' => 'checkboxes', '#title' => t('Days of the Week'), '#options' => $days, - '#default_value' => $items[$delta]->days ? explode(',', $items[$delta]->days) : '', + '#default_value' => $items[$delta]->days ? explode(',', $items[$delta]->days) : [], '#states' => [ 'visible' => [ ':input[name="monthly_recurring_date[0][type]"]' => ['value' => 'weekday'], @@ -80,7 +80,7 @@ class MonthlyRecurringDateWidget extends WeeklyRecurringDateWidget { '#type' => 'checkboxes', '#title' => t('Days of the Month'), '#options' => $month_days, - '#default_value' => $items[$delta]->day_of_month ? explode(',', $items[$delta]->day_of_month) : '', + '#default_value' => $items[$delta]->day_of_month ? explode(',', $items[$delta]->day_of_month) : [], '#states' => [ 'visible' => [ ':input[name="monthly_recurring_date[0][type]"]' => ['value' => 'monthday'], diff --git a/src/Plugin/Field/FieldWidget/WeeklyRecurringDateWidget.php b/src/Plugin/Field/FieldWidget/WeeklyRecurringDateWidget.php index 5a8d6374b40cf7c381cb6305385eb61722b36bef..1c618e339e2728546f9b4bd22828d7a39dad4cbf 100644 --- a/src/Plugin/Field/FieldWidget/WeeklyRecurringDateWidget.php +++ b/src/Plugin/Field/FieldWidget/WeeklyRecurringDateWidget.php @@ -26,6 +26,7 @@ class WeeklyRecurringDateWidget extends DateRangeDefaultWidget { public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) { $element = parent::formElement($items, $delta, $element, $form, $form_state); + $element['#type'] = 'container'; $element['#states'] = [ 'visible' => [ ':input[name="recur_type"]' => ['value' => 'weekly'], @@ -69,7 +70,7 @@ class WeeklyRecurringDateWidget extends DateRangeDefaultWidget { '#type' => 'checkboxes', '#title' => t('Days of the Week'), '#options' => $days, - '#default_value' => $items[$delta]->days ? explode(',', $items[$delta]->days) : '', + '#default_value' => $items[$delta]->days ? explode(',', $items[$delta]->days) : [], '#weight' => 5, ];