Skip to content
Snippets Groups Projects
Commit 9809e13d authored by Eric Smith's avatar Eric Smith Committed by De Araujo, Renato [CONBR Non-J&J]
Browse files

Issue #3338774 by ericgsmith, RoSk0, RenatoG: Storing block_classes_stored as...

Issue #3338774 by ericgsmith, RoSk0, RenatoG: Storing block_classes_stored as a string value leads to poor developer experience
parent e302a17f
No related branches found
No related tags found
8 merge requests!59Issue #3497768: Click JavaScript to close details causes modals to scroll unnecessarily,!35Issue #3366420: \Drupal calls should be avoided in classes,!34Issue #3366420: \Drupal calls should be avoided in classes,!29Issue #3272632 by RenatoG: Add a logic to block and disable the remove item if...,!28Issue #3272632 by RenatoG: Add a logic to block and disable the remove item if...,!23Issue #3272632 by RenatoG: Add a logic to block and disable the remove item if...,!22Issue #3272632 by RenatoG: Add a logic to block and disable the remove item if...,!20Issue #3272632 by RenatoG: Add a logic to block and disable the remove item if...
......@@ -434,3 +434,20 @@ function block_class_update_20016() {
$config->save();
}
/**
* Convert block_classes_stored from JSON to a sequence.
*/
function block_class_update_20017() {
$config = \Drupal::configFactory()->getEditable('block_class.settings');
$block_classes_stored = $config->get('block_classes_stored');
$block_classes_stored = Json::decode($block_classes_stored);
if (empty($block_classes_stored)) {
$block_classes_stored = [];
}
$config->set('block_classes_stored', array_values($block_classes_stored));
$config->save();
}
block_classes_stored: { }
default_case: 'standard'
enable_attributes: TRUE
enable_auto_complete: TRUE
......
......@@ -19,7 +19,9 @@ block_class.settings:
allow_only_letters_and_numbers:
type: boolean
block_classes_stored:
type: string
type: sequence
sequence:
type: string
enable_attributes:
type: boolean
enable_auto_complete:
......
......@@ -262,22 +262,8 @@ class BlockClassController extends ControllerBase {
$table .= '</thead>';
$table .= '<tbody>';
$block_classes_stored = '';
$config = $this->configFactory->getEditable('block_class.settings');
// Get config object.
if (!empty($config->get('block_classes_stored'))) {
$block_classes_stored = $config->get('block_classes_stored');
}
// Get the array.
$block_classes_stored = Json::decode($block_classes_stored);
if ($block_classes_stored != NULL) {
// Get the array values and id in the keys.
$block_classes_stored = array_values($block_classes_stored);
}
$block_classes_stored = $config->get('block_classes_stored');
foreach ($block_classes_stored as $block_class) {
......@@ -356,21 +342,8 @@ class BlockClassController extends ControllerBase {
* Json Response.
*/
public function handleAutocomplete(Request $request) {
$block_classes_stored = '{}';
$config = $this->configFactory->getEditable('block_class.settings');
// Get config object.
if (!empty($config->get('block_classes_stored'))) {
$block_classes_stored = $config->get('block_classes_stored');
}
// Get the array.
$block_classes_stored = Json::decode($block_classes_stored);
// Get the array values and id in the keys.
$block_classes_stored = array_values($block_classes_stored);
$block_classes_stored = $config->get('block_classes_stored');
// Return in JSON Response.
return new JsonResponse($block_classes_stored);
......
......@@ -438,7 +438,7 @@ class BlockClassConfirmBulkOperationForm extends ConfirmFormBase {
$config = $this->configFactory->getEditable('block_class.settings');
// Store in the config.
$config->set('block_classes_stored', '{}');
$config->set('block_classes_stored', []);
// Save.
$config->save();
......
......@@ -186,25 +186,12 @@ class BlockClassHelperService {
// Get the current classes stored.
$block_classes_stored = $config->get('block_classes_stored');
// Get the array from JSON.
$block_classes_stored = Json::decode($block_classes_stored ?? '');
// Verify if is empty.
if (empty($block_classes_stored)) {
$block_classes_stored = [];
}
// Get the current class and export to array.
$current_block_classes = explode(' ', $block_classes ?? '');
// Use the key the same as value.
$current_block_classes = array_combine($current_block_classes, $current_block_classes);
// Merge with the current one.
$block_classes_to_store = array_merge($block_classes_stored, $current_block_classes);
// Get as JSON.
$block_classes_to_store = Json::encode($block_classes_to_store);
$block_classes_to_store = array_unique($block_classes_to_store);
// Store in the config.
$config->set('block_classes_stored', $block_classes_to_store);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment