fixed rendering of date block + fixed validation for dates

This commit is contained in:
Jonathan Labreuille
2016-08-16 14:41:53 +02:00
parent dc97d3115e
commit 213bca8050
3 changed files with 24 additions and 7 deletions

View File

@@ -2,7 +2,7 @@
namespace MailPoet\Form\Block; namespace MailPoet\Form\Block;
abstract class Base { abstract class Base {
protected static function getInputValidation($block) { protected static function getInputValidation($block, $extra_rules = array()) {
$rules = array(); $rules = array();
if($block['id'] === 'email') { if($block['id'] === 'email') {
@@ -37,8 +37,15 @@ abstract class Base {
$rules['required-message'] = __('Please select at least one option'); $rules['required-message'] = __('Please select at least one option');
} }
if($block['type'] === 'date') {
$rules['group'] = 'custom_field_'.$block['id'];
$rules['errors-container'] = '.mailpoet_error_'.$block['id'];
}
$validation = array(); $validation = array();
$rules = array_merge($rules, $extra_rules);
if(!empty($rules)) { if(!empty($rules)) {
$rules = array_unique($rules); $rules = array_unique($rules);
foreach($rules as $rule => $value) { foreach($rules as $rule => $value) {

View File

@@ -19,7 +19,6 @@ class Date extends Base {
$html = ''; $html = '';
$field_name = static::getFieldName($block); $field_name = static::getFieldName($block);
$field_validation = static::getInputValidation($block);
$date_formats = static::getDateFormats(); $date_formats = static::getDateFormats();
@@ -70,24 +69,35 @@ class Date extends Base {
if($date_selector === 'DD') { if($date_selector === 'DD') {
$block['selected'] = $day; $block['selected'] = $day;
$html .= '<select class="mailpoet_date_day" '; $html .= '<select class="mailpoet_date_day" ';
$html .= static::getInputValidation($block, array(
'required-message' => __('Please select a day')
));
$html .= 'name="'.$field_name.'[day]" placeholder="'.__('Day').'">'; $html .= 'name="'.$field_name.'[day]" placeholder="'.__('Day').'">';
$html .= static::getDays($block); $html .= static::getDays($block);
$html .= '</select>'; $html .= '</select>';
} else if($date_selector === 'MM') { } else if($date_selector === 'MM') {
$block['selected'] = $month; $block['selected'] = $month;
$html .= '<select class="mailpoet_date_month" '; $html .= '<select class="mailpoet_date_month" ';
$html .= static::getInputValidation($block, array(
'required-message' => __('Please select a month')
));
$html .= 'name="'.$field_name.'[month]" placeholder="'.__('Month').'">'; $html .= 'name="'.$field_name.'[month]" placeholder="'.__('Month').'">';
$html .= static::getMonths($block); $html .= static::getMonths($block);
$html .= '</select>'; $html .= '</select>';
} else if($date_selector === 'YYYY') { } else if($date_selector === 'YYYY') {
$block['selected'] = $year; $block['selected'] = $year;
$html .= '<select class="mailpoet_date_year" '; $html .= '<select class="mailpoet_date_year" ';
$html .= static::getInputValidation($block, array(
'required-message' => __('Please select a year')
));
$html .= 'name="'.$field_name.'[year]" placeholder="'.__('Year').'">'; $html .= 'name="'.$field_name.'[year]" placeholder="'.__('Year').'">';
$html .= static::getYears($block); $html .= static::getYears($block);
$html .= '</select>'; $html .= '</select>';
} }
} }
$html .= '<span class="mailpoet_error_'.$block['id'].'"></span>';
return $html; return $html;
} }

View File

@@ -9,17 +9,17 @@
{{> _settings_date_days }} {{> _settings_date_days }}
{{> _settings_date_years }} {{> _settings_date_years }}
{{/unless}} {{/unless}}
{{#ifCond params.date_format "==" "mm/dd/yyyy"}} {{#ifCond params.date_format "==" "MM/DD/YYYY"}}
{{> _settings_date_months }} {{> _settings_date_months }}
{{> _settings_date_days }} {{> _settings_date_days }}
{{> _settings_date_years }} {{> _settings_date_years }}
{{/ifCond}} {{/ifCond}}
{{#ifCond params.date_format "==" "dd/mm/yyyy"}} {{#ifCond params.date_format "==" "DD/MM/YYYY"}}
{{> _settings_date_days }} {{> _settings_date_days }}
{{> _settings_date_months }} {{> _settings_date_months }}
{{> _settings_date_years }} {{> _settings_date_years }}
{{/ifCond}} {{/ifCond}}
{{#ifCond params.date_format "==" "yyyy/mm/dd"}} {{#ifCond params.date_format "==" "YYYY/MM/DD"}}
{{> _settings_date_years }} {{> _settings_date_years }}
{{> _settings_date_months }} {{> _settings_date_months }}
{{> _settings_date_days }} {{> _settings_date_days }}
@@ -31,11 +31,11 @@
{{> _settings_date_months }} {{> _settings_date_months }}
{{> _settings_date_years }} {{> _settings_date_years }}
{{/unless}} {{/unless}}
{{#ifCond params.date_format "==" "mm/yyyy"}} {{#ifCond params.date_format "==" "MM/YYYY"}}
{{> _settings_date_months }} {{> _settings_date_months }}
{{> _settings_date_years }} {{> _settings_date_years }}
{{/ifCond}} {{/ifCond}}
{{#ifCond params.date_format "==" "yyyy/mm"}} {{#ifCond params.date_format "==" "YYYY/MM"}}
{{> _settings_date_years }} {{> _settings_date_years }}
{{> _settings_date_months }} {{> _settings_date_months }}
{{/ifCond}} {{/ifCond}}