Made sure profile fields with multiple values are kept in order
This commit is contained in:
parent
585d18da7b
commit
ec985af9d4
1 changed files with 9 additions and 1 deletions
|
|
@ -403,6 +403,14 @@ sub www_editUserProfile {
|
||||||
if ($method eq "selectList" || $method eq "checkList" || $method eq "radioList") {
|
if ($method eq "selectList" || $method eq "checkList" || $method eq "radioList") {
|
||||||
# note: this big if statement doesn't look elegant, but doing regular
|
# note: this big if statement doesn't look elegant, but doing regular
|
||||||
# ORs caused problems with the array reference.
|
# ORs caused problems with the array reference.
|
||||||
|
|
||||||
|
# make sure the values are ordered
|
||||||
|
my $orderedValues = {};
|
||||||
|
tie %{$orderedValues}, 'Tie::IxHash';
|
||||||
|
foreach my $ov (sort keys %{$values}) {
|
||||||
|
$orderedValues->{$ov} = $values->{$ov};
|
||||||
|
}
|
||||||
|
|
||||||
if ($session{form}{$data{fieldName}}) {
|
if ($session{form}{$data{fieldName}}) {
|
||||||
$default = [$session{form}{$data{fieldName}}];
|
$default = [$session{form}{$data{fieldName}}];
|
||||||
} elsif ($user{$data{fieldName}} && (defined($values->{$user{$data{fieldName}}}))) {
|
} elsif ($user{$data{fieldName}} && (defined($values->{$user{$data{fieldName}}}))) {
|
||||||
|
|
@ -412,7 +420,7 @@ sub www_editUserProfile {
|
||||||
}
|
}
|
||||||
$f->$method(
|
$f->$method(
|
||||||
-name=>$data{fieldName},
|
-name=>$data{fieldName},
|
||||||
-options=>$values,
|
-options=>$orderedValues,
|
||||||
-label=>$label,
|
-label=>$label,
|
||||||
-value=>$default
|
-value=>$default
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue