Skip to content

Commit

Permalink
Added field mapping enabled bool to config
Browse files Browse the repository at this point in the history
  • Loading branch information
baikho committed May 25, 2020
1 parent 5697239 commit 4273396
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
13 changes: 8 additions & 5 deletions src/Form/PcaAddressSettingsForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Drupal\loqate\Form;

use Drupal\Component\Utility\SortArray;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Link;
Expand Down Expand Up @@ -100,11 +101,12 @@ public function buildForm(array $form, FormStateInterface $form_state) {
$rows = [];
foreach (PcaAddressElement::getConstants() as $field_name) {
$default_values = [];
foreach ($config->get(self::PCA_FIELDS) as $field_map) {
foreach ($config->get(self::PCA_FIELDS) as $i => $field_map) {
if ($field_map['element'] === $field_name) {
$default_values['field'] = $field_map['field'];
$default_values['mode'] = $field_map['mode'];
$default_values['enabled'] = TRUE;
$default_values['enabled'] = $field_map['enabled'];
$default_values['weight'] = $i;
break;
}
}
Expand Down Expand Up @@ -158,6 +160,9 @@ public function buildForm(array $form, FormStateInterface $form_state) {
$rows[$field_name]['#attributes']['class'][] = 'draggable';
}

// Sort by weight & add rows to tree.
uasort($rows, [SortArray::class, 'sortByWeightElement']);

$form['field_mapping'][self::PCA_FIELDS] += $rows;

return parent::buildForm($form, $form_state);
Expand All @@ -170,13 +175,11 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
$values = $form_state->getValue(self::PCA_FIELDS);
$field_mapping = [];
foreach ($values as $i => $value) {
if ((bool) $value['enabled']['data'] === FALSE) {
continue;
}
$field_mapping[] = [
'element' => $i,
'field' => $value['field']['data'],
'mode' => (int) $value['mode']['data'],
'enabled' => (bool) $value['enabled']['data'],
];
}
$this->config('loqate.settings')
Expand Down
6 changes: 6 additions & 0 deletions src/PcaAddressElementTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,12 @@ private static function preparePcaFieldMapping(array &$element): void {
}
// Start normalising value output.
foreach ($element['#pca_fields'] as $i => $field_mapping) {
// Check enabled.
if (isset($field_mapping['enabled']) && $field_mapping['enabled'] === FALSE) {
continue;
}
// Unset redundant boolean before exposing to Drupal Settings.
unset($element['#pca_fields'][$i]['enabled']);
// Add context for our element selectors.
if (isset($field_mapping['element']) && !empty($field_mapping['element'])) {
// Prepend id on field map.
Expand Down

0 comments on commit 4273396

Please sign in to comment.