Use $request

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
This commit is contained in:
Kamil Tekiela 2024-09-17 18:51:40 +01:00
parent 39785d65bc
commit 4697f32892

View File

@ -25,6 +25,7 @@ use PhpMyAdmin\Url;
use PhpMyAdmin\Util;
use function __;
use function array_search;
use function in_array;
use function is_array;
use function is_string;
@ -107,7 +108,11 @@ final class GisVisualizationController implements InvocableController
}
// Get settings if any posted
$visualizationSettings = $this->getVisualizationSettings($spatialCandidates, $labelCandidates);
$visualizationSettings = $this->getVisualizationSettings(
$spatialCandidates,
$labelCandidates,
$request->getParam('visualizationSettings'),
);
$rows = $this->getRows();
$pos = $this->getPos();
@ -203,15 +208,10 @@ final class GisVisualizationController implements InvocableController
private function getVisualizationSettings(
array $spatialCandidates,
array $labelCandidates,
mixed $settingsIn,
): GisVisualizationSettings {
$settingsIn = [];
// Download as PNG/SVG/PDF use _GET and the normal form uses _POST
if (is_array($_POST['visualizationSettings'] ?? null)) {
/** @var mixed[] $settingsIn */
$settingsIn = $_POST['visualizationSettings'];
} elseif (is_array($_GET['visualizationSettings'] ?? null)) {
/** @var mixed[] $settingsIn */
$settingsIn = $_GET['visualizationSettings'];
if (! is_array($settingsIn)) {
return new GisVisualizationSettings(600, 450, $spatialCandidates[0]);
}
$labelColumn = null;
@ -223,14 +223,11 @@ final class GisVisualizationController implements InvocableController
}
// If spatial column is not set, use first geometric column as spatial column
if (
isset($settingsIn['spatialColumn']) &&
in_array($settingsIn['spatialColumn'], $spatialCandidates, true)
) {
$spatialColumn = $settingsIn['spatialColumn'];
} else {
$spatialColumn = $spatialCandidates[0];
}
$spatialColumn = $spatialCandidates[array_search(
$settingsIn['spatialColumn'] ?? null,
$spatialCandidates,
true,
)];
return new GisVisualizationSettings(600, 450, $spatialColumn, $labelColumn);
}