From 715cb461737e2cf74bbae8e187059e5eba7dfb45 Mon Sep 17 00:00:00 2001 From: dimti Date: Fri, 25 Nov 2022 14:27:38 +0300 Subject: [PATCH 1/2] * use localized controls keys issues/49 --- behaviors/IndexModelFormOperations.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/behaviors/IndexModelFormOperations.php b/behaviors/IndexModelFormOperations.php index 296d7e6..46f97fd 100644 --- a/behaviors/IndexModelFormOperations.php +++ b/behaviors/IndexModelFormOperations.php @@ -218,7 +218,14 @@ protected function getAddDatabaseFieldsDataTableConfig() { // Get all registered controls and build an array that uses the control types as key and value for each entry. $controls = ControlLibrary::instance()->listControls(); - $fieldTypes = array_merge(array_keys($controls['Standard']), array_keys($controls['Widgets'])); + $fieldTypes = array_merge( + array_keys( + $controls[Lang::get('winter.builder::lang.form.control_group_standard')] + ), + array_keys( + $controls[Lang::get('winter.builder::lang.form.control_group_widgets')] + ) + ); $options = array_combine($fieldTypes, $fieldTypes); return [ From 30eba8dd187cb928cfa73957e8cbf72764d01f3c Mon Sep 17 00:00:00 2001 From: dimti Date: Sun, 27 Nov 2022 09:32:47 +0300 Subject: [PATCH 2/2] * not use localized keys for grouping controls --- behaviors/IndexModelFormOperations.php | 8 ++----- classes/ControlLibrary.php | 22 +++++++++++-------- formwidgets/FormBuilder.php | 5 ++--- .../formbuilder/partials/_controlpalette.htm | 8 +++---- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/behaviors/IndexModelFormOperations.php b/behaviors/IndexModelFormOperations.php index 46f97fd..42f2ce2 100644 --- a/behaviors/IndexModelFormOperations.php +++ b/behaviors/IndexModelFormOperations.php @@ -219,12 +219,8 @@ protected function getAddDatabaseFieldsDataTableConfig() // Get all registered controls and build an array that uses the control types as key and value for each entry. $controls = ControlLibrary::instance()->listControls(); $fieldTypes = array_merge( - array_keys( - $controls[Lang::get('winter.builder::lang.form.control_group_standard')] - ), - array_keys( - $controls[Lang::get('winter.builder::lang.form.control_group_widgets')] - ) + array_keys($controls[ControlLibrary::GROUP_STANDARD]['controls']), + array_keys($controls[ControlLibrary::GROUP_WIDGETS]['controls']) ); $options = array_combine($fieldTypes, $fieldTypes); diff --git a/classes/ControlLibrary.php b/classes/ControlLibrary.php index 0a0001f..50f4bdc 100644 --- a/classes/ControlLibrary.php +++ b/classes/ControlLibrary.php @@ -2,6 +2,8 @@ use Event; use Lang; +use Winter\Builder\Behaviors\IndexModelFormOperations; +use Winter\Builder\FormWidgets\FormBuilder; /** * Manages Builder form control library. @@ -32,21 +34,23 @@ public function listControls($returnGrouped = true) return $returnGrouped ? $this->groupedControls : $this->controls; } - $this->groupedControls = [ - $this->resolveControlGroupName(self::GROUP_STANDARD) => [], - $this->resolveControlGroupName(self::GROUP_WIDGETS) => [] - ]; + /** + * @see FormBuilder::onModelFormLoadControlPalette + * @see IndexModelFormOperations::getAddDatabaseFieldsDataTableConfig + */ + $this->groupedControls = []; Event::fire('pages.builder.registerControls', [$this]); foreach ($this->controls as $controlType => $controlInfo) { - $controlGroup = $this->resolveControlGroupName($controlInfo['group']); - - if (!array_key_exists($controlGroup, $this->groupedControls)) { - $this->groupedControls[$controlGroup] = []; + if (!array_key_exists($controlInfo['group'], $this->groupedControls)) { + $this->groupedControls[$controlInfo['group']] = [ + 'label' => $this->resolveControlGroupName($controlInfo['group']), + 'controls' => [] + ]; } - $this->groupedControls[$controlGroup][$controlType] = $controlInfo; + $this->groupedControls[$controlInfo['group']]['controls'][$controlType] = $controlInfo; } return $returnGrouped ? $this->groupedControls : $this->controls; diff --git a/formwidgets/FormBuilder.php b/formwidgets/FormBuilder.php index f0845a4..333ebec 100644 --- a/formwidgets/FormBuilder.php +++ b/formwidgets/FormBuilder.php @@ -108,9 +108,8 @@ public function onModelFormLoadControlPalette() $controlId = Input::get('controlId'); $library = ControlLibrary::instance(); - $controls = $library->listControls(); - $this->vars['registeredControls'] = $controls; - $this->vars['controlGroups'] = array_keys($controls); + + $this->vars['controlsGroups'] = $library->listControls(); return [ 'markup' => $this->makePartial('controlpalette'), diff --git a/formwidgets/formbuilder/partials/_controlpalette.htm b/formwidgets/formbuilder/partials/_controlpalette.htm index 05559ab..3e9f589 100644 --- a/formwidgets/formbuilder/partials/_controlpalette.htm +++ b/formwidgets/formbuilder/partials/_controlpalette.htm @@ -3,12 +3,12 @@
    - $group): ?> + $group): ?>
  • -
    +
  • - $controlInfo): ?> + $controlInfo): ?>
- \ No newline at end of file +