Render form alignment

[MAILPOET-2809]
This commit is contained in:
Pavel Dohnal
2020-04-21 10:23:47 +02:00
committed by Veljko V
parent 9628463477
commit 2317412f88
5 changed files with 35 additions and 3 deletions

View File

@ -130,6 +130,19 @@ class BlockRendererHelper {
return $rules ? 'style="' . implode("", $rules) . '"' : '';
}
public function renderBlockAlignment(array $formSettings) {
$rules = [];
if (isset($formSettings['alignment'])) {
if ($formSettings['alignment'] === 'right') {
$rules[] = 'margin: 0 0 0 auto';
}
if ($formSettings['alignment'] === 'center') {
$rules[] = 'margin: 0 auto';
}
}
return $rules ? 'style="' . implode("", $rules) . '"' : '';
}
public function renderInputPlaceholder(array $block): string {
$html = '';
// if the label is displayed as a placeholder,

View File

@ -20,11 +20,11 @@ class Date {
public function render(array $block, array $formSettings): string {
$html = '';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
$html .= $this->renderDateSelect($block);
$html .= $this->renderDateSelect($block, $formSettings);
return $this->wrapper->render($block, $html);
}
private function renderDateSelect(array $block = []): string {
private function renderDateSelect(array $block = [], $formSettings = []): string {
$html = '';
$fieldName = 'data[' . $this->rendererHelper->getFieldName($block) . ']';
@ -46,6 +46,7 @@ class Date {
foreach ($dateSelectors as $dateSelector) {
if ($dateSelector === 'DD') {
$html .= '<select class="mailpoet_date_day" ';
$html .= $this->rendererHelper->renderBlockAlignment($formSettings);
$html .= $this->rendererHelper->getInputValidation($block, [
'required-message' => __('Please select a day', 'mailpoet'),
]);
@ -54,6 +55,7 @@ class Date {
$html .= '</select>';
} else if ($dateSelector === 'MM') {
$html .= '<select class="mailpoet_select mailpoet_date_month" ';
$html .= $this->rendererHelper->renderBlockAlignment($formSettings);
$html .= $this->rendererHelper->getInputValidation($block, [
'required-message' => __('Please select a month', 'mailpoet'),
]);
@ -62,6 +64,7 @@ class Date {
$html .= '</select>';
} else if ($dateSelector === 'YYYY') {
$html .= '<select class="mailpoet_date_year" ';
$html .= $this->rendererHelper->renderBlockAlignment($formSettings);
$html .= $this->rendererHelper->getInputValidation($block, [
'required-message' => __('Please select a year', 'mailpoet'),
]);

View File

@ -29,7 +29,12 @@ class Select {
$automationId = ($block['id'] == 'status') ? 'data-automation-id="form_status"' : '';
$html .= $this->rendererHelper->renderLabel($block, $formSettings);
$html .= '<select class="mailpoet_select" name="' . $fieldName . '" ' . $automationId . '>';
$html .= '<select
class="mailpoet_select"
name="' . $fieldName . '" '
. $automationId
. $this->rendererHelper->renderBlockAlignment($formSettings)
. '>';
if (isset($block['params']['label_within']) && $block['params']['label_within']) {
$label = $this->rendererHelper->getFieldLabel($block);

View File

@ -119,6 +119,10 @@ class Renderer {
$styles[] = 'padding: ' . $formSettings['formPadding'] . 'px';
}
if (isset($formSettings['alignment'])) {
$styles[] = 'text-align: ' . $formSettings['alignment'];
}
return join(';', $styles);
}
}

View File

@ -132,6 +132,13 @@ class RendererTest extends \MailPoetUnitTest {
expect($styles)->equals('padding: 22px');
}
public function testItShouldRenderAlignment() {
$form = Fixtures::get('simple_form_body');
$form['settings'] = ['alignment' => 'right'];
$styles = $this->renderer->renderFormElementStyles($form);
expect($styles)->equals('text-align: right');
}
public function testItShouldRenderBorderWithRadius() {
$form = Fixtures::get('simple_form_body');
$form['settings'] = ['borderSize' => '22', 'borderColor' => 'red', 'borderRadius' => '11'];