Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
typo3
qfq
Commits
6f7759c7
Commit
6f7759c7
authored
Jan 30, 2018
by
Elias Villiger
Browse files
Add min/max attributes to input tag
parent
ed09b09c
Changes
3
Hide whitespace changes
Inline
Side-by-side
extension/qfq/qfq/AbstractBuildForm.php
View file @
6f7759c7
...
...
@@ -1135,6 +1135,7 @@ abstract class AbstractBuildForm {
$attribute
.
=
Support
::
doAttribute
(
'data-load'
,
(
$formElement
[
FE_DYNAMIC_UPDATE
]
===
'yes'
)
?
'data-load'
:
''
);
$attribute
.
=
Support
::
doAttribute
(
'title'
,
$formElement
[
FE_TOOLTIP
]);
$attribute
.
=
$this
->
getInputCheckPattern
(
$formElement
[
FE_CHECK_TYPE
],
$formElement
[
FE_CHECK_PATTERN
]);
$attribute
.
=
$this
->
getAttributeList
(
$formElement
,
[
FE_MIN
,
FE_MAX
]);
$attribute
.
=
$this
->
getAttributeFeMode
(
$formElement
[
FE_MODE
],
false
);
...
...
extension/qfq/qfq/helper/Sanitize.php
View file @
6f7759c7
...
...
@@ -89,16 +89,16 @@ class Sanitize {
* @throws \qfq\CodeException
*/
public
static
function
checkMinMax
(
$value
,
$formElement
,
$mode
=
SANITIZE_EMPTY_STRING
)
{
$min
=
Support
::
setIfNotSet
(
$formElement
,
FE_MIN
,
null
);
$max
=
Support
::
setIfNotSet
(
$formElement
,
FE_MAX
,
null
);
$min
=
Support
::
setIfNotSet
(
$formElement
,
FE_MIN
);
$max
=
Support
::
setIfNotSet
(
$formElement
,
FE_MAX
);
$errorCode
=
0
;
$errorText
=
''
;
if
(
$min
!==
null
&&
$value
<
$min
)
{
if
(
$min
!==
''
&&
$value
<
$min
)
{
$errorCode
=
ERROR_SMALLER_THAN_MIN
;
$errorText
=
"Value '
$value
' is smaller than the allowed minimum of '
$min
'."
;
}
if
(
$max
!==
null
&&
$value
>
$max
)
{
if
(
$max
!==
''
&&
$value
>
$max
)
{
$errorCode
=
ERROR_LARGER_THAN_MAX
;
$errorText
=
"Value '
$value
' is larger than the allowed maximum of '
$max
'."
;
}
...
...
extension/qfq/tests/phpunit/BuildFormPlainTest.php
View file @
6f7759c7
...
...
@@ -84,14 +84,26 @@ class BuildFormPlainTest extends AbstractDatabaseTest {
$this
->
assertEquals
(
'<input id="123" name="name:1" class="form-control" maxlength="255" type="input" value="" data-hidden="no" data-required="no" ><div class="help-block with-errors hidden"></div>'
,
$result
);
$this
->
assertEquals
([
'disabled'
=>
false
,
FE_MODE_REQUIRED
=>
''
,
'form-element'
=>
'name:1'
,
'value'
=>
''
,
API_ELEMENT_UPDATE
=>
$label
],
$json
);
// CheckType
// TODO: MIN/MAX
$formElement
[
FE_CHECK_TYPE
]
=
SANITIZE_ALLOW_MIN_MAX
;
$formElement
[
FE_CHECK_PATTERN
]
=
'1|10'
;
// Min/Max
$formElement
[
FE_MIN
]
=
1
;
$formElement
[
FE_MAX
]
=
10
;
$result
=
$build
->
buildInput
(
$formElement
,
'name:1'
,
''
,
$json
);
$this
->
assertEquals
(
'<input id="123" name="name:1" class="form-control" maxlength="255" type="input" value="" min="1" max="10" data-hidden="no" data-required="no" ><div class="help-block with-errors hidden"></div>'
,
$result
);
$this
->
assertEquals
([
'disabled'
=>
false
,
FE_MODE_REQUIRED
=>
''
,
'form-element'
=>
'name:1'
,
'value'
=>
''
,
'disabled'
=>
false
,
API_ELEMENT_UPDATE
=>
$label
],
$json
);
$formElement
[
FE_MIN
]
=
1
;
$formElement
[
FE_MAX
]
=
''
;
$result
=
$build
->
buildInput
(
$formElement
,
'name:1'
,
''
,
$json
);
$this
->
assertEquals
(
'<input id="123" name="name:1" class="form-control" maxlength="255" type="input" value="" min="1" data-hidden="no" data-required="no" ><div class="help-block with-errors hidden"></div>'
,
$result
);
$this
->
assertEquals
([
'disabled'
=>
false
,
FE_MODE_REQUIRED
=>
''
,
'form-element'
=>
'name:1'
,
'value'
=>
''
,
'disabled'
=>
false
,
API_ELEMENT_UPDATE
=>
$label
],
$json
);
$formElement
[
FE_MIN
]
=
''
;
$formElement
[
FE_MAX
]
=
10
;
$result
=
$build
->
buildInput
(
$formElement
,
'name:1'
,
''
,
$json
);
$this
->
assertEquals
(
'<input id="123" name="name:1" class="form-control" maxlength="255" type="input" value="" max="10" data-hidden="no" data-required="no" ><div class="help-block with-errors hidden"></div>'
,
$result
);
$this
->
assertEquals
([
'disabled'
=>
false
,
FE_MODE_REQUIRED
=>
''
,
'form-element'
=>
'name:1'
,
'value'
=>
''
,
'disabled'
=>
false
,
API_ELEMENT_UPDATE
=>
$label
],
$json
);
// CheckType
$formElement
[
FE_CHECK_TYPE
]
=
SANITIZE_ALLOW_PATTERN
;
$formElement
[
FE_CHECK_PATTERN
]
=
'^[a-z]*$'
;
$result
=
$build
->
buildInput
(
$formElement
,
'name:1'
,
''
,
$json
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment