Skip to content

Commit d976588

Browse files
committed
Merge branch 'release/10.0.0'
2 parents 722f442 + ccbf896 commit d976588

File tree

103 files changed

+2939
-21851
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+2939
-21851
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
msi.iws
22
.idea/
33
nbproject/
4-
Resources/Private/node_modules/
4+
node_modules
55
.DS_Store
66
.DS_Store?
77
._*

Classes/Eid/GetLocationEid.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
declare(strict_types = 1);
33
namespace In2code\Powermail\Eid;
44

5+
use InvalidArgumentException;
56
use Psr\Http\Message\ResponseInterface;
67
use Psr\Http\Message\ServerRequestInterface;
8+
use Throwable;
79
use TYPO3\CMS\Core\Exception;
810
use TYPO3\CMS\Core\Http\Response;
911
use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -59,7 +61,7 @@ public function main(ServerRequestInterface $request): ResponseInterface
5961
$response = new Response();
6062
$response->getBody()->write($this->content);
6163
return $response;
62-
} catch (\InvalidArgumentException $e) {
64+
} catch (InvalidArgumentException $e) {
6365
// add a 410 "gone" if invalid parameters given
6466
return (new Response())->withStatus(410);
6567
} catch (Exception $e) {
@@ -104,9 +106,8 @@ protected function getAddressFromGeo(float $lat, float $lng): array
104106
];
105107
}
106108
}
107-
} catch (\Exception $e) {
109+
} catch (Throwable $e) {
108110
}
109-
110111
return $result;
111112
}
112113
}

Classes/Hook/CreateMarker.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,7 @@ protected function shouldProcessField(): bool
371371
*/
372372
protected function shouldRenameMarker(array $markers): bool
373373
{
374-
return !empty($markers[$this->uid]) && $markers[$this->uid] !== $this->properties['marker'];
374+
return !empty($markers[$this->uid]) && !empty($this->properties['marker'])
375+
&& $markers[$this->uid] !== $this->properties['marker'];
375376
}
376377
}

Classes/ViewHelpers/Validation/AbstractValidationViewHelper.php

+6-7
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,18 @@ protected function addMandatoryAttributes(array $additionalAttributes, ?Field $f
7272
$additionalAttributes['required'] = 'required';
7373
} else {
7474
if ($this->isClientValidationEnabled()) {
75-
$additionalAttributes['data-parsley-required'] = 'true';
75+
$additionalAttributes['data-powermail-required'] = 'true';
7676
}
7777
}
7878
$additionalAttributes['aria-required'] = 'true';
7979

