Colin: adding avatar to collaboration systems and refactoring some user profile stuff. Added photo and avatar fields to user profile.
This commit is contained in:
parent
852ba1ba15
commit
e75988cd1f
37 changed files with 1000 additions and 279 deletions
|
|
@ -17,6 +17,7 @@ use WebGUI::Operation::Auth;
|
|||
use WebGUI::DateTime;
|
||||
use WebGUI::ErrorHandler;
|
||||
use WebGUI::FormProcessor;
|
||||
use WebGUI::Form::DynamicField;
|
||||
use WebGUI::Grouping;
|
||||
use WebGUI::HTML;
|
||||
use WebGUI::HTMLForm;
|
||||
|
|
@ -36,47 +37,50 @@ use WebGUI::Operation::Shared;
|
|||
# Builds Extra form requirements for anonymous registration.
|
||||
sub getRequiredProfileFields {
|
||||
my ($f,$a,$method,$label,$default,$values,$data,@array);
|
||||
|
||||
|
||||
#$f = WebGUI::HTMLForm->new();
|
||||
|
||||
|
||||
$a = WebGUI::SQL->read("select * from userProfileField, userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId and
|
||||
userProfileField.required=1 order by userProfileCategory.sequenceNumber,userProfileField.sequenceNumber",WebGUI::SQL->getSlave);
|
||||
while($data = $a->hashRef) {
|
||||
my %hash = ();
|
||||
$method = $data->{dataType};
|
||||
$label = WebGUI::Operation::Shared::secureEval($data->{fieldLabel});
|
||||
$default = WebGUI::Operation::Shared::secureEval($data->{dataDefault});
|
||||
if ($method eq "selectList") {
|
||||
$values = WebGUI::Operation::Shared::secureEval($data->{dataValues});
|
||||
# note: this big if statement doesn't look elegant, but doing regular ORs caused problems with the array reference.
|
||||
if ($session{form}{$data->{fieldName}}) {
|
||||
$default = [$session{form}{$data->{fieldName}}];
|
||||
} elsif ($session{user}{$data->{fieldName}}) {
|
||||
$default = [$session{user}{$data->{fieldName}}];
|
||||
}
|
||||
$hash{'profile.formElement'} = WebGUI::Form::selectList({
|
||||
"name"=>$data->{fieldName},
|
||||
"options"=>$values,
|
||||
"value"=>$default
|
||||
});
|
||||
} else {
|
||||
if ($session{form}{$data->{fieldName}}) {
|
||||
$default = $session{form}{$data->{fieldName}};
|
||||
} elsif (exists $session{user}{$data->{fieldName}}) {
|
||||
$default = $session{user}{$data->{fieldName}};
|
||||
} else {
|
||||
$default = $data->{dataDefault};
|
||||
}
|
||||
|
||||
my $cmd = 'WebGUI::Form::'.$method.'({"name"=>$data->{fieldName},"value"=>$default})';
|
||||
$hash{'profile.formElement'} = eval($cmd);
|
||||
|
||||
}
|
||||
$hash{'profile.formElement.label'} = $label;
|
||||
push(@array,\%hash)
|
||||
}
|
||||
$a->finish;
|
||||
return \@array;
|
||||
userProfileField.required=1 order by userProfileCategory.sequenceNumber,userProfileField.sequenceNumber",WebGUI::SQL->getSlave);
|
||||
while($data = $a->hashRef) {
|
||||
my %hash = ();
|
||||
$method = $data->{dataType};
|
||||
$label = WebGUI::Operation::Shared::secureEval($data->{fieldLabel});
|
||||
$default = WebGUI::Operation::Shared::secureEval($data->{dataDefault});
|
||||
if ($method eq "selectList") {
|
||||
$values = WebGUI::Operation::Shared::secureEval($data->{dataValues});
|
||||
# note: this big if statement doesn't look elegant, but doing regular ORs caused problems with the array reference.
|
||||
if ($session{form}{$data->{fieldName}}) {
|
||||
$default = [$session{form}{$data->{fieldName}}];
|
||||
}
|
||||
elsif ($session{user}{$data->{fieldName}}) {
|
||||
$default = [$session{user}{$data->{fieldName}}];
|
||||
}
|
||||
$hash{'profile.formElement'} = WebGUI::Form::selectList({
|
||||
"name"=>$data->{fieldName},
|
||||
"options"=>$values,
|
||||
"value"=>$default
|
||||
});
|
||||
}
|
||||
else {
|
||||
if ($session{form}{$data->{fieldName}}) {
|
||||
$default = $session{form}{$data->{fieldName}};
|
||||
}
|
||||
elsif (exists $session{user}{$data->{fieldName}}) {
|
||||
$default = $session{user}{$data->{fieldName}};
|
||||
}
|
||||
else {
|
||||
$default = $data->{dataDefault};
|
||||
}
|
||||
|
||||
my $cmd = 'WebGUI::Form::'.$method.'({"name"=>$data->{fieldName},"value"=>$default})';
|
||||
$hash{'profile.formElement'} = eval($cmd);
|
||||
}
|
||||
$hash{'profile.formElement.label'} = $label;
|
||||
push(@array,\%hash)
|
||||
}
|
||||
$a->finish;
|
||||
return \@array;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -109,105 +113,98 @@ sub saveProfileFields {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub validateProfileData {
|
||||
my (%data, $error, $a, %field, $warning);
|
||||
tie %field, 'Tie::CPHash';
|
||||
$a = WebGUI::SQL->read("select * from userProfileField,userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
|
||||
and userProfileCategory.editable=1 and userProfileField.editable=1 order by userProfileCategory.sequenceNumber,userProfileField.sequenceNumber");
|
||||
while (%field = $a->hash) {
|
||||
my $fieldData = WebGUI::FormProcessor::process($field{fieldName},$field{dataType}, $field{dataDefault});
|
||||
WebGUI::Macro::negate(\$fieldData);
|
||||
$data{$field{fieldName}} = $fieldData;
|
||||
|
||||
if ($field{required} && $data{$field{fieldName}} eq "") {
|
||||
$error .= '<li>'.(WebGUI::Operation::Shared::secureEval($field{fieldLabel})).' '.WebGUI::International::get(451).'</li>';
|
||||
}elsif($field{fieldName} eq "email" && isDuplicateEmail($data{$field{fieldName}})){
|
||||
$warning .= '<li>'.WebGUI::International::get(1072).'</li>';
|
||||
}
|
||||
}
|
||||
$a->finish;
|
||||
return (\%data, $error, $warning);
|
||||
my (%data, $error, $a, %field, $warning);
|
||||
tie %field, 'Tie::CPHash';
|
||||
$a = WebGUI::SQL->read("select * from userProfileField,userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
|
||||
and userProfileCategory.editable=1 and userProfileField.editable=1 order by userProfileCategory.sequenceNumber,userProfileField.sequenceNumber");
|
||||
while (%field = $a->hash) {
|
||||
$data{$field{fieldName}} = WebGUI::Macro::negate(WebGUI::FormProcessor::process($field{fieldName},$field{dataType}, $field{dataDefault}));
|
||||
if ($field{required} && $data{$field{fieldName}} eq "") {
|
||||
$error .= '<li>'.(WebGUI::Operation::Shared::secureEval($field{fieldLabel})).' '.WebGUI::International::get(451).'</li>';
|
||||
}
|
||||
elsif($field{fieldName} eq "email" && isDuplicateEmail($data{$field{fieldName}})){
|
||||
$warning .= '<li>'.WebGUI::International::get(1072).'</li>';
|
||||
}
|
||||
}
|
||||
$a->finish;
|
||||
return (\%data, $error, $warning);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editProfile {
|
||||
my ($a, $data, $method, $values, $category, $label, $default, $previousCategory, $subtext, $vars, @profile, @array);
|
||||
return WebGUI::Operation::Auth::www_auth("init") if($session{user}{userId} eq '1');
|
||||
|
||||
$vars->{displayTitle} .= '<h1>'.WebGUI::International::get(338).'</h1>';
|
||||
|
||||
$vars->{'profile.message'} = $_[0] if($_[0]);
|
||||
$vars->{'profile.form.header'} = "\n\n".WebGUI::Form::formHeader({});
|
||||
$vars->{'profile.form.footer'} = WebGUI::Form::formFooter();
|
||||
|
||||
$vars->{'profile.form.hidden'} = WebGUI::Form::hidden({"name"=>"op","value"=>"editProfileSave"});
|
||||
$vars->{'profile.form.hidden'} .= WebGUI::Form::hidden({"name"=>"uid","value"=>$session{user}{userId}});
|
||||
|
||||
$a = WebGUI::SQL->read("select * from userProfileField,userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
|
||||
and userProfileCategory.editable=1 and userProfileField.editable=1 order by userProfileCategory.sequenceNumber,userProfileField.sequenceNumber");
|
||||
my $counter = 0;
|
||||
while($data = $a->hashRef) {
|
||||
$counter++;
|
||||
my %hash = ();
|
||||
$category = WebGUI::Operation::Shared::secureEval($data->{categoryName});
|
||||
$method = $data->{dataType};
|
||||
$label = WebGUI::Operation::Shared::secureEval($data->{fieldLabel});
|
||||
$default = WebGUI::Operation::Shared::secureEval($data->{dataDefault});
|
||||
|
||||
if ($method eq "selectList" || $method eq "checkList" || $method eq "radioList") {
|
||||
$values = WebGUI::Operation::Shared::secureEval($data->{dataValues});
|
||||
my $orderedValues = {};
|
||||
tie %{$orderedValues}, 'Tie::IxHash';
|
||||
foreach my $ov (sort keys %{$values}) {
|
||||
$orderedValues->{$ov} = $values->{$ov};
|
||||
}
|
||||
# note: this big if statement doesn't look elegant, but doing regular ORs caused problems with the array reference.
|
||||
if ($session{form}{$data->{fieldName}}) {
|
||||
$default = [$session{form}{$data->{fieldName}}];
|
||||
} elsif ($session{user}{$data->{fieldName}}) {
|
||||
$default = [$session{user}{$data->{fieldName}}];
|
||||
}
|
||||
$hash{'profile.form.element'} = WebGUI::Form::selectList({
|
||||
"name"=>$data->{fieldName},
|
||||
"options"=>$values,
|
||||
"value"=>$default
|
||||
});
|
||||
} else {
|
||||
if ($session{form}{$data->{fieldName}}) {
|
||||
$default = $session{form}{$data->{fieldName}};
|
||||
} elsif (exists $session{user}{$data->{fieldName}}) {
|
||||
$default = $session{user}{$data->{fieldName}};
|
||||
}
|
||||
my $cmd = 'WebGUI::Form::'.$method.'({"name"=>$data->{fieldName},"value"=>$default})';
|
||||
$hash{'profile.form.element'} = eval($cmd);
|
||||
|
||||
}
|
||||
$hash{'profile.form.element.label'} = $label;
|
||||
if ($data->{required}) {
|
||||
$hash{'profile.form.element.subtext'} = "*";
|
||||
}
|
||||
push(@profile,\%hash);
|
||||
if (($previousCategory && $category ne $previousCategory) || $counter eq $a->rows) {
|
||||
my @temp = @profile;
|
||||
my $hashRef;
|
||||
$hashRef->{'profile.form.category'} = $previousCategory;
|
||||
$hashRef->{'profile.form.category.loop'} = \@temp;
|
||||
push(@array,$hashRef);
|
||||
@profile = ();
|
||||
}
|
||||
$previousCategory = $category;
|
||||
}
|
||||
$a->finish;
|
||||
|
||||
my ($a, $data, $previousCategory, $subtext, $vars, @profile, @array);
|
||||
return WebGUI::Operation::Auth::www_auth("init") if($session{user}{userId} eq '1');
|
||||
|
||||
$vars->{displayTitle} .= '<h1>'.WebGUI::International::get(338).'</h1>';
|
||||
|
||||
$vars->{'profile.message'} = $_[0] if($_[0]);
|
||||
$vars->{'profile.form.header'} = "\n\n".WebGUI::Form::formHeader({});
|
||||
$vars->{'profile.form.footer'} = WebGUI::Form::formFooter();
|
||||
|
||||
$vars->{'profile.form.hidden'} = WebGUI::Form::hidden({"name"=>"op","value"=>"editProfileSave"});
|
||||
$vars->{'profile.form.hidden'} .= WebGUI::Form::hidden({"name"=>"uid","value"=>$session{user}{userId}});
|
||||
|
||||
$a = WebGUI::SQL->read("select * from userProfileField,userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
|
||||
and userProfileCategory.editable=1 and userProfileField.editable=1 order by userProfileCategory.sequenceNumber,userProfileField.sequenceNumber");
|
||||
my $counter = 0;
|
||||
while($data = $a->hashRef) {
|
||||
$counter++;
|
||||
my %hash = ();
|
||||
my $category = WebGUI::Operation::Shared::secureEval($data->{categoryName});
|
||||
my $label = WebGUI::Operation::Shared::secureEval($data->{fieldLabel});
|
||||
my $values = WebGUI::Operation::Shared::secureEval($data->{dataValues});
|
||||
my $method = $data->{dataType};
|
||||
my $orderedValues = {};
|
||||
tie %{$orderedValues}, 'Tie::IxHash';
|
||||
foreach my $ov (sort keys %{$values}) {
|
||||
$orderedValues->{$ov} = $values->{$ov};
|
||||
}
|
||||
my $default;
|
||||
if ($session{form}{$data->{fieldName}}) {
|
||||
$default = $session{form}{$data->{fieldName}};
|
||||
}
|
||||
elsif ($session{user}{$data->{fieldName}}) {
|
||||
$default = $session{user}{$data->{fieldName}};
|
||||
}
|
||||
else {
|
||||
$default = WebGUI::Operation::Shared::secureEval($data->{dataDefault});
|
||||
}
|
||||
my $form = WebGUI::Form::DynamicField->new(
|
||||
name => $data->{fieldName},
|
||||
value => $default,
|
||||
options => $orderedValues,
|
||||
fieldType => $method,
|
||||
);
|
||||
|
||||
$hash{'profile.form.element'} = $form->displayForm();
|
||||
$hash{'profile.form.element.label'} = $label;
|
||||
|
||||
if ($data->{required}) {
|
||||
$hash{'profile.form.element.subtext'} = "*";
|
||||
}
|
||||
if (($previousCategory && $category ne $previousCategory) || $counter eq $a->rows) {
|
||||
my @temp = @profile;
|
||||
my $hashRef;
|
||||
$hashRef->{'profile.form.category'} = $previousCategory;
|
||||
$hashRef->{'profile.form.category.loop'} = \@temp;
|
||||
push(@array,$hashRef);
|
||||
@profile = ();
|
||||
}
|
||||
$previousCategory = $category;
|
||||
push(@profile,\%hash);
|
||||
}
|
||||
$a->finish;
|
||||
|
||||
$vars->{'profile.form.elements'} = \@array;
|
||||
$vars->{'profile.form.submit'} = WebGUI::Form::submit({});
|
||||
$vars->{'profile.accountOptions'} = WebGUI::Operation::Shared::accountOptions();
|
||||
$vars->{'profile.form.submit'} = WebGUI::Form::submit({});
|
||||
$vars->{'profile.accountOptions'} = WebGUI::Operation::Shared::accountOptions();
|
||||
return WebGUI::Operation::Shared::userStyle(WebGUI::Asset::Template->new("PBtmpl0000000000000051")->process($vars));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editProfileSave {
|
||||
my ($profile, $fieldName, $error, $u, $warning);
|
||||
return WebGUI::Operation::Auth::www_auth("init") if ($session{user}{userId} eq '1');
|
||||
return WebGUI::Operation::Auth::www_auth("init") if ($session{user}{userId} eq '1');
|
||||
|
||||
($profile, $error, $warning) = validateProfileData();
|
||||
$error .= $warning;
|
||||
|
|
@ -215,8 +212,8 @@ sub www_editProfileSave {
|
|||
return www_editProfile('<ul>'.$error.'</ul>') if($error ne "");
|
||||
|
||||
$u = WebGUI::User->new($session{user}{userId});
|
||||
foreach $fieldName (keys %{$profile}) {
|
||||
$u->profileField($fieldName,WebGUI::HTML::filter(${$profile}{$fieldName},"javascript"));
|
||||
foreach $fieldName (keys %{$profile}) {
|
||||
$u->profileField($fieldName,WebGUI::HTML::filter(${$profile}{$fieldName},"javascript"));
|
||||
}
|
||||
WebGUI::Session::refreshUserInfo($session{user}{userId});
|
||||
return WebGUI::Operation::Auth::www_auth();
|
||||
|
|
@ -224,48 +221,63 @@ sub www_editProfileSave {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_viewProfile {
|
||||
my ($a, %data, $category, $label, $value, $previousCategory, $u, %gender,$vars,@array);
|
||||
%gender = ('neuter'=>WebGUI::International::get(403),'male'=>WebGUI::International::get(339),'female'=>WebGUI::International::get(340));
|
||||
my ($a, %data, $category, $label, $value, $previousCategory, $u, $vars, @array);
|
||||
$u = WebGUI::User->new($session{form}{uid});
|
||||
$vars->{displayTitle} = '<h1>'.WebGUI::International::get(347).' '.$u->username.'</h1>';
|
||||
$vars->{displayTitle} = '<h1>'.WebGUI::International::get(347).' '.$u->username.'</h1>';
|
||||
|
||||
return WebGUI::Privilege::notMember() if($u->username eq "");
|
||||
|
||||
return WebGUI::Operation::Shared::userStyle($vars->{displayTitle}.WebGUI::International::get(862)) if($u->profileField("publicProfile") < 1 && ($session{user}{userId} ne $session{form}{uid} || WebGUI::Grouping::isInGroup(3)));
|
||||
|
||||
return WebGUI::Privilege::insufficient() if(!WebGUI::Grouping::isInGroup(2));
|
||||
$a = WebGUI::SQL->read("select * from userProfileField,userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
|
||||
|
||||
$a = WebGUI::SQL->read("select * from userProfileField,userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
|
||||
and userProfileCategory.visible=1 and userProfileField.visible=1 order by userProfileCategory.sequenceNumber,
|
||||
userProfileField.sequenceNumber",WebGUI::SQL->getSlave);
|
||||
while (%data = $a->hash) {
|
||||
$category = WebGUI::Operation::Shared::secureEval($data{categoryName});
|
||||
if ($category ne $previousCategory) {
|
||||
my $header;
|
||||
$header->{'profile.category'} = $category;
|
||||
push(@array,$header);
|
||||
}
|
||||
|
||||
$label = WebGUI::Operation::Shared::secureEval($data{fieldLabel});
|
||||
if ($data{dataValues}) {
|
||||
$value = WebGUI::Operation::Shared::secureEval($data{dataValues});
|
||||
$value = ${$value}{$u->profileField($data{fieldName})};
|
||||
} else {
|
||||
$value = $u->profileField($data{fieldName});
|
||||
}
|
||||
if ($data{dataType} eq "date") {
|
||||
$value = WebGUI::DateTime::epochToHuman($value,"%z");
|
||||
}
|
||||
unless ($data{fieldName} eq "email" and $u->profileField("publicEmail") < 1) {
|
||||
my $hash;
|
||||
$hash->{'profile.label'} = $label;
|
||||
$hash->{'profile.value'} = $value;
|
||||
push(@array,$hash);
|
||||
}
|
||||
$previousCategory = $category;
|
||||
}
|
||||
$vars->{'profile.elements'} = \@array;
|
||||
$a->finish;
|
||||
if ($session{user}{userId} eq $session{form}{uid}) {
|
||||
$vars->{'profile.accountOptions'} = WebGUI::Operation::Shared::accountOptions();
|
||||
|
||||
while (%data = $a->hash) {
|
||||
|
||||
$category = WebGUI::Operation::Shared::secureEval($data{categoryName});
|
||||
if ($category ne $previousCategory) {
|
||||
my $header;
|
||||
$header->{'profile.category'} = $category;
|
||||
push(@array,$header);
|
||||
$previousCategory = $category;
|
||||
}
|
||||
|
||||
next if ($data{fieldName} eq "email" and $u->profileField("publicEmail"));
|
||||
|
||||
$label = WebGUI::Operation::Shared::secureEval($data{fieldLabel});
|
||||
|
||||
##If the form field has multiple selections, only display the one the user
|
||||
##currently has selected.
|
||||
if ($data{dataValues}) {
|
||||
$value = WebGUI::Operation::Shared::secureEval($data{dataValues});
|
||||
$value = ${$value}{$u->profileField($data{fieldName})};
|
||||
}
|
||||
else {
|
||||
$value = $u->profileField($data{fieldName});
|
||||
}
|
||||
|
||||
my $form = WebGUI::Form::DynamicField->new(
|
||||
value => $value,
|
||||
fieldType => $data{dataType},
|
||||
);
|
||||
|
||||
$value = $form->displayValue();
|
||||
|
||||
my $hash;
|
||||
|
||||
$hash->{'profile.label'} = $label;
|
||||
$hash->{'profile.value'} = $value;
|
||||
push(@array,$hash);
|
||||
}
|
||||
return WebGUI::Operation::Shared::userStyle(WebGUI::Asset::Template->new("PBtmpl0000000000000052")->process($vars));
|
||||
$vars->{'profile.elements'} = \@array;
|
||||
$a->finish;
|
||||
if ($session{user}{userId} eq $session{form}{uid}) {
|
||||
$vars->{'profile.accountOptions'} = WebGUI::Operation::Shared::accountOptions();
|
||||
}
|
||||
return WebGUI::Operation::Shared::userStyle(WebGUI::Asset::Template->new("PBtmpl0000000000000052")->process($vars));
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ use WebGUI::Privilege;
|
|||
use WebGUI::Session;
|
||||
use WebGUI::SQL;
|
||||
use WebGUI::Operation::Shared;
|
||||
use WebGUI::Form::FieldType;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _reorderCategories {
|
||||
|
|
@ -212,14 +213,24 @@ sub www_editProfileField {
|
|||
-hoverHelp=>WebGUI::International::get('474 description',"WebGUIProfile"),
|
||||
-value=>$data{required}
|
||||
);
|
||||
$f->fieldType(
|
||||
#WebGUI::ErrorHandler::warn("type=".$data{dataType});
|
||||
my $fieldType = WebGUI::Form::FieldType->new(
|
||||
-name=>"dataType",
|
||||
-label=>WebGUI::International::get(486,"WebGUIProfile"),
|
||||
-hoverHelp=>WebGUI::International::get('486 description',"WebGUIProfile"),
|
||||
-value=>$data{dataType},
|
||||
-defaultValue=>"text",
|
||||
-types=>[qw(dateTime timeZone TimeField float zipcode text textarea HTMLArea url date email phone integer yesNo selectList radioList checkList)]
|
||||
);
|
||||
-value=>ucfirst $data{dataType},
|
||||
-defaultValue=>"Text",
|
||||
);
|
||||
my @profileForms = ();
|
||||
foreach my $form ( sort @{ $fieldType->{types} }) {
|
||||
my $cmd = join '::', 'WebGUI::Form', $form;
|
||||
eval "use $cmd";
|
||||
my $w = eval "$cmd->new();";
|
||||
push @profileForms, $form if $w->{profileEnabled};
|
||||
}
|
||||
|
||||
$fieldType->{types} = \@profileForms;
|
||||
$f->raw($fieldType->toHtmlWithWrapper());
|
||||
$f->textarea(
|
||||
-name => "dataValues",
|
||||
-label => WebGUI::International::get(487,"WebGUIProfile"),
|
||||
|
|
|
|||
|
|
@ -15,10 +15,11 @@ use Tie::CPHash;
|
|||
use Tie::IxHash;
|
||||
use WebGUI::AdminConsole;
|
||||
use WebGUI::DateTime;
|
||||
use WebGUI::Form;
|
||||
use WebGUI::FormProcessor;
|
||||
use WebGUI::Group;
|
||||
use WebGUI::Grouping;
|
||||
use WebGUI::Form;
|
||||
use WebGUI::Form::DynamicField;
|
||||
use WebGUI::HTMLForm;
|
||||
use WebGUI::Icon;
|
||||
use WebGUI::International;
|
||||
|
|
@ -278,48 +279,39 @@ sub www_editUser {
|
|||
where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
|
||||
order by userProfileCategory.sequenceNumber,userProfileField.sequenceNumber");
|
||||
my $previousCategory;
|
||||
while(my %data = $a->hash) {
|
||||
my $category = WebGUI::Operation::Shared::secureEval($data{categoryName});
|
||||
while(my $data = $a->hashRef) {
|
||||
my $category = WebGUI::Operation::Shared::secureEval($data->{categoryName});
|
||||
if ($category ne $previousCategory) {
|
||||
$tabform->getTab("profile")->raw('<tr><td colspan="2" class="tableHeader">'.$category.'</td></tr>');
|
||||
}
|
||||
my $values = WebGUI::Operation::Shared::secureEval($data{dataValues});
|
||||
my $method = $data{dataType};
|
||||
my $label = WebGUI::Operation::Shared::secureEval($data{fieldLabel});
|
||||
my $values = WebGUI::Operation::Shared::secureEval($data->{dataValues});
|
||||
my $method = $data->{dataType};
|
||||
my $label = WebGUI::Operation::Shared::secureEval($data->{fieldLabel});
|
||||
my $default;
|
||||
if ($method eq "selectList" || $method eq "checkList" || $method eq "radioList") {
|
||||
my $orderedValues = {};
|
||||
tie %{$orderedValues}, 'Tie::IxHash';
|
||||
foreach my $ov (sort keys %{$values}) {
|
||||
$orderedValues->{$ov} = $values->{$ov};
|
||||
}
|
||||
if ($session{form}{$data{fieldName}}) {
|
||||
$default = [$session{form}{$data{fieldName}}];
|
||||
} elsif (defined $u->profileField($data{fieldName}) && (defined($values->{$u->profileField($data{fieldName})}))) {
|
||||
$default = [$u->profileField($data{fieldName})];
|
||||
} else {
|
||||
$default = WebGUI::Operation::Shared::secureEval($data{dataDefault});
|
||||
}
|
||||
$tabform->getTab("profile")->$method(
|
||||
-name=>$data{fieldName},
|
||||
-options=>$orderedValues,
|
||||
-label=>$label,
|
||||
-value=>$default
|
||||
);
|
||||
} elsif ($method) {
|
||||
if ($session{form}{$data{fieldName}}) {
|
||||
$default = $session{form}{$data{fieldName}};
|
||||
} elsif (defined $u->profileField($data{fieldName})) {
|
||||
$default = $u->profileField($data{fieldName});
|
||||
} else {
|
||||
$default = WebGUI::Operation::Shared::secureEval($data{dataDefault});
|
||||
}
|
||||
$tabform->getTab("profile")->$method(
|
||||
-name=>$data{fieldName},
|
||||
-label=>$label,
|
||||
-value=>$default
|
||||
);
|
||||
}
|
||||
my $orderedValues = {};
|
||||
tie %{$orderedValues}, 'Tie::IxHash';
|
||||
foreach my $ov (sort keys %{$values}) {
|
||||
$orderedValues->{$ov} = $values->{$ov};
|
||||
}
|
||||
if ($session{form}{$data->{fieldName}}) {
|
||||
$default = $session{form}{$data->{fieldName}};
|
||||
}
|
||||
elsif ($session{user}{$data->{fieldName}}) {
|
||||
$default = $session{user}{$data->{fieldName}};
|
||||
}
|
||||
else {
|
||||
$default = WebGUI::Operation::Shared::secureEval($data->{dataDefault});
|
||||
}
|
||||
|
||||
my $form = WebGUI::Form::DynamicField->new(
|
||||
name => $data->{fieldName},
|
||||
label => $label,
|
||||
value => $default,
|
||||
options => $orderedValues,
|
||||
fieldType => $method,
|
||||
);
|
||||
|
||||
$tabform->getTab("profile")->raw($form->displayFormWithWrapper());
|
||||
$previousCategory = $category;
|
||||
}
|
||||
$a->finish;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue