You are here

public function MultipleUpdatesForm::submitSaveState in Scheduled Publish 8.3

Saves state into form state.

1 call to MultipleUpdatesForm::submitSaveState()
MultipleUpdatesForm::handleSubmissions in src/Form/MultipleUpdatesForm.php
Handles submissions.

File

src/Form/MultipleUpdatesForm.php, line 541
Contains \Drupal\scheduled_publish\Form\MultipleUpdatesForm.

Class

MultipleUpdatesForm

Namespace

Drupal\scheduled_publish\Form

Code

public function submitSaveState(FormStateInterface $form_state) {
  $values = $form_state
    ->getValue('states');
  if ($values && isset($values['moderation_state'], $values['value'])) {
    $states = $form_state
      ->get([
      'scheduled_publish',
      'states',
    ]);
    $date = $values['value'];
    $date
      ->setTimezone(new \DateTimeZone(date_default_timezone_get()));
    $date_display = $date
      ->format('d.m.Y - H:i');
    $date
      ->setTimezone(new \DateTimezone(ScheduledPublish::STORAGE_TIMEZONE));
    $states[] = [
      'date' => $date
        ->format(ScheduledPublish::DATETIME_STORAGE_FORMAT),
      'date_display' => $date_display,
      'state' => $values['moderation_state'],
      'state_display' => NULL,
      'state_options' => [],
      'delta' => NULL,
      'form' => NULL,
    ];
    $form_state
      ->set([
      'scheduled_publish',
      'states',
    ], $states);
    $this
      ->handleStates($form_state);

    // Reset form values.
    $input = $form_state
      ->getUserInput();
    $input['states'] = [];
    $form_state
      ->setUserInput($input);
  }
}