user profile edit form fixes

This commit is contained in:
Graham Knop 2007-07-20 22:32:46 +00:00
parent 3cd41eaa43
commit abf5a15749

View file

@ -207,34 +207,29 @@ A WebGUI::User object reference to use instead of the currently logged in user.
sub formField { sub formField {
my $self = shift; my $self = shift;
my $properties = $self->_formProperties(shift); my $properties = $self->_formProperties(shift);
my $withWrapper = shift; my $withWrapper = shift;
my $u = shift; my $u = shift || $self->session->user;
my $skipDefault = shift; my $skipDefault = shift;
my $assignedValue = shift; my $assignedValue = shift;
my $default;
if ($skipDefault) { if ($skipDefault) {
} $properties->{value} = undef;
# display form version in case there is an error on submit, so they don't have to retype }
elsif (defined $self->session->form->process($properties->{name})) { elsif (defined $assignedValue) {
$default = $self->session->form->process($properties->{name}); $properties->{value} = $assignedValue;
} }
# get it from the user profile if we already have a user object else {
elsif (defined $u && defined $u->profileField($properties->{name})) { # start with specified (or current) user's data. previous data needed by some form types as well (file).
$default = $u->profileField($properties->{name}); $properties->{value} = $u->profileField($self->getId);
} # use submitted data if it exists
# get it from the user profile if we don't have the user object if (defined $self->session->form->process($properties->{name})) {
elsif (!defined $u && defined $self->session->user->profileField($properties->{name})) { $properties->{value} = $self->session->form->process($self->getId,$self->get("fieldType"), undef, $properties);
$default = $self->session->user->profileField($properties->{name}); }
} # fall back on default
# get it from the defaults if necessary if(!defined $properties->{value}) {
else { $properties->{value} = WebGUI::Operation::Shared::secureEval($self->session,$properties->{dataDefault});
$default = WebGUI::Operation::Shared::secureEval($self->session,$properties->{dataDefault}); }
} }
$properties->{value} = $default;
if (defined $assignedValue) {
$properties->{value} = $assignedValue;
}
if ($withWrapper == 1) { if ($withWrapper == 1) {
return WebGUI::Form::DynamicField->new($self->session,%{$properties})->displayFormWithWrapper; return WebGUI::Form::DynamicField->new($self->session,%{$properties})->displayFormWithWrapper;
} elsif ($withWrapper == 2) { } elsif ($withWrapper == 2) {