8080
if ($this->isClientValidationEnabled()) {
81-
$additionalAttributes['data-parsley-required-message'] =
81+
$additionalAttributes['data-powermail-required-message'] =
8282
LocalizationUtility::translate('validationerror_mandatory');
83-
$additionalAttributes['data-parsley-trigger'] = 'change';
8483

8584
/**
8685
* Special case multiselect:
87-
* Parsley sets the error messages after the wrapping div (but only for multiselect)
86+
* JS sets the error messages after the wrapping div (but only for multiselect)
8887
* So we define for this case where the errors should be included
8988
*/
9089
if ($field->getType() === 'select' && $field->isMultiselect()) {
@@ -105,7 +104,7 @@ protected function addMandatoryAttributes(array $additionalAttributes, ?Field $f
105104
*/
106105
protected function addErrorContainer(array $additionalAttributes, Field $field): array
107106
{
108-
$additionalAttributes['data-parsley-errors-container'] =
107+
$additionalAttributes['data-powermail-errors-container'] =
109108
'.powermail_field_error_container_' . $field->getMarker();
110109
return $additionalAttributes;
111110
}
@@ -120,8 +119,8 @@ protected function addErrorContainer(array $additionalAttributes, Field $field):
120119
*/
121120
protected function addClassHandler(array $additionalAttributes, Field $field): array
122121
{
123-
$additionalAttributes['data-parsley-class-handler'] =
124-
'.powermail_fieldwrap_' . $field->getMarker() . ' div:first > div';
122+
$additionalAttributes['data-powermail-class-handler'] =
123+
'.powermail_fieldwrap_' . $field->getMarker() . ' > div > div';
125124
return $additionalAttributes;
126125
}
127126

Classes/ViewHelpers/Validation/CaptchaDataAttributeViewHelper.php

+5-6
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
*/
1212
class CaptchaDataAttributeViewHelper extends ValidationDataAttributeViewHelper
1313
{
14-
1514
/**
16-
* Returns Data Attribute Array for JS validation with parsley.js
15+
* Returns Data Attribute Array for JS validation
1716
*
1817
* @return array for data attributes
1918
* @throws Exception
@@ -30,12 +29,12 @@ public function render(): array
3029
if ($this->isNativeValidationEnabled()) {
3130
$dataArray['required'] = 'required';
3231
} elseif ($this->isClientValidationEnabled()) {
33-
$dataArray['data-parsley-required'] = 'true';
32+
$dataArray['data-powermail-required'] = 'true';
3433
}
3534
if ($this->isClientValidationEnabled()) {
36-
$dataArray['data-parsley-errors-container'] = '.powermail_field_error_container_' . $field->getMarker();
37-
$dataArray['data-parsley-class-handler'] = '#powermail_field_' . $field->getMarker();
38-
$dataArray['data-parsley-required-message'] = LocalizationUtility::translate('validationerror_mandatory');
35+
$dataArray['data-powermail-errors-container'] = '.powermail_field_error_container_' . $field->getMarker();
36+
$dataArray['data-powermail-class-handler'] = '#powermail_field_' . $field->getMarker();
37+
$dataArray['data-powermail-required-message'] = LocalizationUtility::translate('validationerror_mandatory');
3938
}
4039

4140
return $dataArray;

Classes/ViewHelpers/Validation/DatepickerDataAttributeViewHelper.php

+24-54
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@ public function render(): array
3636
$additionalAttributes = $this->arguments['additionalAttributes'];
3737
$value = $this->arguments['value'];
3838

39-
$additionalAttributes['data-datepicker-force'] =
40-
$this->settings['misc']['datepicker']['forceJavaScriptDatePicker'] ?? 0;
41-
$additionalAttributes['data-datepicker-settings'] = $this->getDatepickerSettings($field);
42-
$additionalAttributes['data-datepicker-months'] = $this->getMonthNames();
43-
$additionalAttributes['data-datepicker-days'] = $this->getDayNames();
4439
$additionalAttributes['data-datepicker-format'] = $this->getFormat($field);
4540
if ($value) {
4641
$additionalAttributes['data-date-value'] = $value;
@@ -54,7 +49,7 @@ public function render(): array
5449
/**
5550
* Get Datepicker Settings
5651
*
57-
* @param Field $field
52+
* @param Field|null $field
5853
* @return string
5954
*/
6055
protected function getDatepickerSettings(Field $field = null): string
@@ -66,64 +61,39 @@ protected function getDatepickerSettings(Field $field = null): string
6661
}
6762

6863
/**
69-
* Get timeformat out of datepicker type
70-
*
71-
* @param Field $field
64+
* @param Field|null $field
7265
* @return string
7366
*/
7467
protected function getFormat(Field $field = null): string
7568
{
76-
return LocalizationUtility::translate('datepicker_format_' . $this->getDatepickerSettings($field));
77-
}
78-
79-
/**
80-
* Generate Monthnames from locallang
81-
*
82-
* @return string
83-
*/
84-
protected function getDayNames(): string
85-
{
86-
$days = [
87-
'so',
88-
'mo',
89-
'tu',
90-
'we',
91-
'th',
92-
'fr',
93-
'sa',
94-
];
95-
$dayArray = [];
96-
foreach ($days as $day) {
97-
$dayArray[] = LocalizationUtility::translate('datepicker_day_' . $day);
98-
}
99-
return implode(',', $dayArray);
69+
$format = LocalizationUtility::translate('datepicker_format_' . $this->getDatepickerSettings($field));
70+
return $this->convertFormatForMomentJs($format);
10071
}
10172

10273
/**
103-
* Generate Monthnames from locallang
104-
*
74+
* Because moment.js needs a different format writings, we need to convert this
75+
* "Y-m-d H:i" => "YYYY-MM-DD HH:mm"
76+
* @param string $format
10577
* @return string
10678
*/
107-
protected function getMonthNames(): string
79+
protected function convertFormatForMomentJs(string $format): string
10880
{
109-
$months = [
110-
'jan',
111-
'feb',
112-
'mar',
113-
'apr',
114-
'may',
115-
'jun',
116-
'jul',
117-
'aug',
118-
'sep',
119-
'oct',
120-
'nov',
121-
'dec',
81+
$replace = [
82+
[
83+
'Y',
84+
'm',
85+
'd',
86+
'H',
87+
'i',
88+
],
89+
[
90+
'YYYY',
91+
'MM',
92+
'DD',
93+
'HH',
94+
'mm',
95+
]
12296
];
123-
$monthArray = [];
124-
foreach ($months as $month) {
125-
$monthArray[] = LocalizationUtility::translate('datepicker_month_' . $month);
126-
}
127-
return implode(',', $monthArray);
97+
return str_replace($replace[0], $replace[1], $format);
12898
}
12999
}

Classes/ViewHelpers/Validation/EnableParsleyAndAjaxViewHelper.php Classes/ViewHelpers/Validation/EnableJavascriptValidationAndAjaxViewHelper.php

+4-5
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@
88
use TYPO3\CMS\Extbase\Object\Exception;
99

1010
/**
11-
* Class EnableParsleyAndAjaxViewHelper
11+
* Class EnableJavascriptValidationAndAjaxViewHelper
1212
*/
13-
class EnableParsleyAndAjaxViewHelper extends AbstractValidationViewHelper
13+
class EnableJavascriptValidationAndAjaxViewHelper extends AbstractValidationViewHelper
1414
{
15-
1615
/**
1716
* Could be disabled for testing
1817
*
@@ -31,7 +30,7 @@ public function initializeArguments()
3130
}
3231

3332
/**
34-
* Returns Data Attribute Array to enable parsley
33+
* Returns Data Attribute Array to enable validation
3534
*
3635
* @return array for data attributes
3736
* @throws Exception
@@ -42,7 +41,7 @@ public function render(): array
4241
$form = $this->arguments['form'];
4342
$additionalAttributes = $this->arguments['additionalAttributes'];
4443
if ($this->isClientValidationEnabled()) {
45-
$additionalAttributes['data-parsley-validate'] = 'data-parsley-validate';
44+
$additionalAttributes['data-powermail-validate'] = 'data-powermail-validate';
4645
}
4746

4847
if ($this->isNativeValidationEnabled()) {

Classes/ViewHelpers/Validation/PasswordValidationDataAttributeViewHelper.php

+3-4
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
*/
1212
class PasswordValidationDataAttributeViewHelper extends ValidationDataAttributeViewHelper
1313
{
14-
1514
/**
16-
* Returns Data Attribute Array for JS validation with parsley.js
15+
* Returns Data Attribute Array for JS validation
1716
*
1817
* @return array for data attributes
1918
* @throws Exception
@@ -25,8 +24,8 @@ public function render(): array
2524
if ($this->isClientValidationEnabled()) {
2625
/** @var Field $field */
2726
$field = $this->arguments['field'];
28-
$additionalAttributes['data-parsley-equalto'] = '#powermail_field_' . $field->getMarker();
29-
$additionalAttributes['data-parsley-equalto-message'] =
27+
$additionalAttributes['data-powermail-equalto'] = '#powermail_field_' . $field->getMarker();
28+
$additionalAttributes['data-powermail-equalto-message'] =
3029
LocalizationUtility::translate('validationerror_password');
3130
}
3231

Classes/ViewHelpers/Validation/UploadAttributesViewHelper.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ public function render(): array
4545
}
4646
if ($this->isClientValidationEnabled()) {
4747
if (!empty($this->settings['misc']['file']['size'])) {
48-
$additionalAttributes['data-parsley-powermailfilesize'] =
48+
$additionalAttributes['data-powermail-powermailfilesize'] =
4949
(int)$this->settings['misc']['file']['size'] . ',' . $field->getMarker();
50-
$additionalAttributes['data-parsley-powermailfilesize-message'] =
50+
$additionalAttributes['data-powermail-powermailfilesize-message'] =
5151
LocalizationUtility::translate('validationerror_upload_size');
5252
}
5353
if (!empty($this->settings['misc']['file']['extension'])) {
54-
$additionalAttributes['data-parsley-powermailfileextensions'] = $field->getMarker();
55-
$additionalAttributes['data-parsley-powermailfileextensions-message'] =
54+
$additionalAttributes['data-powermail-powermailfileextensions'] = $field->getMarker();
55+
$additionalAttributes['data-powermail-powermailfileextensions-message'] =
5656
LocalizationUtility::translate('validationerror_upload_extension');
5757
}
5858
}

0 commit comments

Comments
 (0)