public function MultipleUpdatesForm::handleSubmissions in Scheduled Publish 8.3
Handles submissions.
1 call to MultipleUpdatesForm::handleSubmissions()
- MultipleUpdatesForm::buildForm in src/
Form/ MultipleUpdatesForm.php - Form constructor.
File
- src/
Form/ MultipleUpdatesForm.php, line 429 - Contains \Drupal\scheduled_publish\Form\MultipleUpdatesForm.
Class
Namespace
Drupal\scheduled_publish\FormCode
public function handleSubmissions(FormStateInterface $form_state) {
$triggering_element = $form_state
->getTriggeringElement();
if (!$triggering_element || !isset($triggering_element['#name'])) {
return;
}
// Selecting workflow.
if ($triggering_element['#name'] === 'workflow') {
$workflow = $form_state
->getValue('workflow');
$form_state
->set([
'scheduled_publish',
'workflow',
], $workflow);
return;
}
// Saving new entities.
if ($triggering_element['#name'] === 'sp-entities-save') {
$this
->submitSaveEntities($form_state);
return;
}
// Saving new states.
if ($triggering_element['#name'] === 'sp-state-add') {
$this
->submitSaveState($form_state);
}
if (!isset($triggering_element['#sp_row_delta'])) {
return;
}
$states = $form_state
->get([
'scheduled_publish',
'states',
]);
// Enabling remove form.
$button_name = 'sp-state-remove-' . $triggering_element['#sp_row_delta'];
if ($triggering_element['#name'] === $button_name) {
$states[$triggering_element['#sp_row_delta']]['form'] = 'remove';
}
// Canceling remove form.
$button_name = 'sp-state-remove-cancel-' . $triggering_element['#sp_row_delta'];
if ($triggering_element['#name'] === $button_name) {
$states[$triggering_element['#sp_row_delta']]['form'] = NULL;
}
// Saving remove form.
$button_name = 'sp-state-remove-confirm-' . $triggering_element['#sp_row_delta'];
if ($triggering_element['#name'] === $button_name) {
unset($states[$triggering_element['#sp_row_delta']]);
}
// Enabling edit form.
$button_name = 'sp-state-edit-' . $triggering_element['#sp_row_delta'];
if ($triggering_element['#name'] === $button_name) {
$states[$triggering_element['#sp_row_delta']]['form'] = 'edit';
}
// Canceling edit form.
$button_name = 'sp-state-edit-cancel-' . $triggering_element['#sp_row_delta'];
if ($triggering_element['#name'] === $button_name) {
$states[$triggering_element['#sp_row_delta']]['form'] = NULL;
}
// Saving edit form.
$button_name = 'sp-state-edit-confirm-' . $triggering_element['#sp_row_delta'];
if ($triggering_element['#name'] === $button_name) {
$value_array = [
'states',
'entries',
$triggering_element['#sp_row_delta'],
'form',
];
$values = $form_state
->getValue($value_array);
if ($values['value']['date'] && $values['value']['time']) {
$date = new DrupalDateTime($values['value']['date'] . ' ' . $values['value']['time'], date_default_timezone_get());
$date_display = $date
->format('d.m.Y - H:i');
$date
->setTimezone(new \DateTimezone(ScheduledPublish::STORAGE_TIMEZONE));
$states[$triggering_element['#sp_row_delta']] = [
'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);
}