public static function Tablefield::submitCallbackRebuild in TableField 8.2
Submit handler.
Parameters
array $form: Form array.
\Drupal\Core\Form\FormStateInterface $form_state: Form state object.
File
- src/
Element/ Tablefield.php, line 269
Class
- Tablefield
- Provides a form element for tabular data.
Namespace
Drupal\tablefield\ElementCode
public static function submitCallbackRebuild(array $form, FormStateInterface $form_state) {
// Check what triggered this. We might need to rebuild or to import.
$triggering_element = $form_state
->getTriggeringElement();
$id = implode('-', array_slice($triggering_element['#parents'], 0, -3, TRUE));
$parents = array_slice($triggering_element['#parents'], 0, -2, TRUE);
$value = $form_state
->getValue($parents);
if (isset($triggering_element['#name']) && $triggering_element['#name'] == 'tablefield-rebuild-' . $id || isset($triggering_element['#name']) && $triggering_element['#name'] == 'tablefield-addrow-' . $id) {
$parents[] = 'rebuild';
if (isset($triggering_element['#name']) && $triggering_element['#name'] == 'tablefield-addrow-' . $id) {
$value['rebuild']['rows']++;
}
NestedArray::setValue($form_state
->getStorage(), $parents, $value['rebuild']);
\Drupal::messenger()
->addStatus(t('Table structure rebuilt.'), FALSE);
}
elseif (isset($triggering_element['#name']) && $triggering_element['#name'] == 'tablefield-import-' . $id) {
// Import CSV.
$imported_tablefield = static::importCsv($id);
if ($imported_tablefield) {
$form_state
->setValue($parents, $imported_tablefield);
$input = $form_state
->getUserInput();
NestedArray::setValue($input, $parents, $imported_tablefield);
$form_state
->setUserInput($input);
$parents[] = 'rebuild';
NestedArray::setValue($form_state
->getStorage(), $parents, $imported_tablefield['rebuild']);
}
}
$form_state
->setRebuild();
}