diff options
author | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-08-03 02:48:48 +0300 |
---|---|---|
committer | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-08-03 02:48:48 +0300 |
commit | a37e5681c8b1000661f710346281caf52b53c3fc (patch) | |
tree | 40c520843f99fc5621ffb587d2772270cec4ff3a /libraries | |
parent | c550d41d1ddece5c85dbd00cdc984ed7e953aaef (diff) |
Extract normalization's get columns action
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/classes/Controllers/Normalization/GetColumnsController.php | 39 | ||||
-rw-r--r-- | libraries/classes/Controllers/Normalization/MainController.php | 16 | ||||
-rw-r--r-- | libraries/routes.php | 1 | ||||
-rw-r--r-- | libraries/services_controllers.php | 8 |
4 files changed, 48 insertions, 16 deletions
diff --git a/libraries/classes/Controllers/Normalization/GetColumnsController.php b/libraries/classes/Controllers/Normalization/GetColumnsController.php new file mode 100644 index 0000000000..f9d6e333b6 --- /dev/null +++ b/libraries/classes/Controllers/Normalization/GetColumnsController.php @@ -0,0 +1,39 @@ +<?php + +declare(strict_types=1); + +namespace PhpMyAdmin\Controllers\Normalization; + +use PhpMyAdmin\Controllers\AbstractController; +use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Normalization; +use PhpMyAdmin\ResponseRenderer; +use PhpMyAdmin\Template; + +use function __; +use function _pgettext; + +final class GetColumnsController extends AbstractController +{ + /** @var Normalization */ + private $normalization; + + public function __construct(ResponseRenderer $response, Template $template, Normalization $normalization) + { + parent::__construct($response, $template); + $this->normalization = $normalization; + } + + public function __invoke(ServerRequest $request): void + { + $html = '<option selected disabled>' . __('Select one…') . '</option>' + . '<option value="no_such_col">' . __('No such column') . '</option>'; + //get column whose datatype falls under string category + $html .= $this->normalization->getHtmlForColumnsList( + $GLOBALS['db'], + $GLOBALS['table'], + _pgettext('string types', 'String') + ); + $this->response->addHTML($html); + } +} diff --git a/libraries/classes/Controllers/Normalization/MainController.php b/libraries/classes/Controllers/Normalization/MainController.php index 1d36f0cfbb..cfc59e0759 100644 --- a/libraries/classes/Controllers/Normalization/MainController.php +++ b/libraries/classes/Controllers/Normalization/MainController.php @@ -11,8 +11,6 @@ use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; use PhpMyAdmin\Url; -use function __; -use function _pgettext; use function intval; use function min; @@ -32,20 +30,6 @@ class MainController extends AbstractController public function __invoke(ServerRequest $request): void { - if (isset($_POST['getColumns'])) { - $html = '<option selected disabled>' . __('Select one…') . '</option>' - . '<option value="no_such_col">' . __('No such column') . '</option>'; - //get column whose datatype falls under string category - $html .= $this->normalization->getHtmlForColumnsList( - $GLOBALS['db'], - $GLOBALS['table'], - _pgettext('string types', 'String') - ); - echo $html; - - return; - } - if (isset($_POST['splitColumn'])) { $num_fields = min(4096, intval($_POST['numFields'])); $html = $this->normalization->getHtmlForCreateNewColumn($num_fields, $GLOBALS['db'], $GLOBALS['table']); diff --git a/libraries/routes.php b/libraries/routes.php index 236204281d..e8d730e776 100644 --- a/libraries/routes.php +++ b/libraries/routes.php @@ -142,6 +142,7 @@ return static function (RouteCollector $routes): void { $routes->post('/3nf/new-tables', Normalization\ThirdNormalForm\NewTablesController::class); $routes->post('/3nf/step1', Normalization\ThirdNormalForm\FirstStepController::class); $routes->post('/add-new-primary', Normalization\AddNewPrimaryController::class); + $routes->post('/get-columns', Normalization\GetColumnsController::class); $routes->post('/move-repeating-group', Normalization\MoveRepeatingGroup::class); }); $routes->get('/phpinfo', PhpInfoController::class); diff --git a/libraries/services_controllers.php b/libraries/services_controllers.php index df20d35ff4..79f6ee8d9f 100644 --- a/libraries/services_controllers.php +++ b/libraries/services_controllers.php @@ -672,6 +672,14 @@ return [ '$normalization' => '@normalization', ], ], + Normalization\GetColumnsController::class => [ + 'class' => Normalization\GetColumnsController::class, + 'arguments' => [ + '$response' => '@response', + '$template' => '@template', + '$normalization' => '@normalization', + ], + ], Normalization\MoveRepeatingGroup::class => [ 'class' => Normalization\MoveRepeatingGroup::class, 'arguments' => [ |