Skip to content
GitLab
Menu
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
cd850266
Commit
cd850266
authored
Feb 27, 2021
by
Elias Villiger
Browse files
Fixes #5444. Typeahead FE value is now prefetched after save.
parent
0a83cde2
Pipeline
#5020
passed with stages
in 6 minutes and 19 seconds
Changes
2
Pipelines
1
Show whitespace changes
Inline
Side-by-side
extension/Classes/Core/AbstractBuildForm.php
View file @
cd850266
...
@@ -11,6 +11,7 @@ namespace IMATHUZH\Qfq\Core;
...
@@ -11,6 +11,7 @@ namespace IMATHUZH\Qfq\Core;
use
IMATHUZH\Qfq\Core\Database\Database
;
use
IMATHUZH\Qfq\Core\Database\Database
;
use
IMATHUZH\Qfq\Core\Form\Checkbox
;
use
IMATHUZH\Qfq\Core\Form\Checkbox
;
use
IMATHUZH\Qfq\Core\Form\FormAsFile
;
use
IMATHUZH\Qfq\Core\Form\FormAsFile
;
use
IMATHUZH\Qfq\Core\Form\TypeAhead
;
use
IMATHUZH\Qfq\Core\Helper\HelperFile
;
use
IMATHUZH\Qfq\Core\Helper\HelperFile
;
use
IMATHUZH\Qfq\Core\Helper\HelperFormElement
;
use
IMATHUZH\Qfq\Core\Helper\HelperFormElement
;
use
IMATHUZH\Qfq\Core\Helper\KeyValueStringParser
;
use
IMATHUZH\Qfq\Core\Helper\KeyValueStringParser
;
...
@@ -846,6 +847,12 @@ abstract class AbstractBuildForm {
...
@@ -846,6 +847,12 @@ abstract class AbstractBuildForm {
// Retrieve value via FSRVD
// Retrieve value via FSRVD
$sanitizeClass
=
(
$mode
==
FORM_UPDATE
)
?
SANITIZE_ALLOW_ALL
:
$formElement
[
FE_CHECK_TYPE
];
$sanitizeClass
=
(
$mode
==
FORM_UPDATE
)
?
SANITIZE_ALLOW_ALL
:
$formElement
[
FE_CHECK_TYPE
];
$value
=
$this
->
store
->
getVar
(
$name
,
$storeUse
,
$sanitizeClass
,
$foundInStore
);
$value
=
$this
->
store
->
getVar
(
$name
,
$storeUse
,
$sanitizeClass
,
$foundInStore
);
// For typeAhead fields: perform prefetch to display description instead of key (#5444)
if
(
$mode
==
FORM_SAVE
&&
isset
(
$fe
[
FE_TYPEAHEAD_SQL_PREFETCH
]))
{
$config
=
[
FE_TYPEAHEAD_SQL_PREFETCH
=>
$fe
[
FE_TYPEAHEAD_SQL_PREFETCH
]];
$value
=
TypeAhead
::
typeAheadSqlPrefetch
(
$config
,
$value
,
$this
->
dbArray
[
$this
->
dbIndexData
]);
}
}
}
if
(
$formElement
[
FE_ENCODE
]
===
FE_ENCODE_SPECIALCHAR
)
{
if
(
$formElement
[
FE_ENCODE
]
===
FE_ENCODE_SPECIALCHAR
)
{
...
...
extension/Classes/Core/Form/TypeAhead.php
View file @
cd850266
...
@@ -83,7 +83,7 @@ class TypeAhead {
...
@@ -83,7 +83,7 @@ class TypeAhead {
if
(
$this
->
vars
[
TYPEAHEAD_API_PREFETCH
]
==
''
)
{
if
(
$this
->
vars
[
TYPEAHEAD_API_PREFETCH
]
==
''
)
{
$arr
=
$this
->
typeAheadSql
(
$sipVars
,
$this
->
vars
[
TYPEAHEAD_API_QUERY
]);
$arr
=
$this
->
typeAheadSql
(
$sipVars
,
$this
->
vars
[
TYPEAHEAD_API_QUERY
]);
}
else
{
}
else
{
$arr
=
$this
->
typeAheadSqlPrefetch
(
$sipVars
,
$this
->
vars
[
TYPEAHEAD_API_PREFETCH
]);
$arr
=
$this
->
typeAheadSqlPrefetch
(
$sipVars
,
$this
->
vars
[
TYPEAHEAD_API_PREFETCH
]
,
$this
->
db
);
}
}
}
elseif
(
isset
(
$sipVars
[
FE_LDAP_SERVER
]))
{
}
elseif
(
isset
(
$sipVars
[
FE_LDAP_SERVER
]))
{
$ldap
=
new
Ldap
();
$ldap
=
new
Ldap
();
...
@@ -155,7 +155,7 @@ class TypeAhead {
...
@@ -155,7 +155,7 @@ class TypeAhead {
* @throws \UserFormException
* @throws \UserFormException
*/
*/
p
rivate
function
typeAheadSqlPrefetch
(
array
$config
,
$key
)
{
p
ublic
static
function
typeAheadSqlPrefetch
(
array
$config
,
$key
,
$db
)
{
$keys
=
array
();
$keys
=
array
();
$sql
=
$config
[
FE_TYPEAHEAD_SQL_PREFETCH
];
$sql
=
$config
[
FE_TYPEAHEAD_SQL_PREFETCH
];
...
@@ -172,7 +172,7 @@ class TypeAhead {
...
@@ -172,7 +172,7 @@ class TypeAhead {
$keys
[]
=
$key
;
$keys
[]
=
$key
;
}
}
$arr
=
$
this
->
db
->
sql
(
$sql
,
ROW_REGULAR
,
$keys
);
$arr
=
$db
->
sql
(
$sql
,
ROW_REGULAR
,
$keys
);
if
(
$arr
==
false
||
count
(
$arr
)
==
0
)
{
if
(
$arr
==
false
||
count
(
$arr
)
==
0
)
{
return
array
();
return
array
();
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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